diff --git a/crmMeeting.go b/crmMeeting.go index bddfccc..c315d03 100644 --- a/crmMeeting.go +++ b/crmMeeting.go @@ -3,6 +3,7 @@ package main import ( "encoding/json" "fmt" + "net/url" "strings" "time" ) @@ -111,7 +112,7 @@ func (m crmdMeeting) CoverCacheURL() string { func crmGetMeeting(id string) (ret crmdMeeting, err error) { entity, err := crmGetEntity("Meeting", id) - if err != nil { + if err != nil && entity == nil { return } @@ -120,19 +121,67 @@ func crmGetMeeting(id string) (ret crmdMeeting, err error) { } func (m crmdMeeting) StartDate() string { - t, _ := time.Parse(getCrmTimeLayout(), m.DateStart) + t := time.Now().Add(time.Duration(240) * time.Hour) //10days later + if m.DateStart != "" { + t, _ = time.Parse(getCrmTimeLayout(), m.DateStart) + } AEST, _ := time.LoadLocation("Australia/Sydney") return t.In(AEST).Format("02 January, 2006") } func (m crmdMeeting) StartHour() string { - AEST, _ := time.LoadLocation("Australia/Sydney") - t, _ := time.Parse(getCrmTimeLayout(), m.DateStart) - return t.In(AEST).Format("15:04") + if m.DateStart != "" { + AEST, _ := time.LoadLocation("Australia/Sydney") + t, _ := time.Parse(getCrmTimeLayout(), m.DateStart) + return t.In(AEST).Format("15:04") + } + return "10:30" } func (m crmdMeeting) DurationHour() string { - hour := m.Duration / 3600 - minute := (m.Duration % 3600) / 60 - return fmt.Sprintf("%02d:%02d", hour, minute) + if m.Duration > 20 { + hour := m.Duration / 3600 + minute := (m.Duration % 3600) / 60 + return fmt.Sprintf("%02d:%02d", hour, minute) + } + return "01:30" +} + +func (m crmdMeeting) getEditMeetingURL(leadID string) string { + u, _ := url.Parse(GlobalPath.ThisSiteURL + "spa/redirect") + + q := u.Query() + q.Add("url", GlobalPath.ThisSiteURL+"spa/editmeeting") + + if leadID != "" { + q.Add("lid", leadID) + } + + q.Add("meetingid", m.ID) + + u.RawQuery = q.Encode() + return buildSignatureAppend2Url(u.String(), IntraAPIConfig.CRMSecrete) +} + +//meeting status is "submitted" +func (m *crmdMeeting) getMeetingByLead(leadID string) { + filters := []crmdSearchFilter{ + {"parentId", "equals", leadID}, + {"parentType", "equals", "Lead"}, + {"status", "equals", "submitted"}, + } + cs, err := crmSearchEntity("Meeting", filters) + if err != nil && cs.Total < 1 { + return + } + total, list, err := cs.toEntityList("Meeting") + if total < 1 || err != nil || list == nil { + return + } + meetings := list.([]crmdMeeting) + // log.Println(meetings) + // log.Println(len(meetings)) + *m = meetings[0] + // log.Println(*m) + // log.Println(m.ID) }