2 /****************************************************************/
4 /****************************************************************/
5 /* Copyright (c) 2002-2009 */
6 /* Adaptive Technology Resource Centre / University of Toronto */
9 /* This program is free software. You can redistribute it and/or*/
10 /* modify it under the terms of the GNU General Public License */
11 /* as published by the Free Software Foundation. */
12 /****************************************************************/
15 class ATutorActivityService extends ATutorService implements ActivityService {
16 public function getActivity($userId, $groupId, $appdId, $fields, $activityId, SecurityToken $token) {
17 $activities = $this->getActivities($userId, $groupId, $appdId, null, null, null, null, 0, 20, $fields, array($activityId), $token);
18 if ($activities instanceof RestFulCollection) {
19 $activities = $activities->getEntry();
20 foreach ($activities as $activity) {
21 if ($activity->getId() == $activityId) {
26 throw new SocialSpiException("Activity not found", ResponseError::$NOT_FOUND);
29 // public function getActivities($userIds, $groupId, $appId, $sortBy, $filterBy, $filterOp, $filterValue, $startIndex, $count, $fields, $activityIds, $token) {
30 public function getActivities($userIds, $groupId, $appId, $sortBy, $filterBy, $filterOp, $filterValue, $startIndex, $count, $fields, $token) {
31 $ids = $this->getIdSet($userIds, $groupId, $token);
32 // $activities = ATutorDbFetcher::get()->getActivities($ids, $appId, $sortBy, $filterBy, $filterOp, $filterValue, $startIndex, $count, $fields, $activityIds);
33 $activities = ATutorDbFetcher::get()->getActivities($ids, $appId, $sortBy, $filterBy, $filterOp, $filterValue, $startIndex, $count, $fields);
35 $totalResults = $activities['totalResults'];
36 $startIndex = $activities['startIndex'];
37 $count = $activities['count'];
38 unset($activities['totalResults']);
39 unset($activities['startIndex']);
40 unset($activities['count']);
41 $ret = new RestfulCollection($activities, $startIndex, $totalResults);
42 $ret->setItemsPerPage($count);
45 throw new SocialSpiException("Invalid activity specified", ResponseError::$NOT_FOUND);
49 public function createActivity($userId, $groupId, $appId, $fields, $activity, SecurityToken $token) {
52 print_r($token->getOwnerId());
53 print_r($token->getViewerId());
54 if ($token->getOwnerId() != $token->getViewerId()) {
55 throw new SocialSpiException("unauthorized: Create activity permission denied.", ResponseError::$UNAUTHORIZED);
57 ATutorDbFetcher::get()->createActivity($userId->getUserId($token), $activity, $token->getAppId());
58 } catch (SocialSpiException $e) {
60 } catch (Exception $e) {
61 throw new SocialSpiException("Invalid create activity request: " . $e->getMessage(), ResponseError::$INTERNAL_ERROR);
65 public function deleteActivities($userId, $groupId, $appId, $activityIds, SecurityToken $token) {
66 $ids = $this->getIdSet($userId, $groupId, $token);
67 if (count($ids) < 1 || count($ids) > 1) {
68 throw new SocialSpiException("Invalid user id or count", ResponseError::$BAD_REQUEST);
70 if (! ATutorDbFetcher::get()->deleteActivities($ids[0], $appId, $activityIds)) {
71 throw new SocialSpiException("Invalid activity id(s)", ResponseError::$NOT_FOUND);