diff --git a/code/rest/matter_controller.go b/code/rest/matter_controller.go index b740d19..992f543 100644 --- a/code/rest/matter_controller.go +++ b/code/rest/matter_controller.go @@ -2,7 +2,6 @@ package rest import ( "github.com/eyebluecn/tank/code/core" - "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" @@ -117,7 +116,6 @@ func (this *MatterController) Detail(writer http.ResponseWriter, request *http.R } -// TODO: 分享的列表接口不走这个接口了。 func (this *MatterController) Page(writer http.ResponseWriter, request *http.Request) *result.WebResult { page := util.ExtractRequestOptionalInt(request, "page", 0) @@ -127,60 +125,44 @@ func (this *MatterController) Page(writer http.ResponseWriter, request *http.Req orderDeleteTime := util.ExtractRequestOptionalString(request, "orderDeleteTime", "") orderSort := util.ExtractRequestOptionalString(request, "orderSort", "") orderTimes := util.ExtractRequestOptionalString(request, "orderTimes", "") - puuid := util.ExtractRequestOptionalString(request, "puuid", "") - name := util.ExtractRequestOptionalString(request, "name", "") - dir := util.ExtractRequestOptionalString(request, "dir", "") - deleted := util.ExtractRequestOptionalString(request, "deleted", "") orderDir := util.ExtractRequestOptionalString(request, "orderDir", "") orderSize := util.ExtractRequestOptionalString(request, "orderSize", "") orderName := util.ExtractRequestOptionalString(request, "orderName", "") + + puuid := util.ExtractRequestString(request, "puuid") + name := util.ExtractRequestOptionalString(request, "name", "") + dir := util.ExtractRequestOptionalString(request, "dir", "") + deleted := util.ExtractRequestOptionalString(request, "deleted", "") extensionsStr := util.ExtractRequestOptionalString(request, "extensions", "") user := this.checkUser(request) spaceUuid := util.ExtractRequestOptionalString(request, "spaceUuid", user.SpaceUuid) - space := this.spaceService.CheckReadableByUuid(request, user, spaceUuid) + this.spaceService.CheckReadableByUuid(request, user, spaceUuid) var extensions []string if extensionsStr != "" { extensions = strings.Split(extensionsStr, ",") } - sortArray := []builder.OrderPair{ - { - Key: "dir", - Value: orderDir, - }, - { - Key: "create_time", - Value: orderCreateTime, - }, - { - Key: "update_time", - Value: orderUpdateTime, - }, - { - Key: "delete_time", - Value: orderDeleteTime, - }, - { - Key: "sort", - Value: orderSort, - }, - { - Key: "size", - Value: orderSize, - }, - { - Key: "name", - Value: orderName, - }, - { - Key: "times", - Value: orderTimes, - }, - } - - pager := this.matterDao.Page(page, pageSize, puuid, "", space.Uuid, name, dir, deleted, extensions, sortArray) + pager := this.matterService.Page( + request, + page, + pageSize, + orderCreateTime, + orderUpdateTime, + orderDeleteTime, + orderSort, + orderTimes, + orderDir, + orderSize, + orderName, + puuid, + name, + dir, + deleted, + extensions, + spaceUuid, + ) return this.Success(pager) } diff --git a/code/rest/matter_service.go b/code/rest/matter_service.go index 99c06b2..2363c62 100644 --- a/code/rest/matter_service.go +++ b/code/rest/matter_service.go @@ -76,6 +76,67 @@ func (this *MatterService) Init() { } +// get the page of matters. +func (this *MatterService) Page( + request *http.Request, + page int, + pageSize int, + orderCreateTime string, + orderUpdateTime string, + orderDeleteTime string, + orderSort string, + orderTimes string, + orderDir string, + orderSize string, + orderName string, + puuid string, + name string, + dir string, + deleted string, + extensions []string, + spaceUuid string, +) *Pager { + + sortArray := []builder.OrderPair{ + { + Key: "dir", + Value: orderDir, + }, + { + Key: "create_time", + Value: orderCreateTime, + }, + { + Key: "update_time", + Value: orderUpdateTime, + }, + { + Key: "delete_time", + Value: orderDeleteTime, + }, + { + Key: "sort", + Value: orderSort, + }, + { + Key: "size", + Value: orderSize, + }, + { + Key: "name", + Value: orderName, + }, + { + Key: "times", + Value: orderTimes, + }, + } + + pager := this.matterDao.Page(page, pageSize, puuid, "", spaceUuid, name, dir, deleted, extensions, sortArray) + + return pager +} + // Download. Support chunk download. func (this *MatterService) DownloadFile( writer http.ResponseWriter, diff --git a/code/rest/share_controller.go b/code/rest/share_controller.go index 8bafe3d..e8028ea 100644 --- a/code/rest/share_controller.go +++ b/code/rest/share_controller.go @@ -63,7 +63,7 @@ func (this *ShareController) RegisterRoutes() map[string]func(writer http.Respon routeMap["/api/share/browse"] = this.Wrap(this.Browse, USER_ROLE_GUEST) routeMap["/api/share/zip"] = this.Wrap(this.Zip, USER_ROLE_GUEST) - routeMap["/api/share/matter/page"] = this.Wrap(this.SharePage, USER_ROLE_USER) + routeMap["/api/share/matter/page"] = this.Wrap(this.MatterPage, USER_ROLE_USER) return routeMap } @@ -379,8 +379,8 @@ func (this *ShareController) Zip(writer http.ResponseWriter, request *http.Reque return nil } -// 分享下的文件列表 -func (this *ShareController) SharePage(writer http.ResponseWriter, request *http.Request) *result.WebResult { +// matter list under a share. +func (this *ShareController) MatterPage(writer http.ResponseWriter, request *http.Request) *result.WebResult { page := util.ExtractRequestOptionalInt(request, "page", 0) pageSize := util.ExtractRequestOptionalInt(request, "pageSize", 200) @@ -389,30 +389,29 @@ func (this *ShareController) SharePage(writer http.ResponseWriter, request *http orderDeleteTime := util.ExtractRequestOptionalString(request, "orderDeleteTime", "") orderSort := util.ExtractRequestOptionalString(request, "orderSort", "") orderTimes := util.ExtractRequestOptionalString(request, "orderTimes", "") - puuid := util.ExtractRequestOptionalString(request, "puuid", "") - name := util.ExtractRequestOptionalString(request, "name", "") - dir := util.ExtractRequestOptionalString(request, "dir", "") - deleted := util.ExtractRequestOptionalString(request, "deleted", "") orderDir := util.ExtractRequestOptionalString(request, "orderDir", "") orderSize := util.ExtractRequestOptionalString(request, "orderSize", "") orderName := util.ExtractRequestOptionalString(request, "orderName", "") + + puuid := util.ExtractRequestString(request, "puuid") + name := util.ExtractRequestOptionalString(request, "name", "") + dir := util.ExtractRequestOptionalString(request, "dir", "") + deleted := util.ExtractRequestOptionalString(request, "deleted", "") extensionsStr := util.ExtractRequestOptionalString(request, "extensions", "") + //auth by shareUuid. shareUuid := util.ExtractRequestString(request, "shareUuid") shareCode := util.ExtractRequestString(request, "shareCode") shareRootUuid := util.ExtractRequestString(request, "shareRootUuid") - if puuid == "" { - panic(result.BadRequest("puuid cannot be null")) - } - + //validate the puuid. dirMatter := this.matterDao.CheckByUuid(puuid) if !dirMatter.Dir { panic(result.BadRequest("puuid is not a directory")) } + //validate the shareUuid,shareCode,shareRootUuid. user := this.findUser(request) - this.shareService.ValidateMatter(request, shareUuid, shareCode, user, shareRootUuid, dirMatter) puuid = dirMatter.Uuid @@ -421,42 +420,25 @@ func (this *ShareController) SharePage(writer http.ResponseWriter, request *http extensions = strings.Split(extensionsStr, ",") } - sortArray := []builder.OrderPair{ - { - Key: "dir", - Value: orderDir, - }, - { - Key: "create_time", - Value: orderCreateTime, - }, - { - Key: "update_time", - Value: orderUpdateTime, - }, - { - Key: "delete_time", - Value: orderDeleteTime, - }, - { - Key: "sort", - Value: orderSort, - }, - { - Key: "size", - Value: orderSize, - }, - { - Key: "name", - Value: orderName, - }, - { - Key: "times", - Value: orderTimes, - }, - } - - pager := this.matterDao.Page(page, pageSize, puuid, "", dirMatter.SpaceUuid, name, dir, deleted, extensions, sortArray) + pager := this.matterService.Page( + request, + page, + pageSize, + orderCreateTime, + orderUpdateTime, + orderDeleteTime, + orderSort, + orderTimes, + orderDir, + orderSize, + orderName, + puuid, + name, + dir, + deleted, + extensions, + dirMatter.SpaceUuid, + ) return this.Success(pager) }