import * as CurrentUser from './current_user';

class Api {

  static get(route) {
    return this.xhr(route, null, 'GET');
  }

  static put(route, params) {
    return this.xhr(route, params, 'PUT')
  }

  static post(route, params) {
    return this.xhr(route, params, 'POST')
  }

  static delete(route, params) {
    return this.xhr(route, params, 'DELETE')
  }

  static xhr(route, params, verb) {
    const API_URL = 'http://www.domain.com/';
    const URL = `${API_URL}${route}`
    let options = Object.assign({ method: verb },
                                params ? { body: JSON.stringify(params) } : null );

    return fetch(URL, options)
      .then( resp => {
      let json = resp.json();

      if (resp.ok) {
        return json;
      }

      return json.then(err => {throw err});
    }).then( json => json );

  }
}
export default Api