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 コメント:
コメントを投稿