github.com/dirkm/go-swagger@v0.19.0/examples/task-tracker/models/user_card.go (about)

     1  // Code generated by go-swagger; DO NOT EDIT.
     2  
     3  package models
     4  
     5  // This file was generated by the swagger tool.
     6  // Editing this file might prove futile when you re-run the swagger generate command
     7  
     8  import (
     9  	strfmt "github.com/go-openapi/strfmt"
    10  
    11  	"github.com/go-openapi/errors"
    12  	"github.com/go-openapi/swag"
    13  	"github.com/go-openapi/validate"
    14  )
    15  
    16  // UserCard A minimal representation of a user.
    17  //
    18  // This representation of a user is mainly meant for inclusion in other models, or for list views.
    19  //
    20  // swagger:model UserCard
    21  type UserCard struct {
    22  
    23  	// When true this user is an admin.
    24  	//
    25  	// Only employees of the owning company can be admins.
    26  	// Admins are like project owners but have access to all the projects in the application.
    27  	// There aren't many admins, and it's only used for extremly critical issues with the application.
    28  	//
    29  	// Read Only: true
    30  	Admin *bool `json:"admin,omitempty"`
    31  
    32  	// The amount of karma this user has available.
    33  	//
    34  	// In this application users get a cerain amount of karma alotted.
    35  	// This karma can be donated to other users to show appreciation, or it can be used
    36  	// by a user to vote on issues.
    37  	// Once an issue is closed or rejected, the user gets his karma back.
    38  	//
    39  	// Read Only: true
    40  	// Maximum: < 1000
    41  	AvailableKarma float64 `json:"availableKarma,omitempty"`
    42  
    43  	// A unique identifier for a user.
    44  	//
    45  	// This id is automatically generated on the server when a user is created.
    46  	//
    47  	// Required: true
    48  	// Read Only: true
    49  	ID int64 `json:"id"`
    50  
    51  	// The screen name for the user.
    52  	//
    53  	// This is used for vanity type urls as well as login credentials.
    54  	//
    55  	// Required: true
    56  	// Max Length: 255
    57  	// Min Length: 3
    58  	// Pattern: \w[\w_-]+
    59  	ScreenName *string `json:"screenName"`
    60  }
    61  
    62  // Validate validates this user card
    63  func (m *UserCard) Validate(formats strfmt.Registry) error {
    64  	var res []error
    65  
    66  	if err := m.validateAvailableKarma(formats); err != nil {
    67  		res = append(res, err)
    68  	}
    69  
    70  	if err := m.validateID(formats); err != nil {
    71  		res = append(res, err)
    72  	}
    73  
    74  	if err := m.validateScreenName(formats); err != nil {
    75  		res = append(res, err)
    76  	}
    77  
    78  	if len(res) > 0 {
    79  		return errors.CompositeValidationError(res...)
    80  	}
    81  	return nil
    82  }
    83  
    84  func (m *UserCard) validateAvailableKarma(formats strfmt.Registry) error {
    85  
    86  	if swag.IsZero(m.AvailableKarma) { // not required
    87  		return nil
    88  	}
    89  
    90  	if err := validate.Maximum("availableKarma", "body", float64(m.AvailableKarma), 1000, true); err != nil {
    91  		return err
    92  	}
    93  
    94  	return nil
    95  }
    96  
    97  func (m *UserCard) validateID(formats strfmt.Registry) error {
    98  
    99  	if err := validate.Required("id", "body", int64(m.ID)); err != nil {
   100  		return err
   101  	}
   102  
   103  	return nil
   104  }
   105  
   106  func (m *UserCard) validateScreenName(formats strfmt.Registry) error {
   107  
   108  	if err := validate.Required("screenName", "body", m.ScreenName); err != nil {
   109  		return err
   110  	}
   111  
   112  	if err := validate.MinLength("screenName", "body", string(*m.ScreenName), 3); err != nil {
   113  		return err
   114  	}
   115  
   116  	if err := validate.MaxLength("screenName", "body", string(*m.ScreenName), 255); err != nil {
   117  		return err
   118  	}
   119  
   120  	if err := validate.Pattern("screenName", "body", string(*m.ScreenName), `\w[\w_-]+`); err != nil {
   121  		return err
   122  	}
   123  
   124  	return nil
   125  }
   126  
   127  // MarshalBinary interface implementation
   128  func (m *UserCard) MarshalBinary() ([]byte, error) {
   129  	if m == nil {
   130  		return nil, nil
   131  	}
   132  	return swag.WriteJSON(m)
   133  }
   134  
   135  // UnmarshalBinary interface implementation
   136  func (m *UserCard) UnmarshalBinary(b []byte) error {
   137  	var res UserCard
   138  	if err := swag.ReadJSON(b, &res); err != nil {
   139  		return err
   140  	}
   141  	*m = res
   142  	return nil
   143  }