|
|
@ -9,6 +9,7 @@ import ( |
|
|
fiberUtils "github.com/gofiber/fiber/v2/utils" |
|
|
fiberUtils "github.com/gofiber/fiber/v2/utils" |
|
|
"github.com/skip2/go-qrcode" |
|
|
"github.com/skip2/go-qrcode" |
|
|
"go.mau.fi/whatsmeow" |
|
|
"go.mau.fi/whatsmeow" |
|
|
|
|
|
"go.mau.fi/whatsmeow/store/sqlstore" |
|
|
"os" |
|
|
"os" |
|
|
"path/filepath" |
|
|
"path/filepath" |
|
|
"time" |
|
|
"time" |
|
|
@ -16,11 +17,13 @@ import ( |
|
|
|
|
|
|
|
|
type serviceApp struct { |
|
|
type serviceApp struct { |
|
|
WaCli *whatsmeow.Client |
|
|
WaCli *whatsmeow.Client |
|
|
|
|
|
db *sqlstore.Container |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
func NewAppService(waCli *whatsmeow.Client) domainApp.IAppService { |
|
|
|
|
|
|
|
|
func NewAppService(waCli *whatsmeow.Client, db *sqlstore.Container) domainApp.IAppService { |
|
|
return &serviceApp{ |
|
|
return &serviceApp{ |
|
|
WaCli: waCli, |
|
|
WaCli: waCli, |
|
|
|
|
|
db: db, |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@ -85,7 +88,7 @@ func (service serviceApp) Logout(_ context.Context) (err error) { |
|
|
// delete history
|
|
|
// delete history
|
|
|
files, err := filepath.Glob("./history-*") |
|
|
files, err := filepath.Glob("./history-*") |
|
|
if err != nil { |
|
|
if err != nil { |
|
|
panic(err) |
|
|
|
|
|
|
|
|
return err |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
for _, f := range files { |
|
|
for _, f := range files { |
|
|
@ -97,7 +100,7 @@ func (service serviceApp) Logout(_ context.Context) (err error) { |
|
|
// delete qr images
|
|
|
// delete qr images
|
|
|
qrImages, err := filepath.Glob("./statics/images/qrcode/scan-*") |
|
|
qrImages, err := filepath.Glob("./statics/images/qrcode/scan-*") |
|
|
if err != nil { |
|
|
if err != nil { |
|
|
panic(err) |
|
|
|
|
|
|
|
|
return err |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
for _, f := range qrImages { |
|
|
for _, f := range qrImages { |
|
|
@ -115,3 +118,28 @@ func (service serviceApp) Reconnect(_ context.Context) (err error) { |
|
|
service.WaCli.Disconnect() |
|
|
service.WaCli.Disconnect() |
|
|
return service.WaCli.Connect() |
|
|
return service.WaCli.Connect() |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
func (service serviceApp) FetchDevices(ctx context.Context) (response []domainApp.FetchDevicesResponse, err error) { |
|
|
|
|
|
if service.WaCli == nil { |
|
|
|
|
|
return response, errors.New("wa cli nil cok") |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
devices, err := service.db.GetAllDevices() |
|
|
|
|
|
if err != nil { |
|
|
|
|
|
return nil, err |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
for _, device := range devices { |
|
|
|
|
|
var d domainApp.FetchDevicesResponse |
|
|
|
|
|
d.Device = device.ID.String() |
|
|
|
|
|
if device.PushName != "" { |
|
|
|
|
|
d.Name = device.PushName |
|
|
|
|
|
} else { |
|
|
|
|
|
d.Name = device.BusinessName |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
response = append(response, d) |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return response, nil |
|
|
|
|
|
} |