bambooasia-validation v1.1.6
BambooAsia Validation Library
BambooAsia Validation is a library used to validate data from the BambooAsia.com website.
Installation
git clone https://s-2@bitbucket.org/hiredevs/bambooasia-validation.git
cd ./bambooasia-validation
In the bambooasia-validation directory run:
npm install
npm link
In the bambooasia main directory (website) run:
npm link bambooasia-validation
Usage
import { ProfileValidator } from 'bambooasia-validation'
<Formik
...
validate={ values => {
let validation = ProductValidator.doValidation(values)
if( validation.fails() ) {
...
Functions
| ProfileValidator | Required Fields: (password|passwordCheck|number|name) | | PickupValidator | Required Fields: (date) | | DeliveryValidator | Required Fields: (date) | | OrderValidator | Required Fields: (total|subTotal|tip|taxPercentage|bagCharge|surcharge|deliveryCharge) |
Contributing
Pull requests are welcome. For major changes, please message me on Slack or bitbucket.
Please make sure to update tests as appropriate.
License
Bamboo Asia order validation and cart/order total calculation library
Input Product inventory with pricing and custom config options (TBD pulled from brain) Fullfillment options (delivery address or pickup locations) Product ( w/custom config options chosen and catering flag if catering) Cart (list of items - used to determine if allowed to go checkout and build an order) Order (contains items, order totals, taxes+fees, credit card nonce)
Output Fullfillment Validations
Delivery - valid delivery date/time (within opening hours including holiday closures) and enough lead time for delivery - delivery zone valid (not outside available zones and minimum order amount depending on delivery zone)
Pickup - valid store location - valid date/time (within opening hours including holiday closures) and enough lead time for delivery
Add to cart validations: - catering item needs hedcount and protein/veggie count to be >= than headcount
Cart Validations to proceed to checkout - minimum total for delivery zone - at least one item - fullfillment chosen and valid
Order Validations - items pricing adds up to rules in product inventory and custom configs - total matches up including taxes has delivery fee if delivery - credit card nonce exists before processing cc payment w square
Calculations Product rules - Product base price includes default config. Any additional custom options more than the original base price are added to the total. - Catering product needs headcount and headcount should be at least the minimum that comes in the config. The headcount shoiuld also be >= the amount of protein and veggies combined.
Order rules - total equals price of all products plus taxes and fees if applicable - minus any pretax discount coupon code.