(ctx context.Context, message *Message, p *Papi, sync bool)
| 36 | } |
| 37 | |
| 38 | func DecisionCmd(ctx context.Context, message *Message, p *Papi, sync bool) error { |
| 39 | switch message.Header.OperationCmd { |
| 40 | case "delete": |
| 41 | data, err := json.Marshal(message.Data) |
| 42 | if err != nil { |
| 43 | return err |
| 44 | } |
| 45 | |
| 46 | UUIDs := make([]string, 0) |
| 47 | deleteDecisionMsg := deleteDecisions{ |
| 48 | Decisions: make([]string, 0), |
| 49 | } |
| 50 | |
| 51 | if err := json.Unmarshal(data, &deleteDecisionMsg); err != nil { |
| 52 | return fmt.Errorf("message for '%s' contains bad data format: %w", message.Header.OperationType, err) |
| 53 | } |
| 54 | |
| 55 | UUIDs = append(UUIDs, deleteDecisionMsg.Decisions...) |
| 56 | log.Infof("Decisions UUIDs to remove: %+v", UUIDs) |
| 57 | |
| 58 | filter := make(map[string][]string) |
| 59 | filter["uuid"] = UUIDs |
| 60 | |
| 61 | _, deletedDecisions, err := p.DBClient.ExpireDecisionsWithFilter(ctx, filter) |
| 62 | if err != nil { |
| 63 | return fmt.Errorf("unable to expire decisions %+v: %w", UUIDs, err) |
| 64 | } |
| 65 | |
| 66 | decisions := make([]*models.Decision, 0) |
| 67 | |
| 68 | for _, deletedDecision := range deletedDecisions { |
| 69 | log.Infof("Decision from '%s' for '%s' (%s) has been deleted", deletedDecision.Origin, deletedDecision.Value, deletedDecision.Type) |
| 70 | dec := &models.Decision{ |
| 71 | UUID: deletedDecision.UUID, |
| 72 | Origin: &deletedDecision.Origin, |
| 73 | Scenario: &deletedDecision.Scenario, |
| 74 | Scope: &deletedDecision.Scope, |
| 75 | Value: &deletedDecision.Value, |
| 76 | ID: int64(deletedDecision.ID), |
| 77 | Until: deletedDecision.Until.String(), |
| 78 | Type: &deletedDecision.Type, |
| 79 | } |
| 80 | decisions = append(decisions, dec) |
| 81 | } |
| 82 | p.Channels.DeleteDecisionChannel <- decisions |
| 83 | default: |
| 84 | return fmt.Errorf("unknown command '%s' for operation type '%s'", message.Header.OperationCmd, message.Header.OperationType) |
| 85 | } |
| 86 | |
| 87 | return nil |
| 88 | } |
| 89 | |
| 90 | func AlertCmd(ctx context.Context, message *Message, p *Papi, sync bool) error { |
| 91 | switch message.Header.OperationCmd { |
nothing calls this directly
no test coverage detected
searching dependent graphs…