Esempio n. 1
0
/**
 * Send the *password lost* request to the API server
 *
 * @param  {Object}   data Data passed to API
 * @param  {Function} cb   Success callback
 */
function lost(data, cb){
	Net.send({
		url: '/lost',
		method: 'POST',
		data: data,
		success: function(){
			if (cb) cb();
		}
	});
}
Esempio n. 2
0
/**
 * Signup to the API server
 *
 * @param  {Object}   data Data passed to API
 * @param  {Function} cb   Success callback
 */
function signup(data, cb) {
	Net.send({
		url: '/signup',
		method: 'POST',
		data: data,
		success: function(){
			if (cb) cb();
		}
	});
}
Esempio n. 3
0
exports.sync = function(method, model, opt) {
	var collection = true;
	var url = (model.config.adapter.baseUrl || '/') + model.config.adapter.name;

	if (model.id) {
		collection = false;
		url += '/' + model.id;
	}

	if (opt.patch) method = 'patch';
	var data = _.extend(opt.netArgs || {}, opt.networkArgs || {}, {
		url: url,
		method: CRUD_TO_REST[method],
		mime: 'json'
	});

	if (Alloy.Backbone.emulateHTTP) {
		if (['DELETE','PUT','PATCH'].indexOf(data.method)!==-1) {
			data.headers = _.extend(data.headers || {}, { 'X-HTTP-Method-Override': data.method });
			data.method = 'POST';
		}
	}

	switch (method) {

		case 'create':
		Net.send(_.extend(data, {
			data: model.toJSON(),
			success: function(resp) {

				if (resp && resp.id) {
					opt.success(resp);
				} else {
					opt.error();
				}

				if (opt.ready) opt.ready();
				model.trigger("fetch");
			},
			error: opt.error
		}));
		break;

		case 'read':
		Net.send(_.extend(data, {
			data: opt.args || {},
			success: function(resp) {

				if (resp) {
					if (collection) {
						if (_.isObject(resp) && resp.data) opt.success(resp.data);
						else if (_.isArray(resp)) opt.success(resp);
						else opt.error();
					} else {
						opt.success(resp);
					}
				} else {
					opt.error();
				}

				if (opt.ready) opt.ready();
				model.trigger("fetch");
			},
			error: opt.error
		}));
		break;

		case 'update':
		Net.send(_.extend(data, {
			data: _.pick(model.attributes, _.keys(opt.changes)),
			success: function(resp) {

				if (resp) {
					opt.success();
				} else {
					opt.error();
				}

				if (opt.ready) opt.ready();
				model.trigger("fetch");
			},
			error: opt.error
		}));
		break;

		case 'delete':
		Net.send(_.extend(data, {
			data: opt.args || {},
			success: function(resp) {

				if (resp) {
					opt.success();
				} else {
					opt.error();
				}

				if (opt.ready) opt.ready();
				model.trigger("fetch");
			},
			error: opt.error
		}));
		break;

	}
};