package utils

import (
	"golang.zx2c4.com/wireguard/wgctrl/wgtypes"
	"wireguard-dashboard/client"
)

type wireguard struct{}

func Wireguard() wireguard {
	return wireguard{}
}

// GetSpecClient
// @description: 获取指定客户端链接信息
// @receiver wireguard
// @param pk
// @return *wgtypes.Peer
// @return error
func (wireguard) GetSpecClient(pk string) (*wgtypes.Peer, error) {
	device, err := client.WireguardClient.Devices()
	if err != nil {
		return nil, err
	}

	for _, v := range device {
		for _, p := range v.Peers {
			if p.PublicKey.String() == pk {
				return &p, nil
			}
		}
	}

	return nil, nil
}
