users_controller.go 2.0 KB
package controllers

import (
	"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 {
	utils.Controller
}

func (controller *UsersController) CreateUsers() {
	usersService := service.NewUsersService(nil)
	createUsersCommand := &command.CreateUsersCommand{}
	controller.Unmarshal(createUsersCommand)
	data, err := usersService.CreateUsers(createUsersCommand)
	controller.Response(data, err)
}

func (controller *UsersController) UpdateUsers() {
	usersService := service.NewUsersService(nil)
	updateUsersCommand := &command.UpdateUsersCommand{}
	controller.Unmarshal(updateUsersCommand)
	Id, _ := controller.GetInt64(":Id")
	updateUsersCommand.UsersId = Id
	data, err := usersService.UpdateUsers(updateUsersCommand)
	controller.Response(data, err)
}

func (controller *UsersController) GetUsers() {
	usersService := service.NewUsersService(map[string]interface{}{"context": controller.Ctx.Request.Context()})
	getUsersQuery := &query.GetUsersQuery{}
	Id, _ := controller.GetInt64(":Id")
	getUsersQuery.UsersId = Id
	data, err := usersService.GetUsers(getUsersQuery)
	controller.Response(data, err)
}

func (controller *UsersController) RemoveUsers() {
	usersService := service.NewUsersService(nil)
	removeUsersCommand := &command.RemoveUsersCommand{}
	controller.Unmarshal(removeUsersCommand)
	Id, _ := controller.GetInt64(":Id")
	removeUsersCommand.UsersId = Id
	data, err := usersService.RemoveUsers(removeUsersCommand)
	controller.Response(data, err)
}

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)
	controller.Response(data, err)
}