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>
Этот коммит содержится в:
Ashish Bhate
2020-02-15 01:51:54 +05:30
коммит произвёл GitHub
родитель ed52acd89c
Коммит 3fc5287f6b
12 изменённых файлов: 418 добавлений и 0 удалений

Просмотреть файл

@@ -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
}