Skip to content

Instantly share code, notes, and snippets.

@kkemple
Created July 14, 2015 18:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save kkemple/b58ef5e2b8b4ab650ce0 to your computer and use it in GitHub Desktop.
Save kkemple/b58ef5e2b8b4ab650ce0 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