in APISamples/typescript/src/api.ts [49:93]
async uploadFileAsync(file: File) : Promise<void> {
let fileInfo = await this.getFileInfo(file);
let path = window.location.hash.substring(1);
path = path.length > 1 ? path : '';
let item:any = {
Content: fileInfo.content,
Path: `${path}/${fileInfo.name}`,
Name: fileInfo.name,
ContentType: fileInfo.contentType
}
switch (fileInfo.extension.toLocaleLowerCase()) {
case 'rdl':
item['@odata.type'] = '#Model.Report';
break;
case 'rsd':
item['@odata.type'] = '#Model.DataSet';
break;
case 'rds':
item.ContentType = 'text/xml';
item['@odata.type'] = '#Model.Resource';
break;
case 'rsc':
item['@odata.type'] = '#Model.Component';
break;
case 'rsmobile':
item['@odata.type'] = '#Model.MobileReport';
break;
case 'pbix':
item['@odata.type'] = '#Model.PowerBIReport';
break;
case 'xls':
case 'xlsb':
case 'xlsm':
case 'xlsx':
case 'csv':
item['@odata.type'] = '#Model.ExcelWorkbook';
break;
default:
item['@odata.type'] = '#Model.Resource';
break;
}
return api.postCatalogItemAsync(item);
}