From: Raphaël Barrois Date: Fri, 5 Aug 2011 23:57:15 +0000 (+0200) Subject: Rename PTAWebservice to SharingAPI; a few other fixes regarding Fruneau's review. X-Git-Tag: xorg/1.1.3~29 X-Git-Url: http://git.polytechnique.org/?a=commitdiff_plain;h=f0f8c37536df916c072d6dd5a128c94bd2653eaa;p=platal.git Rename PTAWebservice to SharingAPI; a few other fixes regarding Fruneau's review. Signed-off-by: Raphaël Barrois --- diff --git a/classes/profile.php b/classes/profile.php index eb9839d..6574d0a 100644 --- a/classes/profile.php +++ b/classes/profile.php @@ -925,10 +925,10 @@ class Profile implements PlExportable public function getPartnerSettings($partner_id) { - if ($this->partners_settings == null && !$this->fetched(self::FETCH_PARTNER)) { + if ($this->partners_settings === null && !$this->fetched(self::FETCH_PARTNER)) { $this->setPartnersSettings($this->getProfileField(self::FETCH_PARTNER)); } - if ($this->partners_settings == null) { + if ($this->partners_settings === null) { return PartnerSettings::getEmpty($partner_id); } return $this->partners_settings->get($partner_id); diff --git a/classes/userfilter.php b/classes/userfilter.php index 236721d..983b2ee 100644 --- a/classes/userfilter.php +++ b/classes/userfilter.php @@ -1392,7 +1392,7 @@ class UserFilter extends PlFilter public function addPartnerSharingFilter($partner_id) { $this->requireProfiles(); - $sub = "ppss_$partner_id"; + $sub = "ppss_" . $partner_id; $this->ppss[$sub] = $partner_id; return $sub; } @@ -1411,6 +1411,7 @@ class UserFilter extends PlFilter $sub = $this->addPartnerSharingFilter($partner_id); $this->visibility_field = $sub . '.sharing_level'; } + /** VISIBILITY */ private $vlevels = array(); @@ -1429,6 +1430,12 @@ class UserFilter extends PlFilter return $sub; } + /** Since this method might perform inner joins on tables which have been + * joined previously (e.g when using addVisibilityFieldFilter), it has to + * come after the Joins() methods for those tables. + * This is due to the implementation logic for discovering joins and the + * ordering used by PHP introspection. + */ protected function visibilityJoins() { $joins = array(); diff --git a/classes/xorg.php b/classes/xorg.php index cec21a6..387309c 100644 --- a/classes/xorg.php +++ b/classes/xorg.php @@ -29,7 +29,7 @@ class Xorg extends Platal 'newsletter', 'axletter', 'epletter', 'bandeau', 'survey', 'fusionax', 'gadgets', 'googleapps', 'poison', 'openid', 'reminder', 'api', 'urlshortener', 'deltaten', - 'geoloc', 'ptawebservice'); + 'geoloc', 'sharingapi'); } public function find_hook() diff --git a/configs/platal.ini b/configs/platal.ini index 95ba757..a7abb91 100644 --- a/configs/platal.ini +++ b/configs/platal.ini @@ -402,6 +402,14 @@ private_max = 800 per_page = 20 +; The SharingAPI section contains parameters about the 'sharing' webservice +[SharingAPI] + +; $globals->sharingapi->max_result_per_query +; Maximum number of results returned in an API response. +max_result_per_query = 10; + + ; The register section contains parameters for the registration process [Register] @@ -467,14 +475,6 @@ payed_list = "" event_lists = "" -; The PTA section contains parameters about the 'RSPTA' webservice -[PTA] - -; $globals->pta->max_result_per_query -; Maximum number of results returned in an API response. -max_result_per_query = 10; - - ; The merge section contains parameters about the merge's state. [Merge] diff --git a/modules/ptawebservice.php b/modules/sharingapi.php similarity index 92% rename from modules/ptawebservice.php rename to modules/sharingapi.php index badc0dd..e914ca6 100644 --- a/modules/ptawebservice.php +++ b/modules/sharingapi.php @@ -20,14 +20,14 @@ ***************************************************************************/ -class PTAWebServiceModule extends PlModule +class SharingAPIModule extends PlModule { function handlers() { return array( - 'pta/ws/directory/1/search' => $this->make_api_hook('search', AUTH_COOKIE, 'api_user_readonly'), - 'pta/ws/bulkmail/1/get_context' => $this->make_api_hook('bulkmail', AUTH_COOKIE, 'api_user_readonly'), - 'pta/picture' => $this->make_hook('picture_token', AUTH_PUBLIC), + 'api/1/sharing/search' => $this->make_api_hook('search', AUTH_COOKIE, 'api_user_readonly'), + 'api/1/sharing/bulkmail' => $this->make_api_hook('bulkmail', AUTH_COOKIE, 'api_user_readonly'), + 'api/1/sharing/picture' => $this->make_hook('picture_token', AUTH_PUBLIC), ); } diff --git a/modules/ptawebservice/request.inc.php b/modules/sharingapi/request.inc.php similarity index 94% rename from modules/ptawebservice/request.inc.php rename to modules/sharingapi/request.inc.php index 44ef174..0dd7910 100644 --- a/modules/ptawebservice/request.inc.php +++ b/modules/sharingapi/request.inc.php @@ -35,7 +35,7 @@ class WSDirectoryRequest const ORDER_NAME = 'name'; const ORDER_PROMOTION = 'promotion'; - public static $ORDER_CHOICES = array( + public static $order_choices = array( self::ORDER_RAND, self::ORDER_NAME, self::ORDER_PROMOTION, @@ -46,30 +46,30 @@ class WSDirectoryRequest $this->partner = $partner; global $globals; - $this->fields = array_intersect($payload->v('fields'), WSRequestFields::$CHOICES); - $this->order = array_intersect($payload->v('order', array()), self::$ORDER_CHOICES); + $this->fields = array_intersect($payload->v('fields'), WSRequestFields::$choices); + $this->order = array_intersect($payload->v('order', array()), self::$order_choices); $this->criteria = array(); $criteria = new PlDict($payload->v('criteria')); - foreach (WSRequestCriteria::$CHOICES_SIMPLE as $criterion) { + foreach (WSRequestCriteria::$choices_simple as $criterion) { if ($criteria->has($criterion)) { $this->criteria[$criterion] = $criteria->s($criterion); } } - foreach (WSRequestCriteria::$CHOICES_ENUM as $criterion) { + foreach (WSRequestCriteria::$choices_enum as $criterion) { if ($criteria->has($criterion)) { $this->criteria[$criterion] = $criteria->s($criterion); } } - foreach (WSRequestCriteria::$CHOICES_LIST as $criterion) { + foreach (WSRequestCriteria::$choices_list as $criterion) { if ($criteria->has($criterion)) { $this->criteria[$criterion] = $criteria->v($criterion); } } - // Amount may not exceed $globals->pta->max_result_per_query. + // Amount may not exceed $globals->sharingapi->max_result_per_query. $amount = $payload->i('amount', self::DEFAULT_AMOUNT); - $this->amount = min($amount, $globals->pta->max_result_per_query); + $this->amount = min($amount, $globals->sharingapi->max_result_per_query); } public function get() @@ -141,14 +141,14 @@ class WSDirectoryRequest // ENUM fields case WSRequestCriteria::SCHOOL: // Useless criterion: we don't need to check on origin school - if (WSRequestCriteria::$CHOICES_ENUM[$criterion][$value]) { + if (WSRequestCriteria::$choices_enum[$criterion][$value]) { $cond->addChild(new PFC_True()); } else { $cond->addChild(new PFC_False()); }; break; case WSRequestCriteria::DIPLOMA: - $diploma = WSRequestCriteria::$CHOICES_ENUM[$criterion][$value]; + $diploma = WSRequestCriteria::$choices_enum[$criterion][$value]; $id_X = XDB::fetchOneCell('SELECT id FROM profile_education_enum WHERE abbreviation = {?}', 'X'); @@ -436,7 +436,7 @@ class WSRequestEntry WSRequestFields::PIC_LARGE => 'large', ); $size = $size_mappings[$field]; - return pl_url("pta/picture/$size/$token"); + return pl_url("api/1/sharing/picture/$size/$token"); } else { return null; } @@ -532,12 +532,13 @@ class WSRequestEntry protected function jobToResponse($job) { - $data = array(); - $data['company'] = $job->company->name; - $data['title'] = $job->description; - $data['sector'] = array_pop($job->terms); - $data['entry'] = null; - $data['left'] = null; + $data = array( + 'company' => $job->company->name, + 'title' => $job->description, + 'sector' => array_pop($job->terms), + 'entry' => null, + 'left' => null, + ); foreach($job->phones() as $phone) { if ($this->isVisible($phone->pub)) { $data['phone'] = $phone->display; @@ -552,13 +553,14 @@ class WSRequestEntry protected function addressToResponse($address) { - $data = array(); - $data['street'] = $address->postalText; - $data['zipcode'] = $address->postalCode; - $data['city'] = $address->locality; - $data['country'] = $address->country; - $data['latitude'] = $address->latitude; - $data['longitude'] = $address->longitude; + $data = array( + 'street' => $address->postalText, + 'zipcode' => $address->postalCode, + 'city' => $address->locality, + 'country' => $address->country, + 'latitude' => $address->latitude, + 'longitude' => $address->longitude, + ); return $data; } } @@ -592,7 +594,7 @@ class WSRequestCriteria const ALT_DIPLOMA = 'alt_diploma'; const NOT_UID = 'not_uid'; - public static $CHOICES_SIMPLE = array( + public static $choices_simple = array( self::FIRSTNAME, self::LASTNAME, self::PROMOTION, @@ -629,7 +631,7 @@ class WSRequestCriteria const DIPLOMA_MASTER = 'MASTER'; const DIPLOMA_PHD = 'PHD'; - public static $CHOICES_ENUM = array( + public static $choices_enum = array( self::SCHOOL => array( self::SCHOOL_AGRO => false, self::SCHOOL_ENSAE => false, @@ -652,7 +654,7 @@ class WSRequestCriteria ), ); - public static $CHOICES_LIST = array( + public static $choices_list = array( self::HOBBIES, self::JOB_COMPETENCIES, self::JOB_RESUME, @@ -706,7 +708,7 @@ class WSRequestFields const DIPLOMA_MASTER = 'master'; const DIPLOMA_PHD = 'phd'; - public static $CHOICES = array( + public static $choices = array( self::UID, self::FIRSTNAME, self::LASTNAME, @@ -743,14 +745,14 @@ class WSRequestFields public static function profileDegreeToWSDiploma($degree) { switch ($degree) { - case Profile::DEGREE_X: - return self::DIPLOMA_ING; - case Profile::DEGREE_M: - return self::DIPLOMA_MASTER; - case Profile::DEGREE_D: - return self::DIPLOMA_PHD; - default: - return null; + case Profile::DEGREE_X: + return self::DIPLOMA_ING; + case Profile::DEGREE_M: + return self::DIPLOMA_MASTER; + case Profile::DEGREE_D: + return self::DIPLOMA_PHD; + default: + return null; } }