Merge pull request #2 from StevanFreeborn/fix/file-name-bug
fix: file name bug
This commit is contained in:
@@ -261,13 +261,10 @@ export class ApiResponse<T> {
|
|||||||
|
|
||||||
public asFileType(response: AxiosResponse): ApiResponse<File> {
|
public asFileType(response: AxiosResponse): ApiResponse<File> {
|
||||||
const apiResponse = this as ApiResponse<any>;
|
const apiResponse = this as ApiResponse<any>;
|
||||||
|
const fileName = response.headers['content-disposition']
|
||||||
let fileName = response.headers['content-disposition']
|
|
||||||
.split(';')[1]
|
.split(';')[1]
|
||||||
.split('=')[1];
|
.split('=')[1];
|
||||||
|
|
||||||
fileName = fileName.substring(1, fileName.length - 1);
|
|
||||||
|
|
||||||
const contentType =
|
const contentType =
|
||||||
response.headers['content-type'] ??
|
response.headers['content-type'] ??
|
||||||
response.headers['Content-Type'] ??
|
response.headers['Content-Type'] ??
|
||||||
|
|||||||
+23
-21
@@ -1,33 +1,33 @@
|
|||||||
import { ApiResponse } from '../src/models/ApiResponse';
|
import { type AxiosResponse } from 'axios';
|
||||||
import { expect } from 'chai';
|
import { expect } from 'chai';
|
||||||
import { GetPagedAppsResponse } from '../src/models/GetPagedAppsResponse';
|
import fs from 'fs';
|
||||||
import { App } from '../src/models/App';
|
import path from 'path';
|
||||||
import { CollectionResponse } from '../src/models/CollectionResponse';
|
|
||||||
import { Field } from '../src/models/Field';
|
|
||||||
import { FieldStatus } from '../src/enums/FieldStatus';
|
import { FieldStatus } from '../src/enums/FieldStatus';
|
||||||
import { FieldType } from '../src/enums/FieldType';
|
import { FieldType } from '../src/enums/FieldType';
|
||||||
import { GetPagedFieldsResponse } from '../src/models/GetPagedFieldsResponse';
|
|
||||||
import { CreatedWithIdResponse } from '../src/models/CreatedWithIdResponse';
|
|
||||||
import { FormulaField } from '../src/models/FormulaField';
|
|
||||||
import { FormulaOutputType } from '../src/enums/FormulaOutputType';
|
import { FormulaOutputType } from '../src/enums/FormulaOutputType';
|
||||||
import { ListValue } from '../src/models/ListValue';
|
|
||||||
import { ReferenceField } from '../src/models/ReferenceField';
|
|
||||||
import { Multiplicity } from '../src/enums/Multiplicity';
|
import { Multiplicity } from '../src/enums/Multiplicity';
|
||||||
import { ListField } from '../src/models/ListField';
|
import { ApiResponse } from '../src/models/ApiResponse';
|
||||||
|
import { App } from '../src/models/App';
|
||||||
|
import { CollectionResponse } from '../src/models/CollectionResponse';
|
||||||
|
import { CreatedWithIdResponse } from '../src/models/CreatedWithIdResponse';
|
||||||
|
import { Field } from '../src/models/Field';
|
||||||
import { File } from '../src/models/File';
|
import { File } from '../src/models/File';
|
||||||
import { ListItemResponse } from '../src/models/ListItemResponse';
|
import { FormulaField } from '../src/models/FormulaField';
|
||||||
|
import { GetPagedAppsResponse } from '../src/models/GetPagedAppsResponse';
|
||||||
|
import { GetPagedFieldsResponse } from '../src/models/GetPagedFieldsResponse';
|
||||||
|
import { GetPagedRecordsResponse } from '../src/models/GetPagedRecordsResponse';
|
||||||
import { GetPagedReportsResponse } from '../src/models/GetPagedReportsResponse';
|
import { GetPagedReportsResponse } from '../src/models/GetPagedReportsResponse';
|
||||||
|
import { ListField } from '../src/models/ListField';
|
||||||
|
import { ListItemResponse } from '../src/models/ListItemResponse';
|
||||||
|
import { ListValue } from '../src/models/ListValue';
|
||||||
|
import { Record } from '../src/models/Record';
|
||||||
|
import { RecordValue } from '../src/models/RecordValue';
|
||||||
|
import { ReferenceField } from '../src/models/ReferenceField';
|
||||||
import { Report } from '../src/models/Report';
|
import { Report } from '../src/models/Report';
|
||||||
import { ReportData } from '../src/models/ReportData';
|
import { ReportData } from '../src/models/ReportData';
|
||||||
import { Row } from '../src/models/Row';
|
import { Row } from '../src/models/Row';
|
||||||
import { Record } from '../src/models/Record';
|
|
||||||
import { RecordValue } from '../src/models/RecordValue';
|
|
||||||
import { GetPagedRecordsResponse } from '../src/models/GetPagedRecordsResponse';
|
|
||||||
import { testFieldData } from './testData/testFieldData';
|
|
||||||
import { type AxiosResponse } from 'axios';
|
|
||||||
import path from 'path';
|
|
||||||
import fs from 'fs';
|
|
||||||
import { SaveRecordResponse } from '../src/models/SaveRecordResponse';
|
import { SaveRecordResponse } from '../src/models/SaveRecordResponse';
|
||||||
|
import { testFieldData } from './testData/testFieldData';
|
||||||
|
|
||||||
describe('ApiResponse', function () {
|
describe('ApiResponse', function () {
|
||||||
it('should be defined', function () {
|
it('should be defined', function () {
|
||||||
@@ -807,7 +807,8 @@ describe('ApiResponse', function () {
|
|||||||
const mockResponse = {
|
const mockResponse = {
|
||||||
headers: {
|
headers: {
|
||||||
'content-type': 'text/plain',
|
'content-type': 'text/plain',
|
||||||
'content-disposition': 'attachment; filename="test-attachment.txt"',
|
'content-disposition':
|
||||||
|
"attachment; filename=test-attachment.txt; filename*=UTF-8''test-attachment.txt",
|
||||||
'Content-Length': '13',
|
'Content-Length': '13',
|
||||||
} as AxiosResponse['headers'],
|
} as AxiosResponse['headers'],
|
||||||
} as AxiosResponse;
|
} as AxiosResponse;
|
||||||
@@ -837,7 +838,8 @@ describe('ApiResponse', function () {
|
|||||||
const mockResponse = {
|
const mockResponse = {
|
||||||
headers: {
|
headers: {
|
||||||
'content-type': 'image/jpeg',
|
'content-type': 'image/jpeg',
|
||||||
'content-disposition': 'attachment; filename="test-image.jpeg"',
|
'content-disposition':
|
||||||
|
"attachment; filename=test-image.jpeg; filename*=UTF-8''test-image.jpeg",
|
||||||
'Content-Length': '98897',
|
'Content-Length': '98897',
|
||||||
} as AxiosResponse['headers'],
|
} as AxiosResponse['headers'],
|
||||||
} as AxiosResponse;
|
} as AxiosResponse;
|
||||||
|
|||||||
@@ -1,37 +1,37 @@
|
|||||||
import { OnspringClient } from '../src/models/OnspringClient';
|
|
||||||
import { ApiResponse } from '../src/models/ApiResponse';
|
|
||||||
import axios, {
|
import axios, {
|
||||||
type AxiosResponse,
|
type AxiosResponse,
|
||||||
type InternalAxiosRequestConfig,
|
type InternalAxiosRequestConfig,
|
||||||
} from 'axios';
|
} from 'axios';
|
||||||
import { expect } from 'chai';
|
import { expect } from 'chai';
|
||||||
import { GetPagedAppsResponse } from '../src/models/GetPagedAppsResponse';
|
|
||||||
import { App } from '../src/models/App';
|
|
||||||
import { CollectionResponse } from '../src/models/CollectionResponse';
|
|
||||||
import { Field } from '../src/models/Field';
|
|
||||||
import { FieldStatus } from '../src/enums/FieldStatus';
|
|
||||||
import { FieldType } from '../src/enums/FieldType';
|
|
||||||
import { GetPagedFieldsResponse } from '../src/models/GetPagedFieldsResponse';
|
|
||||||
import { SaveFileRequest } from '../src/models/SaveFileRequest';
|
|
||||||
import { Readable } from 'stream';
|
|
||||||
import { CreatedWithIdResponse } from '../src/models/CreatedWithIdResponse';
|
|
||||||
import { FileInfo } from '../src/models/FileInfo';
|
|
||||||
import { File } from '../src/models/File';
|
|
||||||
import { ListItemRequest } from '../src/models/ListItemRequest';
|
|
||||||
import { ListItemResponse } from '../src/models/ListItemResponse';
|
|
||||||
import { Report } from '../src/models/Report';
|
|
||||||
import { GetPagedReportsResponse } from '../src/models/GetPagedReportsResponse';
|
|
||||||
import { ReportData } from '../src/models/ReportData';
|
|
||||||
import { GetRecordRequest } from '../src/models/GetRecordRequest';
|
|
||||||
import { Record } from '../src/models/Record';
|
|
||||||
import { RecordValue } from '../src/models/RecordValue';
|
|
||||||
import { GetRecordsByAppIdRequest } from '../src/models/GetRecordsByAppIdRequest';
|
|
||||||
import { GetPagedRecordsResponse } from '../src/models/GetPagedRecordsResponse';
|
|
||||||
import { GetRecordsRequest } from '../src/models/GetRecordsRequest';
|
|
||||||
import fs from 'fs';
|
import fs from 'fs';
|
||||||
import path from 'path';
|
import path from 'path';
|
||||||
import * as sinon from 'sinon';
|
import * as sinon from 'sinon';
|
||||||
|
import { Readable } from 'stream';
|
||||||
|
import { FieldStatus } from '../src/enums/FieldStatus';
|
||||||
|
import { FieldType } from '../src/enums/FieldType';
|
||||||
|
import { ApiResponse } from '../src/models/ApiResponse';
|
||||||
|
import { App } from '../src/models/App';
|
||||||
|
import { CollectionResponse } from '../src/models/CollectionResponse';
|
||||||
|
import { CreatedWithIdResponse } from '../src/models/CreatedWithIdResponse';
|
||||||
|
import { Field } from '../src/models/Field';
|
||||||
|
import { File } from '../src/models/File';
|
||||||
|
import { FileInfo } from '../src/models/FileInfo';
|
||||||
|
import { GetPagedAppsResponse } from '../src/models/GetPagedAppsResponse';
|
||||||
|
import { GetPagedFieldsResponse } from '../src/models/GetPagedFieldsResponse';
|
||||||
|
import { GetPagedRecordsResponse } from '../src/models/GetPagedRecordsResponse';
|
||||||
|
import { GetPagedReportsResponse } from '../src/models/GetPagedReportsResponse';
|
||||||
|
import { GetRecordRequest } from '../src/models/GetRecordRequest';
|
||||||
|
import { GetRecordsByAppIdRequest } from '../src/models/GetRecordsByAppIdRequest';
|
||||||
|
import { GetRecordsRequest } from '../src/models/GetRecordsRequest';
|
||||||
|
import { ListItemRequest } from '../src/models/ListItemRequest';
|
||||||
|
import { ListItemResponse } from '../src/models/ListItemResponse';
|
||||||
|
import { OnspringClient } from '../src/models/OnspringClient';
|
||||||
import { QueryRecordsRequest } from '../src/models/QueryRecordsRequest';
|
import { QueryRecordsRequest } from '../src/models/QueryRecordsRequest';
|
||||||
|
import { Record } from '../src/models/Record';
|
||||||
|
import { RecordValue } from '../src/models/RecordValue';
|
||||||
|
import { Report } from '../src/models/Report';
|
||||||
|
import { ReportData } from '../src/models/ReportData';
|
||||||
|
import { SaveFileRequest } from '../src/models/SaveFileRequest';
|
||||||
import { SaveRecordRequest } from '../src/models/SaveRecordRequest';
|
import { SaveRecordRequest } from '../src/models/SaveRecordRequest';
|
||||||
|
|
||||||
describe('OnspringClient', function () {
|
describe('OnspringClient', function () {
|
||||||
@@ -1796,7 +1796,8 @@ describe('OnspringClient', function () {
|
|||||||
statusText: 'OK',
|
statusText: 'OK',
|
||||||
data: file,
|
data: file,
|
||||||
headers: {
|
headers: {
|
||||||
'content-disposition': 'attachment; filename="test-attachment.txt"',
|
'content-disposition':
|
||||||
|
"attachment; filename=test-attachment.txt; filename*=UTF-8''test-attachment.txt",
|
||||||
'content-length': 14,
|
'content-length': 14,
|
||||||
'content-type': 'text/plain',
|
'content-type': 'text/plain',
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user