plunk/transactional

Types

pub type Contact {
  Contact(id: String, email: String)
}

Constructors

  • Contact(id: String, email: String)
pub type Email {
  Email(contact: Contact, email: String)
}

Constructors

  • Email(contact: Contact, email: String)
pub type SendTransactionalEmailResponse {
  SendTransactionalEmailResponse(
    success: Bool,
    emails: List(Email),
    timestamp: Option(String),
  )
}

Constructors

  • SendTransactionalEmailResponse(
      success: Bool,
      emails: List(Email),
      timestamp: Option(String),
    )
pub type To {
  Address(String)
  Addresses(List(String))
}

Constructors

  • Address(String)
  • Addresses(List(String))
pub type TransactionalEmail {
  TransactionalEmail(
    to: To,
    subject: String,
    body: String,
    name: Option(String),
    from: Option(String),
  )
}

Constructors

  • TransactionalEmail(
      to: To,
      subject: String,
      body: String,
      name: Option(String),
      from: Option(String),
    )

Functions

pub fn decode(res: Response(String)) -> Result(
  SendTransactionalEmailResponse,
  PlunkError,
)

Decode the raw response into a SendTransactionalEmailResponse type wrapped in a Result type that can be pattern matched on.

pub fn send(instance: Instance, mail mail: TransactionalEmail) -> Request(
  String,
)

Send a transactional email

Example

import gleam/option.{None}
import gleam/hackney
import plunk
import plunk/transactional.{Single, TransactionalEmail}

fn main() {
  let instance = plunk.new(key: "YOUR_API_KEY")

  let req =
    instance
    |> transactional.send(
      mail: TransactionalEmail(
        to: Address("someone@example.com"),
        subject: "Hello",
        body: "<h1>Hello, World!</h1>",
        name: None,
        from: None,
      )
    )
  let assert Ok(resp) = hackney.send(req)
  let assert Ok(data) = transactional.decode(resp)
  // do whatever you want with the data
}
pub fn send_transactional_email_decoder() -> fn(Dynamic) ->
  Result(SendTransactionalEmailResponse, List(DecodeError))
Search Document