code.vegaprotocol.io/vega@v0.79.0/commands/update_referral_set.go (about)

     1  // Copyright (C) 2023 Gobalsky Labs Limited
     2  //
     3  // This program is free software: you can redistribute it and/or modify
     4  // it under the terms of the GNU Affero General Public License as
     5  // published by the Free Software Foundation, either version 3 of the
     6  // License, or (at your option) any later version.
     7  //
     8  // This program is distributed in the hope that it will be useful,
     9  // but WITHOUT ANY WARRANTY; without even the implied warranty of
    10  // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    11  // GNU Affero General Public License for more details.
    12  //
    13  // You should have received a copy of the GNU Affero General Public License
    14  // along with this program.  If not, see <http://www.gnu.org/licenses/>.
    15  
    16  package commands
    17  
    18  import commandspb "code.vegaprotocol.io/vega/protos/vega/commands/v1"
    19  
    20  func CheckUpdateReferralSet(cmd *commandspb.UpdateReferralSet) error {
    21  	return checkUpdateReferralSet(cmd).ErrorOrNil()
    22  }
    23  
    24  func checkUpdateReferralSet(cmd *commandspb.UpdateReferralSet) Errors {
    25  	errs := NewErrors()
    26  
    27  	if cmd == nil {
    28  		return errs.FinalAddForProperty("update_team", ErrIsRequired)
    29  	}
    30  
    31  	if !IsVegaID(cmd.Id) {
    32  		errs.AddForProperty("update_referral_set.id", ErrShouldBeAValidVegaID)
    33  	}
    34  
    35  	if cmd.IsTeam {
    36  		if cmd.Team == nil {
    37  			return errs.FinalAddForProperty("update_referral_set.team", ErrIsRequired)
    38  		}
    39  
    40  		// now the only one which needs validation again is the name, as it's not allowed to be set to ""
    41  		if cmd.Team.Name != nil {
    42  			if len(*cmd.Team.Name) <= 0 {
    43  				errs.AddForProperty("update_referral_set.team.name", ErrIsRequired)
    44  			} else if len(*cmd.Team.Name) > 100 {
    45  				errs.AddForProperty("update_referral_set.team.name", ErrMustBeLessThan100Chars)
    46  			}
    47  		}
    48  
    49  		if cmd.Team.AvatarUrl != nil && len(*cmd.Team.AvatarUrl) > 200 {
    50  			errs.AddForProperty("update_referral_set.team.avatar_url", ErrMustBeLessThan200Chars)
    51  		}
    52  
    53  		if cmd.Team.TeamUrl != nil && len(*cmd.Team.TeamUrl) > 200 {
    54  			errs.AddForProperty("update_referral_set.team.team_url", ErrMustBeLessThan200Chars)
    55  		}
    56  
    57  		if cmd.Team.Closed == nil && len(cmd.Team.AllowList) > 0 {
    58  			errs.AddForProperty("update_referral_set.team.allow_list", ErrSettingAllowListRequireSettingClosedState)
    59  		}
    60  
    61  		if cmd.Team.Closed != nil && !*cmd.Team.Closed && len(cmd.Team.AllowList) > 0 {
    62  			errs.AddForProperty("update_referral_set.team.allow_list", ErrCannotSetAllowListWhenTeamIsOpened)
    63  		}
    64  	}
    65  
    66  	return errs
    67  }