Skip to content

AntonMaltsev/cabstore

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Test:

curl --header "Content-Type:application/json" --header "Accept: application/json" --request POST --data '{"Items": "VOUCHER,TSHIRT,MUG"}' http://localhost:8080/store/totalprice

curl --header "Content-Type:application/json" --header "Accept: application/json" --request POST --data '{"Items": "VOUCHER,TSHIRT,VOUCHER"}' http://localhost:8080/store/totalprice curl --header "Content-Type:application/json" --header "Accept: application/json" --request POST --data '{"Items": "TSHIRT,TSHIRT,TSHIRT,VOUCHER,TSHIRT"}' http://localhost:8080/store/totalprice curl --header "Content-Type:application/json" --header "Accept: application/json" --request POST --data '{"Items": "VOUCHER,TSHIRT,VOUCHER,VOUCHER,MUG,TSHIRT,TSHIRT"}' http://localhost:8080/store/totalprice

==============================================================

Task: https://gist.github.com/patriciagao/377dca8920ba3b1fc8da

Besides providing exceptional transportation services, Cabify also runs a physical store which sells (only) 3 products:

Code | Name | Price

VOUCHER | Cabify Voucher | 5.00€ TSHIRT | Cabify T-Shirt | 20.00€ MUG | Cafify Coffee Mug | 7.50€ Various departments have insisted on the following discounts:

The marketing department believes in 2-for-1 promotions (buy two of the same product, get one free), and would like for there to be a 2-for-1 special on VOUCHER items.

The CFO insists that the best way to increase sales is with discounts on bulk purchases (buying x or more of a product, the price of that product is reduced), and demands that if you buy 3 or more TSHIRT items, the price per unit should be 19.00€.

Cabify's checkout process allows for items to be scanned in any order, and should return the total amount to be paid. The interface for the checkout process looks like this (ruby):

co = Checkout.new(pricing_rules) co.scan("VOUCHER") co.scan("VOUCHER") co.scan("TSHIRT") price = co.total Using ruby (>= 2.0), implement a checkout process that fulfills the requirements.

Examples:

Items: VOUCHER, TSHIRT, MUG Total: 32.50€

Items: VOUCHER, TSHIRT, VOUCHER Total: 25.00€

Items: TSHIRT, TSHIRT, TSHIRT, VOUCHER, TSHIRT Total: 81.00€

Items: VOUCHER, TSHIRT, VOUCHER, VOUCHER, MUG, TSHIRT, TSHIRT Total: 74.50€= 10 + 57 + 7.5=74.5

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published