| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- /**
- * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
- */
- /**
- * @module cloud-services-core/uploadgateway
- */
- import FileUploader from './fileuploader';
- import CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';
- /**
- * UploadGateway abstracts file uploads to CKEditor Cloud Services.
- */
- export default class UploadGateway {
- /**
- * Creates `UploadGateway` instance.
- *
- * @param {module:cloud-services-core/token~Token} token Token used for authentication.
- * @param {String} apiAddress API address.
- */
- constructor( token, apiAddress ) {
- if ( !token ) {
- /**
- * Token must be provided.
- *
- * @error uploadgateway-missing-token
- */
- throw new CKEditorError( 'uploadgateway-missing-token: Token must be provided.', null );
- }
- if ( !apiAddress ) {
- /**
- * Api address must be provided.
- *
- * @error uploadgateway-missing-api-address
- */
- throw new CKEditorError( 'uploadgateway-missing-api-address: Api address must be provided.', null );
- }
- /**
- * CKEditor Cloud Services access token.
- *
- * @type {module:cloud-services-core/token~Token}
- * @private
- */
- this._token = token;
- /**
- * CKEditor Cloud Services API address.
- *
- * @type {String}
- * @private
- */
- this._apiAddress = apiAddress;
- }
- /**
- * Creates a {@link module:cloud-services-core/uploadgateway~FileUploader} instance that wraps
- * file upload process. The file is being sent at a time when the
- * {@link module:cloud-services-core/uploadgateway~FileUploader#send} method is called.
- *
- * const token = await Token.create( 'https://token-endpoint' );
- * new UploadGateway( token, 'https://example.org' )
- * .upload( 'FILE' )
- * .onProgress( ( data ) => console.log( data ) )
- * .send()
- * .then( ( response ) => console.log( response ) );
- *
- * @param {Blob|String} fileOrData A blob object or a data string encoded with Base64.
- * @returns {module:cloud-services-core/uploadgateway~FileUploader} Returns `FileUploader` instance.
- */
- upload( fileOrData ) {
- return new FileUploader( fileOrData, this._token, this._apiAddress );
- }
- }
|