%PDF- %PDF-
Server IP : 37.220.80.31 / Your IP : 3.149.247.132 Web Server : Apache/2.4.52 (Ubuntu) System : Linux 3051455-guretool.twc1.net 5.15.0-107-generic #117-Ubuntu SMP Fri Apr 26 12:26:49 UTC 2024 x86_64 User : www-root ( 1010) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/www-root/data/www/dev.artlot24.ru/bitrix/js/landing/client/ |
Upload File : |
;(function() { "use strict"; BX.namespace("BX.Landing.Client"); /** * Implements Unsplash API client interface * Implements singleton design pattern * @constructor */ BX.Landing.Client.Unsplash = function() { if (BX.Landing.Client.Unsplash.instance) { return BX.Landing.Client.Unsplash.instance; } this.host = "https://api.unsplash.com"; this.clientId = "2f2daddc0c0ea9983e1edd64ef83925faae6d6ab6bf35fe4eb64c2bcfc76fb75"; this.perPage = 31; }; /** * Gets client instance * @static * @returns {BX.Landing.Client.Unsplash} */ BX.Landing.Client.Unsplash.getInstance = function() { return ( BX.Landing.Client.Unsplash.instance || (BX.Landing.Client.Unsplash.instance = new BX.Landing.Client.Unsplash()) ) }; BX.Landing.Client.Unsplash.prototype = { /** * Makes url for request * @param {string} path - /photos, /search/photos ... * @param data * @returns {*} */ makeUrl: function(path, data) { data = typeof data === "object" ? data : {}; data.client_id = this.clientId; return BX.util.add_url_param(this.host + path, data); }, /** * Get download link * @param {Object} image * @return {*} */ download: function(image) { var url = BX.util.add_url_param(image.links.download_location, {client_id: this.clientId}); return new Promise(function(resolve) { BX.ajax({ url: url, method: "GET", headers: [ {name: 'Authorization' , value: 'Client-ID ' + this.clientId} ], onsuccess: function(res) { try { var response = JSON.parse(res); resolve(response.url); } catch (err) { resolve(""); console.error(err); } } }); }.bind(this)); }, /** * Makes request * @param {string} path * @param {object} [data] * @returns {Promise} */ request: function(path, data) { return new Promise(function(resolve) { BX.ajax({ url: this.makeUrl(path, data), method: "GET", data: data, headers: [ {name: 'Authorization' , value: 'Client-ID ' + this.clientId} ], onsuccess: function(res) { var response; try { response = JSON.parse(res); response = "results" in response ? response.results : response; } catch (err) { response = []; console.error(err); } resolve(response); } }); }.bind(this)); }, /** * Gets popular photos * @param {int} [page = 1] - Number of page * @returns {Promise} */ popular: function(page) { page = BX.type.isNumber(page) ? page : 1; return this.request("/photos", {order_by: "popular", per_page: this.perPage, page: page}); }, /** * Gets photos by * @param {string} query - Search query * @param {int} [page = 1] - Number of page * @returns {Promise} */ search: function(query, page) { page = BX.type.isNumber(page) ? page : 1; return this.request("/search/photos", {per_page: this.perPage, page: page, query: encodeURI(query)}); } }; })();