summaryrefslogtreecommitdiffstats
path: root/model/scheme.go
diff options
context:
space:
mode:
authorGeorge Goldberg <george@gberg.me>2018-05-03 14:00:26 +0100
committerMartin Kraft <mkraft@users.noreply.github.com>2018-05-03 09:00:26 -0400
commit60cf74352f13874a7d07c609c03b1c763af19cea (patch)
treee8d670db30d8dd18645de44402554e7d64b278e4 /model/scheme.go
parent7d5e85e4136b0e2e6cf902c48b186d99f0698d13 (diff)
downloadchat-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.go39
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)