Giter Site home page Giter Site logo

nodejs-course-hw-2's Introduction

Pizza-delivery site back-end API

Note: * - required data

User operations

Create new user

method: post
path: /users
query params: none
payload:    firtsName*: string
            lastName*: string
            phone*: string 10 chars
            email*: formatted string
            address*: string
            password*: string
            tosAgreement*: boolean
returns: code (200 - success; 400, 500 - errors), error object

Find existing user

method: get
path: /users
query params: email*
payload: none
header: token*
returns: code (200 - success; 400, 403, 404 - errors), user data object/error object

Update user info

method: put
path: /users
query params: none
payload:    firtsName: string
            lastName: string
            phone: string 10 chars
            email*: formatted string
            address: string
            password: password
header: token*
returns: code (200 - success; 400, 403, 500 - errors), error object

Delete existing user

method: delete
path: /users
query params: email*
payload: none
header: token*
returns: code (200 - success; 400, 403, 500 - errors), error object

Token operations

Create new token

method: post
path: /tokens
query params: none
payload:    email*: formatted string
            password*: string
returns: code (200 - success; 400, 500 - errors), error object

Find existing token

method: get
path: /tokens
query params: id*
payload: none
returns: code (200 - success; 400, 404 - errors), token data object/error object

Extend token expiration

method: put
path: /tokens
query params: none   
payload:    id*
            extend*: boolean 
returns: code (200 - success; 400, 500 - errors), error object

Delete token

method: delete
path: /tokens
query params: id*
payload: none
returns: code (200 - success; 400, 500 - errors), error object

Shopping operation

Get menu items

method: get
path: /menu
query params: none
payload: none
header: token*
returns: code, menu object/error object

Put the choosen items to the basket

method: post
path: /orders
query params: none
payload: items*: array of objects {id:XXX, quantity:XXX}
header: token*
returns: code, error object

Get the items from the basket

method: get
path: /orders
query params: id*
payload: none
header: token*
returns: code, order object/error object

Update the items in the basket

method: put
path: /orders
query params: id*
payload: items
header: token*
returns: code, error object

Delete order from the basket

method: delete
path: /orders
query params: id*
payload: none
header: token*
returns: code, error object

Checkout (confirm and pay the order, send email)

method: post
path: /checkout
query params: cardToken*
payload: none
header: token*
returns: code, error object

Formats

All prices should be in cents.

Order format should be an array of objects with id's and amounts:

[
    {"id":"XXX","quantity":"XXX"},
    {"id":"XXX","quantity":"XXX"}, 
    ...
]

Menu format is an object with the following format:

{
    "<id>":    {
                "name":"XXXXX",
                "weight":"XXX",
                "description":"XXX",
                "price":"XXX"
            },
...
}

A user can have only one order.

nodejs-course-hw-2's People

Contributors

art2723 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.