github.com/haalcala/mattermost-server-change-repo/v5@v5.33.2/app/terms_of_service.go (about) 1 // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. 2 // See LICENSE.txt for license information. 3 4 package app 5 6 import ( 7 "errors" 8 "net/http" 9 10 "github.com/mattermost/mattermost-server/v5/model" 11 "github.com/mattermost/mattermost-server/v5/store" 12 ) 13 14 func (a *App) CreateTermsOfService(text, userID string) (*model.TermsOfService, *model.AppError) { 15 termsOfService := &model.TermsOfService{ 16 Text: text, 17 UserId: userID, 18 } 19 20 if _, appErr := a.GetUser(userID); appErr != nil { 21 return nil, appErr 22 } 23 24 var err error 25 if termsOfService, err = a.Srv().Store.TermsOfService().Save(termsOfService); err != nil { 26 var invErr *store.ErrInvalidInput 27 var appErr *model.AppError 28 switch { 29 case errors.As(err, &invErr): 30 return nil, model.NewAppError("CreateTermsOfService", "app.terms_of_service.create.existing.app_error", nil, "id="+termsOfService.Id, http.StatusBadRequest) 31 case errors.As(err, &appErr): 32 return nil, appErr 33 default: 34 return nil, model.NewAppError("CreateTermsOfService", "app.terms_of_service.create.app_error", nil, "terms_of_service_id="+termsOfService.Id+",err="+err.Error(), http.StatusInternalServerError) 35 } 36 } 37 38 return termsOfService, nil 39 } 40 41 func (a *App) GetLatestTermsOfService() (*model.TermsOfService, *model.AppError) { 42 termsOfService, err := a.Srv().Store.TermsOfService().GetLatest(true) 43 if err != nil { 44 var nfErr *store.ErrNotFound 45 switch { 46 case errors.As(err, &nfErr): 47 return nil, model.NewAppError("GetLatestTermsOfService", "app.terms_of_service.get.no_rows.app_error", nil, "err="+err.Error(), http.StatusNotFound) 48 default: 49 return nil, model.NewAppError("GetLatestTermsOfService", "app.terms_of_service.get.app_error", nil, "err="+err.Error(), http.StatusInternalServerError) 50 } 51 } 52 return termsOfService, nil 53 } 54 55 func (a *App) GetTermsOfService(id string) (*model.TermsOfService, *model.AppError) { 56 termsOfService, err := a.Srv().Store.TermsOfService().Get(id, true) 57 if err != nil { 58 var nfErr *store.ErrNotFound 59 switch { 60 case errors.As(err, &nfErr): 61 return nil, model.NewAppError("GetTermsOfService", "app.terms_of_service.get.no_rows.app_error", nil, "", http.StatusNotFound) 62 default: 63 return nil, model.NewAppError("GetTermsOfService", "app.terms_of_service.get.app_error", nil, "err="+err.Error(), http.StatusInternalServerError) 64 } 65 } 66 return termsOfService, nil 67 }