plunk/contacts
Types
pub type ActionResult {
GetContactResult(//internal)
ListContactsResult(List(//internal))
CountContactsResult(//internal)
CreateContactResult(//internal)
SubscriptionResult(//internal)
DeleteContactResult(//internal)
}
Constructors
-
GetContactResult(//internal) -
ListContactsResult(List(//internal)) -
CountContactsResult(//internal) -
CreateContactResult(//internal) -
SubscriptionResult(//internal) -
DeleteContactResult(//internal)
pub type CreateContactData {
CreateContactData(
email: String,
subscribed: Bool,
data: option.Option(List(#(String, String))),
)
}
Constructors
-
CreateContactData( email: String, subscribed: Bool, data: option.Option(List(#(String, String))), )
pub type CreatedContact
pub type DeletedContact
pub type ExtendedContact
pub type For {
GetContact
ListContacts
CountContacts
CreateContact
Subscribe
Unsubscribe
DeleteContact
}
Constructors
-
GetContact -
ListContacts -
CountContacts -
CreateContact -
Subscribe -
Unsubscribe -
DeleteContact
pub type Subscription
pub type SubscriptionData {
Subscription(id: String)
}
Constructors
-
Subscription(id: String)
Values
pub fn count(
instance: instance.Instance,
) -> request.Request(String)
Get count of all contacts
pub fn create(
instance: instance.Instance,
contact: CreateContactData,
) -> request.Request(String)
Create a contact
pub fn decode(
res: response.Response(String),
for for: For,
) -> Result(ActionResult, types.PlunkError)
This function decodes all the responses related to this resource albeit a bit differently from the other decode functions (but, still type-safe)
Example
import gleam/io
import gleam/hackney
import plunk
import plunk/contacts.{GetContact, GetContactResult}
fn main() {
let instance = plunk.new("API_KEY")
let req = contacts.get(instance, "some-uuid-for-your-contact")
let assert Ok(resp) = hackney.send(req)
let assert Ok(data) = contacts.decode(resp, for: GetContact)
let assert GetContactResult(contact) = data
io.println(contact.id)
}
pub fn delete(
instance: instance.Instance,
id: String,
) -> request.Request(String)
Delete a contact
pub fn get(
instance: instance.Instance,
id contact_id: String,
) -> request.Request(String)
Get a contact by ID
pub fn subscribe(
instance: instance.Instance,
id: String,
) -> request.Request(String)
Subscribe a contact
pub fn unsubscribe(
instance: instance.Instance,
id: String,
) -> request.Request(String)
Unsubscribe a contact