Skip to content

Commit

Permalink
fix(oas): adjust according to code review
Browse files Browse the repository at this point in the history
closes #210
  • Loading branch information
ostridm committed Sep 19, 2023
1 parent 6bd7082 commit 2dedf06
Show file tree
Hide file tree
Showing 14 changed files with 85 additions and 640 deletions.
26 changes: 13 additions & 13 deletions packages/oas/src/converter/parts/Oas2MediaTypesResolver.ts
Original file line number Diff line number Diff line change
@@ -1,30 +1,26 @@
import { isOASV2 } from '../../utils';

import { OpenAPIV2 } from '@har-sdk/core';

export class Oas2MediaTypesResolver {
private readonly DEFAULT_MEDIA_TYPE = 'application/json';
private readonly DEFAULT_CONSUME_MEDIA_TYPE: OpenAPIV2.MimeTypes = [
'application/json'
];
private readonly DEFAULT_PRODUCE_MEDIA_TYPE: OpenAPIV2.MimeTypes = ['*/*'];

constructor(private readonly spec: OpenAPIV2.Document) {}

public resolveToConsume(operation: OpenAPIV2.OperationObject) {
let mediaTypes = this.resolve(operation, 'consumes');
if (!mediaTypes?.length) {
mediaTypes = [this.DEFAULT_MEDIA_TYPE];
}

return mediaTypes;
return this.resolve(operation, 'consumes', this.DEFAULT_CONSUME_MEDIA_TYPE);
}

public resolveToProduce(operation: OpenAPIV2.OperationObject) {
const mediaTypes = this.resolve(operation, 'produces');

return mediaTypes?.length ? mediaTypes : undefined;
return this.resolve(operation, 'produces', this.DEFAULT_PRODUCE_MEDIA_TYPE);
}

private resolve(
operation: OpenAPIV2.OperationObject,
node: 'consumes' | 'produces'
node: 'consumes' | 'produces',
defaultMediaTypes: OpenAPIV2.MimeTypes
): OpenAPIV2.MimeTypes {
let mediaTypes: OpenAPIV2.MimeTypes;

Expand All @@ -34,6 +30,10 @@ export class Oas2MediaTypesResolver {
mediaTypes = this.spec[node];
}

return mediaTypes?.map((mediaType) => mediaType?.trim()).filter(Boolean);
mediaTypes = mediaTypes
?.map((mediaType) => mediaType?.trim())
.filter(Boolean);

return mediaTypes?.length ? mediaTypes : defaultMediaTypes;
}
}
7 changes: 6 additions & 1 deletion packages/oas/src/converter/parts/headers/HeadersConverter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ import jsonPointer from 'json-pointer';
export abstract class HeadersConverter<T extends OpenAPI.Document>
implements SubConverter<Header[]>
{
private readonly CONTENT_TYPE_METHODS = ['post', 'put', 'patch', 'delete'];

protected constructor(
private readonly spec: T,
private readonly sampler: Sampler
Expand All @@ -32,7 +34,10 @@ export abstract class HeadersConverter<T extends OpenAPI.Document>
const headers: Header[] = [];
const pathObj = getOperation(this.spec, path, method);

headers.push(...this.createContentTypeHeaders(pathObj));
if (this.CONTENT_TYPE_METHODS.includes(method.toLowerCase())) {
headers.push(...this.createContentTypeHeaders(pathObj));
}

headers.push(...this.createAcceptHeaders(pathObj));

headers.push(...this.parseFromParams(path, method));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import { Header, OpenAPIV2 } from '@har-sdk/core';

export class Oas2HeadersConverter extends HeadersConverter<OpenAPIV2.Document> {
private readonly oas2ValueSerializer = new Oas2ValueSerializer();
private readonly oas2MediaTypeResolver!: Oas2MediaTypesResolver;
private readonly oas2MediaTypeResolver: Oas2MediaTypesResolver;

constructor(spec: OpenAPIV2.Document, sampler: Sampler) {
super(spec, sampler);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { Oas2MediaTypesResolver } from '../Oas2MediaTypesResolver';
import type { OpenAPIV2, PostData } from '@har-sdk/core';

export class Oas2BodyConverter extends BodyConverter<OpenAPIV2.Document> {
private readonly oas2MediaTypeResolver!: Oas2MediaTypesResolver;
private readonly oas2MediaTypeResolver: Oas2MediaTypesResolver;

constructor(spec: OpenAPIV2.Document, sampler: Sampler) {
super(spec, sampler);
Expand Down
16 changes: 16 additions & 0 deletions packages/oas/tests/fixtures/binary-body.swagger.result.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,10 @@
{
"name": "content-type",
"value": "image/jpeg"
},
{
"name": "accept",
"value": "*/*"
}
],
"headersSize": 0,
Expand All @@ -25,6 +29,10 @@
{
"name": "content-type",
"value": "image/png"
},
{
"name": "accept",
"value": "*/*"
}
],
"headersSize": 0,
Expand All @@ -44,6 +52,10 @@
{
"name": "content-type",
"value": "image/ico"
},
{
"name": "accept",
"value": "*/*"
}
],
"headersSize": 0,
Expand All @@ -63,6 +75,10 @@
{
"name": "content-type",
"value": "multipart/form-data"
},
{
"name": "accept",
"value": "*/*"
}
],
"headersSize": 0,
Expand Down
Loading

0 comments on commit 2dedf06

Please sign in to comment.