Spamworldpro Mini Shell
Spamworldpro


Server : Apache
System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64
User : corals ( 1002)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
Directory :  /home/corals/old/vendor/astock/stock-api-libphp/src/Client/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/old/vendor/astock/stock-api-libphp/src/Client/AdobeStock.php
<?php
/**
 * Copyright 2017 Adobe Systems Incorporated. All rights reserved.
 * This file is licensed 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
 */

namespace AdobeStock\Api\Client;

use \AdobeStock\Api\Client\SearchCategory as SearchCategoryFactory;
use \AdobeStock\Api\Core\Config as CoreConfig;
use \AdobeStock\Api\Exception\StockApi as StockApiException;
use \AdobeStock\Api\Request\SearchCategory as SearchCategoryRequest;
use \AdobeStock\Api\Response\SearchCategory as SearchCategoryResponse;
use \AdobeStock\Api\Client\Http\HttpInterface;
use \AdobeStock\Api\Request\SearchFiles as SearchFilesRequest;
use \AdobeStock\Api\Response\SearchFiles as SearchFilesResponse;
use \AdobeStock\Api\Request\Files as FilesRequest;
use \AdobeStock\Api\Response\Files as FilesResponse;
use \AdobeStock\Api\Client\Http\HttpClient;
use \AdobeStock\Api\Request\License as LicenseRequest;
use \AdobeStock\Api\Client\License as LicenseFactory;
use \AdobeStock\Api\Response\License as LicenseResponse;
use \GuzzleHttp\Psr7\Request;
use \AdobeStock\Api\Request\LicenseHistory as LicenseHistoryRequest;
use \AdobeStock\Api\Response\LicenseHistory as LicenseHistoryResponse;

class AdobeStock
{

    /**
     * Configuration that needs to be initialized.
     * @var CoreConfig
     */
    private $_config;

    /**
     * Factory object of all search category apis.
     * @var SearchCategoryFactory
     */
    private $_search_category_factory;

    /**
     * Factory object of all search Files apis.
     * @var SearchFiles
     */
    private $_search_files_factory;
    
    /**
     * Factory object of all license apis.
     * @var LicenseFactory;
     */
    private $_license_factory;
    
    /**
     * Factory object of all files apis.
     * @var Files;
     */
    private $_files_factory;
    
    /**
     * Factory object of all license History apis.
     * @var LicenseHistory
     */
    private $_license_history_factory;

    /**
     * Custom http client object.
     * @var HttpInterface
     */
    private $_http_client;

    /**
     * Constructor for AdobeStock client that requires following
     * configuration to be initialized.
     * @param string        $api_key     Api Key for config
     * @param string        $product     Target Product
     * @param string        $target_env  Target Environment Prod/Stage
     * @param HttpInterface $http_client Custom http client
     */
    public function __construct(string $api_key, string $product, string $target_env, HttpInterface $http_client = null)
    {
        $this->_config = new CoreConfig($api_key, $product, $target_env);
        $this->_search_category_factory = new SearchCategoryFactory($this->_config);
        $this->_search_files_factory = new SearchFiles($this->_config);
        $this->_license_factory = new LicenseFactory($this->_config);
        $this->_license_history_factory = new LicenseHistory($this->_config);
        $this->_files_factory = new Files($this->_config);

        if ($http_client === null) {
            $this->_http_client = new HttpClient();
        } else {
            $this->_http_client = $http_client;
        }
    }

    /**
     * Setter function for custom Http client.
     * @param HttpInterface $http_client custom Http client
     * @return AdobeStock client.
     */
    public function setHttpClient(HttpInterface $http_client) : AdobeStock
    {
        $this->_http_client = $http_client;
        return $this;
    }

    /**
     * Get information about a category of Stock assets, such as travel
     * or animals for a specified category identifier, optionally localized.
     * @param SearchCategoryRequest $request      object containing
     * category-id and locale
     * @param string                $access_token Users ims access token
     * @return SearchCategoryResponse contains id,name and link of the asset category.
     */
    public function searchCategory(SearchCategoryRequest $request, string $access_token) : SearchCategoryResponse
    {
        $response = $this->_search_category_factory->getCategory($request, $access_token, $this->_http_client);
        return $response;
    }

