feat(actions): introduce an explicit event for changes of an update's version
This commit is contained in:
parent
0277868c1b
commit
c0928c4128
4 changed files with 25 additions and 14 deletions
|
@ -240,10 +240,11 @@ 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` | An update's state changed |
|
||||
| `update_updated_version` | An update's version 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
|
||||
|
|
|
@ -2331,6 +2331,7 @@ components:
|
|||
- update_created
|
||||
- update_updated
|
||||
- update_updated_state
|
||||
- update_updated_version
|
||||
- update_deleted
|
||||
createdAt:
|
||||
type: string
|
||||
|
|
|
@ -42,6 +42,7 @@ const (
|
|||
EventNameUpdateCreated EventName = "update_created"
|
||||
EventNameUpdateUpdated EventName = "update_updated"
|
||||
EventNameUpdateUpdatedState EventName = "update_updated_state"
|
||||
EventNameUpdateUpdatedVersion EventName = "update_updated_version"
|
||||
EventNameUpdateDeleted EventName = "update_deleted"
|
||||
)
|
||||
|
||||
|
|
|
@ -40,14 +40,16 @@ func (s *eventService) createUpdateUpdated(old *Update, new *Update) *Event {
|
|||
return nil
|
||||
}
|
||||
|
||||
var eventName api.EventName
|
||||
eventName := api.EventNameUpdateUpdated
|
||||
|
||||
if old.State == new.State {
|
||||
eventName = api.EventNameUpdateUpdated
|
||||
} else {
|
||||
if old.State != new.State {
|
||||
eventName = api.EventNameUpdateUpdatedState
|
||||
}
|
||||
|
||||
if old.Version != new.Version {
|
||||
eventName = api.EventNameUpdateUpdatedVersion
|
||||
}
|
||||
|
||||
s.createWithWarnOnly(eventName, &api.EventPayloadUpdateUpdatedDto{
|
||||
ID: new.ID,
|
||||
Application: new.Application,
|
||||
|
@ -214,6 +216,12 @@ 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.EventNameUpdateUpdatedVersion.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.EventNameUpdateUpdated.Value():
|
||||
var p api.EventPayloadUpdateUpdatedDto
|
||||
if p, err = util.UnmarshalGenericJSON[api.EventPayloadUpdateUpdatedDto](bytes); err != nil {
|
||||
|
|
Loading…
Reference in a new issue