Source: __methods.js

"use strict";

/** 
 * @module _methods
 */


var assert = require("xbrowser_debug/src/___assert"),
	validateUrl = require("./___validate_url"),
	validateMethod = require("./___validate_method"),
	ERR = require("./_errors"),
	methods = require("./__methods_atom");

// from here : http://www.html5rocks.com/en/tutorials/es6/promises/

/**
 * @function _methods:load
 * @description assertive version of load for DEBUG and USING 
 * basic load function that returns a Promise
 * taken from http://www.html5rocks.com/en/tutorials/es6/promises/
 * @param {string} method
 * @param {string} url
 * @returns {object} Promise
 */

/**
 * @function _methods:get 
 * @description calls load with GET as method
 * @param {string} url
 * @returns {object} Promise
 */
function get(url) { 
	return load("GET", url);
}

/**
 * @function _methods:post
 * @description calls load with POST as method
 * @param {string} url
 * @returns {object} Promise
 */


module.exports = { 
	load:function(method, url) { 
		validateMethod(method)
		validateUrl(url);
		return methods.load(method, url);
	}, 
	get:methods.get,
	post:methods.post
}