@chatbotsstudio/joinposter

Basic and simple library-wrapper for Poster API

Usage no npm install needed!

<script type="module">
  import chatbotsstudioJoinposter from 'https://cdn.skypack.dev/@chatbotsstudio/joinposter';
</script>

README

JoinPoster API connector :dollar:

The module that can be used for Poster API connection.

Usage

Install package:

npm i joinposter

Then you can use it like this:

const poster = require("joinposter");

// Authorize request.
const client = poster.authorize({
  accessToken: "some_access_token"
});

// Create Order.
const data = {
  phone: "**********",
  products: [
    {
      product_id: "1"
    }
  ],
  first_name: "Name",
  last_name: "Surname"
};

await client.createOrder(data);

// Get categories.
const categories = await client.getCategories();

//Basic result.
"response": [
      {
        "category_id": "1",
        "category_name": "Coffee",
        "category_photo": "...",
        "category_photo_origin": "...",
        "parent_category": "0",
        "category_color": "white",
        "category_hidden": "0",
        "sort_order": "999",
        "fiscal": "0",
        "nodiscount": "0",
        "tax_id": "0",
        "left": "1",
        "right": "2",
        "level": "1",
        "category_tag": null,
        "visible": [
          {
            "spot_id": 1,
            "visible": 1
          }
        ]
      },
      {...}]
    }

API

poster.authorize({ accessToken: token })

  • token {String} Token provided by Poster.

.getCategories()

returns: [Array of Categories]

.getCategory(id)

  • id {Number or String} required: true category ID.

    returns: {Object of the Specific Category}

.getProducts()

  • id {Number or String} required: false category ID.

    returns: [Array Products belong to specific Category if ID provided]

.getProduct(id)

  • id {Number or String} required: true Product ID.

    returns: {Object of the Specific Product}

.getSpotTablesHalls()

returns: [Array with the floor sections list]

.createOrder(params)

  • params {Object}

    • spot_id {Number} required: true Spot Location ID.
    • phone {String} required: true Client phone number.
    • products {Array} required: true Array of selected products.
    • first_name {String} required: false Customer first name.
    • last_name {String} required: false Customer last name.

    returns: {Object of created order}

Create order result looks like:

{
  "response":{
    "incoming_order_id":2,
    "spot_id":1,
    "status":0,
    "client_id":0,
    "first_name":null,
    "last_name":null,
    "phone":null,
    "email":null,
    "sex":null,
    "birthday":null,
    "address":null,
    "comment":null,
    "created_at":"2017-10-27 11:47:19",
    "updated_at":"2017-10-27 11:47:19",
    "transaction_id":null,
    "fiscal_spreading":0,
    "fiscal_method":"",
    "products":[
      {
        "io_product_id":2,
        "product_id":169,
        "modificator_id":null,
        "incoming_order_id":2,
        "count":1,
        "created_at":"2017-10-27 11:47:19"
      }
    ]
  }
}

joinposter