Beispiel #1
0
 /**
  * Submit this draft paste to the Pastebin API.
  * @param \Brush\Accounts\Developer $developer The developer account to use to send the request.
  * @return \Brush\Pastes\Paste The created paste.
  */
 public function paste(Developer $developer)
 {
     // throw on any errors
     $this->validate();
     // create the request
     $pastebin = new ApiRequest($developer, self::ENDPOINT);
     $pastebin->setOption('paste');
     $this->addTo($pastebin->getRequest(), $developer);
     // send and create a paste from this draft
     return Paste::fromPasted($pastebin->send(), $this);
 }
Beispiel #2
0
 /**
  * Remove this paste from Pastebin.
  * @param \Brush\Accounts\Developer $developer The developer account to use for the request.
  * @throws \Brush\Exceptions\ValidationException If this paste does not have an owner
  *                                               (e.g. it was retrieved via the trending pastes API).
  */
 public function delete(Developer $developer)
 {
     // we can only delete pastes for which an Account is set
     if (!$this->hasOwner()) {
         throw new ValidationException('A paste must have an owner to be deleted.');
     }
     $pastebin = new ApiRequest($developer, self::DELETE_ENDPOINT);
     $pastebin->setOption('delete');
     $request = $pastebin->getRequest();
     $this->getOwner()->sign($request, $developer);
     $request->getVariables()->set('api_paste_key', $this->getKey());
     $pastebin->send();
 }
Beispiel #3
0
 /**
  * Retrieve a user's information from their account.
  * @param \Brush\Accounts\Account $account The account whose corresponding information to retrieve.
  * @param \Brush\Accounts\Developer $developer The developer account to use for the request.
  * @return \Brush\Accounts\User A user instance containing the account's information.
  */
 public static final function fromAccount(Account $account, Developer $developer)
 {
     $key = $account->getCacheKey($developer);
     if (self::getCache()->isCached($key)) {
         // user cache hit
         return self::getCache()->get($key);
     }
     $pastebin = new ApiRequest($developer, self::ENDPOINT);
     $pastebin->setOption('userdetails');
     $account->sign($pastebin->getRequest(), $developer);
     $user = self::fromXml(ApiRequest::toElement($pastebin->send()));
     self::getCache()->set($key, $user);
     return $user;
 }
Beispiel #4
0
 /**
  * Get the 18 currently trending pastes.
  * @param \Brush\Accounts\Developer $developer The developer account to use for the request.
  * @return \Brush\Pastes\Paste[] Trending pastes.
  */
 public static function getPastes(Developer $developer)
 {
     $pastebin = new ApiRequest($developer, self::ENDPOINT);
     $pastebin->setOption('trends');
     return Paste::parsePastes($pastebin->send());
 }
Beispiel #5
0
 /**
  * Retrieve pastes created by this account in descending order of date created.
  * @param \Brush\Accounts\Developer $developer The developer account to use for the request.
  * @param int $limit The maximum number of pastes to retrieve. 1 <= $number <= 1000. Defaults to 50.
  * @throws \Brush\Exceptions\ArgumentException If the number of pastes is outside the allowed range.
  * @return \Brush\Pastes\Paste[] This account's pastes, up to the limit.
  */
 public function getPastes(Developer $developer, $limit = 50)
 {
     // check 1 <= $number <= 1000
     if ($limit < 1 || $limit > 1000) {
         throw new ArgumentException('The number of pastes must be in the range 1 to 1000 inclusive.');
     }
     $pastebin = new ApiRequest($developer, self::PASTES_ENDPOINT);
     $pastebin->setOption('list');
     $request = $pastebin->getRequest();
     $this->sign($request, $developer);
     $request->getVariables()->set('api_results_limit', $limit);
     return Paste::parsePastes($pastebin->send(), $this);
 }