# Models

This package exposes public methods to retrieve information from the PostgreSQL database created at the aviation-pg module.

## Configuration.

The following environment variables are required to configure the connection to the database.

```
PG_HOST=localhost
PG_PORT=5432
PG_DATABASE=aviation
PG_USER=aviator
PG_PASSWORD=null
```

while developing you can also create a `./database.json` with the following details:

```json
{
  "host": "localhost",
  "port": 5432,
  "database": "aviation",
  "user": "aviator",
  "password": null
}
```


## Usage

Install via npm with `npm install aviation-model` 

>If you haven't created the database with the [aviation-pg](https://github.com/cristobal-io/aviation-pg), the following won't work.

### Methods available.

- [getAirlineCities](http://cristobal-io.github.io/aviation-model/global.html#getAirlineCities__anchor)
- [getAirlineData](http://cristobal-io.github.io/aviation-model/global.html#getAirlineData__anchor)
- [getAirportData](http://cristobal-io.github.io/aviation-model/global.html#getAirportData__anchor)
- [getAirportJson](http://cristobal-io.github.io/aviation-model/global.html#getAirportJson__anchor)
- [getCity](http://cristobal-io.github.io/aviation-model/global.html#getCity__anchor)
- [getDestinations](http://cristobal-io.github.io/aviation-model/global.html#getDestinations__anchor)
- [queryData](http://cristobal-io.github.io/aviation-model/global.html#queryData__anchor) (airportData, airlineDestinations, airportRunways, citiesByAirline, radiusAirports, airlines)

Next you have a quick example.


Include the module at your code:

```javascript
var aviationModel = require("aviation-model");
```

Then use as explained in detail at the docs the different methods, a quick example:

```javascript
aviationModel.getAirportJson({
  airport_id: "San_Francisco_International_Airport"
}, function (err, airport) {
  if (err) {
    throw err;
  }
  console.log("Airport: ",airport);
});

// This will print out:
Airport:  { location: '37°37′08″N 122°22′30″W',
  airport_id: 'San_Francisco_International_Airport',
  latitude: '37°37′08″N',
  longitude: '122°22′30″W',
  name: 'San Francisco International Airport',
  nickname: 'SFO',
  iata: 'SFO',
  icao: 'KSFO' }
```

## Testing

Run the command `make test`, this will check with ESLint the code and run the tests, if the `database.json` file is not located, it will return an error.

The default `make` command will do the npm install, update the database formulas with the one needed and will run the tests.

## Contributions:

If you want to contribute, create your branch and place a PR or open an issue.




