github.com/turgay/mattermost-server@v5.3.2-0.20181002173352-2945e8a2b0ce+incompatible/api4/service_terms.go (about) 1 // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. 2 // See License.txt for license information. 3 4 package api4 5 6 import ( 7 "github.com/mattermost/mattermost-server/app" 8 "github.com/mattermost/mattermost-server/model" 9 "net/http" 10 ) 11 12 func (api *API) InitServiceTerms() { 13 api.BaseRoutes.ServiceTerms.Handle("", api.ApiSessionRequired(getServiceTerms)).Methods("GET") 14 api.BaseRoutes.ServiceTerms.Handle("", api.ApiSessionRequired(createServiceTerms)).Methods("POST") 15 } 16 17 func getServiceTerms(c *Context, w http.ResponseWriter, r *http.Request) { 18 serviceTerms, err := c.App.GetLatestServiceTerms() 19 if err != nil { 20 c.Err = err 21 return 22 } 23 24 w.Write([]byte(serviceTerms.ToJson())) 25 } 26 27 func createServiceTerms(c *Context, w http.ResponseWriter, r *http.Request) { 28 if license := c.App.License(); license == nil || !*license.Features.CustomTermsOfService { 29 c.Err = model.NewAppError("createServiceTerms", "api.create_service_terms.custom_service_terms_disabled.app_error", nil, "", http.StatusBadRequest) 30 return 31 } 32 33 props := model.MapFromJson(r.Body) 34 text := props["text"] 35 userId := c.Session.UserId 36 37 if text == "" { 38 c.Err = model.NewAppError("Config.IsValid", "api.create_service_terms.empty_text.app_error", nil, "", http.StatusBadRequest) 39 return 40 } 41 42 oldServiceTerms, err := c.App.GetLatestServiceTerms() 43 if err != nil && err.Id != app.ERROR_SERVICE_TERMS_NO_ROWS_FOUND { 44 c.Err = err 45 return 46 } 47 48 if oldServiceTerms == nil || oldServiceTerms.Text != text { 49 serviceTerms, err := c.App.CreateServiceTerms(text, userId) 50 if err != nil { 51 c.Err = err 52 return 53 } 54 55 w.Write([]byte(serviceTerms.ToJson())) 56 } else { 57 w.Write([]byte(oldServiceTerms.ToJson())) 58 } 59 }