Skip to content

Commit

Permalink
Box webhook event payload variants (XAMPPRocky#114)
Browse files Browse the repository at this point in the history
  • Loading branch information
chinedufn authored Sep 13, 2021
1 parent ac8ed2e commit bae9351
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 35 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
/Cargo.lock
/target
.idea
49 changes: 24 additions & 25 deletions src/models/events.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ use self::payload::{
ForkEventPayload, GollumEventPayload, IssueCommentEventPayload, IssuesEventPayload,
PullRequestEventPayload, PullRequestReviewCommentEventPayload, PushEventPayload,
};
use super::{ActorId, RepositoryId, OrgId};
use super::{ActorId, OrgId, RepositoryId};
use chrono::{DateTime, Utc};
use payload::MemberEventPayload;
use reqwest::Url;
Expand Down Expand Up @@ -135,37 +135,36 @@ fn deserialize_payload(
) -> Result<Option<EventPayload>, serde_json::Error> {
let maybe_payload = match event_type {
EventType::PushEvent => {
serde_json::from_value::<PushEventPayload>(data).map(EventPayload::PushEvent)?
serde_json::from_value::<Box<PushEventPayload>>(data).map(EventPayload::PushEvent)?
}
EventType::CreateEvent => {
serde_json::from_value::<CreateEventPayload>(data).map(EventPayload::CreateEvent)?
EventType::CreateEvent => serde_json::from_value::<Box<CreateEventPayload>>(data)
.map(EventPayload::CreateEvent)?,
EventType::DeleteEvent => serde_json::from_value::<Box<DeleteEventPayload>>(data)
.map(EventPayload::DeleteEvent)?,
EventType::IssuesEvent => serde_json::from_value::<Box<IssuesEventPayload>>(data)
.map(EventPayload::IssuesEvent)?,
EventType::IssueCommentEvent => {
serde_json::from_value::<Box<IssueCommentEventPayload>>(data)
.map(EventPayload::IssueCommentEvent)?
}
EventType::DeleteEvent => {
serde_json::from_value::<DeleteEventPayload>(data).map(EventPayload::DeleteEvent)?
EventType::CommitCommentEvent => {
serde_json::from_value::<Box<CommitCommentEventPayload>>(data)
.map(EventPayload::CommitCommentEvent)?
}
EventType::IssuesEvent => {
serde_json::from_value::<IssuesEventPayload>(data).map(EventPayload::IssuesEvent)?
}
EventType::IssueCommentEvent => serde_json::from_value::<IssueCommentEventPayload>(data)
.map(EventPayload::IssueCommentEvent)?,
EventType::CommitCommentEvent => serde_json::from_value::<CommitCommentEventPayload>(data)
.map(EventPayload::CommitCommentEvent)?,
EventType::ForkEvent => {
serde_json::from_value::<ForkEventPayload>(data).map(EventPayload::ForkEvent)?
}
EventType::GollumEvent => {
serde_json::from_value::<GollumEventPayload>(data).map(EventPayload::GollumEvent)?
}
EventType::MemberEvent => {
serde_json::from_value::<MemberEventPayload>(data).map(EventPayload::MemberEvent)?
serde_json::from_value::<Box<ForkEventPayload>>(data).map(EventPayload::ForkEvent)?
}
EventType::PullRequestEvent => serde_json::from_value::<PullRequestEventPayload>(data)
.map(|payload| EventPayload::PullRequestEvent(Box::new(payload)))?,
EventType::GollumEvent => serde_json::from_value::<Box<GollumEventPayload>>(data)
.map(EventPayload::GollumEvent)?,
EventType::MemberEvent => serde_json::from_value::<Box<MemberEventPayload>>(data)
.map(EventPayload::MemberEvent)?,
EventType::PullRequestEvent => serde_json::from_value::<Box<PullRequestEventPayload>>(data)
.map(|payload| EventPayload::PullRequestEvent(payload))?,
EventType::PullRequestReviewCommentEvent => {
serde_json::from_value::<PullRequestReviewCommentEventPayload>(data)
.map(|payload| EventPayload::PullRequestReviewCommentEvent(Box::new(payload)))?
serde_json::from_value::<Box<PullRequestReviewCommentEventPayload>>(data)
.map(|payload| EventPayload::PullRequestReviewCommentEvent(payload))?
}
_ => EventPayload::UnknownEvent(data),
_ => EventPayload::UnknownEvent(Box::new(data)),
};
Ok(Some(maybe_payload))
}
Expand Down
20 changes: 10 additions & 10 deletions src/models/events/payload.rs
Original file line number Diff line number Diff line change
Expand Up @@ -34,18 +34,18 @@ use serde::{Deserialize, Serialize};
#[non_exhaustive]
#[serde(untagged)]
pub enum EventPayload {
PushEvent(PushEventPayload),
CreateEvent(CreateEventPayload),
DeleteEvent(DeleteEventPayload),
IssuesEvent(IssuesEventPayload),
IssueCommentEvent(IssueCommentEventPayload),
CommitCommentEvent(CommitCommentEventPayload),
ForkEvent(ForkEventPayload),
GollumEvent(GollumEventPayload),
MemberEvent(MemberEventPayload),
PushEvent(Box<PushEventPayload>),
CreateEvent(Box<CreateEventPayload>),
DeleteEvent(Box<DeleteEventPayload>),
IssuesEvent(Box<IssuesEventPayload>),
IssueCommentEvent(Box<IssueCommentEventPayload>),
CommitCommentEvent(Box<CommitCommentEventPayload>),
ForkEvent(Box<ForkEventPayload>),
GollumEvent(Box<GollumEventPayload>),
MemberEvent(Box<MemberEventPayload>),
PullRequestEvent(Box<PullRequestEventPayload>),
PullRequestReviewCommentEvent(Box<PullRequestReviewCommentEventPayload>),
UnknownEvent(serde_json::Value),
UnknownEvent(Box<serde_json::Value>),
}

/// A git commit in specific payload types.
Expand Down

0 comments on commit bae9351

Please sign in to comment.