package controllers

import (
	"encoding/json"
	"oppmg/common/log"
	"oppmg/protocol"
	serverbac "oppmg/services/rbac"
)

type RbacController struct {
	BaseController
}

//URLMapping 实现ControllerInterface中的URLMapping
func (c *RbacController) URLMapping() {
	//c.Mapping("AccessToken", c.AccessToken)
}

// RoleAdd 添加部门
// @router /department [post]
func (c *RbacController) RoleAdd() {
	var msg *protocol.ResponseMessage
	defer func() {
		c.ResposeJson(msg)
	}()
	var param protocol.RequestRoleAdd
	if err := json.Unmarshal(c.Ctx.Input.RequestBody, &param); err != nil {
		log.Error("json 解析失败 err:%s", err)
		msg = protocol.BadRequestParam("1")
		return
	}
	if param.CompanyID <= 0 {
		log.Error("param.CompanyID <= 0")
		msg = protocol.BadRequestParam("1")
		return
	}
	_, err := serverbac.RoleAdd(param)
	msg = protocol.NewReturnResponse(nil, err)
	return
}

// RoleUpdate 编辑部门
// @router /department [put]
func (c *RbacController) RoleUpdate() {
	var msg *protocol.ResponseMessage
	defer func() {
		c.ResposeJson(msg)
	}()
	var param protocol.RequestRoleEdit
	if err := json.Unmarshal(c.Ctx.Input.RequestBody, &param); err != nil {
		log.Error("json 解析失败 err:%s", err)
		msg = protocol.BadRequestParam("1")
		return
	}
	if param.CompanyID <= 0 {
		log.Error("param.CompanyID <= 0")
		msg = protocol.BadRequestParam("1")
		return
	}

	_, err := serverbac.RoleEdit(param)
	msg = protocol.NewReturnResponse(nil, err)
	return
}

// RoleDelete 删除角色
// @router /department [delete]
func (c *RbacController) RoleDelete() {
	var msg *protocol.ResponseMessage
	defer func() {
		c.ResposeJson(msg)
	}()
	var param protocol.RequestRoleDelete
	if err := json.Unmarshal(c.Ctx.Input.RequestBody, &param); err != nil {
		log.Error("json 解析失败 err:%s", err)
		msg = protocol.BadRequestParam("1")
		return
	}
	if param.CompanyID <= 0 {
		log.Error("param.CompanyID <= 0")
		msg = protocol.BadRequestParam("1")
		return
	}

	err := serverbac.RoleDelete(param)
	msg = protocol.NewReturnResponse(nil, err)
	return
}