36 lines
1.4 KiB
Go
36 lines
1.4 KiB
Go
// Package events passes events between the parts of JobSearch that cause
|
|
// them, such as the fetcher, and the parts that react to them, such as the
|
|
// WebSocket hub, so neither depends on the other. It holds the event types
|
|
// and their payloads.
|
|
package events
|
|
|
|
// Event types: an Event's Type, which says what its Payload is.
|
|
const (
|
|
// OpportunitiesUpdated is published when a save stores new
|
|
// opportunities or new releases of stored ones. Its payload is an
|
|
// OpportunitiesUpdatedPayload.
|
|
OpportunitiesUpdated = "OpportunitiesUpdated"
|
|
// OpportunityMarksUpdated is published when an opportunity's marks are
|
|
// changed over the API. Its payload is the opportunity's
|
|
// types.OpportunityMarks after the change, which include its UUID.
|
|
OpportunityMarksUpdated = "OpportunityMarksUpdated"
|
|
)
|
|
|
|
// ---------- OpportunitiesUpdated ----------
|
|
|
|
// OpportunitiesUpdatedPayload lists the opportunities a save changed by UUID:
|
|
// New were stored for the first time, and Updated were already stored and
|
|
// gained at least one new release. Summary counts them.
|
|
type OpportunitiesUpdatedPayload struct {
|
|
New []string `json:"new"`
|
|
Updated []string `json:"updated"`
|
|
Summary OpportunitiesSummary `json:"summary"`
|
|
}
|
|
|
|
// OpportunitiesSummary counts the opportunities in an
|
|
// OpportunitiesUpdatedPayload.
|
|
type OpportunitiesSummary struct {
|
|
New int `json:"new"`
|
|
Updated int `json:"updated"`
|
|
}
|