github.com/cryptomisa/mattermost-server@v5.11.1+incompatible/model/user_terms_of_service.go (about)

     1  // Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
     2  // See License.txt for license information.
     3  
     4  package model
     5  
     6  import (
     7  	"encoding/json"
     8  	"fmt"
     9  	"io"
    10  	"net/http"
    11  )
    12  
    13  type UserTermsOfService struct {
    14  	UserId           string `json:"user_id"`
    15  	TermsOfServiceId string `json:"terms_of_service_id"`
    16  	CreateAt         int64  `json:"create_at"`
    17  }
    18  
    19  func (ut *UserTermsOfService) IsValid() *AppError {
    20  	if len(ut.UserId) != 26 {
    21  		return InvalidUserTermsOfServiceError("user_id", ut.UserId)
    22  	}
    23  
    24  	if len(ut.TermsOfServiceId) != 26 {
    25  		return InvalidUserTermsOfServiceError("terms_of_service_id", ut.UserId)
    26  	}
    27  
    28  	if ut.CreateAt == 0 {
    29  		return InvalidUserTermsOfServiceError("create_at", ut.UserId)
    30  	}
    31  
    32  	return nil
    33  }
    34  
    35  func (ut *UserTermsOfService) ToJson() string {
    36  	b, _ := json.Marshal(ut)
    37  	return string(b)
    38  }
    39  
    40  func (ut *UserTermsOfService) PreSave() {
    41  	if ut.UserId == "" {
    42  		ut.UserId = NewId()
    43  	}
    44  
    45  	ut.CreateAt = GetMillis()
    46  }
    47  
    48  func UserTermsOfServiceFromJson(data io.Reader) *UserTermsOfService {
    49  	var userTermsOfService *UserTermsOfService
    50  	json.NewDecoder(data).Decode(&userTermsOfService)
    51  	return userTermsOfService
    52  }
    53  
    54  func InvalidUserTermsOfServiceError(fieldName string, userTermsOfServiceId string) *AppError {
    55  	id := fmt.Sprintf("model.user_terms_of_service.is_valid.%s.app_error", fieldName)
    56  	details := ""
    57  	if userTermsOfServiceId != "" {
    58  		details = "user_terms_of_service_user_id=" + userTermsOfServiceId
    59  	}
    60  	return NewAppError("UserTermsOfService.IsValid", id, nil, details, http.StatusBadRequest)
    61  }