Improve bus (#3)

* Improve bus
* Add ticket log
This commit is contained in:
Jonas Plum
2021-12-27 19:08:07 +01:00
committed by GitHub
parent 1fade14ba5
commit b5dd0cfacd
50 changed files with 756 additions and 456 deletions

View File

@@ -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)
}