database-all
Version:
MIMS Drug Database integration
68 lines (57 loc) • 1.91 kB
text/typescript
import https from "https";
import BaseData from "./baseData";
class MakeRequest {
static parseToJSON(dataToParse: any): any {
let data = null;
try {
data = JSON.parse(dataToParse);
} catch (e) {
data = dataToParse;
}
return data;
}
static httpRequest(apiURL:string, method: string, postData: any, params: any) {
if(params) {
apiURL += new URLSearchParams(params).toString();
}
const options = {
hostname: 'api.mims.com',
port: 443,
path: apiURL,
method: `${method}`,
body: postData,
redirect: 'follow',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'Authorization': `${BaseData.getAccessTokenData()?.tokenType} ${BaseData.getAccessTokenData()?.accessToken}`,
'api-key': `${BaseData.getAPIKey()}`
},
};
return new Promise((resolve) => {
const req = https.request(options, res => {
let data = '';
res.on('data', chunk => {
data += chunk;
});
res.on('end', () => {
if(res.statusCode === 200) {
const jsonData = this.parseToJSON(data);
resolve(jsonData);
} else {
resolve({
statusCode: res.statusCode,
statusMessage: res.statusMessage,
});
}
});
}).on('error', error => {
resolve(error);
});
if (postData) {
req.write(postData.toString());
}
req.end();
})
}
}
export default MakeRequest;