|
fetchData = function(key, p) { |
|
var d = new Deferred; |
|
var params = {}; |
|
params[opensocial.IdSpec.Field.USER_ID] = opensocial.IdSpec.PersonId.OWNER; |
|
params[opensocial.IdSpec.Field.GROUP_ID] = 'SELF'; |
|
$.extend(params, p || {}); |
|
var request = opensocial.newDataRequest(); |
|
request.add( |
|
request.newFetchPersonAppDataRequest(opensocial.newIdSpec(params), key), |
|
key |
|
); |
|
request.send(function(data) { |
|
var response = data.get(key).getData(); |
|
var ret; |
|
for (var n in response) |
|
ret = gadgets.json.parse(gadgets.util.unescapeString(response[n][key])); |
|
d.call.call(d, ret); |
|
}); |
|
return d; |
|
}; |
|
|
|
fetchOwnerData = fetchData; |
|
|
|
fetchViewerData = function(key) { |
|
var params = {}; |
|
params[opensocial.IdSpec.Field.USER_ID] = opensocial.IdSpec.PersonId.VIEWER; |
|
params[opensocial.IdSpec.Field.GROUP_ID] = 'SELF'; |
|
|
|
return fetchData(key, params); |
|
}; |
|
|
|
updateData = function(key, value) { |
|
value = gadgets.json.stringify(value); |
|
|
|
var d = new Deferred; |
|
var request = opensocial.newDataRequest(); |
|
request.add( |
|
request.newUpdatePersonAppDataRequest(opensocial.IdSpec.PersonId.VIEWER, key, value), |
|
key |
|
); |
|
request.send(d.call.bind(d)); |
|
return d; |
|
}; |
|
|
|
removeData = function(key) { |
|
if (!(key instanceof Array)) key = [key]; |
|
var d = new Deferred; |
|
var request = opensocial.newDataRequest(); |
|
request.add( |
|
request.newRemovePersonAppDataRequest(opensocial.IdSpec.PersonId.VIEWER, key), |
|
key |
|
); |
|
request.send(d.call.bind(d)); |
|
return d; |
|
}; |
|
|
|
fetchPerson = function(target) { |
|
var d = new Deferred; |
|
var request = opensocial.newDataRequest(); |
|
request.add( |
|
request.newFetchPersonRequest(opensocial.IdSpec.PersonId[target.toUpperCase()]), |
|
target |
|
); |
|
request.send(function(data) { |
|
d.call.call(d, data.get(target).getData()); |
|
}); |
|
return d; |
|
}; |
|
|
|
fetchOwner = function() { return fetchPerson('owner'); }; |
|
|
|
fetchViewer = function() { return fetchPerson('viewer'); }; |