mirror of
https://github.com/SecurityBrewery/catalyst.git
synced 2025-12-06 15:22:47 +01:00
@@ -4,39 +4,56 @@ import (
|
||||
"context"
|
||||
"fmt"
|
||||
|
||||
"github.com/arangodb/go-driver"
|
||||
|
||||
"github.com/SecurityBrewery/catalyst/database"
|
||||
"github.com/SecurityBrewery/catalyst/generated/models"
|
||||
"github.com/SecurityBrewery/catalyst/generated/restapi/api"
|
||||
"github.com/SecurityBrewery/catalyst/generated/restapi/operations/tickets"
|
||||
)
|
||||
|
||||
func ticketID(id int64) []driver.DocumentID {
|
||||
return []driver.DocumentID{driver.DocumentID(fmt.Sprintf("%s/%d", database.TicketCollectionName, id))}
|
||||
}
|
||||
|
||||
func ticketIDs(ticketResponses []*models.TicketResponse) []driver.DocumentID {
|
||||
var ids []driver.DocumentID
|
||||
for _, ticketResponse := range ticketResponses {
|
||||
ids = append(ids, ticketID(ticketResponse.ID)...)
|
||||
}
|
||||
return ids
|
||||
}
|
||||
|
||||
func (s *Service) CreateTicket(ctx context.Context, params *tickets.CreateTicketParams) *api.Response {
|
||||
createdTickets, err := s.database.TicketBatchCreate(ctx, []*models.TicketForm{params.Ticket})
|
||||
if len(createdTickets) > 0 {
|
||||
return response(createdTickets[0], err)
|
||||
return s.response(ctx, "CreateTicket", ticketIDs(createdTickets), createdTickets[0], err)
|
||||
}
|
||||
return response(nil, err)
|
||||
return s.response(ctx, "CreateTicket", ticketIDs(createdTickets), nil, err)
|
||||
}
|
||||
|
||||
func (s *Service) CreateTicketBatch(ctx context.Context, params *tickets.CreateTicketBatchParams) *api.Response {
|
||||
_, err := s.database.TicketBatchCreate(ctx, params.Ticket)
|
||||
return response(nil, err)
|
||||
ticketBatch, err := s.database.TicketBatchCreate(ctx, params.Ticket)
|
||||
return s.response(ctx, "CreateTicketBatch", ticketIDs(ticketBatch), nil, err)
|
||||
}
|
||||
|
||||
func (s *Service) GetTicket(ctx context.Context, params *tickets.GetTicketParams) *api.Response {
|
||||
return response(s.database.TicketGet(ctx, params.ID))
|
||||
ticket, err := s.database.TicketGet(ctx, params.ID)
|
||||
return s.response(ctx, "GetTicket", nil, ticket, err)
|
||||
}
|
||||
|
||||
func (s *Service) UpdateTicket(ctx context.Context, params *tickets.UpdateTicketParams) *api.Response {
|
||||
return response(s.database.TicketUpdate(ctx, params.ID, params.Ticket))
|
||||
ticket, err := s.database.TicketUpdate(ctx, params.ID, params.Ticket)
|
||||
return s.response(ctx, "UpdateTicket", ticketID(ticket.ID), ticket, err)
|
||||
}
|
||||
|
||||
func (s *Service) DeleteTicket(ctx context.Context, params *tickets.DeleteTicketParams) *api.Response {
|
||||
if err := s.database.TicketDelete(ctx, params.ID); err != nil {
|
||||
return response(nil, err)
|
||||
return s.response(ctx, "DeleteTicket", ticketID(params.ID), nil, err)
|
||||
}
|
||||
|
||||
_ = s.storage.DeleteBucket(fmt.Sprint(params.ID))
|
||||
return response(nil, nil)
|
||||
return s.response(ctx, "DeleteTicket", ticketID(params.ID), nil, nil)
|
||||
}
|
||||
|
||||
func (s *Service) ListTickets(ctx context.Context, params *tickets.ListTicketsParams) *api.Response {
|
||||
@@ -48,5 +65,7 @@ func (s *Service) ListTickets(ctx context.Context, params *tickets.ListTicketsPa
|
||||
if params.Type != nil && *params.Type != "" {
|
||||
t = *params.Type
|
||||
}
|
||||
return response(s.database.TicketList(ctx, t, q, params.Sort, params.Desc, *params.Offset, *params.Count))
|
||||
|
||||
ticketList, err := s.database.TicketList(ctx, t, q, params.Sort, params.Desc, *params.Offset, *params.Count)
|
||||
return s.response(ctx, "ListTickets", nil, ticketList, err)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user