    /**
     * Get category information for zero or more category identifiers.
     * If you request information without specifying a category,
     * this returns a list of all stock categories.
     * @param SearchCategoryRequest $request      object containing
     * category-id and locale
     * @param string                $access_token Users ims access token
     * @return array list of SearchCategoryResponse objects each containing information about asset category.
     */
    public function searchCategoryTree(SearchCategoryRequest $request, string $access_token) : array
    {
        $response = $this->_search_category_factory->getCategoryTree($request, $access_token, $this->_http_client);
        return $response;
    }

    /**
     * Method to get files using API.
     *
     * @param FilesRequest $request
     * @param string $access_token
     * @return FilesResponse
     * @throws StockApiException
     */
    public function getFiles(FilesRequest $request, string $access_token = null) : FilesResponse
    {
        return $this->_files_factory->getFiles($request, $this->_http_client, $access_token);
    }

    /**
     * Method to initialize search files.
     * @param SearchFilesRequest $request
     * @param string             $access_token
     * @return AdobeStock
     */
    public function searchFilesInitialize(SearchFilesRequest $request, string $access_token = null) : AdobeStock
    {
        $this->_search_files_factory->searchFilesInitialize($request, $access_token, $this->_http_client, true);
        return $this;
    }

    /**
     * Method to get next search files response page.
     * @return SearchFilesResponse
     */
    public function getNextResponse() : SearchFilesResponse
    {
        $response = $this->_search_files_factory->getNextResponse();
        return $response;
    }

    /**
     * Method to get to previous search files response page.
     * @return SearchFilesResponse
     */
    public function getPreviousResponse() : SearchFilesResponse
    {
        $response = $this->_search_files_factory->getPreviousResponse();
        return $response;
    }

    /**
     * Method to get response from last api call.
     * @return SearchFilesResponse
     */
    public function getLastResponse() : SearchFilesResponse
    {
        $response = $this->_search_files_factory->getLastResponse();
        return $response;
    }

    /**
     * Method to skip to a specific search files response page.
     * @param int $page_index
     * @return SearchFilesResponse
     */
    public function getResponsePage(int $page_index) : SearchFilesResponse
    {
        $response = $this->_search_files_factory->getResponsePage($page_index);
        return $response;
    }

    /**
     * Method to get total search files available.
     * @return int
     */
    public function totalSearchFiles() : int
    {
        $total_files = $this->_search_files_factory->totalSearchFiles();
        return $total_files;
    }

    /**
     * Method to get total search results pages.
     * @return int
     */
    public function totalSearchPages() : int
    {
        $total_pages = $this->_search_files_factory->totalSearchPages();
        return $total_pages;
    }

    /**
     * Method to get response from last api call.
     * @return int
     */
    public function currentSearchPageIndex() : int
    {
        $current_page = $this->_search_files_factory->currentSearchPageIndex();
        return $current_page;
    }
    
    /**
     * Requests licensing information about a specific asset for a specific user
     * @param LicenseRequest $request      object containing
     * category-id and locale
     * @param string         $access_token Users ims access token
     * @return LicenseResponse contains LicenseEntitlement,LicensePurchaseOptions,LicenseMemberInfo,cce_agency and contents
     */
    public function getContentInfo(LicenseRequest $request, string $access_token) : LicenseResponse
    {
        $response = $this->_license_factory->getContentInfo($request, $access_token, $this->_http_client);
        return $response;
    }
    
    /**
     * Requests a license for an asset for a specific user.
     * @param LicenseRequest $request
     * @param string         $access_token
     * @return LicenseResponse contains LicenseEntitlement,LicensePurchaseOptions,LicenseMemberInfo,cce_agency and contents
     */
    public function getContentLicense(LicenseRequest $request, string $access_token) : LicenseResponse
    {
        $response = $this->_license_factory->getContentLicense($request, $access_token, $this->_http_client);
        return $response;
    }
    
    /**
     * It can be used to get the licensing capabilities for a specific user.
     * This API returns the user's available purchase quota, the member
     * identifier, and information that you can use to present licensing
     * options to the user when the user next requests an asset purchase.
     * In this 3 cases can occur -
     * User has enough quota to license the next asset.
     * User doesn't have enough quota and is set up to handle overage.
     * User doesn't have quota and there is no overage plan.
     * @param LicenseRequest $request
     * @param string         $access_token
     * @return LicenseResponse contains LicenseEntitlement,LicensePurchaseOptions,LicenseMemberInfo,cce_agency and contents
     */
    public function getMemberProfile(LicenseRequest $request, string $access_token) : LicenseResponse
    {
        $response = $this->_license_factory->getMemberProfile($request, $access_token, $this->_http_client);
        return $response;
    }
    
