2020-08-09 22:29:54 +00:00
|
|
|
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
|
|
|
// See LICENSE.txt for license information.
|
2017-08-16 21:37:37 +00:00
|
|
|
|
|
|
|
package model
|
|
|
|
|
|
|
|
import (
|
|
|
|
"encoding/json"
|
|
|
|
"io"
|
|
|
|
)
|
|
|
|
|
|
|
|
type TeamSearch struct {
|
2021-10-16 22:47:22 +00:00
|
|
|
Term string `json:"term"`
|
|
|
|
Page *int `json:"page,omitempty"`
|
|
|
|
PerPage *int `json:"per_page,omitempty"`
|
|
|
|
AllowOpenInvite *bool `json:"allow_open_invite,omitempty"`
|
|
|
|
GroupConstrained *bool `json:"group_constrained,omitempty"`
|
|
|
|
IncludeGroupConstrained *bool `json:"include_group_constrained,omitempty"`
|
|
|
|
PolicyID *string `json:"policy_id,omitempty"`
|
|
|
|
ExcludePolicyConstrained *bool `json:"exclude_policy_constrained,omitempty"`
|
|
|
|
IncludePolicyID *bool `json:"-"`
|
|
|
|
IncludeDeleted *bool `json:"-"`
|
|
|
|
TeamType *string `json:"-"`
|
2020-08-09 22:29:54 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
func (t *TeamSearch) IsPaginated() bool {
|
|
|
|
return t.Page != nil && t.PerPage != nil
|
2017-08-16 21:37:37 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// ToJson convert a TeamSearch to json string
|
2020-08-09 22:29:54 +00:00
|
|
|
func (t *TeamSearch) ToJson() string {
|
|
|
|
b, err := json.Marshal(t)
|
2017-08-16 21:37:37 +00:00
|
|
|
if err != nil {
|
|
|
|
return ""
|
|
|
|
}
|
|
|
|
|
|
|
|
return string(b)
|
|
|
|
}
|
|
|
|
|
|
|
|
// TeamSearchFromJson decodes the input and returns a TeamSearch
|
|
|
|
func TeamSearchFromJson(data io.Reader) *TeamSearch {
|
|
|
|
decoder := json.NewDecoder(data)
|
|
|
|
var cs TeamSearch
|
|
|
|
err := decoder.Decode(&cs)
|
|
|
|
if err == nil {
|
|
|
|
return &cs
|
|
|
|
}
|
|
|
|
|
|
|
|
return nil
|
|
|
|
}
|