github.com/EngineerKamesh/gofullstack@v0.0.0-20180609171605-d41341d7d4ee/volume3/section5/gopherface/forms/smpost.go (about) 1 package forms 2 3 import ( 4 "github.com/EngineerKamesh/gofullstack/volume3/section5/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 }