%PDF- %PDF-
| Direktori : /home/dopla/www/wp-content/plugins/ml-slider/admin/assets/js/app/api/external/ |
| Current File : /home/dopla/www/wp-content/plugins/ml-slider/admin/assets/js/app/api/external/Unsplash.js |
import Axios from 'axios'
import { EventManager } from '../../utils'
// Since this uses an external api we need a new instance
const api = Axios.create({
baseURL: 'https://www.metaslider.com/wp-json/unsplash/v1/'
})
const Unsplash = {
photos(page = 1, search = '', nocache = 0) {
if (search) {
return this.searchPhotos(page, search)
}
return api.get('images/all', {
params: { page: page, nocache: nocache }
})
},
searchPhotos(page = 1, search = '') {
return api.post('images/search', {
page: page,
search: search
})
},
// A download from Unsplash requires downloading the image
// AND hitting an endpoint to "count" the download
async download(url, id) {
// 1) Download image
const blob = await Axios.get(url, {
responseType: 'blob',
onDownloadProgress: progressEvent => {
// Leave the last 20% for the final confirmation from the server
let percentage = parseInt(Math.round((progressEvent.loaded * 100) / progressEvent.total)) - 20
EventManager.$emit('metaslider/external-api-percentage', {
percentage: percentage > 1 ? percentage : 1
})
}
})
// 2) Trigger the endpoint to increase the count (specific to Unsplash)
api.post(`images/${id}/download`)
// Return the blob to be processed on the user's server
return blob
}
}
export default Unsplash