role_controller.go 3.0 KB
package controllers

import (
	"encoding/json"

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

type RoleController struct {
	beego.Controller
}

func (controller *RoleController) CreateRole() {
	roleService := service.NewRoleService(nil)
	createRoleCommand := &command.CreateRoleCommand{}
	json.Unmarshal(controller.Ctx.Input.GetData("requestBody").([]byte), createRoleCommand)
	data, err := roleService.CreateRole(createRoleCommand)
	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 *RoleController) UpdateRole() {
	roleService := service.NewRoleService(nil)
	updateRoleCommand := &command.UpdateRoleCommand{}
	json.Unmarshal(controller.Ctx.Input.GetData("requestBody").([]byte), updateRoleCommand)
	Id, _ := controller.GetInt64(":Id")
	updateRoleCommand.RoleId = Id
	data, err := roleService.UpdateRole(updateRoleCommand)
	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 *RoleController) GetRole() {
	roleService := service.NewRoleService(nil)
	getRoleQuery := &query.GetRoleQuery{}
	Id, _ := controller.GetInt64(":Id")
	getRoleQuery.RoleId = Id
	data, err := roleService.GetRole(getRoleQuery)
	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 *RoleController) RemoveRole() {
	roleService := service.NewRoleService(nil)
	removeRoleCommand := &command.RemoveRoleCommand{}
	json.Unmarshal(controller.Ctx.Input.GetData("requestBody").([]byte), removeRoleCommand)
	Id, _ := controller.GetInt64(":Id")
	removeRoleCommand.RoleId = Id
	data, err := roleService.RemoveRole(removeRoleCommand)
	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 *RoleController) ListRole() {
	roleService := service.NewRoleService(nil)
	listRoleQuery := &query.ListRoleQuery{}
	offset, _ := controller.GetInt("offset")
	listRoleQuery.Offset = offset
	limit, _ := controller.GetInt("limit")
	listRoleQuery.Limit = limit
	data, err := roleService.ListRole(listRoleQuery)
	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()
}