|
@@ -0,0 +1,106 @@
|
|
|
+package controllers
|
|
|
+
|
|
|
+import (
|
|
|
+ "sparrow/pkg/models"
|
|
|
+ "sparrow/services/knowoapi/services"
|
|
|
+
|
|
|
+ "github.com/kataras/iris"
|
|
|
+)
|
|
|
+
|
|
|
+// RoleController role
|
|
|
+type RoleController struct {
|
|
|
+ Ctx iris.Context
|
|
|
+ Service services.RoleService
|
|
|
+ Token Token
|
|
|
+}
|
|
|
+
|
|
|
+// Post ``
|
|
|
+// POST /admin/role
|
|
|
+func (a *RoleController) Post() {
|
|
|
+ role := new(models.Role)
|
|
|
+ if err := parseBody(a.Ctx, role); err != nil {
|
|
|
+ badRequest(a.Ctx, err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if err := a.Service.Create(role); err != nil {
|
|
|
+ responseError(a.Ctx, ErrDatabase, err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ done(a.Ctx, role)
|
|
|
+}
|
|
|
+
|
|
|
+// Delete delete
|
|
|
+// DELETE /admin/role
|
|
|
+func (a *RoleController) Delete() {
|
|
|
+ role := new(models.Role)
|
|
|
+ // ID为1的不允许删除
|
|
|
+ if role.ID == 1 {
|
|
|
+ responseError(a.Ctx, ErrNormal, "普通用户角色不允许删除")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if err := parseBody(a.Ctx, role); err != nil {
|
|
|
+ badRequest(a.Ctx, err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if err := a.Service.Delete(role); err != nil {
|
|
|
+ responseError(a.Ctx, ErrDatabase, err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ done(a.Ctx, role)
|
|
|
+}
|
|
|
+
|
|
|
+// Put delPutete
|
|
|
+// Put /admin/role
|
|
|
+func (a *RoleController) Put() {
|
|
|
+ role := new(models.Role)
|
|
|
+ if err := parseBody(a.Ctx, role); err != nil {
|
|
|
+ badRequest(a.Ctx, err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if err := a.Service.Update(role); err != nil {
|
|
|
+ responseError(a.Ctx, ErrDatabase, err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ done(a.Ctx, role)
|
|
|
+}
|
|
|
+
|
|
|
+// Get get roles
|
|
|
+// GET /admin/role?pi=&ps=&name
|
|
|
+func (a *RoleController) Get() {
|
|
|
+ role := new(models.Role)
|
|
|
+ if err := parseBody(a.Ctx, role); err != nil {
|
|
|
+ badRequest(a.Ctx, err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ pi, err := a.Ctx.URLParamInt("pi")
|
|
|
+ if err != nil {
|
|
|
+ badRequest(a.Ctx, err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ ps, err := a.Ctx.URLParamInt("ps")
|
|
|
+ if err != nil {
|
|
|
+ badRequest(a.Ctx, err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ name := a.Ctx.URLParam("name")
|
|
|
+ datas, total, err := a.Service.QueryAll(pi, ps, name)
|
|
|
+ if err != nil {
|
|
|
+ responseError(a.Ctx, ErrDatabase, err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ done(a.Ctx, map[string]interface{}{
|
|
|
+ "list": datas,
|
|
|
+ "total": total,
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
+// GetBy get role by id
|
|
|
+func (a *RoleController) GetBy(id int) {
|
|
|
+ role, err := a.Service.QueryRole(id)
|
|
|
+ if err != nil {
|
|
|
+ responseError(a.Ctx, ErrDatabase, err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ done(a.Ctx, role)
|
|
|
+}
|