diff options
author | George Goldberg <george@gberg.me> | 2018-05-03 14:00:26 +0100 |
---|---|---|
committer | Martin Kraft <mkraft@users.noreply.github.com> | 2018-05-03 09:00:26 -0400 |
commit | 60cf74352f13874a7d07c609c03b1c763af19cea (patch) | |
tree | e8d670db30d8dd18645de44402554e7d64b278e4 /model/scheme.go | |
parent | 7d5e85e4136b0e2e6cf902c48b186d99f0698d13 (diff) | |
download | chat-60cf74352f13874a7d07c609c03b1c763af19cea.tar.gz chat-60cf74352f13874a7d07c609c03b1c763af19cea.tar.bz2 chat-60cf74352f13874a7d07c609c03b1c763af19cea.zip |
MM-10140: API Implementation for Schemes related Endpoints (#8615)
* Implement basic scheme CRUD endpoints.
* Get All Schemes (Paged) Endpoint and store plumbing.
* Add get teams/channels for schemes.
* Fix unit tests.
* Review fixes.
* More review fixes.
Diffstat (limited to 'model/scheme.go')
-rw-r--r-- | model/scheme.go | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/model/scheme.go b/model/scheme.go index c3ae7f15d..f949d9122 100644 --- a/model/scheme.go +++ b/model/scheme.go @@ -29,6 +29,11 @@ type Scheme struct { DefaultChannelUserRole string `json:"default_channel_user_role"` } +type SchemePatch struct { + Name *string `json:"name"` + Description *string `json:"description"` +} + type SchemeIDPatch struct { SchemeID *string `json:"scheme_id"` } @@ -44,6 +49,20 @@ func SchemeFromJson(data io.Reader) *Scheme { return scheme } +func SchemesToJson(schemes []*Scheme) string { + b, _ := json.Marshal(schemes) + return string(b) +} + +func SchemesFromJson(data io.Reader) []*Scheme { + var schemes []*Scheme + if err := json.NewDecoder(data).Decode(&schemes); err == nil { + return schemes + } else { + return nil + } +} + func (scheme *Scheme) IsValid() bool { if len(scheme.Id) != 26 { return false @@ -98,6 +117,26 @@ func (scheme *Scheme) IsValidForCreate() bool { return true } +func (scheme *Scheme) Patch(patch *SchemePatch) { + if patch.Name != nil { + scheme.Name = *patch.Name + } + if patch.Description != nil { + scheme.Description = *patch.Description + } +} + +func (patch *SchemePatch) ToJson() string { + b, _ := json.Marshal(patch) + return string(b) +} + +func SchemePatchFromJson(data io.Reader) *SchemePatch { + var patch *SchemePatch + json.NewDecoder(data).Decode(&patch) + return patch +} + func SchemeIDFromJson(data io.Reader) *string { var p *SchemeIDPatch json.NewDecoder(data).Decode(&p) |