8 // EventRegisterArgs is the parameters (json format) of /events/register command
9 type EventRegisterArgs struct {
10 Name string `json:"name"`
11 ProjectID string `json:"filterProjectID"`
14 // EventUnRegisterArgs is the parameters (json format) of /events/unregister command
15 type EventUnRegisterArgs struct {
16 Name string `json:"name"`
20 // Events Type definitions
22 // EventTypePrefix Used as event prefix
23 EventTypePrefix = "event:" // following by event type
25 // Supported Events type
26 EVTAll = EventTypePrefix + "all"
27 EVTServerConfig = EventTypePrefix + "server-config" // type EventMsg with Data type apiv1.ServerCfg
28 EVTProjectAdd = EventTypePrefix + "project-add" // type EventMsg with Data type apiv1.ProjectConfig
29 EVTProjectDelete = EventTypePrefix + "project-delete" // type EventMsg with Data type apiv1.ProjectConfig
30 EVTProjectChange = EventTypePrefix + "project-state-change" // type EventMsg with Data type apiv1.ProjectConfig
33 // EVTAllList List of all supported events
34 var EVTAllList = []string{
41 // EventMsg Event message send over Websocket, data format depend to Type (see DecodeXXX function)
42 type EventMsg struct {
43 Time string `json:"time"`
44 Type string `json:"type"`
45 Data interface{} `json:"data"`
48 // DecodeServerCfg Helper to decode Data field type ServerCfg
49 func (e *EventMsg) DecodeServerCfg() (ServerCfg, error) {
51 if e.Type != EVTServerConfig {
52 return p, fmt.Errorf("Invalid type")
54 d, err := json.Marshal(e.Data)
56 err = json.Unmarshal(d, &p)
61 // DecodeProjectConfig Helper to decode Data field type ProjectConfig
62 func (e *EventMsg) DecodeProjectConfig() (ProjectConfig, error) {
66 case EVTProjectAdd, EVTProjectChange, EVTProjectDelete:
68 d, err = json.Marshal(e.Data)
70 err = json.Unmarshal(d, &p)
73 err = fmt.Errorf("Invalid type")