(evt events.Event)
| 145 | } |
| 146 | |
| 147 | func (ps *PubSub) getMetadata(evt events.Event) map[string]string { |
| 148 | ids := make(map[string][]string, 10) |
| 149 | for _, id := range evt.Identifiers() { |
| 150 | k := id.EntityType() + "_id" |
| 151 | ids[k] = append(ids[k], id.IDString()) |
| 152 | if gtwEUI := types.MustEUI64(id.GetGatewayIds().GetEui()); gtwEUI != nil { |
| 153 | ids["gateway_eui"] = append(ids["gateway_eui"], gtwEUI.String()) |
| 154 | } |
| 155 | if devID := id.GetDeviceIds(); devID != nil { |
| 156 | if devID.ApplicationIds != nil { |
| 157 | ids["application_id"] = append(ids["application_id"], devID.GetApplicationIds().GetApplicationId()) |
| 158 | } |
| 159 | if devID.DevEui != nil { |
| 160 | ids["dev_eui"] = append(ids["dev_eui"], types.MustEUI64(devID.DevEui).String()) |
| 161 | } |
| 162 | if devID.JoinEui != nil { |
| 163 | ids["join_eui"] = append(ids["join_eui"], types.MustEUI64(devID.JoinEui).String()) |
| 164 | } |
| 165 | if devID.DevAddr != nil { |
| 166 | ids["dev_addr"] = append(ids["dev_addr"], types.MustDevAddr(devID.DevAddr).String()) |
| 167 | } |
| 168 | } |
| 169 | } |
| 170 | md := make(map[string]string, len(ids)+3) |
| 171 | md["content-type"] = ps.contentType |
| 172 | md["event"] = evt.Name() |
| 173 | md["correlation_ids"] = strings.Join(evt.CorrelationIds(), ",") |
| 174 | for k, v := range ids { |
| 175 | md[k] = strings.Join(v, ",") |
| 176 | } |
| 177 | return md |
| 178 | } |
| 179 | |
| 180 | // Publish an event to Go Cloud. |
| 181 | func (ps *PubSub) Publish(evs ...events.Event) { |
no test coverage detected