(p api.Payloader, event HookEventType, meta string)
| 368 | } |
| 369 | |
| 370 | func GetDiscordPayload(p api.Payloader, event HookEventType, meta string) (payload *DiscordPayload, err error) { |
| 371 | slack := &SlackMeta{} |
| 372 | if err := jsoniter.Unmarshal([]byte(meta), &slack); err != nil { |
| 373 | return nil, errors.Newf("jsoniter.Unmarshal: %v", err) |
| 374 | } |
| 375 | |
| 376 | switch event { |
| 377 | case HookEventTypeCreate: |
| 378 | payload = getDiscordCreatePayload(p.(*api.CreatePayload)) |
| 379 | case HookEventTypeDelete: |
| 380 | payload = getDiscordDeletePayload(p.(*api.DeletePayload)) |
| 381 | case HookEventTypeFork: |
| 382 | payload = getDiscordForkPayload(p.(*api.ForkPayload)) |
| 383 | case HookEventTypePush: |
| 384 | payload = getDiscordPushPayload(p.(*api.PushPayload), slack) |
| 385 | case HookEventTypeIssues: |
| 386 | payload = getDiscordIssuesPayload(p.(*api.IssuesPayload), slack) |
| 387 | case HookEventTypeIssueComment: |
| 388 | payload = getDiscordIssueCommentPayload(p.(*api.IssueCommentPayload), slack) |
| 389 | case HookEventTypePullRequest: |
| 390 | payload = getDiscordPullRequestPayload(p.(*api.PullRequestPayload), slack) |
| 391 | case HookEventTypeRelease: |
| 392 | payload = getDiscordReleasePayload(p.(*api.ReleasePayload)) |
| 393 | default: |
| 394 | return nil, errors.Errorf("unexpected event %q", event) |
| 395 | } |
| 396 | |
| 397 | payload.Username = slack.Username |
| 398 | payload.AvatarURL = slack.IconURL |
| 399 | if len(payload.Embeds) > 0 { |
| 400 | color, _ := strconv.ParseInt(strings.TrimLeft(slack.Color, "#"), 16, 32) |
| 401 | payload.Embeds[0].Color = int(color) |
| 402 | } |
| 403 | return payload, nil |
| 404 | } |
no test coverage detected