github.com/goravel/framework@v1.13.9/contracts/event/events.go (about) 1 package event 2 3 //go:generate mockery --name=Instance 4 type Instance interface { 5 // Register event listeners to the application. 6 Register(map[Event][]Listener) 7 // Job create a new event task. 8 Job(event Event, args []Arg) Task 9 // GetEvents gets all registered events. 10 GetEvents() map[Event][]Listener 11 } 12 13 type Event interface { 14 // Handle the event. 15 Handle(args []Arg) ([]Arg, error) 16 } 17 18 type Listener interface { 19 // Signature returns the unique identifier for the listener. 20 Signature() string 21 // Queue configure the event queue options. 22 Queue(args ...any) Queue 23 // Handle the event. 24 Handle(args ...any) error 25 } 26 27 //go:generate mockery --name=Task 28 type Task interface { 29 // Dispatch an event and call the listeners. 30 Dispatch() error 31 } 32 33 type Arg struct { 34 Type string 35 Value any 36 } 37 38 type Queue struct { 39 Enable bool 40 Connection string 41 Queue string 42 }