From 660c35487fa5b8bae0e1a1eb638c35841de1af44 Mon Sep 17 00:00:00 2001 From: Steven Polley Date: Mon, 15 Oct 2018 18:20:55 -0600 Subject: [PATCH] Add AssignTickeToCompany --- 3.0/connectwise/service.go | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/3.0/connectwise/service.go b/3.0/connectwise/service.go index 5487ec0..971a4b4 100644 --- a/3.0/connectwise/service.go +++ b/3.0/connectwise/service.go @@ -719,6 +719,35 @@ func (cw *Site) AssignTicketToMember(ticketID, memberID int) (*ScheduleEntry, er return scheduleEntry, nil } +//AssignTicketToCompany +func (cw *Site) AssignTicketToCompany(ticketID, companyID int) (*Ticket, error) { + patches := &[]PatchString{} + patch := &PatchString{ + Op: "replace", + Path: "company/id", + Value: strconv.Itoa(companyID)} + *patches = append(*patches, *patch) + + patchBody, err := json.Marshal(patches) + if err != nil { + return nil, fmt.Errorf("could not marhsal patch json to byte slice: %s", err) + } + + req := cw.NewRequest(fmt.Sprintf("/service/tickets/%d", ticketID), "PATCH", patchBody) + err = req.Do() + if err != nil { + return nil, fmt.Errorf("request failed for %s: %s", req.RestAction, err) + } + + ticket := &Ticket{} + err = json.Unmarshal(req.Body, ticket) + if err != nil { + return nil, fmt.Errorf("failed to unmarshal body into struct: %s", err) + } + + return ticket, nil +} + //AssignTicketToMember will create a new schedule entry for the member and specify the ticket as the object func (cw *Site) TicketMerge(mainTicketID int, mergedTicketIDs []int, mergedTicketStatusID int) error { ticketMerge := &TicketMerge{}