# fivehundred-friends

> A REST API wrapper for communicating with the 500 friends API

Latest version **0.0.6** (published 2015-08-05) · MIT license · 0 weekly downloads

## Install

```sh
npm install fivehundred-friends
pnpm add fivehundred-friends
yarn add fivehundred-friends
bun add fivehundred-friends
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.0.6 |
| Published | 2015-08-05 |
| First published | 2015-08-04 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Node | >=0.10.20 |
| Dependencies | 3 |
| Known vulnerabilities | 0 (+2 in 1 direct dependencies) |
| Install scripts | no |
| Author | Ian Graham |
| Maintainers | icecom |
| Keywords | 500 friends, Fivehundred Friends |

## Links

- npm: https://www.npmjs.com/package/fivehundred-friends
- Repository: https://bitbucket.org/icecom/fivehundred-friends
- npm.io page: https://npm.io/package/fivehundred-friends

## Dependencies (3)

- [request](https://npm.io/package/request.md) 2.34.0
- [require-dir](https://npm.io/package/require-dir.md) 0.3.0
- [node-rest-client](https://npm.io/package/node-rest-client.md) 1.5.1

## Recent versions

- 0.0.6 (latest) — 2015-08-05
- 0.0.5 — 2015-08-05
- 0.0.4 — 2015-08-05
- 0.0.3 — 2015-08-04
- 0.0.2 — 2015-08-04
- 0.0.1 — 2015-08-04

## README

#500 Friends API

This library is used for making REST calls to the 500 Friends platform.

## Making requests

```js

var FivehundredFriends = require('fivehundred-friends');

// pass configurations
var ffriends = new FiveHundredFriends({
  host: 'loyalty.500friends.com', 
  path: '/data',
  secret_key: 'YOUSECRETKEY',
  uuid: 'YOURUUID'

});

// make request
ffriends.data.customer.auth_token({
  email: 'testing@example.com'
 }, function(response){ 
  console.log(arguments);
  });
```
The above code will make a post request to 'https://loyalty.500friends.com/data/customer/auth_token'. The parameters will be included as part of a query string for GET requests and the post body for POST requests.



# Adding new methods

To add new resources, create a new file in src/resources with the endpoint name as the file name.

Inside the the file export an object that contains sub ojects that will map to the endpoint method call. The example below in the src/resources/data/customer js file will map to the `ffriends.data.customer.auth_token` method.

```js

module.exports = {
    auth_token: {
        verb: 'get', // request type
        /*
         * You don't need to include the sig or uuid parameters here. They will be added
         * automatically
         */
        mandatory: 'email', // mandatory params
        optional: 'external_customer_id' // optional params go here
    }
};
```


All files in the resources directory will be mapped to the ffriends object using the file name and sub object keys as method names.


You can also have files in the root of the resources directory.  The example below in the src/resources/api.js file would map to `ffriends.api.record`

```
module.exports = {
    record: {
        verb: 'get', // request type
        suffix: '.json',
        /*
         * You don't need to include the sig or uuid parameters here. They will be added
         * automatically
         */
        mandatory: 'email,type', // mandatory params
        optional: 'value,external_customer_id' // optional params go here
    }
};
```

As you'll notice the second example contains a `suffix` value.  Some of the 500friends endpoints require them, some of them don't.  If the endpoint requires a suffix, add the value here and it will automatically be appended to the request. In this case it will create the url: `https://loyalty.500friends.com/api/record.json`

---
_Source: https://npm.io/package/fivehundred-friends · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
