Sha256: 50a810f7a8b0ccf0fd5154acfb4c25aff11f0397d338e460846d523f2614cdd4

Contents?: true

Size: 1.07 KB

Versions: 12

Compression:

Stored size: 1.07 KB

Contents

import * as axios from 'axios'
import camelcaseObjectDeep from 'camelcase-object-deep'

let siteHandle = null
let locale = null

export const setSiteHandle = (handle) => (siteHandle = handle)
export const setLocale = (newLocale) => (locale = newLocale)

const token = document.querySelector('[name=csrf-token]').content
axios.defaults.headers.common['X-CSRF-TOKEN'] = token

const api = axios.create({
  baseURL: window.apiBaseUrl,
  timeout: 50000,
  headers: {
    'Content-Type': 'application/json',
    Accept: 'application/json',
  },
  transformResponse(data) {
    // camelcase in JS
    // console.log('[DEBUG] API response', data)
    return data ? camelcaseObjectDeep(JSON.parse(data)) : {}
    // return data ? JSON.parse(data) : {} // LEGACY
  },
})

api.interceptors.request.use(
  (config) => {
    config.headers['X-MAGLEV-SITE-HANDLE'] = siteHandle
    config.headers['X-MAGLEV-LOCALE'] = locale
    return config
  },
  (error) => Promise.reject(error),
)

export const get = api.get
export const post = api.post
export const put = api.put
export const destroy = api.delete

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
maglevcms-1.1.7 app/frontend/editor/services/api.js
maglevcms-1.1.6 app/frontend/editor/services/api.js
maglevcms-1.1.5 app/frontend/editor/services/api.js
maglevcms-1.1.4 app/frontend/editor/services/api.js
maglevcms-1.1.3 app/frontend/editor/services/api.js
maglevcms-1.1.2 app/frontend/editor/services/api.js
maglevcms-1.1.1 app/frontend/editor/services/api.js
maglevcms-1.1.0 app/frontend/editor/services/api.js
maglevcms-1.0.0 app/javascript/editor/services/api.js
maglevcms-1.0.0.rc3 app/javascript/editor/services/api.js
maglevcms-1.0.0.rc2 app/javascript/editor/services/api.js
maglevcms-1.0.0.rc1 app/javascript/editor/services/api.js