Files
job-search/internal/events/events.go
T

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"`
}