61 lines
1.5 KiB
Go
61 lines
1.5 KiB
Go
package client
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
"net/http"
|
|
|
|
// "github.com/ihexxa/quickshare/src/db/sitestore"
|
|
"github.com/ihexxa/quickshare/src/handlers/settings"
|
|
"github.com/parnurzeal/gorequest"
|
|
)
|
|
|
|
type SettingsClient struct {
|
|
addr string
|
|
r *gorequest.SuperAgent
|
|
}
|
|
|
|
func NewSettingsClient(addr string) *SettingsClient {
|
|
gr := gorequest.New()
|
|
return &SettingsClient{
|
|
addr: addr,
|
|
r: gr,
|
|
}
|
|
}
|
|
|
|
func (cl *SettingsClient) url(urlpath string) string {
|
|
return fmt.Sprintf("%s%s", cl.addr, urlpath)
|
|
}
|
|
|
|
func (cl *SettingsClient) Health() (*http.Response, string, []error) {
|
|
return cl.r.Options(cl.url("/v1/settings/health")).
|
|
End()
|
|
}
|
|
|
|
func (cl *SettingsClient) GetClientCfg(token *http.Cookie) (*http.Response, *settings.ClientCfgMsg, []error) {
|
|
resp, body, errs := cl.r.Get(cl.url("/v1/settings/client")).
|
|
AddCookie(token).
|
|
End()
|
|
|
|
mResp := &settings.ClientCfgMsg{}
|
|
err := json.Unmarshal([]byte(body), mResp)
|
|
if err != nil {
|
|
errs = append(errs, err)
|
|
return nil, nil, errs
|
|
}
|
|
return resp, mResp, nil
|
|
}
|
|
|
|
func (cl *SettingsClient) SetClientCfg(cfgMsg *settings.ClientCfgMsg, token *http.Cookie) (*http.Response, string, []error) {
|
|
return cl.r.Patch(cl.url("/v1/settings/client")).
|
|
AddCookie(token).
|
|
Send(cfgMsg).
|
|
End()
|
|
}
|
|
|
|
func (cl *SettingsClient) ReportErrors(reports *settings.ClientErrorReports, token *http.Cookie) (*http.Response, string, []error) {
|
|
return cl.r.Post(cl.url("/v1/settings/errors")).
|
|
AddCookie(token).
|
|
Send(reports).
|
|
End()
|
|
}
|