async uploadFileAsync()

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);
    }