package main import ( "encoding/json" ) type crmdMeetingAttendance struct { Status string `json:"status,omitempty"` } type crmdMeeting struct { crmdEntityBase Status string `json:"status,omitempty"` DateStart string `json:"dateStart,omitempty"` DateEnd string `json:"dateEnd,omitempty"` Duration int `json:"duration,omitempty"` Reminders []struct { Seconds int `json:"seconds,omitempty"` Type string `json:"type,omitempty"` } `json:"reminders,omitempty"` Venue string `json:"venue,omitempty"` ParentID string `json:"parentId,omitempty"` ParentType string `json:"parentType,omitempty"` ParentName string `json:"parentName,omitempty"` AccountID string `json:"accountId,omitempty"` AccountName string `json:"accountName,omitempty"` //users, attendance UsersIds []string `json:"usersIds,omitempty"` UsersNames map[string]string `json:"usersNames,omitempty"` UsersColumns map[string]crmdMeetingAttendance `json:"usersColumns"` //contacts, attendance ContactsIds []string `json:"contactsIds,omitempty"` ContactsNames map[string]string `json:"contactsNames,omitempty"` ContactsColumns map[string]crmdMeetingAttendance `json:"contactsColumns,omitempty"` //lead, attendance LeadsIds []string `json:"leadsIds,omitempty"` LeadsNames map[string]string `json:"leadsNames,omitempty"` LeadsColumns map[string]crmdMeetingAttendance `json:"leadsColumns"` //cover CoverID string `json:"coverId,omitempty"` CoverName string `json:"coverName,omitempty"` //for web spa operation spaErrMsg string } func (m crmdMeeting) save() (newMeeting crmdMeeting, err error) { jsonB, err := json.Marshal(m) if err != nil { return } if m.ID == "" { //create entity, e := crmCreateEntity("Meeting", jsonB) if e != nil { err = e return } newMeeting = entity.(crmdMeeting) } else { //patch entity, e := crmUpdateEntity("Meeting", m.ID, jsonB) if e != nil { err = e return } newMeeting = entity.(crmdMeeting) } return } func (m *crmdMeeting) setSpaErr(e string) { m.spaErrMsg = e } func (m crmdMeeting) ErrorMessage() string { return m.spaErrMsg }