BREAKING - assignTicketToMember now returns if action was taken
This commit is contained in:
parent
c539729232
commit
2f10dcd9fc
@ -693,23 +693,23 @@ func (cw *Site) AssignTicketToTeam(ticketID, teamID int) (*Ticket, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//AssignTicketToMember will create a new schedule entry for the member and specify the ticket as the object
|
//AssignTicketToMember will create a new schedule entry for the member and specify the ticket as the object
|
||||||
func (cw *Site) AssignTicketToMember(ticketID, memberID int) (*ScheduleEntry, error) {
|
func (cw *Site) AssignTicketToMember(ticketID, memberID int) (*ScheduleEntry, bool, error) {
|
||||||
req := cw.NewRequest("/schedule/entries", "GET", nil)
|
req := cw.NewRequest("/schedule/entries", "GET", nil)
|
||||||
req.URLValues.Add("conditions", fmt.Sprintf("member/id=%d and objectId=%d and doneFlag=false", memberID, ticketID))
|
req.URLValues.Add("conditions", fmt.Sprintf("member/id=%d and objectId=%d and doneFlag=false", memberID, ticketID))
|
||||||
err := req.Do()
|
err := req.Do()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("failed to get schedule entries on ticketID '%d' and memberID '%d': %v", ticketID, memberID, err)
|
return nil, false, fmt.Errorf("failed to get schedule entries on ticketID '%d' and memberID '%d': %v", ticketID, memberID, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
scheduleEntries := &[]ScheduleEntry{}
|
scheduleEntries := &[]ScheduleEntry{}
|
||||||
err = json.Unmarshal(req.Body, scheduleEntries)
|
err = json.Unmarshal(req.Body, scheduleEntries)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("failed to unmarshal body into struct: %s", err)
|
return nil, false, fmt.Errorf("failed to unmarshal body into struct: %s", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// The member is already assined to the ticket, so return the first schedule entry
|
// The member is already assined to the ticket, so return the first schedule entry
|
||||||
if len(*scheduleEntries) > 0 {
|
if len(*scheduleEntries) > 0 {
|
||||||
return &(*scheduleEntries)[0], nil
|
return &(*scheduleEntries)[0], false, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
scheduleEntry := &ScheduleEntry{}
|
scheduleEntry := &ScheduleEntry{}
|
||||||
@ -719,22 +719,22 @@ func (cw *Site) AssignTicketToMember(ticketID, memberID int) (*ScheduleEntry, er
|
|||||||
|
|
||||||
jsonScheduleEntry, err := json.Marshal(scheduleEntry)
|
jsonScheduleEntry, err := json.Marshal(scheduleEntry)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("could not marshal json data: %s", err)
|
return nil, false, fmt.Errorf("could not marshal json data: %s", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
req = cw.NewRequest("/schedule/entries", "POST", jsonScheduleEntry)
|
req = cw.NewRequest("/schedule/entries", "POST", jsonScheduleEntry)
|
||||||
err = req.Do()
|
err = req.Do()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("request failed for %s: %s", req.RestAction, err)
|
return nil, false, fmt.Errorf("request failed for %s: %s", req.RestAction, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
scheduleEntry = &ScheduleEntry{}
|
scheduleEntry = &ScheduleEntry{}
|
||||||
err = json.Unmarshal(req.Body, scheduleEntry)
|
err = json.Unmarshal(req.Body, scheduleEntry)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("failed to unmarshal body into struct: %s", err)
|
return nil, false, fmt.Errorf("failed to unmarshal body into struct: %s", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
return scheduleEntry, nil
|
return scheduleEntry, true, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// RemoveTicketFromMember accepts a ticketID and a memberID and will mark the member as done, will return an error if it fails
|
// RemoveTicketFromMember accepts a ticketID and a memberID and will mark the member as done, will return an error if it fails
|
||||||
|
Loading…
Reference in New Issue
Block a user