employee_controller.go 3.4 KB
package controllers

import (
	"encoding/json"

	"github.com/astaxie/beego"
	"github.com/linmadan/egglib-go/web/beego/utils"
	"gitlab.fjmaimaimai.com/linmadan/mmm-worth/pkg/application/employee/command"
	"gitlab.fjmaimaimai.com/linmadan/mmm-worth/pkg/application/employee/query"
	"gitlab.fjmaimaimai.com/linmadan/mmm-worth/pkg/application/employee/service"
)

type EmployeeController struct {
	beego.Controller
}

func (controller *EmployeeController) CreateEmployee() {
	employeeService := service.NewEmployeeService(nil)
	createEmployeeCommand := &command.CreateEmployeeCommand{}
	json.Unmarshal(controller.Ctx.Input.GetData("requestBody").([]byte), createEmployeeCommand)
	data, err := employeeService.CreateEmployee(createEmployeeCommand)
	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 *EmployeeController) UpdateEmployee() {
	employeeService := service.NewEmployeeService(nil)
	updateEmployeeCommand := &command.UpdateEmployeeCommand{}
	json.Unmarshal(controller.Ctx.Input.GetData("requestBody").([]byte), updateEmployeeCommand)
	uid, _ := controller.GetInt64(":uid")
	updateEmployeeCommand.Uid = uid
	data, err := employeeService.UpdateEmployee(updateEmployeeCommand)
	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 *EmployeeController) GetEmployee() {
	employeeService := service.NewEmployeeService(nil)
	getEmployeeQuery := &query.GetEmployeeQuery{}
	uid, _ := controller.GetInt64(":uid")
	getEmployeeQuery.Uid = uid
	data, err := employeeService.GetEmployee(getEmployeeQuery)
	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 *EmployeeController) RemoveEmployee() {
	employeeService := service.NewEmployeeService(nil)
	removeEmployeeCommand := &command.RemoveEmployeeCommand{}
	uid, _ := controller.GetInt64(":uid")
	removeEmployeeCommand.Uid = uid
	data, err := employeeService.RemoveEmployee(removeEmployeeCommand)
	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 *EmployeeController) ListEmployee() {
	employeeService := service.NewEmployeeService(nil)
	listEmployeeQuery := &query.ListEmployeeQuery{}
	companyId, _ := controller.GetInt64("companyId")
	listEmployeeQuery.CompanyId = companyId
	employeeNameMatch := controller.GetString("employeeNameMatch")
	listEmployeeQuery.EmployeeNameMatch = employeeNameMatch
	offset, _ := controller.GetInt("offset")
	listEmployeeQuery.Offset = offset
	limit, _ := controller.GetInt("limit")
	listEmployeeQuery.Limit = limit
	data, err := employeeService.ListEmployee(listEmployeeQuery)
	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()
}