UNPKG

citizenship_app_news

Version:

News module for Citizenship project application

65 lines (57 loc) 2.24 kB
export const BASE_URL = AppConfig.API_BASE_URL const TIMEOUT = AppConfig.TIMEOUT import AppConfig from '../configs/AppConfig'; import { Console } from '../controllers'; import { getState } from '../main/Main'; export default { async request(endpoint, body, method, needToken) { body = JSON.stringify(body) var headers = { 'Content-Type': 'application/json', 'Accept': 'application/json' } if (needToken) headers = { 'Authorization': 'Bearer ' + getState().user.token, 'Content-Type': 'application/json', 'Accept': 'application/json' } if (AppConfig.IS_DEBUG) { Console.log('Request body: ', body) Console.log(`Request info: ${BASE_URL}${endpoint} / ${method.toUpperCase()}`) Console.log('Headers: ', headers) } let config = { headers: headers, method: method } if (method !== 'get') { config = { headers: headers, method: method, body: body } } return new Promise((resolve, reject) => { var timeout = setTimeout(() => reject({ message: 'Timeout' }), TIMEOUT) fetch(BASE_URL + endpoint, config) .then(response => { clearTimeout(timeout) if (response.status !== 200) { reject({ statusCode: response.status, statusText: response.statusText, apiEndpoint: BASE_URL + endpoint, method: method, response: response, }) } return response.json() }) .then(response => { if (AppConfig.IS_DEBUG) Console.log(endpoint, response) resolve( response ) }) .catch(err => { clearTimeout(timeout) reject(err) }) }) } }