View Source ExPipedrive.Webhook.Event (ex_pipedrive v0.1.0)

A normalized Pipedrive webhook event.

from_payload/1 accepts the v1 current/previous envelope and the equivalent v2-ish data field. Deal and person records are decoded into ExPipedrive.Deal and ExPipedrive.Person; other resources remain maps.

This module is part of the in-repository ex_pipedrive_web surface. It is deliberately independent of Plug so it can move unchanged to a future optional ex_pipedrive_web package.

Summary

Functions

Normalizes a Pipedrive webhook payload into an event.

Types

@type t() :: %ExPipedrive.Webhook.Event{
  action: String.t() | nil,
  current: ExPipedrive.Deal.t() | ExPipedrive.Person.t() | map() | nil,
  diff: map(),
  meta: map(),
  name: String.t(),
  previous: ExPipedrive.Deal.t() | ExPipedrive.Person.t() | map() | nil,
  raw: map(),
  resource: String.t() | nil
}

Functions

@spec from_payload(map()) :: {:ok, t()} | {:error, :invalid_payload}

Normalizes a Pipedrive webhook payload into an event.