MM-17912: Allow searching for files through plugin API (#13647)
* constants and options for getting files * Method to get files with options * Add i18n strings for en * Add API methods for getting files with options * gofmt -s file * explicitly set create at in tests * use greater than nanosecond time difference for tests * use gte instead of gt for getting files by created time * use created at time as default sort order for getting file infos * use explicit inline strings instead of format strings * join tables only when required * use if as secondary sort, and update tests * update field docs to reflect previous changes * make page and perPage get options as required * add json struct tags to GetFileOptions * bump minimum server versioni * remove sorting by username and channelname * use bool for sort order type * use FileInfo prefix instead of just File * clearer comments * use zero-based page numbering * test filtering by user and channel * remove unnecessary whitespace * use int instead of uint for page and perPage arguments Co-authored-by: mattermod <mattermod@users.noreply.github.com>
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
ed52acd89c
Коммит
3fc5287f6b
@@ -3320,6 +3320,37 @@ func (s *apiRPCServer) GetFileInfo(args *Z_GetFileInfoArgs, returns *Z_GetFileIn
|
||||
return nil
|
||||
}
|
||||
|
||||
type Z_GetFileInfosArgs struct {
|
||||
A int
|
||||
B int
|
||||
C *model.GetFileInfosOptions
|
||||
}
|
||||
|
||||
type Z_GetFileInfosReturns struct {
|
||||
A []*model.FileInfo
|
||||
B *model.AppError
|
||||
}
|
||||
|
||||
func (g *apiRPCClient) GetFileInfos(page, perPage int, opt *model.GetFileInfosOptions) ([]*model.FileInfo, *model.AppError) {
|
||||
_args := &Z_GetFileInfosArgs{page, perPage, opt}
|
||||
_returns := &Z_GetFileInfosReturns{}
|
||||
if err := g.client.Call("Plugin.GetFileInfos", _args, _returns); err != nil {
|
||||
log.Printf("RPC call to GetFileInfos API failed: %s", err.Error())
|
||||
}
|
||||
return _returns.A, _returns.B
|
||||
}
|
||||
|
||||
func (s *apiRPCServer) GetFileInfos(args *Z_GetFileInfosArgs, returns *Z_GetFileInfosReturns) error {
|
||||
if hook, ok := s.impl.(interface {
|
||||
GetFileInfos(page, perPage int, opt *model.GetFileInfosOptions) ([]*model.FileInfo, *model.AppError)
|
||||
}); ok {
|
||||
returns.A, returns.B = hook.GetFileInfos(args.A, args.B, args.C)
|
||||
} else {
|
||||
return encodableError(fmt.Errorf("API GetFileInfos called but not implemented."))
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type Z_GetFileArgs struct {
|
||||
A string
|
||||
}
|
||||
|
||||
Ссылка в новой задаче
Block a user