    /**
     * Notifies the system when a user cancels a licensing operation.
     * It can be used if the user refuses the opportunity to purchase
     * or license the requested asset.
     * @param LicenseRequest $request
     * @param string         $access_token
     * @return int $response_code
     */
    public function abandonLicense(LicenseRequest $request, string $access_token) : int
    {
        $response_code = $this->_license_factory->abandonLicense($request, $access_token, $this->_http_client);
        return $response_code;
    }
    
    /**
     * Provide the guzzle request object that contains url of the asset that can be downloaded by hitting request with guzzle client send method if it is already licensed
     * @param LicenseRequest $request
     * @param string         $access_token
     * @return Request guzzle request object containing url of the asset.
     */
    public function downloadAssetRequest(LicenseRequest $request, string $access_token) : Request
    {
        $guzzle_request = $this->_license_factory->downloadAssetRequest($request, $access_token, $this->_http_client);
        return $guzzle_request;
    }
    
    /**
     * Provide the url of the asset if it is already licensed.
     * @param LicenseRequest $request
     * @param string         $access_token
     * @return string url of the asset.
     */
    public function downloadAssetUrl(LicenseRequest $request, string $access_token) : string
    {
        $url = $this->_license_factory->downloadAssetUrl($request, $access_token, $this->_http_client);
        return $url;
    }
    
    /**
     * Provide the Image Buffer if it is already licensed.
     * @param LicenseRequest $request
     * @param string         $access_token
     * @return string Image stream.
     */
    public function downloadAssetStream(LicenseRequest $request, string $access_token) : string
    {
        $image_stream = $this->_license_factory->downloadAssetStream($request, $access_token, $this->_http_client);
        return $image_stream;
    }

    /**
     * Method to initialize license history.
     * @param LicenseHistoryRequest $request      License History request object
     * @param string                $access_token Access token
     * @return AdobeStock
     */
    public function initializeLicenseHistory(LicenseHistoryRequest $request, string $access_token = null) : AdobeStock
    {
        $this->_license_history_factory->initializeLicenseHistory($request, $access_token, $this->_http_client);
        return $this;
    }
    
    /**
     * Method to get next license history files response page.
     * @return LicenseHistoryResponse
     */
    public function getNextLicenseHistory() : LicenseHistoryResponse
    {
        $response = $this->_license_history_factory->getNextLicenseHistory();
        return $response;
    }
    
    /**
     * Method to get previous license history files response page.
     * @return LicenseHistoryResponse
     */
    public function getPreviousLicenseHistory() : LicenseHistoryResponse
    {
        $response = $this->_license_history_factory->getPreviousLicenseHistory();
        return $response;
    }
    
    /**
     * Method to get response from last api call.
     * @return LicenseHistoryResponse
     */
    public function getLastLicenseHistory() : LicenseHistoryResponse
    {
        $response = $this->_license_history_factory->getLastLicenseHistory();
        return $response;
    }
    
    /**
     * Method to skip to a specific license files response page.
     * @param int $page_index
     * @return LicenseHistoryResponse
     */
    public function getLicenseHistoryPage(int $page_index) : LicenseHistoryResponse
    {
        $response = $this->_license_history_factory->getLicenseHistoryPage($page_index);
        return $response;
    }
    
    /**
     * Method to get total license files available.
     * @return int
     */
    public function getTotalLicenseHistoryFiles() : int
    {
        $total_files = $this->_license_history_factory->getTotalLicenseHistoryFiles();
        return $total_files;
    }
    
    /**
     * Method to get total license results pages.
     * @return int
     */
    public function getTotalLicenseHistoryPages() : int
    {
        $total_pages = $this->_license_history_factory->getTotalLicenseHistoryPages();
        return $total_pages;
    }
    
    /**
     * Method to get response from last api call.
     * @return int
     */
    public function currentLicenseHistoryPageIndex() : int
    {
        $current_page = $this->_license_history_factory->currentLicenseHistoryPageIndex();
        return $current_page;
    }
}

Spamworldpro Mini