users_controller.go 3.1 KB
package controllers

import (
	"encoding/json"

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

type UsersController struct {
	beego.Controller
}

func (controller *UsersController) CreateUsers() {
	usersService := service.NewUsersService(nil)
	createUsersCommand := &command.CreateUsersCommand{}
	json.Unmarshal(controller.Ctx.Input.GetData("requestBody").([]byte), createUsersCommand)
	data, err := usersService.CreateUsers(createUsersCommand)
	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 *UsersController) UpdateUsers() {
	usersService := service.NewUsersService(nil)
	updateUsersCommand := &command.UpdateUsersCommand{}
	json.Unmarshal(controller.Ctx.Input.GetData("requestBody").([]byte), updateUsersCommand)
	Id, _ := controller.GetInt64(":Id")
	updateUsersCommand.UsersId = Id
	data, err := usersService.UpdateUsers(updateUsersCommand)
	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 *UsersController) GetUsers() {
	usersService := service.NewUsersService(nil)
	getUsersQuery := &query.GetUsersQuery{}
	Id, _ := controller.GetInt64(":Id")
	getUsersQuery.UsersId = Id
	data, err := usersService.GetUsers(getUsersQuery)
	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 *UsersController) RemoveUsers() {
	usersService := service.NewUsersService(nil)
	removeUsersCommand := &command.RemoveUsersCommand{}
	json.Unmarshal(controller.Ctx.Input.GetData("requestBody").([]byte), removeUsersCommand)
	Id, _ := controller.GetInt64(":Id")
	removeUsersCommand.UsersId = Id
	data, err := usersService.RemoveUsers(removeUsersCommand)
	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 *UsersController) ListUsers() {
	usersService := service.NewUsersService(nil)
	listUsersQuery := &query.ListUsersQuery{}
	offset, _ := controller.GetInt("offset")
	listUsersQuery.Offset = offset
	limit, _ := controller.GetInt("limit")
	listUsersQuery.Limit = limit
	data, err := usersService.ListUsers(listUsersQuery)
	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()
}