1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- package desktop
- import (
- "context"
- "encoding/json"
- "github.com/astaxie/beego/logs"
- "nginx-ui/server/models"
- "nginx-ui/server/modules/user"
- )
- var ApiSession = Session{}
- var userService = user.NewUserService()
- var nginxApi = NewNginxApi()
- // Api struct
- type Api struct {
- ctx context.Context
- }
- // NewApi NewApp creates a new App application struct
- func NewApi() *Api {
- return &Api{}
- }
- // Startup is called when the app starts. The context is saved
- // so we can call the runtime methods
- func (a *Api) Startup(ctx context.Context) {
- ApiSession.ctx = ctx
- a.ctx = ctx
- ApiSession.Load()
- logs.Info("Startup finish")
- }
- type ApiResp struct {
- Data *models.RespData `json:"data"`
- }
- // PostApi 做一个统一的适配层
- func (a *Api) PostApi(path string, req string) ApiResp {
- logs.Info("[POST] path: %s, data: %s", path, req)
- if nginxApi.Match(path) {
- return nginxApi.PostApi(path, req)
- }
- var data *models.RespData
- switch path {
- case "/user/login":
- var user *models.User
- err := json.Unmarshal([]byte(req), user)
- if err != nil {
- logs.Error(err, req)
- data = models.NewErrorResp(err)
- }
- data = userService.Login(user)
- if data.Success() {
- ApiSession.SetUser(user)
- }
- break
- case "/user/register":
- data = userService.SignUp([]byte(req))
- break
- }
- return ApiResp{Data: data}
- }
- func (a *Api) GetApi(path string, req string) ApiResp {
- logs.Info("[GET] path: %s, data: %s", path, req)
- if nginxApi.Match(path) {
- return nginxApi.GetApi(path, req)
- }
- var data *models.RespData
- switch path {
- case "/user/info":
- data = models.SuccessResp(ApiSession.user)
- break
- }
- logs.Info("resp:{}", data)
- return ApiResp{Data: data}
- }
- func (a *Api) DeleteApi(path string, req string) ApiResp {
- logs.Info("[DELETE] path: %s, data: %s", path, req)
- if nginxApi.Match(path) {
- return nginxApi.DeleteApi(path, req)
- }
- return ApiResp{}
- }
- func (a *Api) PutApi(path string, req string) ApiResp {
- logs.Info("[PUT] path: %s, data: %s", path, req)
- if nginxApi.Match(path) {
- return nginxApi.PutApi(path, req)
- }
- return ApiResp{}
- }
|