# borderguru_api

BorderguruApi - JavaScript client for borderguru_api
BorderGuru Technical Challenge API
This SDK is automatically generated by the [Swagger Codegen](https://github.com/swagger-api/swagger-codegen) project:

- API version: 1.0.0
- Package version: 1.0.0
- Build package: io.swagger.codegen.languages.JavascriptClientCodegen

## Installation

### For [Node.js](https://nodejs.org/)

#### npm

To publish the library as a [npm](https://www.npmjs.com/),
please follow the procedure in ["Publishing npm packages"](https://docs.npmjs.com/getting-started/publishing-npm-packages).

Then install it via:

```shell
npm install borderguru_api --save
```

##### Local development

To use the library locally without publishing to a remote npm registry, first install the dependencies by changing 
into the directory containing `package.json` (and this README). Let's call this `JAVASCRIPT_CLIENT_DIR`. Then run:

```shell
npm install
```

Next, [link](https://docs.npmjs.com/cli/link) it globally in npm with the following, also from `JAVASCRIPT_CLIENT_DIR`:

```shell
npm link
```

Finally, switch to the directory you want to use your borderguru_api from, and run:

```shell
npm link /path/to/<JAVASCRIPT_CLIENT_DIR>
```

You should now be able to `require('borderguru_api')` in javascript files from the directory you ran the last 
command above from.

#### git
#
If the library is hosted at a git repository, e.g.
https://github.com/GIT_USER_ID/GIT_REPO_ID
then install it via:

```shell
    npm install GIT_USER_ID/GIT_REPO_ID --save
```

### For browser

The library also works in the browser environment via npm and [browserify](http://browserify.org/). After following
the above steps with Node.js and installing browserify with `npm install -g browserify`,
perform the following (assuming *main.js* is your entry file, that's to say your javascript file where you actually 
use this library):

```shell
browserify main.js > bundle.js
```

Then include *bundle.js* in the HTML pages.

### Webpack Configuration

Using Webpack you may encounter the following error: "Module not found: Error:
Cannot resolve module", most certainly you should disable AMD loader. Add/merge
the following section to your webpack config:

```javascript
module: {
  rules: [
    {
      parser: {
        amd: false
      }
    }
  ]
}
```

## Getting Started

Please follow the [installation](#installation) instruction and execute the following JS code:

```javascript
var BorderguruApi = require('borderguru_api');

var api = new BorderguruApi.CompaniesApi()

var company = new BorderguruApi.CreateCompanyBody(); // {CreateCompanyBody} Company data


var callback = function(error, data, response) {
  if (error) {
    console.error(error);
  } else {
    console.log('API called successfully. Returned data: ' + data);
  }
};
api.createCompany(company, callback);

```

## Documentation for API Endpoints

All URIs are relative to *http://localhost:9090*

Class | Method | HTTP request | Description
------------ | ------------- | ------------- | -------------
*BorderguruApi.CompaniesApi* | [**createCompany**](docs/CompaniesApi.md#createCompany) | **POST** /companies | Creates a new company in the database
*BorderguruApi.CompaniesApi* | [**deleteCompanyById**](docs/CompaniesApi.md#deleteCompanyById) | **DELETE** /companies/{companyId} | Deletes a company by id
*BorderguruApi.CompaniesApi* | [**getCompanyById**](docs/CompaniesApi.md#getCompanyById) | **GET** /companies/{companyId} | Returns a company by id
*BorderguruApi.CompaniesApi* | [**getCompanySummaryById**](docs/CompaniesApi.md#getCompanySummaryById) | **GET** /companies/{companyId}/summary | Returns an aggregated summary of all orders from a company
*BorderguruApi.CompaniesApi* | [**listCompanies**](docs/CompaniesApi.md#listCompanies) | **GET** /companies | Returns a list of all companies
*BorderguruApi.CompaniesApi* | [**listCompanyOrders**](docs/CompaniesApi.md#listCompanyOrders) | **GET** /companies/{companyId}/orders | Returns all orders for a company
*BorderguruApi.CompaniesApi* | [**updateCompany**](docs/CompaniesApi.md#updateCompany) | **PUT** /companies/{companyId} | Updates an existing company data
*BorderguruApi.OrdersApi* | [**createOrder**](docs/OrdersApi.md#createOrder) | **POST** /orders | Creates a new order in the database
*BorderguruApi.OrdersApi* | [**deleteOrder**](docs/OrdersApi.md#deleteOrder) | **DELETE** /orders/{orderId} | Deletes an order by id
*BorderguruApi.OrdersApi* | [**getOrderById**](docs/OrdersApi.md#getOrderById) | **GET** /orders/{orderId} | Returns an order by id
*BorderguruApi.OrdersApi* | [**listOrders**](docs/OrdersApi.md#listOrders) | **GET** /orders | Lists all orders
*BorderguruApi.ProductsApi* | [**createProduct**](docs/ProductsApi.md#createProduct) | **POST** /products | Creates a new product in the database
*BorderguruApi.ProductsApi* | [**deleteProductById**](docs/ProductsApi.md#deleteProductById) | **DELETE** /products/{productId} | Deletes a product by id
*BorderguruApi.ProductsApi* | [**getProductById**](docs/ProductsApi.md#getProductById) | **GET** /products/{productId} | Returns a product by id
*BorderguruApi.ProductsApi* | [**listCompanySummariesByProduct**](docs/ProductsApi.md#listCompanySummariesByProduct) | **GET** /products/{productId}/companies | Returns a list of all companies that bought a certain product
*BorderguruApi.ProductsApi* | [**listProducts**](docs/ProductsApi.md#listProducts) | **GET** /products | Returns a list of all products
*BorderguruApi.ProductsApi* | [**updateProduct**](docs/ProductsApi.md#updateProduct) | **PUT** /products/{productId} | Updates an existing product


## Documentation for Models

 - [BorderguruApi.BodyValidationError](docs/BodyValidationError.md)
 - [BorderguruApi.BodyValidationErrorContext](docs/BodyValidationErrorContext.md)
 - [BorderguruApi.BodyValidationErrorDetails](docs/BodyValidationErrorDetails.md)
 - [BorderguruApi.Company](docs/Company.md)
 - [BorderguruApi.CompanyAlreadyExistsError](docs/CompanyAlreadyExistsError.md)
 - [BorderguruApi.CompanyNotFoundError](docs/CompanyNotFoundError.md)
 - [BorderguruApi.CompanySummary](docs/CompanySummary.md)
 - [BorderguruApi.CreateCompanyBody](docs/CreateCompanyBody.md)
 - [BorderguruApi.CreateOrderBody](docs/CreateOrderBody.md)
 - [BorderguruApi.CreateOrderBodyItems](docs/CreateOrderBodyItems.md)
 - [BorderguruApi.CreateProductBody](docs/CreateProductBody.md)
 - [BorderguruApi.Order](docs/Order.md)
 - [BorderguruApi.OrderItem](docs/OrderItem.md)
 - [BorderguruApi.OrderNotFoundError](docs/OrderNotFoundError.md)
 - [BorderguruApi.Product](docs/Product.md)
 - [BorderguruApi.ProductAlreadyExistsError](docs/ProductAlreadyExistsError.md)
 - [BorderguruApi.ProductNotFoundError](docs/ProductNotFoundError.md)
 - [BorderguruApi.UpdateCompanyBody](docs/UpdateCompanyBody.md)
 - [BorderguruApi.UpdateProductBody](docs/UpdateProductBody.md)


## Documentation for Authorization

 All endpoints do not require authorization.

