github.com/dirkm/go-swagger@v0.19.0/examples/task-tracker/models/task_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  	"encoding/json"
    10  	"strconv"
    11  
    12  	strfmt "github.com/go-openapi/strfmt"
    13  
    14  	"github.com/go-openapi/errors"
    15  	"github.com/go-openapi/swag"
    16  	"github.com/go-openapi/validate"
    17  )
    18  
    19  // TaskCard a card for a task
    20  //
    21  // A task card is a minimalistic representation of a task. Useful for display in list views, like a card list.
    22  //
    23  // swagger:model TaskCard
    24  type TaskCard struct {
    25  
    26  	// assigned to
    27  	AssignedTo *UserCard `json:"assignedTo,omitempty"`
    28  
    29  	// The description of the task.
    30  	//
    31  	// The task description is a longer, more detailed description of the issue.
    32  	// Perhaps it even mentions steps to reproduce.
    33  	//
    34  	Description string `json:"description,omitempty"`
    35  
    36  	// the level of effort required to get this task completed
    37  	// Maximum: 27
    38  	// Multiple Of: 3
    39  	Effort int32 `json:"effort,omitempty"`
    40  
    41  	// The id of the task.
    42  	//
    43  	// A unique identifier for the task. These are created in ascending order.
    44  	// Read Only: true
    45  	ID int64 `json:"id,omitempty"`
    46  
    47  	// the karma donated to this item.
    48  	//
    49  	// Karma is a lot like voting.  Users can donate a certain amount or karma to an issue.
    50  	// This is used to determine the weight users place on an issue. Not that +1 comments aren't great.
    51  	//
    52  	// Minimum: > 0
    53  	// Multiple Of: 0.5
    54  	Karma float64 `json:"karma,omitempty"`
    55  
    56  	// milestone
    57  	Milestone *Milestone `json:"milestone,omitempty"`
    58  
    59  	// The time at which this issue was reported.
    60  	//
    61  	// This field is read-only, so it's only sent as part of the response.
    62  	//
    63  	// Read Only: true
    64  	// Format: date-time
    65  	ReportedAt strfmt.DateTime `json:"reportedAt,omitempty"`
    66  
    67  	// severity
    68  	// Maximum: 5
    69  	// Minimum: 1
    70  	Severity int32 `json:"severity,omitempty"`
    71  
    72  	// the status of the issue
    73  	//
    74  	// There are 4 possible values for a status.
    75  	// Ignored means as much as accepted but not now, perhaps later.
    76  	//
    77  	// Required: true
    78  	// Enum: [open closed ignored rejected]
    79  	Status *string `json:"status"`
    80  
    81  	// task tags.
    82  	//
    83  	// a task can be tagged with text blurbs.
    84  	// Max Items: 5
    85  	// Unique: true
    86  	Tags []string `json:"tags"`
    87  
    88  	// The title of the task.
    89  	//
    90  	// The title for a task, this needs to be at least 5 chars long.
    91  	// Titles don't allow any formatting, besides emoji.
    92  	//
    93  	// Required: true
    94  	// Max Length: 150
    95  	// Min Length: 5
    96  	Title *string `json:"title"`
    97  }
    98  
    99  // Validate validates this task card
   100  func (m *TaskCard) Validate(formats strfmt.Registry) error {
   101  	var res []error
   102  
   103  	if err := m.validateAssignedTo(formats); err != nil {
   104  		res = append(res, err)
   105  	}
   106  
   107  	if err := m.validateEffort(formats); err != nil {
   108  		res = append(res, err)
   109  	}
   110  
   111  	if err := m.validateKarma(formats); err != nil {
   112  		res = append(res, err)
   113  	}
   114  
   115  	if err := m.validateMilestone(formats); err != nil {
   116  		res = append(res, err)
   117  	}
   118  
   119  	if err := m.validateReportedAt(formats); err != nil {
   120  		res = append(res, err)
   121  	}
   122  
   123  	if err := m.validateSeverity(formats); err != nil {
   124  		res = append(res, err)
   125  	}
   126  
   127  	if err := m.validateStatus(formats); err != nil {
   128  		res = append(res, err)
   129  	}
   130  
   131  	if err := m.validateTags(formats); err != nil {
   132  		res = append(res, err)
   133  	}
   134  
   135  	if err := m.validateTitle(formats); err != nil {
   136  		res = append(res, err)
   137  	}
   138  
   139  	if len(res) > 0 {
   140  		return errors.CompositeValidationError(res...)
   141  	}
   142  	return nil
   143  }
   144  
   145  func (m *TaskCard) validateAssignedTo(formats strfmt.Registry) error {
   146  
   147  	if swag.IsZero(m.AssignedTo) { // not required
   148  		return nil
   149  	}
   150  
   151  	if m.AssignedTo != nil {
   152  		if err := m.AssignedTo.Validate(formats); err != nil {
   153  			if ve, ok := err.(*errors.Validation); ok {
   154  				return ve.ValidateName("assignedTo")
   155  			}
   156  			return err
   157  		}
   158  	}
   159  
   160  	return nil
   161  }
   162  
   163  func (m *TaskCard) validateEffort(formats strfmt.Registry) error {
   164  
   165  	if swag.IsZero(m.Effort) { // not required
   166  		return nil
   167  	}
   168  
   169  	if err := validate.MaximumInt("effort", "body", int64(m.Effort), 27, false); err != nil {
   170  		return err
   171  	}
   172  
   173  	if err := validate.MultipleOf("effort", "body", float64(m.Effort), 3); err != nil {
   174  		return err
   175  	}
   176  
   177  	return nil
   178  }
   179  
   180  func (m *TaskCard) validateKarma(formats strfmt.Registry) error {
   181  
   182  	if swag.IsZero(m.Karma) { // not required
   183  		return nil
   184  	}
   185  
   186  	if err := validate.Minimum("karma", "body", float64(m.Karma), 0, true); err != nil {
   187  		return err
   188  	}
   189  
   190  	if err := validate.MultipleOf("karma", "body", float64(m.Karma), 0.5); err != nil {
   191  		return err
   192  	}
   193  
   194  	return nil
   195  }
   196  
   197  func (m *TaskCard) validateMilestone(formats strfmt.Registry) error {
   198  
   199  	if swag.IsZero(m.Milestone) { // not required
   200  		return nil
   201  	}
   202  
   203  	if m.Milestone != nil {
   204  		if err := m.Milestone.Validate(formats); err != nil {
   205  			if ve, ok := err.(*errors.Validation); ok {
   206  				return ve.ValidateName("milestone")
   207  			}
   208  			return err
   209  		}
   210  	}
   211  
   212  	return nil
   213  }
   214  
   215  func (m *TaskCard) validateReportedAt(formats strfmt.Registry) error {
   216  
   217  	if swag.IsZero(m.ReportedAt) { // not required
   218  		return nil
   219  	}
   220  
   221  	if err := validate.FormatOf("reportedAt", "body", "date-time", m.ReportedAt.String(), formats); err != nil {
   222  		return err
   223  	}
   224  
   225  	return nil
   226  }
   227  
   228  func (m *TaskCard) validateSeverity(formats strfmt.Registry) error {
   229  
   230  	if swag.IsZero(m.Severity) { // not required
   231  		return nil
   232  	}
   233  
   234  	if err := validate.MinimumInt("severity", "body", int64(m.Severity), 1, false); err != nil {
   235  		return err
   236  	}
   237  
   238  	if err := validate.MaximumInt("severity", "body", int64(m.Severity), 5, false); err != nil {
   239  		return err
   240  	}
   241  
   242  	return nil
   243  }
   244  
   245  var taskCardTypeStatusPropEnum []interface{}
   246  
   247  func init() {
   248  	var res []string
   249  	if err := json.Unmarshal([]byte(`["open","closed","ignored","rejected"]`), &res); err != nil {
   250  		panic(err)
   251  	}
   252  	for _, v := range res {
   253  		taskCardTypeStatusPropEnum = append(taskCardTypeStatusPropEnum, v)
   254  	}
   255  }
   256  
   257  const (
   258  
   259  	// TaskCardStatusOpen captures enum value "open"
   260  	TaskCardStatusOpen string = "open"
   261  
   262  	// TaskCardStatusClosed captures enum value "closed"
   263  	TaskCardStatusClosed string = "closed"
   264  
   265  	// TaskCardStatusIgnored captures enum value "ignored"
   266  	TaskCardStatusIgnored string = "ignored"
   267  
   268  	// TaskCardStatusRejected captures enum value "rejected"
   269  	TaskCardStatusRejected string = "rejected"
   270  )
   271  
   272  // prop value enum
   273  func (m *TaskCard) validateStatusEnum(path, location string, value string) error {
   274  	if err := validate.Enum(path, location, value, taskCardTypeStatusPropEnum); err != nil {
   275  		return err
   276  	}
   277  	return nil
   278  }
   279  
   280  func (m *TaskCard) validateStatus(formats strfmt.Registry) error {
   281  
   282  	if err := validate.Required("status", "body", m.Status); err != nil {
   283  		return err
   284  	}
   285  
   286  	// value enum
   287  	if err := m.validateStatusEnum("status", "body", *m.Status); err != nil {
   288  		return err
   289  	}
   290  
   291  	return nil
   292  }
   293  
   294  func (m *TaskCard) validateTags(formats strfmt.Registry) error {
   295  
   296  	if swag.IsZero(m.Tags) { // not required
   297  		return nil
   298  	}
   299  
   300  	iTagsSize := int64(len(m.Tags))
   301  
   302  	if err := validate.MaxItems("tags", "body", iTagsSize, 5); err != nil {
   303  		return err
   304  	}
   305  
   306  	if err := validate.UniqueItems("tags", "body", m.Tags); err != nil {
   307  		return err
   308  	}
   309  
   310  	for i := 0; i < len(m.Tags); i++ {
   311  
   312  		if err := validate.MinLength("tags"+"."+strconv.Itoa(i), "body", string(m.Tags[i]), 3); err != nil {
   313  			return err
   314  		}
   315  
   316  		if err := validate.Pattern("tags"+"."+strconv.Itoa(i), "body", string(m.Tags[i]), `\w[\w- ]+`); err != nil {
   317  			return err
   318  		}
   319  
   320  	}
   321  
   322  	return nil
   323  }
   324  
   325  func (m *TaskCard) validateTitle(formats strfmt.Registry) error {
   326  
   327  	if err := validate.Required("title", "body", m.Title); err != nil {
   328  		return err
   329  	}
   330  
   331  	if err := validate.MinLength("title", "body", string(*m.Title), 5); err != nil {
   332  		return err
   333  	}
   334  
   335  	if err := validate.MaxLength("title", "body", string(*m.Title), 150); err != nil {
   336  		return err
   337  	}
   338  
   339  	return nil
   340  }
   341  
   342  // MarshalBinary interface implementation
   343  func (m *TaskCard) MarshalBinary() ([]byte, error) {
   344  	if m == nil {
   345  		return nil, nil
   346  	}
   347  	return swag.WriteJSON(m)
   348  }
   349  
   350  // UnmarshalBinary interface implementation
   351  func (m *TaskCard) UnmarshalBinary(b []byte) error {
   352  	var res TaskCard
   353  	if err := swag.ReadJSON(b, &res); err != nil {
   354  		return err
   355  	}
   356  	*m = res
   357  	return nil
   358  }