Skip to content

Instantly share code, notes, and snippets.

@blackxored
Created March 31, 2014 17:21
Show Gist options
  • Save blackxored/9897355 to your computer and use it in GitHub Desktop.
Save blackxored/9897355 to your computer and use it in GitHub Desktop.
'use strict';
angular.module("elven")
.factory("persistence", function($q) {
var geoRef = new Firebase('https://elvenapp.firebaseio.com/geo'),
ref = new geoFire(geoRef);
return {
store: function(id, coords, user) {
var defered = $q.defer();
this.location = coords;
ref.insertByLocWithId([coords.lat, coords.lng], id, user || {}, function(error) {
if (error) {
defered.reject(error);
} else {
defered.resolve();
}
});
return defered.promise;
},
update: function(id, coords) {
var defered = $q.defer();
this.location = coords;
ref.updateLocForId([coords.lat, coords.lng], id, function(error) {
if (error) {
defered.reject(error);
} else {
defered.resolve();
}
});
return defered.promise;
},
geo: ref,
getById: function(id) {
var defered = $q.defer();
ref.getLocById(id, function(latLong) {
if (latLong) {
defered.resolve({ lat: latLong[0], lng: latLong[1]});
} else {
defered.reject();
}
});
return defered.promise;
}
};
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment