github.com/EngineerKamesh/gofullstack@v0.0.0-20180609171605-d41341d7d4ee/volume4/section2/gopherface/forms/smpost.go (about)

     1  package forms
     2  
     3  import (
     4  	"github.com/EngineerKamesh/gofullstack/volume4/section2/gopherface/models/socialmedia"
     5  
     6  	"go.isomorphicgo.org/go/isokit"
     7  )
     8  
     9  type SocialMediaPostForm struct {
    10  	isokit.BasicForm
    11  	Moods       map[string]int
    12  	MoodEmoji   map[string]string
    13  	CurrentMood int
    14  	PageTitle   string
    15  }
    16  
    17  var MoodStates map[string]int
    18  var MoodEmoji map[string]string
    19  
    20  func NewSocialMediaPostForm(formParams *isokit.FormParams) *SocialMediaPostForm {
    21  	prefillFields := []string{"caption", "messageBody"}
    22  	fields := make(map[string]string)
    23  	errors := make(map[string]string)
    24  	s := &SocialMediaPostForm{}
    25  	s.SetPrefillFields(prefillFields)
    26  	s.SetFields(fields)
    27  	s.SetErrors(errors)
    28  	s.SetFormParams(formParams)
    29  	s.Moods = MoodStates
    30  	s.MoodEmoji = MoodEmoji
    31  	s.CurrentMood = 0
    32  	return s
    33  }
    34  
    35  func (s *SocialMediaPostForm) Validate() bool {
    36  
    37  	s.RegenerateErrors()
    38  	s.PopulateFields()
    39  
    40  	// Check if the capition field was filled out
    41  	if isokit.FormValue(s.FormParams(), "caption") == "" {
    42  		s.SetError("caption", "The caption field is required.")
    43  	}
    44  
    45  	// Check if the message body was filled out
    46  	if isokit.FormValue(s.FormParams(), "messageBody") == "" {
    47  		s.SetError("messageBody", "You have to fill out the post body field!")
    48  	}
    49  
    50  	if len(s.Errors()) > 0 {
    51  		return false
    52  
    53  	} else {
    54  		return true
    55  	}
    56  }
    57  
    58  func init() {
    59  
    60  	MoodStates = make(map[string]int)
    61  	MoodStates["Neutral"] = int(socialmedia.MoodStateNeutral)
    62  	MoodStates["Happy"] = int(socialmedia.MoodStateHappy)
    63  	MoodStates["Sad"] = int(socialmedia.MoodStateSad)
    64  	MoodStates["Angry"] = int(socialmedia.MoodStateAngry)
    65  	MoodStates["Hopeful"] = int(socialmedia.MoodStateHopeful)
    66  	MoodStates["Thrilled"] = int(socialmedia.MoodStateThrilled)
    67  	MoodStates["Bored"] = int(socialmedia.MoodStateBored)
    68  	MoodStates["Shy"] = int(socialmedia.MoodStateShy)
    69  	MoodStates["Comical"] = int(socialmedia.MoodStateComical)
    70  	MoodStates["On Cloud Nine"] = int(socialmedia.MoodStateOnCloudNine)
    71  
    72  	MoodEmoji = make(map[string]string)
    73  	MoodEmoji["Neutral"] = socialmedia.MoodsEmoji[socialmedia.MoodStateNeutral]
    74  	MoodEmoji["Happy"] = socialmedia.MoodsEmoji[socialmedia.MoodStateHappy]
    75  	MoodEmoji["Sad"] = socialmedia.MoodsEmoji[socialmedia.MoodStateSad]
    76  	MoodEmoji["Angry"] = socialmedia.MoodsEmoji[socialmedia.MoodStateAngry]
    77  	MoodEmoji["Hopeful"] = socialmedia.MoodsEmoji[socialmedia.MoodStateHopeful]
    78  	MoodEmoji["Thrilled"] = socialmedia.MoodsEmoji[socialmedia.MoodStateThrilled]
    79  	MoodEmoji["Bored"] = socialmedia.MoodsEmoji[socialmedia.MoodStateBored]
    80  	MoodEmoji["Shy"] = socialmedia.MoodsEmoji[socialmedia.MoodStateShy]
    81  	MoodEmoji["Comical"] = socialmedia.MoodsEmoji[socialmedia.MoodStateComical]
    82  	MoodEmoji["On Cloud Nine"] = socialmedia.MoodsEmoji[socialmedia.MoodStateOnCloudNine]
    83  
    84  }