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  }