summaryrefslogtreecommitdiffstats
path: root/model/scheme.go
diff options
context:
space:
mode:
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)