メモ代わり。てきとーに。 いや、ですからてきとーですって。 2年前ぐらいにPythonあたりでメールくれた方、ごめんなさい。メール紛失してしまい無視した形になってしまいました。。。

2009年7月24日金曜日

[Apache Shindig][お勉強][OpenSocial] メモ83 DataRequest.newFetchActivitiesRequestのサーバ側実装をしてみる(2)

jsonrpccontainer.jsを元にコンテナを実装した場合、activityIdが渡せないので、


JsonRpcContainer.prototype.newFetchActivitiesRequest = function(idSpec,
opt_params) {
var rpc = { method : "activities.get" };
rpc.params = this.translateIdSpec(idSpec);
rpc.params.appId = "@app";
/* ここから */
if (opt_params['activityId']) {
rpc.params.activityId = opt_params['activityId'];
}
/* ここまで */
FieldTranslations.translateStandardArguments(opt_params, rpc.params);
FieldTranslations.translateNetworkDistance(idSpec, rpc.params);

return new JsonRpcRequestItem(rpc,
function(rawJson) {
/* さらに修正 ここから */
if (rawJson['list']) {
rawJson = rawJson['list'];
}
else {
rawJson = [rawJson];
}
/* さらに修正 ここまで */
var activities = [];
for (var i = 0; i < rawJson.length; i++) {
activities.push(new JsonActivity(rawJson[i]));
}
return new opensocial.Collection(activities);
});
};


とした。

んで、ActivityServiceの方は、

public Future<Activity> getActivity(UserId userId, GroupId groupId, String appId,
Set<String> fields, String activityId, SecurityToken token)
throws ProtocolException {
if (logger.isDebugEnabled()) {
logger.debug("userId:[" + userId + "]:");
logger.debug("groupId:[" + groupId + "]:");
logger.debug("appId:[" + appId + "]:");
for (String field: fields) {
logger.debug("field:[" + field + "]");
}
logger.debug("activityId:[" + activityId + "]");
}
Activity activity = logic.getActivity(userId, activityId, token);
if ( activity != null ) {
return ImmediateFuture.newInstance(activity);
}
throw new ProtocolException(HttpServletResponse.SC_BAD_REQUEST,"Cant find activity");
}


とした。
logic.getActivityは、ただ単にテーブルからactivityをひっぱってくるだけ。

一応これでactivityId指定の1件取得newFetchActivitiesRequest完成。

次はgetActivities()の2つ。
.

0 コメント: