fb-test-module
Version:
How to use: ``` import {store, getStore} from 'fb-test-module'; conf.DialogramApi = "API_BASE_URL"; conf.Platform = "mobile"; //use "web" if you are on webApp getStore(); //Inject store in your provider ``` and you'r readyt to go. # Base ## Act
91 lines (90 loc) • 2.75 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const axios_1 = __importDefault(require("axios"));
const immutable_1 = require("immutable");
const Config_1 = require("./Config");
const Selector_1 = __importDefault(require("./Session/Selector"));
function callApi({ method, url, data }) {
if (Config_1.conf.DialogramApi.length === 0)
throw new Error('Api IP not set');
// console.log(SessionHelper.getSessionToken())
//console.log(`Bearer ${SessionHelper.getSessionToken()}`)
return axios_1.default({
method: method,
url: url,
baseURL: Config_1.conf.DialogramApi,
data: data,
headers: {
'Authorization': `Bearer ${Selector_1.default.getSessionToken()}`,
}
}).then((response) => {
return Promise.resolve(response);
}, error => {
console.error("Error ==>", error);
return Promise.reject(new Error(error));
}).then(_json).then(_serializeResp);
}
exports.callApi = callApi;
function _json(response) {
if (response.status !== 204) {
return response.data || response.json();
}
else {
return {};
}
}
function _mapType(type) {
if (type) {
type = type.toLowerCase();
}
switch (type) {
case 'webfile':
case 'weblink':
case 'googlefile':
case 'evernotefile':
return 'media';
default:
return type;
}
}
function _formatArray(included) {
const keyedIncluded = {};
included.forEach((data) => {
const type = _mapType(data.type);
const id = data.id;
if (type) {
if (!keyedIncluded[type]) {
keyedIncluded[type] = {};
}
keyedIncluded[type][id] = data;
}
else {
keyedIncluded[id] = data;
}
});
return keyedIncluded;
}
function _serializeResp(json) {
return new Promise((resolve) => {
json.data = _formatArray(json.data);
if (json.includes) {
json.includes = _formatArray(json.includes);
}
const immutableData = immutable_1.fromJS(json);
resolve(immutableData);
});
}
function _status(response) {
if (response && response.status) {
if (response.status >= 200 && response.status < 300) {
return Promise.resolve(response);
}
}
else {
return Promise.reject({ status: 500, msg: "debug prod mod" });
}
return Promise.reject(response);
}
;