From 691fb2a380bb085a583bbe22753cfbf24eb0999a Mon Sep 17 00:00:00 2001 From: lishuang Date: Sat, 27 May 2023 12:34:58 +0800 Subject: [PATCH] feat: fix the spacemember things. --- code/rest/space_member_controller.go | 57 ++++++++-------------------- code/rest/space_member_service.go | 4 +- code/rest/user_model.go | 2 - 3 files changed, 17 insertions(+), 46 deletions(-) diff --git a/code/rest/space_member_controller.go b/code/rest/space_member_controller.go index c6f059b..b292354 100644 --- a/code/rest/space_member_controller.go +++ b/code/rest/space_member_controller.go @@ -5,8 +5,8 @@ import ( "github.com/eyebluecn/tank/code/tool/builder" "github.com/eyebluecn/tank/code/tool/i18n" "github.com/eyebluecn/tank/code/tool/result" + "github.com/eyebluecn/tank/code/tool/util" "net/http" - "strconv" ) type SpaceMemberController struct { @@ -68,13 +68,10 @@ func (this *SpaceMemberController) RegisterRoutes() map[string]func(writer http. } func (this *SpaceMemberController) Create(writer http.ResponseWriter, request *http.Request) *result.WebResult { - spaceUuid := request.FormValue("spaceUuid") - userUuid := request.FormValue("userUuid") - spaceRole := request.FormValue("spaceRole") - if spaceUuid == "" { - panic("spaceUuid is required") - } + spaceUuid := util.ExtractRequestString(request, "spaceUuid", "spaceUuid is required") + userUuid := util.ExtractRequestString(request, "userUuid", "userUuid is required") + spaceRole := util.ExtractRequestString(request, "spaceRole", "spaceRole is required") if spaceRole != SPACE_MEMBER_ROLE_READ_ONLY && spaceRole != SPACE_MEMBER_ROLE_READ_WRITE && spaceRole != SPACE_MEMBER_ROLE_ADMIN { panic("spaceRole is not correct") @@ -94,26 +91,22 @@ func (this *SpaceMemberController) Create(writer http.ResponseWriter, request *h //check whether space exists. space := this.spaceDao.CheckByUuid(spaceUuid) - member := this.userDao.CheckByUuid(userUuid) - //can not add a SPACE_USER as member. - if member.Role == USER_ROLE_SPACE { - panic(result.BadRequestI18n(request, i18n.SpaceMemberRoleConflict)) - } + user := this.userDao.CheckByUuid(userUuid) - spaceMember = this.spaceMemberService.CreateMember(space, member, spaceRole) + spaceMember = this.spaceMemberService.CreateMember(space, user, spaceRole) return this.Success(spaceMember) } func (this *SpaceMemberController) Edit(writer http.ResponseWriter, request *http.Request) *result.WebResult { - spaceMemberUuid := request.FormValue("spaceMemberUuid") - spaceRole := request.FormValue("spaceRole") + uuid := util.ExtractRequestString(request, "uuid", "uuid is required") + spaceRole := util.ExtractRequestString(request, "spaceRole", "spaceRole is required") if spaceRole != SPACE_MEMBER_ROLE_READ_ONLY && spaceRole != SPACE_MEMBER_ROLE_READ_WRITE && spaceRole != SPACE_MEMBER_ROLE_ADMIN { panic("spaceRole is not correct") } - spaceMember := this.spaceMemberDao.CheckByUuid(spaceMemberUuid) + spaceMember := this.spaceMemberDao.CheckByUuid(uuid) currentUser := this.checkUser(request) canManage := this.spaceMemberService.canManageBySpaceMember(currentUser, spaceMember) @@ -128,8 +121,8 @@ func (this *SpaceMemberController) Edit(writer http.ResponseWriter, request *htt } func (this *SpaceMemberController) Delete(writer http.ResponseWriter, request *http.Request) *result.WebResult { + uuid := util.ExtractRequestString(request, "uuid", "uuid is required") - uuid := request.FormValue("uuid") spaceMember := this.spaceMemberDao.CheckByUuid(uuid) user := this.checkUser(request) canManage := this.spaceMemberService.canManageBySpaceMember(user, spaceMember) @@ -144,10 +137,7 @@ func (this *SpaceMemberController) Delete(writer http.ResponseWriter, request *h func (this *SpaceMemberController) Detail(writer http.ResponseWriter, request *http.Request) *result.WebResult { - uuid := request.FormValue("uuid") - if uuid == "" { - panic(result.BadRequest("uuid cannot be null")) - } + uuid := util.ExtractRequestString(request, "uuid", "uuid is required") spaceMember := this.spaceMemberDao.CheckByUuid(uuid) @@ -163,27 +153,10 @@ func (this *SpaceMemberController) Detail(writer http.ResponseWriter, request *h func (this *SpaceMemberController) Page(writer http.ResponseWriter, request *http.Request) *result.WebResult { - pageStr := request.FormValue("page") - pageSizeStr := request.FormValue("pageSize") - orderCreateTime := request.FormValue("orderCreateTime") - spaceUuid := request.FormValue("spaceUuid") - - var page int - if pageStr != "" { - page, _ = strconv.Atoi(pageStr) - } - - pageSize := 200 - if pageSizeStr != "" { - tmp, err := strconv.Atoi(pageSizeStr) - if err == nil { - pageSize = tmp - } - } - - if spaceUuid == "" { - panic(result.BadRequest("spaceUuid cannot be null")) - } + page := util.ExtractRequestOptionalInt(request, "page", 0) + pageSize := util.ExtractRequestOptionalInt(request, "pageSize", 20) + orderCreateTime := util.ExtractRequestOptionalString(request, "orderCreateTime", "") + spaceUuid := util.ExtractRequestString(request, "spaceUuid", "spaceUuid is required") user := this.checkUser(request) canRead := this.spaceMemberService.canRead(user, spaceUuid) diff --git a/code/rest/space_member_service.go b/code/rest/space_member_service.go index 5d2cfd2..6f09061 100644 --- a/code/rest/space_member_service.go +++ b/code/rest/space_member_service.go @@ -46,11 +46,11 @@ func (this *SpaceMemberService) Detail(uuid string) *SpaceMember { } // create space -func (this *SpaceMemberService) CreateMember(space *Space, memeber *User, spaceRole string) *SpaceMember { +func (this *SpaceMemberService) CreateMember(space *Space, user *User, spaceRole string) *SpaceMember { spaceMember := &SpaceMember{ SpaceUuid: space.Uuid, - UserUuid: memeber.Uuid, + UserUuid: user.Uuid, Role: spaceRole, } diff --git a/code/rest/user_model.go b/code/rest/user_model.go index d93f0e1..f2bc0cc 100644 --- a/code/rest/user_model.go +++ b/code/rest/user_model.go @@ -7,8 +7,6 @@ import ( const ( //guest USER_ROLE_GUEST = "GUEST" - //空间 - USER_ROLE_SPACE = "SPACE" //normal user USER_ROLE_USER = "USER" //administrator