Viewing file: RequestItem.php (5.79 KB) -rwxr-xr-x Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php /** * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */
/** * Abstract base type for social API requests. */ abstract class RequestItem {
// Common OpenSocial API fields public static $APP_ID = "appId";
public static $USER_ID = "userId";
public static $GROUP_ID = "groupId";
public static $START_INDEX = "startIndex";
public static $COUNT = "count";
public static $SORT_BY = "sortBy"; public static $SORT_ORDER = "sortOrder";
public static $FILTER_BY = "filterBy"; public static $FILTER_OPERATION = "filterOp"; public static $FILTER_VALUE = "filterValue";
public static $FIELDS = "fields";
// Opensocial defaults public static $DEFAULT_START_INDEX = 0;
public static $DEFAULT_COUNT = 20;
public static $APP_SUBSTITUTION_TOKEN = "@app";
/** * @var SecurityToken */ protected $token;
protected $operation;
protected $service;
public function __construct($service, $operation, SecurityToken $token) { $this->service = $service; $this->operation = $operation; $this->token = $token; }
public function getAppId() { $appId = $this->getParameter(self::$APP_ID); if ($appId != null && $appId == self::$APP_SUBSTITUTION_TOKEN) { return $this->token->getAppId(); } else { return $appId; } }
public function getUsers() { $ids = $this->getListParameter(self::$USER_ID); if (empty($ids)) { if ($this->token->getViewerId() != null) { // Assume @me $ids = array("@me"); } else { throw new IllegalArgumentException("No userId provided and viewer not available"); } } $userIds = array(); foreach ($ids as $id) { $userIds[] = UserId::fromJson($id); } return $userIds; }
public function getGroup() { return GroupId::fromJson($this->getParameter(self::$GROUP_ID, "@self")); }
public function getStartIndex() { $startIndex = $this->getParameter(self::$START_INDEX); if ($startIndex == null) { return self::$DEFAULT_START_INDEX; } elseif (is_numeric($startIndex)) { return intval($startIndex); } else { throw new SocialSpiException("Parameter " . self::$START_INDEX . " (" . $startIndex . ") is not a number.", ResponseError::$BAD_REQUEST); } }
public function getCount() { $count = $this->getParameter(self::$COUNT); if ($count == null) { return self::$DEFAULT_COUNT; } elseif (is_numeric($count)) { return intval($count); } else { throw new SocialSpiException("Parameter " . self::$COUNT . " (" . $count . ") is not a number.", ResponseError::$BAD_REQUEST); } }
public function getSortBy() { $sortBy = $this->getParameter(self::$SORT_BY); return $sortBy == null ? CollectionOptions::TOP_FRIENDS_SORT : $sortBy; }
public function getSortOrder() { $sortOrder = $this->getParameter(self::$SORT_ORDER); if (empty($sortOrder)) { return CollectionOptions::SORT_ORDER_ASCENDING; } elseif ($sortOrder == CollectionOptions::SORT_ORDER_ASCENDING || $sortOrder == CollectionOptions::SORT_ORDER_DESCENDING) { return $sortOrder; } else { throw new SocialSpiException("Parameter " . sef::$SORT_ORDER . " (" . $sortOrder . ") is not valid.", ResponseError::$BAD_REQUEST); } }
public function getFilterBy() { return $this->getParameter(self::$FILTER_BY); }
public function getFilterOperation() { $filterOp = $this->getParameter(self::$FILTER_OPERATION); if (empty($filterOp)) { return CollectionOptions::FILTER_OP_CONTAINS; } elseif ($filterOp == CollectionOptions::FILTER_OP_EQUALS || $filterOp == CollectionOptions::FILTER_OP_CONTAINS || $filterOp == CollectionOptions::FILTER_OP_STARTSWITH || $filterOp == CollectionOptions::FILTER_OP_PRESENT) { return $filterOp; } else { throw new SocialSpiException("Parameter " . self::$FILTER_OPERATION . " (" . $filterOp . ") is not valid.", ResponseError::$BAD_REQUEST); } }
public function getFilterValue() { $filterValue = $this->getParameter(self::$FILTER_VALUE); return empty($filterValue) ? "" : $filterValue; }
public function getFields(Array $defaultValue = array()) { $result = array(); $fields = $this->getListParameter(self::$FIELDS); if (is_array($fields)) { $result = $fields; } if (! count($result)) { return $defaultValue; } else { // often we get duplicate fields, remove'm $cleanResult = array(); foreach ($result as $field) { if (! in_array($field, $cleanResult)) { $cleanResult[urldecode($field)] = urldecode($field); } } $result = $cleanResult; } return $result; }
public function getOperation($rpcMethod = null) { return $this->operation; }
public function getService($rpcMethod = null) { return $this->service; }
/** * @return SecurityToken */ public function getToken() { return $this->token; }
public abstract function applyUrlTemplate($urlTemplate);
public abstract function getParameter($paramName, $defaultValue = null);
public abstract function getListParameter($paramName); }
|