package controller

import (
	"encoding/json"
	"fmt"
	"goweb/database"
	"goweb/res"
	"goweb/wol"
	"net"

	"golang.org/x/net/websocket"
)

func Send_start(mac string, ws **websocket.Conn, uuid string) {
	allNetworkInterfaces, err := net.Interfaces()
	if err != nil {
		println(err)
		err = websocket.Message.Send(*ws, res.Get_res_string(200, "", "获取所有网络接口失败", ""))
		if err != nil {
			// c.Logger().Error(err)
			return
		}
		return
	}
	for i := range allNetworkInterfaces {
		if int(allNetworkInterfaces[i].Flags) > 50 {
			fmt.Printf("正在往 %s 接口发送\n", allNetworkInterfaces[i].Name)
			wol.WakespecifyInterfac(mac, "255.255.255.255", "9", allNetworkInterfaces[i].Name)
		}
	}

	err = websocket.Message.Send(*ws, res.Get_res_string(200, "已经向地址发送 mac: "+mac, uuid, ""))
	if err != nil {
		// c.Logger().Error(err)
		return
	}

}
func Getall(ws **websocket.Conn, uuid string) {
	wolarray := make([]database.Wol, 0)
	database.Getallwol(&wolarray)
	v, err := json.Marshal(wolarray)
	println(v)
	if err != nil {
		fmt.Println("marshal failed!", err)
		return
	}
	err = websocket.Message.Send(*ws, res.Get_res_string(200, "", uuid, wolarray))
	if err != nil {
		// c.Logger().Error(err)
		return
	}
}

func Del(ws **websocket.Conn, uuid string, id int) {
	database.Del(id)
	err := websocket.Message.Send(*ws, res.Get_res_string(200, "", uuid, id))
	if err != nil {
		// c.Logger().Error(err)
		return
	}
}
