 
   reduceError: (state, action) -> error: action.error, fetching: false
 
-  fetch: (config={}) -> (dispatch) =>
+  fetch: (config={}) => (dispatch) =>
+
+    throw "Please configure the reducer '#{@config.name}' before first use." unless @axios and @axios.request
 
     config = @transformConfig(config)
 


        return error

  get: @fetch

  post: (config={}) =>
    config = assign {}, data: config unless config.data

    config = assign {method: 'put', id: config.data.id}, config
    @fetch(config)

  patch: (config) =>
    config = assign {}, data: config unless config.data
    config = assign {method: 'patch', id: config.data.id}, config
    @fetch(config)

  remove: (config={}) =>
    @fetch(assign {method: 'delete'}, config)

  update: (config) =>
    return @put(config) if config.data and config.data.id or config.id
    return @post(config)

