Exemplo n.º 1
0
<?php

use HelpScoutDocs\DocsApiClient;
use HelpScoutDocs\Models\ArticleAsset;
use HelpScoutDocs\Models\SettingsAsset;
require_once __DIR__ . '/../vendor/autoload.php';
$docsClient = new DocsApiClient();
$docsClient->setKey('API_KEY');
// Create article asset
$articleAsset = new ArticleAsset();
$articleAsset->setArticleId('ARTICLE_ID');
$articleAsset->setAssetType(ArticleAsset::ARTICLE_ASSET_IMAGE);
$articleAsset->setFile('REAL_PATH_TO_FILE');
$result = $docsClient->createArticleAsset($articleAsset);
// Create settings asset
$settingsAsset = new SettingsAsset();
$settingsAsset->setSiteId('SITE_ID');
$settingsAsset->setAssetType(SettingsAsset::SETTINGS_ASSET_LOGO);
$settingsAsset->setFile('REAL_PATH_TO_FILE');
$result = $docsClient->createSettingsAsset($settingsAsset);
 /**
  * @param ArticleAsset $articleAsset
  * @return ArticleAsset
  * @throws ApiException
  */
 public function createArticleAsset(ArticleAsset $articleAsset)
 {
     if (!file_exists($articleAsset->getFile())) {
         throw new ApiException(sprintf("Unable to locate file: %s", $articleAsset->getFile()));
     }
     if (empty($articleAsset->getArticleId())) {
         throw new ApiException("articleId is empty or not provided");
     }
     if (empty($articleAsset->getAssetType())) {
         throw new ApiException("assetType is empty or not provided");
     }
     $multipart = [['name' => 'key', 'contents' => $this->apiKey], ['name' => 'articleId', 'contents' => $articleAsset->getArticleId()], ['name' => 'assetType', 'contents' => $articleAsset->getAssetType()], ['name' => 'file', 'contents' => fopen($articleAsset->getFile(), 'r')]];
     $uploadedAsset = $this->doPostMultipart('assets/article', $multipart);
     $articleAsset->setFileLink($uploadedAsset->filelink);
     return $articleAsset;
 }
Exemplo n.º 3
0
 /**
  * @tests
  * @expectedException \HelpScoutDocs\ApiException
  */
 public function should_throw_an_exception_if_api_key_is_invalid()
 {
     $articleAsset = new ArticleAsset();
     $articleAsset->setArticleId(uniqid());
     $articleAsset->setAssetType(ArticleAsset::ARTICLE_ASSET_IMAGE);
     $articleAsset->setFile(__DIR__ . '/../../fixtures/assets/octocat.png');
     $responseMock = $this->createResponseMock(201, __DIR__ . '/../../fixtures/assets/assets.json');
     $apiClient = $this->createTestApiClient($responseMock);
     $apiClient->setKey('');
     $apiClient->createArticleAsset($articleAsset);
 }