From 8ffb773f43c8dc54801ca1d111854e7e881c93c9 Mon Sep 17 00:00:00 2001 From: Frédéric Guillot Date: Sun, 19 Nov 2017 21:10:04 -0800 Subject: First commit --- model/category.go | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 model/category.go (limited to 'model/category.go') diff --git a/model/category.go b/model/category.go new file mode 100644 index 0000000..76f254f --- /dev/null +++ b/model/category.go @@ -0,0 +1,51 @@ +// Copyright 2017 Frédéric Guillot. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +package model + +import ( + "errors" + "fmt" +) + +type Category struct { + ID int64 `json:"id,omitempty"` + Title string `json:"title,omitempty"` + UserID int64 `json:"user_id,omitempty"` + FeedCount int `json:"nb_feeds,omitempty"` +} + +func (c *Category) String() string { + return fmt.Sprintf("ID=%d, UserID=%d, Title=%s", c.ID, c.UserID, c.Title) +} + +func (c Category) ValidateCategoryCreation() error { + if c.Title == "" { + return errors.New("The title is mandatory") + } + + if c.UserID == 0 { + return errors.New("The userID is mandatory") + } + + return nil +} + +func (c Category) ValidateCategoryModification() error { + if c.Title == "" { + return errors.New("The title is mandatory") + } + + if c.UserID == 0 { + return errors.New("The userID is mandatory") + } + + if c.ID == 0 { + return errors.New("The ID is mandatory") + } + + return nil +} + +type Categories []*Category -- cgit v1.2.3