1 stable release
1.0.0 | Dec 21, 2023 |
---|
#111 in Email
64KB
985 lines
MailerLite Rust SDK
Table of Contents
- Installation
- Usage
Installation
Run the following Cargo command in your project directory:
cargo add mailerlite-rs
Or add the following line to your Cargo.toml:
mailerlite-rs = "1.0.0"
Usage
Subscribers
Get a list of subscribers
You can test out the example by running it with the command provided.
cargo run --package mailerlite-rs --example get_subscibers
use mailerlite_rs::{parameter::Parameter, response::Response, MailerLite};
#[tokio::main]
async fn main() {
let api_key: String = String::from("Your MailerLite API Key");
let mailerlite: MailerLite = MailerLite::new(api_key);
let parameter: Parameter = Parameter::new()
.add("filter[status]", "active")
.add("limit", "10");
let response: Response = mailerlite.subscriber().get(parameter.clone()).await;
println!("{:#?}", response);
}
Get a subscriber
You can test out the example by running it with the command provided.
cargo run --package mailerlite-rs --example find_subsciber
use mailerlite_rs::{response::Response, MailerLite};
#[tokio::main]
async fn main() {
let api_key: String = String::from("Your MailerLite API Key");
let mailerlite: MailerLite = MailerLite::new(api_key);
let id: String = String::from("Your Subscriber ID");
let response: Response = mailerlite.subscriber().find(id).await;
println!("{:#?}", response);
}
Create a subscriber
You can test out the example by running it with the command provided.
cargo run --package mailerlite-rs --example create_subsciber
use mailerlite_rs::{data::Data, response::Response, MailerLite};
#[tokio::main]
async fn main() {
let api_key: String = String::from("Your MailerLite API Key");
let mailerlite: MailerLite = MailerLite::new(api_key);
let data: Data = Data::new().add("email", "john@gmail.com");
let response: Response = mailerlite.subscriber().create(data.clone()).await;
println!("{:#?}", response);
}
Update a subscriber
You can test out the example by running it with the command provided.
cargo run --package mailerlite-rs --example update_subsciber
use mailerlite_rs::{data::Data, response::Response, MailerLite};
#[tokio::main]
async fn main() {
let api_key: String = String::from("Your MailerLite API Key");
let mailerlite: MailerLite = MailerLite::new(api_key);
let id: String = String::from("Your Subscriber ID");
let data: Data = Data::new()
.add("fields[name]", "John")
.add("fields[last_name]", "Doe");
let response: Response = mailerlite.subscriber().update(id, data.clone()).await;
println!("{:#?}", response);
}
Delete a subscriber
You can test out the example by running it with the command provided.
cargo run --package mailerlite-rs --example delete_subsciber
use mailerlite_rs::{response::Response, MailerLite};
#[tokio::main]
async fn main() {
let api_key: String = String::from("Your MailerLite API Key");
let mailerlite: MailerLite = MailerLite::new(api_key);
let id: String = String::from("Your Subscriber ID");
let response: Response = mailerlite.subscriber().delete(id).await;
println!("{:#?}", response);
}
Campaigns
Get a list of campaigns
You can test out the example by running it with the command provided.
cargo run --package mailerlite-rs --example get_campaigns
use mailerlite_rs::{parameter::Parameter, response::Response, MailerLite};
#[tokio::main]
async fn main() {
let api_key: String = String::from("Your MailerLite API Key");
let mailerlite: MailerLite = MailerLite::new(api_key);
let parameter: Parameter = Parameter::new().add("filter[status]", "sent");
let response: Response = mailerlite.campaign().get(parameter.clone()).await;
println!("{:#?}", response);
}
Get a campaign
You can test out the example by running it with the command provided.
cargo run --package mailerlite-rs --example find_campaign
use mailerlite_rs::{response::Response, MailerLite};
#[tokio::main]
async fn main() {
let api_key: String = String::from("Your MailerLite API Key");
let mailerlite: MailerLite = MailerLite::new(api_key);
let id: String = String::from("Your Campaign ID");
let response: Response = mailerlite.campaign().find(id).await;
println!("{:#?}", response);
}
Create a campaign
You can test out the example by running it with the command provided.
cargo run --package mailerlite-rs --example create_campaign
use mailerlite_rs::{data::Data, response::Response, MailerLite};
#[tokio::main]
async fn main() {
let api_key: String = String::from("Your MailerLite API Key");
let mailerlite: MailerLite = MailerLite::new(api_key);
let data: Data = Data::new()
.add("name", "Regular Campaign")
.add("type", "regular")
.add("emails[0][subject]", "Test Subject")
.add("emails[0][from_name]", "John Doe")
.add("emails[0][from]", "john@gmail.com");
let response: Response = mailerlite.campaign().create(data.clone()).await;
println!("{:#?}", response);
}
Update a campaign
You can test out the example by running it with the command provided.
cargo run --package mailerlite-rs --example update_campaign
use mailerlite_rs::{data::Data, response::Response, MailerLite};
#[tokio::main]
async fn main() {
let api_key: String = String::from("Your MailerLite API Key");
let mailerlite: MailerLite = MailerLite::new(api_key);
let id: String = String::from("Your Campaign ID");
let data: Data = Data::new()
.add("name", "Regular Campaign")
.add("emails[0][subject]", "Test Subject")
.add("emails[0][from_name]", "John Doe")
.add("emails[0][from]", "john@gmail.com");
let response: Response = mailerlite.campaign().update(id, data.clone()).await;
println!("{:#?}", response);
}
Delete a campaign
You can test out the example by running it with the command provided.
cargo run --package mailerlite-rs --example delete_campaign
use mailerlite_rs::{response::Response, MailerLite};
#[tokio::main]
async fn main() {
let api_key: String = String::from("Your MailerLite API Key");
let mailerlite: MailerLite = MailerLite::new(api_key);
let id: String = String::from("Your Campaign ID");
let response: Response = mailerlite.campaign().delete(id).await;
println!("{:#?}", response);
}
Schedule a campaign
You can test out the example by running it with the command provided.
cargo run --package mailerlite-rs --example schedule_campaign
use mailerlite_rs::{data::Data, response::Response, MailerLite};
#[tokio::main]
async fn main() {
let api_key: String = String::from("Your MailerLite API Key");
let mailerlite: MailerLite = MailerLite::new(api_key);
let id: String = String::from("Your Campaign ID");
let data: Data = Data::new().add("delivery", "instant");
let response: Response = mailerlite.campaign().schedule(id, data.clone()).await;
println!("{:#?}", response);
}
Cancel a ready campaign
You can test out the example by running it with the command provided.
cargo run --package mailerlite-rs --example cancel_campaign
use mailerlite_rs::{response::Response, MailerLite};
#[tokio::main]
async fn main() {
let api_key: String = String::from("Your MailerLite API Key");
let mailerlite: MailerLite = MailerLite::new(api_key);
let id: String = String::from("Your Campaign ID");
let response: Response = mailerlite.campaign().cancel(id).await;
println!("{:#?}", response);
}
Get subscribers activity of sent campaign
You can test out the example by running it with the command provided.
cargo run --package mailerlite-rs --example get_subscribers_activity_for_campaign
use mailerlite_rs::{parameter::Parameter, response::Response, MailerLite};
#[tokio::main]
async fn main() {
let api_key: String = String::from("Your MailerLite API Key");
let mailerlite: MailerLite = MailerLite::new(api_key);
let id: String = String::from("Your Campaign ID");
let parameter: Parameter = Parameter::new().add("filter[type]", "opened");
let response: Response = mailerlite.campaign().subscribers_activity(id, parameter.clone()).await;
println!("{:#?}", response);
}
Groups
Get a list of groups
You can test out the example by running it with the command provided.
cargo run --package mailerlite-rs --example get_groups
use mailerlite_rs::{parameter::Parameter, response::Response, MailerLite};
#[tokio::main]
async fn main() {
let api_key: String = String::from("Your MailerLite API Key");
let mailerlite: MailerLite = MailerLite::new(api_key);
let parameter: Parameter = Parameter::new().add("limit", "10");
let response: Response = mailerlite.group().get(parameter.clone()).await;
println!("{:#?}", response);
}
Create a group
You can test out the example by running it with the command provided.
cargo run --package mailerlite-rs --example create_group
use mailerlite_rs::{data::Data, response::Response, MailerLite};
#[tokio::main]
async fn main() {
let api_key: String = String::from("Your MailerLite API Key");
let mailerlite: MailerLite = MailerLite::new(api_key);
let data: Data = Data::new().add("name", "Dummy Group");
let response: Response = mailerlite.group().create(data.clone()).await;
println!("{:#?}", response);
}
Update a group
You can test out the example by running it with the command provided.
cargo run --package mailerlite-rs --example update_group
use mailerlite_rs::{data::Data, response::Response, MailerLite};
#[tokio::main]
async fn main() {
let api_key: String = String::from("Your MailerLite API Key");
let mailerlite: MailerLite = MailerLite::new(api_key);
let id: String = String::from("Your Group ID");
let data: Data = Data::new().add("name", "Dummy Group");
let response: Response = mailerlite.group().update(id, data.clone()).await;
println!("{:#?}", response);
}
Delete a group
You can test out the example by running it with the command provided.
cargo run --package mailerlite-rs --example delete_group
use mailerlite_rs::{response::Response, MailerLite};
#[tokio::main]
async fn main() {
let api_key: String = String::from("Your MailerLite API Key");
let mailerlite: MailerLite = MailerLite::new(api_key);
let id: String = String::from("Your Group ID");
let response: Response = mailerlite.group().delete(id).await;
println!("{:#?}", response);
}
Get subscribers from a group
You can test out the example by running it with the command provided.
cargo run --package mailerlite-rs --example get_group_subscribers
use mailerlite_rs::{parameter::Parameter, response::Response, MailerLite};
#[tokio::main]
async fn main() {
let api_key: String = String::from("Your MailerLite API Key");
let mailerlite: MailerLite = MailerLite::new(api_key);
let id: String = String::from("Your Group ID");
let parameter: Parameter = Parameter::new().add("filter[status]", "unsubscribed");
let response: Response = mailerlite.group().get_subscribers(id, parameter.clone()).await;
println!("{:#?}", response);
}
Assign subscriber to a group
You can test out the example by running it with the command provided.
cargo run --package mailerlite-rs --example assign_subscriber_to_group
use mailerlite_rs::{response::Response, MailerLite};
#[tokio::main]
async fn main() {
let api_key: String = String::from("Your MailerLite API Key");
let mailerlite: MailerLite = MailerLite::new(api_key);
let group_id: String = String::from("Your Group ID");
let subscriber_id: String = String::from("Your Subscriber ID");
let response: Response = mailerlite.group().assign_subscriber(group_id, subscriber_id).await;
println!("{:#?}", response);
}
Unassign subscriber from a group
You can test out the example by running it with the command provided.
cargo run --package mailerlite-rs --example unassign_subscriber_from_group
use mailerlite_rs::{response::Response, MailerLite};
#[tokio::main]
async fn main() {
let api_key: String = String::from("Your MailerLite API Key");
let mailerlite: MailerLite = MailerLite::new(api_key);
let group_id: String = String::from("Your Group ID");
let subscriber_id: String = String::from("Your Subscriber ID");
let response: Response = mailerlite.group().unassign_subscriber(group_id, subscriber_id).await;
println!("{:#?}", response);
}
Segments
Get a list of segments
You can test out the example by running it with the command provided.
cargo run --package mailerlite-rs --example get_segments
use mailerlite_rs::{parameter::Parameter, response::Response, MailerLite};
#[tokio::main]
async fn main() {
let api_key: String = String::from("Your MailerLite API Key");
let mailerlite: MailerLite = MailerLite::new(api_key);
let parameter: Parameter = Parameter::new().add("page", "1");
let response: Response = mailerlite.segment().get(parameter.clone()).await;
println!("{:#?}", response);
}
Update a segment
You can test out the example by running it with the command provided.
cargo run --package mailerlite-rs --example update_segment
use mailerlite_rs::{data::Data, response::Response, MailerLite};
#[tokio::main]
async fn main() {
let api_key: String = String::from("Your MailerLite API Key");
let mailerlite: MailerLite = MailerLite::new(api_key);
let id: String = String::from("Your Segment ID");
let data: Data = Data::new().add("name", "Dummy Segment");
let response: Response = mailerlite.segment().update(id, data.clone()).await;
println!("{:#?}", response);
}
Delete a segment
You can test out the example by running it with the command provided.
cargo run --package mailerlite-rs --example delete_segment
use mailerlite_rs::{response::Response, MailerLite};
#[tokio::main]
async fn main() {
let api_key: String = String::from("Your MailerLite API Key");
let mailerlite: MailerLite = MailerLite::new(api_key);
let id: String = String::from("Your Segment ID");
let response: Response = mailerlite.segment().delete(id).await;
println!("{:#?}", response);
}
Get subscribers from a segment
You can test out the example by running it with the command provided.
cargo run --package mailerlite-rs --example get_segment_subscribers
use mailerlite_rs::{parameter::Parameter, response::Response, MailerLite};
#[tokio::main]
async fn main() {
let api_key: String = String::from("Your MailerLite API Key");
let mailerlite: MailerLite = MailerLite::new(api_key);
let id: String = String::from("Your Segment ID");
let parameter: Parameter = Parameter::new().add("filter[status]", "unsubscribed");
let response: Response = mailerlite.segment().get_subscribers(id, parameter.clone()).await;
println!("{:#?}", response);
}
Fields
Get a list of fields
You can test out the example by running it with the command provided.
cargo run --package mailerlite-rs --example get_fields
use mailerlite_rs::{parameter::Parameter, response::Response, MailerLite};
#[tokio::main]
async fn main() {
let api_key: String = String::from("Your MailerLite API Key");
let mailerlite: MailerLite = MailerLite::new(api_key);
let parameter: Parameter = Parameter::new().add("filter[type]", "number");
let response: Response = mailerlite.field().get(parameter.clone()).await;
println!("{:#?}", response);
}
Create a field
You can test out the example by running it with the command provided.
cargo run --package mailerlite-rs --example create_field
use mailerlite_rs::{data::Data, response::Response, MailerLite};
#[tokio::main]
async fn main() {
let api_key: String = String::from("Your MailerLite API Key");
let mailerlite: MailerLite = MailerLite::new(api_key);
let data: Data = Data::new().add("name", "Dummy Field").add("type", "text");
let response: Response = mailerlite.field().create(data.clone()).await;
println!("{:#?}", response);
}
Update a field
You can test out the example by running it with the command provided.
cargo run --package mailerlite-rs --example update_field
use mailerlite_rs::{data::Data, response::Response, MailerLite};
#[tokio::main]
async fn main() {
let api_key: String = String::from("Your MailerLite API Key");
let mailerlite: MailerLite = MailerLite::new(api_key);
let id: String = String::from("Your Field ID");
let data: Data = Data::new().add("name", "Dummy Field");
let response: Response = mailerlite.field().update(id, data.clone()).await;
println!("{:#?}", response);
}
Delete a field
You can test out the example by running it with the command provided.
cargo run --package mailerlite-rs --example delete_field
use mailerlite_rs::{response::Response, MailerLite};
#[tokio::main]
async fn main() {
let api_key: String = String::from("Your MailerLite API Key");
let mailerlite: MailerLite = MailerLite::new(api_key);
let id: String = String::from("Your Field ID");
let response: Response = mailerlite.field().delete(id).await;
println!("{:#?}", response);
}
Forms
Get a list of forms
You can test out the example by running it with the command provided.
cargo run --package mailerlite-rs --example get_forms
use mailerlite_rs::{parameter::Parameter, response::Response, MailerLite};
#[tokio::main]
async fn main() {
let api_key: String = String::from("Your MailerLite API Key");
let mailerlite: MailerLite = MailerLite::new(api_key);
let form_type: String = String::from("Your Form Type");
let parameter: Parameter = Parameter::new().add("sort", "created_at");
let response: Response = mailerlite.form().get(form_type, parameter.clone()).await;
println!("{:#?}", response);
}
Get a form
You can test out the example by running it with the command provided.
cargo run --package mailerlite-rs --example find_form
use mailerlite_rs::{response::Response, MailerLite};
#[tokio::main]
async fn main() {
let api_key: String = String::from("Your MailerLite API Key");
let mailerlite: MailerLite = MailerLite::new(api_key);
let id: String = String::from("Your Form ID");
let response: Response = mailerlite.form().find(id).await;
println!("{:#?}", response);
}
Update a form
You can test out the example by running it with the command provided.
cargo run --package mailerlite-rs --example update_form
use mailerlite_rs::{data::Data, response::Response, MailerLite};
#[tokio::main]
async fn main() {
let api_key: String = String::from("Your MailerLite API Key");
let mailerlite: MailerLite = MailerLite::new(api_key);
let id: String = String::from("Your Group ID");
let data: Data = Data::new().add("name", "Dummy Group");
let response: Response = mailerlite.group().update(id, data.clone()).await;
println!("{:#?}", response);
}
Delete a form
You can test out the example by running it with the command provided.
cargo run --package mailerlite-rs --example delete_form
use mailerlite_rs::{response::Response, MailerLite};
#[tokio::main]
async fn main() {
let api_key: String = String::from("Your MailerLite API Key");
let mailerlite: MailerLite = MailerLite::new(api_key);
let id: String = String::from("Your Form ID");
let response: Response = mailerlite.form().delete(id).await;
println!("{:#?}", response);
}
Get subscribers who signed up to a specific form
You can test out the example by running it with the command provided.
cargo run --package mailerlite-rs --example get_form_subscribers
use mailerlite_rs::{parameter::Parameter, response::Response, MailerLite};
#[tokio::main]
async fn main() {
let api_key: String = String::from("Your MailerLite API Key");
let mailerlite: MailerLite = MailerLite::new(api_key);
let id: String = String::from("Your Form ID");
let parameter: Parameter = Parameter::new().add("filter[status]", "unsubscribed");
let response: Response = mailerlite.form().get_subscribers(id, parameter.clone()).await;
println!("{:#?}", response);
}
Automations
Get a list of automations
You can test out the example by running it with the command provided.
cargo run --package mailerlite-rs --example get_automations
use mailerlite_rs::{parameter::Parameter, response::Response, MailerLite};
#[tokio::main]
async fn main() {
let api_key: String = String::from("Your MailerLite API Key");
let mailerlite: MailerLite = MailerLite::new(api_key);
let parameter: Parameter = Parameter::new().add("filter[enabled]", "true");
let response: Response = mailerlite.automation().get(parameter.clone()).await;
println!("{:#?}", response);
}
Get a automation
You can test out the example by running it with the command provided.
cargo run --package mailerlite-rs --example find_automation
use mailerlite_rs::{response::Response, MailerLite};
#[tokio::main]
async fn main() {
let api_key: String = String::from("Your MailerLite API Key");
let mailerlite: MailerLite = MailerLite::new(api_key);
let id: String = String::from("Your Automation ID");
let response: Response = mailerlite.automation().find(id).await;
println!("{:#?}", response);
}
Get the subscribers activity for an automation
You can test out the example by running it with the command provided.
cargo run --package mailerlite-rs --example get_subscribers_activity_for_automation
use mailerlite_rs::{parameter::Parameter, response::Response, MailerLite};
#[tokio::main]
async fn main() {
let api_key: String = String::from("Your MailerLite API Key");
let mailerlite: MailerLite = MailerLite::new(api_key);
let id: String = String::from("Your Automation ID");
let parameter: Parameter = Parameter::new().add("filter[status]", "completed");
let response: Response = mailerlite.automation().subscribers_activity(id, parameter.clone()).await;
println!("{:#?}", response);
}
Webhooks
Get a list of webhooks
You can test out the example by running it with the command provided.
cargo run --package mailerlite-rs --example get_webhooks
use mailerlite_rs::{parameter::Parameter, response::Response, MailerLite};
#[tokio::main]
async fn main() {
let api_key: String = String::from("Your MailerLite API Key");
let mailerlite: MailerLite = MailerLite::new(api_key);
let parameter: Parameter = Parameter::new();
let response: Response = mailerlite.webhook().get(parameter.clone()).await;
println!("{:#?}", response);
}
Get a webhook
You can test out the example by running it with the command provided.
cargo run --package mailerlite-rs --example find_webhook
use mailerlite_rs::{response::Response, MailerLite};
#[tokio::main]
async fn main() {
let api_key: String = String::from("Your MailerLite API Key");
let mailerlite: MailerLite = MailerLite::new(api_key);
let id: String = String::from("Your Webhook ID");
let response: Response = mailerlite.webhook().find(id).await;
println!("{:#?}", response);
}
Create a webhook
You can test out the example by running it with the command provided.
cargo run --package mailerlite-rs --example create_webhook
use mailerlite_rs::{data::Data, response::Response, MailerLite};
#[tokio::main]
async fn main() {
let api_key: String = String::from("Your MailerLite API Key");
let mailerlite: MailerLite = MailerLite::new(api_key);
let data: Data = Data::new()
.add("name", "Dummy Webhook")
.add("events[]", "subscriber.created")
.add("url", "https://www.cartwright.info/eligendi-soluta-corporis-in-quod-ullam");
let response: Response = mailerlite.webhook().create(data.clone()).await;
println!("{:#?}", response);
}
Update a webhook
You can test out the example by running it with the command provided.
cargo run --package mailerlite-rs --example update_webhook
use mailerlite_rs::{data::Data, response::Response, MailerLite};
#[tokio::main]
async fn main() {
let api_key: String = String::from("Your MailerLite API Key");
let mailerlite: MailerLite = MailerLite::new(api_key);
let id: String = String::from("Your Webhook ID");
let data: Data = Data::new().add("name", "Dummy Webhook");
let response: Response = mailerlite.webhook().update(id, data.clone()).await;
println!("{:#?}", response);
}
Delete a webhook
You can test out the example by running it with the command provided.
cargo run --package mailerlite-rs --example delete_webhook
use mailerlite_rs::{response::Response, MailerLite};
#[tokio::main]
async fn main() {
let api_key: String = String::from("Your MailerLite API Key");
let mailerlite: MailerLite = MailerLite::new(api_key);
let id: String = String::from("Your Webhook ID");
let response: Response = mailerlite.webhook().delete(id).await;
println!("{:#?}", response);
}
Batch
Create a batch
You can test out the example by running it with the command provided.
cargo run --package mailerlite-rs --example create_batch
use mailerlite_rs::{data::Data, response::Response, MailerLite};
#[tokio::main]
async fn main() {
let api_key: String = String::from("Your MailerLite API Key");
let mailerlite: MailerLite = MailerLite::new(api_key);
let data: Data = Data::new()
.add("requests[0][method]", "POST")
.add("requests[0][path]", "api/subscribers")
.add("requests[0][body][email]", "dummy@example.com");
let response: Response = mailerlite.batch().create(data.clone()).await;
println!("{:#?}", response);
}
Timezones
Get a list of timezones
You can test out the example by running it with the command provided.
cargo run --package mailerlite-rs --example get_timezones
use mailerlite_rs::{response::Response, MailerLite};
#[tokio::main]
async fn main() {
let api_key: String = String::from("Your MailerLite API Key");
let mailerlite: MailerLite = MailerLite::new(api_key);
let response: Response = mailerlite.timezone().get().await;
println!("{:#?}", response);
}
Campaign languages
Get a list of campaign languages
You can test out the example by running it with the command provided.
cargo run --package mailerlite-rs --example get_campaign_languages
use mailerlite_rs::{response::Response, MailerLite};
#[tokio::main]
async fn main() {
let api_key: String = String::from("Your MailerLite API Key");
let mailerlite: MailerLite = MailerLite::new(api_key);
let response: Response = mailerlite.campaign().languages().await;
println!("{:#?}", response);
}
Dependencies
~11–25MB
~348K SLoC