auth_controller.go 1.8 KB
package controllers

import (
	"encoding/json"

	"github.com/astaxie/beego"
	"github.com/linmadan/egglib-go/web/beego/utils"
	"github.com/tiptok/godevp/pkg/application/auth/command"
	"github.com/tiptok/godevp/pkg/application/auth/service"
)

type AuthController struct {
	beego.Controller
}

func (controller *AuthController) Login() {
	authService := service.NewAuthService(nil)
	loginCommand := &command.LoginCommand{}
	json.Unmarshal(controller.Ctx.Input.GetData("requestBody").([]byte), loginCommand)
	data, err := authService.Login(loginCommand)
	var response utils.JsonResponse
	if err != nil {
		response = utils.ResponseError(controller.Ctx, err)
	} else {
		response = utils.ResponseData(controller.Ctx, data)
	}
	controller.Data["json"] = response
	controller.ServeJSON()
}

func (controller *AuthController) Profile() {
	authService := service.NewAuthService(nil)
	profileCommand := &command.ProfileCommand{}
	json.Unmarshal(controller.Ctx.Input.GetData("requestBody").([]byte), profileCommand)
	data, err := authService.Profile(profileCommand)
	var response utils.JsonResponse
	if err != nil {
		response = utils.ResponseError(controller.Ctx, err)
	} else {
		response = utils.ResponseData(controller.Ctx, data)
	}
	controller.Data["json"] = response
	controller.ServeJSON()
}

func (controller *AuthController) Refresh() {
	authService := service.NewAuthService(nil)
	refreshCommand := &command.RefreshCommand{}
	json.Unmarshal(controller.Ctx.Input.GetData("requestBody").([]byte), refreshCommand)
	data, err := authService.Refresh(refreshCommand)
	var response utils.JsonResponse
	if err != nil {
		response = utils.ResponseError(controller.Ctx, err)
	} else {
		response = utils.ResponseData(controller.Ctx, data)
	}
	controller.Data["json"] = response
	controller.ServeJSON()
}