| 123456789101112131415161718192021222324252627282930313233343536373839 |
- import request = require('request-promise');
- import { IWebClient } from "./webclient";
- import { IWebClientOptions } from "./webclient-options";
- export default class WebClientNode implements IWebClient {
- public async request(options: IWebClientOptions): Promise<string> {
- const rpOptions = {
- body: options.body,
- method: options.method,
- uri: options.url,
- headers: options.headers
- };
- const result = await request(rpOptions);
- return result;
- }
-
- public async requestJSON(options: IWebClientOptions): Promise<object> {
- if (!options.headers) {
- options.headers = {};
- }
- if (options.body) {
- options.headers['content-type'] = 'application/json';
- if (typeof options.body === 'object') {
- options.body = JSON.stringify(options.body);
- }
- }
- options.headers.accept = 'application/json';
- const rpOptions = {
- body: options.body,
- formData: options.formData || {},
- headers: options.headers,
- method: options.method,
- uri: options.url,
- };
- const result = await request(rpOptions);
- return JSON.parse(result);
- }
- }
|