chen-facebook
Version:
facebook for Chen Framework
87 lines • 2.77 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator.throw(value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments)).next());
});
};
const web_1 = require('chen/web');
const core_1 = require('chen/core');
/**
* FacebookApiResponse interface
*/
class FacebookApiResponse extends web_1.HttpClientResponse {
}
exports.FacebookApiResponse = FacebookApiResponse;
/**
* FacebookApi class
*/
class FacebookApi extends web_1.HttpClient {
/**
* FacebookApi constructor
* @param {string} version
* @param {string} private token
*/
constructor(version, token) {
super();
this.token = token;
this.version = `v${core_1._.trimStart(version, 'v')}`;
this.apiVersionUrl = `${FacebookApi.BASE_URL}${this.version}/`;
this.setDefaults({
baseUrl: this.apiVersionUrl,
json: true,
qs: {
access_token: this.token
}
});
}
/**
* Get version
* @return {string}
*/
getVersion() {
return this.version;
}
/**
* Get access token
* @return {string}
*/
getAccessToken() {
return this.token;
}
/**
* Make a GET Request
* @param {string} url
* @param {KeyValuePair} params
* @return {Promise<FacebookApiResponse>}
*/
get(endpoint, params) {
const _super = name => super[name];
return __awaiter(this, void 0, void 0, function* () {
let res = yield _super("get").call(this, `${core_1._.trim(endpoint, '/')}`, { qs: params });
return new FacebookApiResponse(res.info, res.body);
});
}
/**
* Make a POST Request
* @param {string} url
* @param {KeyValuePair} params
* @return {Promise<FacebookApiResponse>}
*/
post(endpoint, params) {
const _super = name => super[name];
return __awaiter(this, void 0, void 0, function* () {
let res = yield _super("post").call(this, `${core_1._.trim(endpoint, '/')}`, { form: params });
return new FacebookApiResponse(res.info, res.body);
});
}
}
/**
* API host
* @type {string}
*/
FacebookApi.BASE_URL = 'https://graph.facebook.com/';
exports.FacebookApi = FacebookApi;
//# sourceMappingURL=api.js.map