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