Skip to content

Commit e30e896

Browse files
committed
Format
1 parent 9cfbda7 commit e30e896

2 files changed

Lines changed: 36 additions & 44 deletions

File tree

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,19 @@
11
use shopify_function::prelude::*;
22
use shopify_function::Result;
33

4-
// [START discount-function.run.delivery]
54
#[shopify_function_target(
65
query_path = "src/cart_delivery_options_discounts_generate_run.graphql",
76
schema_path = "schema.graphql"
87
)]
98
fn cart_delivery_options_discounts_generate_run(
10-
input: cart_delivery_options_discounts_generate_run::input::ResponseData,
11-
) -> Result<cart_delivery_options_discounts_generate_run::output::CartDeliveryOptionsDiscountsGenerateRunResult>{
9+
input: input::ResponseData,
10+
) -> Result<output::CartDeliveryOptionsDiscountsGenerateRunResult> {
1211
let has_shipping_discount_class = input
1312
.discount
1413
.discount_classes
15-
.contains(&cart_delivery_options_discounts_generate_run::input::DiscountClass::SHIPPING);
14+
.contains(&input::DiscountClass::SHIPPING);
1615
if !has_shipping_discount_class {
17-
return Ok(cart_delivery_options_discounts_generate_run::output::CartDeliveryOptionsDiscountsGenerateRunResult { operations: vec![] });
16+
return Ok(output::CartDeliveryOptionsDiscountsGenerateRunResult { operations: vec![] });
1817
}
1918

2019
let first_delivery_group = input
@@ -23,17 +22,17 @@ fn cart_delivery_options_discounts_generate_run(
2322
.first()
2423
.ok_or("No delivery groups found")?;
2524

26-
Ok(cart_delivery_options_discounts_generate_run::output::CartDeliveryOptionsDiscountsGenerateRunResult {
27-
operations: vec![cart_delivery_options_discounts_generate_run::output::DeliveryOperation::DeliveryDiscountsAdd(
28-
cart_delivery_options_discounts_generate_run::output::DeliveryDiscountsAddOperation {
29-
selection_strategy: cart_delivery_options_discounts_generate_run::output::DeliveryDiscountSelectionStrategy::ALL,
30-
candidates: vec![cart_delivery_options_discounts_generate_run::output::DeliveryDiscountCandidate {
31-
targets: vec![cart_delivery_options_discounts_generate_run::output::DeliveryDiscountCandidateTarget::DeliveryGroup(
32-
cart_delivery_options_discounts_generate_run::output::DeliveryGroupTarget {
25+
Ok(output::CartDeliveryOptionsDiscountsGenerateRunResult {
26+
operations: vec![output::DeliveryOperation::DeliveryDiscountsAdd(
27+
output::DeliveryDiscountsAddOperation {
28+
selection_strategy: output::DeliveryDiscountSelectionStrategy::ALL,
29+
candidates: vec![output::DeliveryDiscountCandidate {
30+
targets: vec![output::DeliveryDiscountCandidateTarget::DeliveryGroup(
31+
output::DeliveryGroupTarget {
3332
id: first_delivery_group.id.clone(),
3433
},
3534
)],
36-
value: cart_delivery_options_discounts_generate_run::output::DeliveryDiscountCandidateValue::Percentage(cart_delivery_options_discounts_generate_run::output::Percentage {
35+
value: output::DeliveryDiscountCandidateValue::Percentage(output::Percentage {
3736
value: Decimal(100.0),
3837
}),
3938
message: Some("FREE DELIVERY".to_string()),
@@ -43,4 +42,3 @@ fn cart_delivery_options_discounts_generate_run(
4342
)],
4443
})
4544
}
46-
// [END discount-function.run.delivery]

discounts/rust/discount/default/src/cart_lines_discounts_generate_run.rs

Lines changed: 24 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ use shopify_function::Result;
66
schema_path = "schema.graphql"
77
)]
88
fn cart_lines_discounts_generate_run(
9-
input: cart_lines_discounts_generate_run::input::ResponseData,
10-
) -> Result<cart_lines_discounts_generate_run::output::CartLinesDiscountsGenerateRunResult> {
9+
input: input::ResponseData,
10+
) -> Result<output::CartLinesDiscountsGenerateRunResult> {
1111
let max_cart_line = input
1212
.cart
1313
.lines
@@ -24,35 +24,31 @@ fn cart_lines_discounts_generate_run(
2424
let has_order_discount_class = input
2525
.discount
2626
.discount_classes
27-
.contains(&cart_lines_discounts_generate_run::input::DiscountClass::ORDER);
27+
.contains(&input::DiscountClass::ORDER);
2828
let has_product_discount_class = input
2929
.discount
3030
.discount_classes
31-
.contains(&cart_lines_discounts_generate_run::input::DiscountClass::PRODUCT);
31+
.contains(&input::DiscountClass::PRODUCT);
3232

3333
if !has_order_discount_class && !has_product_discount_class {
34-
return Ok(
35-
cart_lines_discounts_generate_run::output::CartLinesDiscountsGenerateRunResult {
36-
operations: vec![],
37-
},
38-
);
34+
return Ok(output::CartLinesDiscountsGenerateRunResult { operations: vec![] });
3935
}
4036

4137
let mut operations = vec![];
4238

4339
// Check if the discount has the ORDER class
4440
if has_order_discount_class {
45-
operations.push(cart_lines_discounts_generate_run::output::CartOperation::OrderDiscountsAdd(
46-
cart_lines_discounts_generate_run::output::OrderDiscountsAddOperation {
47-
selection_strategy: cart_lines_discounts_generate_run::output::OrderDiscountSelectionStrategy::FIRST,
48-
candidates: vec![cart_lines_discounts_generate_run::output::OrderDiscountCandidate {
49-
targets: vec![cart_lines_discounts_generate_run::output::OrderDiscountCandidateTarget::OrderSubtotal(
50-
cart_lines_discounts_generate_run::output::OrderSubtotalTarget {
41+
operations.push(output::CartOperation::OrderDiscountsAdd(
42+
output::OrderDiscountsAddOperation {
43+
selection_strategy: output::OrderDiscountSelectionStrategy::FIRST,
44+
candidates: vec![output::OrderDiscountCandidate {
45+
targets: vec![output::OrderDiscountCandidateTarget::OrderSubtotal(
46+
output::OrderSubtotalTarget {
5147
excluded_cart_line_ids: vec![],
5248
},
5349
)],
5450
message: Some("10% OFF ORDER".to_string()),
55-
value: cart_lines_discounts_generate_run::output::OrderDiscountCandidateValue::Percentage(cart_lines_discounts_generate_run::output::Percentage {
51+
value: output::OrderDiscountCandidateValue::Percentage(output::Percentage {
5652
value: Decimal(10.0),
5753
}),
5854
conditions: None,
@@ -64,16 +60,18 @@ fn cart_lines_discounts_generate_run(
6460

6561
// Check if the discount has the PRODUCT class
6662
if has_product_discount_class {
67-
operations.push(cart_lines_discounts_generate_run::output::CartOperation::ProductDiscountsAdd(
68-
cart_lines_discounts_generate_run::output::ProductDiscountsAddOperation {
69-
selection_strategy: cart_lines_discounts_generate_run::output::ProductDiscountSelectionStrategy::FIRST,
70-
candidates: vec![cart_lines_discounts_generate_run::output::ProductDiscountCandidate {
71-
targets: vec![cart_lines_discounts_generate_run::output::ProductDiscountCandidateTarget::CartLine(cart_lines_discounts_generate_run::output::CartLineTarget {
72-
id: max_cart_line.id.clone(),
73-
quantity: None,
74-
})],
63+
operations.push(output::CartOperation::ProductDiscountsAdd(
64+
output::ProductDiscountsAddOperation {
65+
selection_strategy: output::ProductDiscountSelectionStrategy::FIRST,
66+
candidates: vec![output::ProductDiscountCandidate {
67+
targets: vec![output::ProductDiscountCandidateTarget::CartLine(
68+
output::CartLineTarget {
69+
id: max_cart_line.id.clone(),
70+
quantity: None,
71+
},
72+
)],
7573
message: Some("20% OFF PRODUCT".to_string()),
76-
value: cart_lines_discounts_generate_run::output::ProductDiscountCandidateValue::Percentage(cart_lines_discounts_generate_run::output::Percentage {
74+
value: output::ProductDiscountCandidateValue::Percentage(output::Percentage {
7775
value: Decimal(20.0),
7876
}),
7977
associated_discount_code: None,
@@ -82,9 +80,5 @@ fn cart_lines_discounts_generate_run(
8280
));
8381
}
8482

85-
Ok(
86-
cart_lines_discounts_generate_run::output::CartLinesDiscountsGenerateRunResult {
87-
operations,
88-
},
89-
)
83+
Ok(output::CartLinesDiscountsGenerateRunResult { operations })
9084
}

0 commit comments

Comments
 (0)