1use rudderanalytics::client::RudderAnalytics;
2use rudderanalytics::message::{
3 Alias, Batch, BatchMessage, Group, Identify, Message, Page, Screen, Track,
4};
5use serde_json::json;
6fn main() {
7 let rudder_analytics = RudderAnalytics::load(
8 "YOUR_WRITE_KEY".to_string(),
9 "YOUR_DATA_PLANE_URL".to_string(),
10 );
11 let identify_msg = Message::Identify(Identify {
12 user_id: Some("sample_user_id".to_string()),
13 traits: Some(json!({
14 "name": "Test User",
15 "email": "test@user.com",
16 })),
17 ..Default::default()
18 });
19 let track_msg = Message::Track(Track {
20 user_id: Some("sample_user_id".to_string()),
21 event: "Track Event".to_owned(),
22 properties: Some(json!({
23 "some property": "some value",
24 "some other property": "some other value",
25 })),
26 ..Default::default()
27 });
28 let page_msg = Message::Page(Page {
29 user_id: Some("sample_user_id".to_string()),
30 name: "Cart".to_owned(),
31 properties: Some(json!({
32 "some property": "some value",
33 "some other property": "some other value",
34 })),
35 ..Default::default()
36 });
37 let group_msg = Message::Group(Group {
38 user_id: Some("sample_user_id".to_string()),
39 group_id: "sample_group_id".to_owned(),
40 traits: Some(json!({
41 "some property": "some value",
42 "some other property": "some other value",
43 })),
44 ..Default::default()
45 });
46 let screen_msg = Message::Screen(Screen {
47 user_id: Some("sample_user_id".to_string()),
48 name: "sample screen".to_owned(),
49 properties: Some(json!({
50 "some property": "some value",
51 "some other property": "some other value",
52 })),
53 ..Default::default()
54 });
55 let alias_msg = Message::Alias(Alias {
56 user_id: "sample_user_id".to_owned(),
57 previous_id: "sample_previous_user_id".to_owned(),
58 traits: Some(json!({
59 "some property": "some value",
60 "some other property": "some other value",
61 })),
62 ..Default::default()
63 });
64 let batch_msg = Message::Batch(Batch {
65 batch: vec![
66 BatchMessage::Track(Track {
67 user_id: Some("foo".to_string()),
68 event: "Foo".to_owned(),
69 properties: Some(json!({})),
70 ..Default::default()
71 }),
72 BatchMessage::Track(Track {
73 user_id: Some("bar".to_string()),
74 event: "Bar".to_owned(),
75 properties: Some(json!({})),
76 ..Default::default()
77 }),
78 BatchMessage::Track(Track {
79 user_id: Some("baz".to_string()),
80 event: "Baz".to_owned(),
81 properties: Some(json!({})),
82 ..Default::default()
83 }),
84 ],
85 context: Some(json!({
86 "foo": "bar",
87 })),
88 ..Default::default()
89 });
90
91 rudder_analytics
92 .send(&identify_msg)
93 .expect("Identify call failed to send data to Rudderstack");
94
95 rudder_analytics
96 .send(&track_msg)
97 .expect("Track call failed to send data to Rudderstack");
98
99 rudder_analytics
100 .send(&page_msg)
101 .expect("Page call failed to send data to Rudderstack");
102
103 rudder_analytics
104 .send(&group_msg)
105 .expect("Group call failed to send data to Rudderstack");
106
107 rudder_analytics
108 .send(&screen_msg)
109 .expect("Screen call failed to send data to Rudderstack");
110
111 rudder_analytics
112 .send(&alias_msg)
113 .expect("Alias call failed to send data to Rudderstack");
114
115 rudder_analytics
116 .send(&batch_msg)
117 .expect("Batch call failed to send data to Rudderstack");
118}