/** * @depends testGetPageUsingTitle */ public function testGetPageUsingId() { $factory = TestEnvironment::newDefault()->getFactory(); $page = $factory->newPageGetter()->getFromPageId(self::$localPageIdentifier->getId()); $this->assertEquals(self::$localPageIdentifier->getId(), $page->getPageIdentifier()->getId()); $title = $page->getPageIdentifier()->getTitle(); $this->assertEquals(self::$localPageIdentifier->getTitle(), $title); }
/** * @param PageIdentifier $pageIdentifier * * @return Page * * @throws InvalidArgumentException */ public function getFromPageIdentifier(PageIdentifier $pageIdentifier) { if (!$pageIdentifier->identifiesPage()) { throw new InvalidArgumentException('$pageIdentifier does not identify a page'); } if (!is_null($pageIdentifier->getId())) { return $this->getFromPageId($pageIdentifier->getId()); } else { return $this->getFromTitle($pageIdentifier->getTitle()); } }
/** * @since 0.4 * * @param PageIdentifier $pageIdentifier * @param array $extraParams * * @throws RuntimeException * @returns Page */ public function getFromPageIdentifier(PageIdentifier $pageIdentifier, array $extraParams = []) { if (!$pageIdentifier->identifiesPage()) { throw new RuntimeException('$pageIdentifier does not identify a page'); } if (!is_null($pageIdentifier->getId())) { return $this->getFromPageId($pageIdentifier->getId(), $extraParams); } else { return $this->getFromTitle($pageIdentifier->getTitle(), $extraParams); } }
/** * @param PageIdentifier $pageIdentifier * * @return PromiseInterface of array the parse result (raw from the api) */ public function parsePageAsync(PageIdentifier $pageIdentifier) { $params = []; if ($pageIdentifier->getId() !== null) { $params['pageid'] = $pageIdentifier->getId(); } elseif ($pageIdentifier->getTitle() !== null) { $params['page'] = $pageIdentifier->getTitle()->getText(); } else { throw new \RuntimeException('No way to identify page'); } $promise = $this->api->getRequestAsync(new SimpleRequest('parse', $params)); return $promise->then(function ($result) { return $result['parse']; }); }
/** * @dataProvider provideRoundTripObjects */ public function testJsonRoundTrip(PageIdentifier $identifierObject) { $json = $identifierObject->jsonSerialize(); $this->assertEquals($identifierObject, PageIdentifier::jsonDeserialize($json)); }
/** * @param PageIdentifier $identifier * @param array $extraParams * * @return array */ private function getDeleteParams(PageIdentifier $identifier, $extraParams) { $params = []; if (!is_null($identifier->getId())) { $params['pageid'] = $identifier->getId(); } else { $params['title'] = $identifier->getTitle()->getTitle(); } $params['token'] = $this->api->getToken('delete'); return array_merge($extraParams, $params); }
/** * @deprecated since 0.5 * @return Title */ public function getTitle() { return $this->pageIdentifier->getTitle(); }
/** * @since 0.4 * * @param PageIdentifier $pageIdentifier * @param QueryOptions|null $options * * @throws RuntimeException * @returns Page */ public function getFromPageIdentifier(PageIdentifier $pageIdentifier, QueryOptions $options = null) { if (!$pageIdentifier->identifiesPage()) { throw new RuntimeException('$pageIdentifier does not identify a page'); } if (!is_null($pageIdentifier->getId())) { return $this->getFromPageId($pageIdentifier->getId(), $options); } else { return $this->getFromTitle($pageIdentifier->getTitle(), $options); } }
/** * @depends testGetPageUsingTitle */ public function testGetPageUsingId() { $page = $this->factory->newPageGetter()->getFromPageId(self::$localPageIdentifier->getId()); $this->assertEquals(self::$localPageIdentifier->getId(), $page->getPageIdentifier()->getId()); $this->assertEquals(self::$localPageIdentifier->getTitle(), $page->getPageIdentifier()->getTitle()); }
/** * @param PageIdentifier $identifier * @param DeleteOptions|null $options * * @return array */ private function getDeleteParams(PageIdentifier $identifier, $options) { $params = array(); if (!is_null($options)) { $reason = $options->getReason(); if (!empty($reason)) { $params['reason'] = $reason; } } if (!is_null($identifier->getId())) { $params['pageid'] = $identifier->getId(); } else { $params['title'] = $identifier->getTitle()->getTitle(); } $params['token'] = $this->api->getToken('delete'); return $params; }
/** * @param array $json * * @return self */ public static function jsonDeserialize($json) { return new self($json['id'], $json['type'], $json['action'], $json['timestamp'], $json['user'], PageIdentifier::jsonDeserialize($json['pageidentifier']), $json['comment'], $json['details']); }