feat(updates,events): Streamline update state changes into one event type only (#27)
Reviewed-on: #27 Co-authored-by: Varakh <varakh@varakh.de> Co-committed-by: Varakh <varakh@varakh.de>
This commit is contained in:
parent
79c5da119a
commit
10bc3a59bb
4 changed files with 13 additions and 41 deletions
14
README.md
14
README.md
|
@ -239,14 +239,12 @@ action type, which can send notifications to a variety of services like Gotify,
|
|||
|
||||
Supported events are the following:
|
||||
|
||||
| Event name | Description |
|
||||
|:--------------------------------|:--------------------------------------------------------------------|
|
||||
| `update_created` | An update has been created |
|
||||
| `update_updated` | An update has been updated (not necessarily its version attribute!) |
|
||||
| `update_updated_state_pending` | An update's state changed to pending |
|
||||
| `update_updated_state_approved` | An update's state changed to approved |
|
||||
| `update_updated_state_ignored` | An update's state changed to ignored |
|
||||
| `update_deleted` | An update has been removed |
|
||||
| Event name | Description |
|
||||
|:-----------------------|:--------------------------------------------------------------------|
|
||||
| `update_created` | An update has been created |
|
||||
| `update_updated` | An update has been updated (not necessarily its version attribute!) |
|
||||
| `update_updated_state` | An update's state changed |
|
||||
| `update_deleted` | An update has been removed |
|
||||
|
||||
For privacy, an action's configuration supports upda's **secrets** vault, which means that before an action is
|
||||
triggered, any occurrence of `<SECRET>SECRET_KEY</SECRET>` is properly replaced by the value of the `SECRET_KEY` defined
|
||||
|
|
|
@ -2330,9 +2330,7 @@ components:
|
|||
enum:
|
||||
- update_created
|
||||
- update_updated
|
||||
- update_updated_state_pending
|
||||
- update_updated_state_approved
|
||||
- update_updated_state_ignored
|
||||
- update_updated_state
|
||||
- update_deleted
|
||||
createdAt:
|
||||
type: string
|
||||
|
|
|
@ -39,12 +39,10 @@ func (e WebhookType) Value() string {
|
|||
type EventName string
|
||||
|
||||
const (
|
||||
EventNameUpdateCreated EventName = "update_created"
|
||||
EventNameUpdateUpdated EventName = "update_updated"
|
||||
EventNameUpdateUpdatedPending EventName = "update_updated_state_pending"
|
||||
EventNameUpdateUpdatedApproved EventName = "update_updated_state_approved"
|
||||
EventNameUpdateUpdatedIgnored EventName = "update_updated_state_ignored"
|
||||
EventNameUpdateDeleted EventName = "update_deleted"
|
||||
EventNameUpdateCreated EventName = "update_created"
|
||||
EventNameUpdateUpdated EventName = "update_updated"
|
||||
EventNameUpdateUpdatedState EventName = "update_updated_state"
|
||||
EventNameUpdateDeleted EventName = "update_deleted"
|
||||
)
|
||||
|
||||
func (e *EventName) Scan(value interface{}) error {
|
||||
|
|
|
@ -45,17 +45,7 @@ func (s *eventService) createUpdateUpdated(old *Update, new *Update) *Event {
|
|||
if old.State == new.State {
|
||||
eventName = api.EventNameUpdateUpdated
|
||||
} else {
|
||||
switch new.State {
|
||||
case api.UpdateStatePending.Value():
|
||||
eventName = api.EventNameUpdateUpdatedPending
|
||||
break
|
||||
case api.UpdateStateApproved.Value():
|
||||
eventName = api.EventNameUpdateUpdatedApproved
|
||||
break
|
||||
case api.UpdateStateIgnored.Value():
|
||||
eventName = api.EventNameUpdateUpdatedIgnored
|
||||
break
|
||||
}
|
||||
eventName = api.EventNameUpdateUpdatedState
|
||||
}
|
||||
|
||||
s.createWithWarnOnly(eventName, &api.EventPayloadUpdateUpdatedDto{
|
||||
|
@ -218,19 +208,7 @@ func (s *eventService) extractPayloadInfo(event *Event) (*eventPayloadInformatio
|
|||
return nil, newServiceError(General, err)
|
||||
}
|
||||
return &eventPayloadInformationDto{Host: p.Host, Application: p.Application, Provider: p.Provider, Version: p.Version, State: p.State}, nil
|
||||
case api.EventNameUpdateUpdatedApproved.Value():
|
||||
var p api.EventPayloadUpdateUpdatedDto
|
||||
if p, err = util.UnmarshalGenericJSON[api.EventPayloadUpdateUpdatedDto](bytes); err != nil {
|
||||
return nil, newServiceError(General, err)
|
||||
}
|
||||
return &eventPayloadInformationDto{Host: p.Host, Application: p.Application, Provider: p.Provider, Version: p.Version, State: p.State}, nil
|
||||
case api.EventNameUpdateUpdatedPending.Value():
|
||||
var p api.EventPayloadUpdateUpdatedDto
|
||||
if p, err = util.UnmarshalGenericJSON[api.EventPayloadUpdateUpdatedDto](bytes); err != nil {
|
||||
return nil, newServiceError(General, err)
|
||||
}
|
||||
return &eventPayloadInformationDto{Host: p.Host, Application: p.Application, Provider: p.Provider, Version: p.Version, State: p.State}, nil
|
||||
case api.EventNameUpdateUpdatedIgnored.Value():
|
||||
case api.EventNameUpdateUpdatedState.Value():
|
||||
var p api.EventPayloadUpdateUpdatedDto
|
||||
if p, err = util.UnmarshalGenericJSON[api.EventPayloadUpdateUpdatedDto](bytes); err != nil {
|
||||
return nil, newServiceError(General, err)
|
||||
|
|
Loading…
Reference in a new issue