users_controller.go 2.4 KB
package controllers

import (
	"github.com/astaxie/beego/context"
	"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(ctx *context.Context) {
	contextController := utils.NewController(ctx)
	usersService := service.NewUsersService(nil)
	createUsersCommand := &command.CreateUsersCommand{}
	contextController.Unmarshal(createUsersCommand)
	data, err := usersService.CreateUsers(createUsersCommand)
	contextController.Response(data, err)
}

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

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

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

func (controller *UsersController) ListUsers(ctx *context.Context) {
	contextController := utils.NewController(ctx)
	usersService := service.NewUsersService(nil)
	listUsersQuery := &query.ListUsersQuery{}
	offset, _ := contextController.GetInt("offset")
	listUsersQuery.Offset = offset
	limit, _ := contextController.GetInt("limit")
	listUsersQuery.Limit = limit
	data, err := usersService.ListUsers(listUsersQuery)
	contextController.Response(data, err)
}