Skip to content

Commit 56355c8

Browse files
authored
Merge pull request #28 from rudderlabs/release/1.1.4
chore: pull release/1.1.4 into master
2 parents c268002 + 20528c1 commit 56355c8

File tree

4 files changed

+49
-12
lines changed

4 files changed

+49
-12
lines changed

Diff for: CHANGELOG.md

+7
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
# Changelog
22

3+
## [1.1.4]
4+
5+
### Bug Fixes
6+
7+
- context precedence ([#27](https://github.com/rudderlabs/rudder-sdk-rust/pull/27))
8+
- context override in batch ([#25](https://github.com/rudderlabs/rudder-sdk-rust/pull/25))
9+
310
## [1.1.3]
411

512
### Bug Fixes

Diff for: Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "rudderanalytics"
3-
version = "1.1.3"
3+
version = "1.1.4"
44
edition = "2018"
55
readme = "README.md"
66
description = "The RudderStack Rust SDK is an analytics client to track events from your Rust application"

Diff for: src/main.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ use std::io;
88
fn main() -> Result<(), Box<dyn Error>> {
99
env_logger::init();
1010
let matches = App::new("Rudderanalytics")
11-
.version("1.1.3")
11+
.version("1.1.4")
1212
.about("Sends analytics events to RudderStack")
1313
.setting(AppSettings::ColoredHelp)
1414
.arg(

Diff for: src/utils.rs

+40-10
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ use chrono::prelude::*;
1515

1616
// constants and reserved keywords
1717
const NAME: &str = "RudderStack Rust SDK";
18-
const VERSION: &str = "1.1.3";
18+
const VERSION: &str = "1.1.4";
1919
static RESERVED_KEYS : [&str;1] = ["library"];
2020
const CHANNEL :&str = "server";
2121

@@ -237,8 +237,8 @@ pub fn parse_alias(msg:&Alias)-> Ruddermessage{
237237

238238
// modify batch payload to rudder format
239239
pub fn parse_batch(msg:&Batch)-> Ruddermessage{
240-
let mut modified_context = get_default_context();
241-
merge(&mut modified_context, msg.context.clone().unwrap_or(json!({})));
240+
let default_context = get_default_context();
241+
let batch_context = msg.context.clone().unwrap_or(json!({}));
242242

243243
let original_timestamp;
244244
let sent_at = Utc::now();
@@ -253,6 +253,11 @@ pub fn parse_batch(msg:&Batch)-> Ruddermessage{
253253
for i in &msg.batch {
254254
match i {
255255
BatchMessage::Identify(a_) =>{
256+
let mut event_context: Value = a_.context.clone().unwrap_or(json!({}));
257+
let mut final_context: Value = batch_context.clone();
258+
merge(&mut final_context, event_context.clone());
259+
merge(&mut final_context, default_context.clone());
260+
256261
batch.push(Rudderbatchmessage::Identify(Rudderidentify
257262
{
258263
user_id: a_.user_id.clone(),
@@ -261,12 +266,17 @@ pub fn parse_batch(msg:&Batch)-> Ruddermessage{
261266
original_timestamp: original_timestamp,
262267
sent_at: Some(sent_at),
263268
integrations: a_.integrations.clone(),
264-
context: Some(modified_context.clone()),
269+
context: Some(final_context),
265270
r#type: String::from("identify"),
266271
channel: CHANNEL.to_string()
267272
}));
268273
},
269274
BatchMessage::Track(a_) =>{
275+
let mut event_context: Value = a_.context.clone().unwrap_or(json!({}));
276+
let mut final_context: Value = batch_context.clone();
277+
merge(&mut final_context, event_context.clone());
278+
merge(&mut final_context, default_context.clone());
279+
270280
batch.push(Rudderbatchmessage::Track(
271281
Ruddertrack {
272282
user_id: a_.user_id.clone(),
@@ -276,13 +286,18 @@ pub fn parse_batch(msg:&Batch)-> Ruddermessage{
276286
original_timestamp: original_timestamp,
277287
sent_at: Some(sent_at),
278288
integrations: a_.integrations.clone(),
279-
context: Some(modified_context.clone()),
289+
context: Some(final_context),
280290
r#type: String::from("track"),
281291
channel: CHANNEL.to_string()
282292
}
283293
));
284294
},
285295
BatchMessage::Page(a_) =>{
296+
let mut event_context: Value = a_.context.clone().unwrap_or(json!({}));
297+
let mut final_context: Value = batch_context.clone();
298+
merge(&mut final_context, event_context.clone());
299+
merge(&mut final_context, default_context.clone());
300+
286301
batch.push(Rudderbatchmessage::Page(
287302
Rudderpage {
288303
user_id: a_.user_id.clone(),
@@ -292,13 +307,18 @@ pub fn parse_batch(msg:&Batch)-> Ruddermessage{
292307
original_timestamp: original_timestamp,
293308
sent_at: Some(sent_at),
294309
integrations: a_.integrations.clone(),
295-
context: Some(modified_context.clone()),
310+
context: Some(final_context),
296311
r#type: String::from("page"),
297312
channel: CHANNEL.to_string()
298313
}
299314
));
300315
},
301316
BatchMessage::Screen(a_) =>{
317+
let mut event_context: Value = a_.context.clone().unwrap_or(json!({}));
318+
let mut final_context: Value = batch_context.clone();
319+
merge(&mut final_context, event_context.clone());
320+
merge(&mut final_context, default_context.clone());
321+
302322
batch.push(Rudderbatchmessage::Screen(
303323
Rudderscreen {
304324
user_id: a_.user_id.clone(),
@@ -308,13 +328,18 @@ pub fn parse_batch(msg:&Batch)-> Ruddermessage{
308328
original_timestamp: original_timestamp,
309329
sent_at: Some(sent_at),
310330
integrations: a_.integrations.clone(),
311-
context: Some(modified_context.clone()),
331+
context: Some(final_context),
312332
r#type: String::from("screen"),
313333
channel: CHANNEL.to_string()
314334
}
315335
));
316336
},
317337
BatchMessage::Group(a_) =>{
338+
let mut event_context: Value = a_.context.clone().unwrap_or(json!({}));
339+
let mut final_context: Value = batch_context.clone();
340+
merge(&mut final_context, event_context.clone());
341+
merge(&mut final_context, default_context.clone());
342+
318343
batch.push(Rudderbatchmessage::Group(
319344
Ruddergroup {
320345
user_id: a_.user_id.clone(),
@@ -324,13 +349,18 @@ pub fn parse_batch(msg:&Batch)-> Ruddermessage{
324349
original_timestamp: original_timestamp,
325350
sent_at: Some(sent_at),
326351
integrations: a_.integrations.clone(),
327-
context: Some(modified_context.clone()),
352+
context: Some(final_context),
328353
r#type: String::from("group"),
329354
channel: CHANNEL.to_string()
330355
}
331356
));
332357
},
333358
BatchMessage::Alias(a_) =>{
359+
let mut event_context: Value = a_.context.clone().unwrap_or(json!({}));
360+
let mut final_context: Value = batch_context.clone();
361+
merge(&mut final_context, event_context.clone());
362+
merge(&mut final_context, default_context.clone());
363+
334364
batch.push(Rudderbatchmessage::Alias(
335365
Rudderalias {
336366
user_id: a_.user_id.clone(),
@@ -339,7 +369,7 @@ pub fn parse_batch(msg:&Batch)-> Ruddermessage{
339369
original_timestamp: original_timestamp,
340370
sent_at: Some(sent_at),
341371
integrations: a_.integrations.clone(),
342-
context: Some(modified_context.clone()),
372+
context: Some(final_context),
343373
r#type: String::from("alias"),
344374
channel: CHANNEL.to_string()
345375
}
@@ -352,7 +382,7 @@ pub fn parse_batch(msg:&Batch)-> Ruddermessage{
352382
Rudderbatch {
353383
batch: batch,
354384
integrations: msg.integrations.clone(),
355-
context: Some(modified_context),
385+
context: Some(batch_context),
356386
r#type: String::from("batch"),
357387
original_timestamp: original_timestamp,
358388
sent_at: Some(sent_at),

0 commit comments

Comments
 (0)