Skip to content

Instantly share code, notes, and snippets.

@evancauwenberg
Forked from kkemple/api-client.js
Created November 19, 2015 10:45
Show Gist options
  • Save evancauwenberg/442fe0f6d92a0d25f9c3 to your computer and use it in GitHub Desktop.
Save evancauwenberg/442fe0f6d92a0d25f9c3 to your computer and use it in GitHub Desktop.
base level api client in ES6
'use strict';
import request from 'superagent';
import Promise from 'bluebird';
//set base headers here
const BASE_HEADERS = {};
// set base url here
const BASE_URL = '';
const apiClient = {
get (url, query = {}, headers = {}) {
return new Promise((res, rej) => {
request.get(BASE_URL + url)
.set(BASE_HEADERS)
.set(headers)
.query(query)
.end((err, response) => {
if (err) return rej(err);
return res(response.body);
});
});
},
post (url, data = {}, query = {}, headers = {}) {
return new Promise((res, rej) => {
request.post(BASE_URL + url)
.set(BASE_HEADERS)
.set(headers)
.query(query)
.send(data)
.end((err, response) => {
if (err) return rej(err);
return res(response.body);
});
});
},
put (url, data = {}, query = {}, headers = {}) {
return new Promise((res, rej) => {
request.put(BASE_URL + url)
.set(BASE_HEADERS)
.set(headers)
.query(query)
.send(data)
.end((err, response) => {
if (err) return rej(err);
return res(response.body);
});
});
},
patch (url, data = {}, query = {}, headers = {}) {
return new Promise((res, rej) => {
request.patch(BASE_URL + url)
.set(BASE_HEADERS)
.set(headers)
.query(query)
.send(data)
.end((err, response) => {
if (err) return rej(err);
return res(response.body);
});
});
},
delete (url, query = {}, headers = {}) {
return new Promise((res, rej) => {
request.delete(BASE_URL + url)
.set(BASE_HEADERS)
.set(headers)
.query(query)
.end((err, response) => {
if (err) return rej(err);
return res(response.body);
});
});
}
};
export default apiClient;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment