@kontent-ai/management-sdk
Version:
Official Kontent.ai management SDK
39 lines (32 loc) • 1.32 kB
text/typescript
import { IManagementClientConfig } from '../../config';
import { AssetModels } from '../../models';
import { AssetResponses } from '../../responses';
import { ManagementQueryService } from '../../services';
import { BaseQuery } from '../base-query';
export class UploadAssetFromUrlQuery extends BaseQuery<AssetResponses.AddAssetResponse> {
constructor(
protected config: IManagementClientConfig,
protected queryService: ManagementQueryService,
public data: AssetModels.IUploadAssetFromUrlRequestData
) {
super(config, queryService);
this.withUrl('none'); // do not set url as there are multiple endpoints used
}
toPromise(): Promise<AssetResponses.AddAssetResponse> {
return this.queryService.uploadAssetFromUrlAsync(
this.getUploadBinaryFileUrl(),
this.getAddAssetUrl(),
this.data,
this.queryConfig
);
}
getAddAssetUrl(): string {
return super.getUrlForAction(this.apiEndpoints.addAsset());
}
getUploadBinaryFileUrl(): string {
return super.getUrlForAction(this.apiEndpoints.uploadBinaryFile(this.data.binaryFile.filename));
}
protected getAction(): string {
return this.apiEndpoints.addAsset();
}
}