| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- 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> {
- if (!options.headers) {
- options.headers = {};
- }
- const rpOptions: any = {
- headers: options.headers,
- method: options.method,
- uri: options.url,
- };
- if (options.body) {
- rpOptions.body = options.body;
- }
- // console.log('rpOptions', rpOptions);
- 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: any = {
- headers: options.headers,
- method: options.method,
- uri: options.url,
- };
- if (options.formData) {
- rpOptions.formData = options.formData;
- }
- if (options.body) {
- rpOptions.body = options.body;
- }
- // console.log('rpOptions', rpOptions);
- const result = await request(rpOptions);
- return JSON.parse(result);
- }
- }
|