1.0.0 • Published 5 years ago

gocart-ui v1.0.0

Weekly downloads
1
License
MIT
Repository
github
Last release
5 years ago

gocart-ui

The Redux implementation for GOCart.

Installation

npm install gocart-ui gocart-theme-bananas

Usage

var actions = require('gocart-ui').actions
var Bananas = require('gocart-theme-bananas')
var connect = require('gocart-ui').connect
var createElement = require('react').createElement
var Provider = require('react-redux').Provider
var render = require('react-dom').render
var store = require('gocart-ui').store

store.dispatch(actions.reset(YOUR_DATA))
render(createElement(Provider, { store: store }, createElement(connect(Bananas))), htmlElement)

License

See LICENSE.

gocart-client

A browser client for GOCart.

Installation

npm install gocart-client

Usage

var gocart = require('gocart-client').create({
    host: 'your-gocart-server.com',
})
gocart.getStatus()
    .then(function (status) {})
    .caught(function (err) {})

API Reference

Client.create(options)

Creates the client.

var client = Client.create(options)
options Object
  • host String

    The host. Required.

  • pathname String

    The pathname. Default '/'.

Client Instance Methods

client.createCharge(options)

Creates the charge.

client.createCharge(options)
    .then(function (payload) {})
options Object
  • email String

    The email. Required.

  • metadata Object

    Metadata about the charge. Default undefined.

  • sku String

    The SKU. Should correspond to a key in the Products Object. Required.

  • token String

    The Stripe token. Required.

License

See LICENSE.

gocart-server

A standalone web server for GOCart.

Installation

npm install gocart-server

Usage

The server requires the following environment variables:

CORS_ORIGINS=["https://your-origin.com"]
PORT=8000
SCHEMA_URI=https://your-origin.com/gocart.json
STRIPE_SECRET_KEY=your_stripe_secret_key

Then run:

node ./node_modules/gocart-server/start

License

See LICENSE.

hapi-gocart

A hapi plugin for GOCart.

Installation

npm install hapi-gocart

Usage

var GOCart = require('hapi-gocart')

server.register({
  register: GOCart,
  options: options,
}, function (err) {})

options Object

License

See LICENSE.

gocart-schema

A JSON schema utility for GOCart.

Installation

npm install gocart-schema

Usage

var schema = require('gocart-schema')
var validation = schema.validate(yourObj)

validation.value // the result (with defaults populated)
validation.error // the error (`null` if `yourObj` is valid)

Specification

Schema

GOCart Object

This is the root object for the specification.

Fixed Fields
Field NameTypeDescription
infoInfo ObjectRequired.
productsProducts ObjectRequired.
serverServer ObjectRequired.
stripeStripe ObjectRequired.

Info Object

Defines additional data about the store.

Fixed Fields
Field NameTypeDescription
nameStringRequired.
descriptionString
Patterned Objects
Field PatternTypeDescription
^x-Any

Products Object

Patterned Fields
Field PatternTypeDescription
{id}Product ObjectRequired.

Product Object

Defines a product. In addition to the subset specified below, can contain the types specified in Stripe Object (these values will override the global Stripe configuration).

Fixed Fields
Field NameTypeDescription
amountNumberRequired.
descriptionString
images[String]
metadataAny
nameString
planString
Patterned Fields
Field PatternTypeDescription
^x-Any

Server Object

Defines the GOCart server configuration.

Fixed Fields
Field NameTypeDescription
hostStringRequired.
pathnameString

Stripe Object

Defines the global Stripe configuration. Values can be overriden by individual Product Objects.

Fixed Fields
Field NameTypeDescription
allowRememberMeBoolean
billingAddressBoolean
bitcoinBoolean
captureBoolean
currencyString
imageString
nameString
panelLabelString
publishableKeyStringRequired.
receiptEmailBoolean
shippingAddressBooleanbillingAddress must be set to true.
zipCodeBoolean

License

See LICENSE.

gocart-service

The core GOCart service.

Installation

npm install gocart-service

Usage

var handleRequest = require('gocart-service')(yourStripeSecretKey, yourSchemaUri)

handleRequest(payload).then(function (res) {})

createHandler()

createHandler(stripeSecretKey: string, schemaUri: string): (payload: object) => Promise

The shape of the payload object is specified in lib/validate.

License

See LICENSE.

gocart-aws

A GOCart service for AWS.

Usage

Deploy to AWS

Verify the endpoint

Replace {YOUR_REST_API_ID} and {YOUR_REGION}.

curl https://{YOUR_REST_API_ID}.execute-api.{YOUR_REGION}.amazonaws.com/gocart/ \
    -H 'Content-Type: application/json' \
    -d '{ "email": "hello@world.com" }' \
    -v

License

See LICENSE.