Skip to content

Commit 687b678

Browse files
committed
- Fixed sorting function
1 parent b28173c commit 687b678

File tree

7 files changed

+53
-25
lines changed

7 files changed

+53
-25
lines changed

src/openApi/v2/parser/getModel.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ export function getModel(openApi: OpenApi, definition: OpenApiSchema, isDefiniti
2222
isDefinition,
2323
isReadOnly: definition.readOnly === true,
2424
isNullable: definition['x-nullable'] === true,
25-
isRequired: definition.default !== undefined,
25+
isRequired: false,
2626
format: definition.format,
2727
maximum: definition.maximum,
2828
exclusiveMaximum: definition.exclusiveMaximum,

src/openApi/v2/parser/getModelProperties.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ export function getModelProperties(openApi: OpenApi, definition: OpenApiSchema,
1515
for (const propertyName in definition.properties) {
1616
if (definition.properties.hasOwnProperty(propertyName)) {
1717
const property = definition.properties[propertyName];
18-
const propertyRequired = definition.required?.includes(propertyName) || property.default !== undefined;
18+
const propertyRequired = !!definition.required?.includes(propertyName);
1919
if (property.$ref) {
2020
const model = getType(property.$ref);
2121
models.push({
Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,23 @@
11
import type { OperationParameter } from '../../../client/interfaces/OperationParameter';
22

33
export function sortByRequired(a: OperationParameter, b: OperationParameter): number {
4-
const aNeedsValue = a.isRequired && a.default === undefined;
5-
const bNeedsValue = b.isRequired && b.default === undefined;
6-
if (aNeedsValue && !bNeedsValue) return -1;
7-
if (!aNeedsValue && bNeedsValue) return 1;
4+
const aIsRequiredWithoutDefaultValue = a.isRequired && a.default === undefined;
5+
const bIsRequiredWithoutDefaultValue = b.isRequired && b.default === undefined;
6+
const aIsRequiredWithDefaultValue = a.isRequired && a.default !== undefined;
7+
const bIsRequiredWithDefaultValue = b.isRequired && b.default !== undefined;
8+
const aIsOptionalWithDefaultValue = !a.isRequired && a.default !== undefined;
9+
const bIsOptionalWithDefaultValue = !b.isRequired && b.default !== undefined;
10+
const aIsOptionalWithoutDefaultValue = !a.isRequired && a.default === undefined;
11+
const bIsOptionalWithoutDefaultValue = !b.isRequired && b.default === undefined;
12+
13+
if (aIsRequiredWithoutDefaultValue && !bIsRequiredWithoutDefaultValue) return -1;
14+
if (bIsRequiredWithoutDefaultValue && !aIsRequiredWithoutDefaultValue) return 1;
15+
if (aIsRequiredWithDefaultValue && !bIsRequiredWithDefaultValue) return -1;
16+
if (bIsRequiredWithDefaultValue && !aIsRequiredWithDefaultValue) return 1;
17+
if (aIsOptionalWithDefaultValue && !bIsOptionalWithDefaultValue) return -1;
18+
if (bIsOptionalWithDefaultValue && !aIsOptionalWithDefaultValue) return 1;
19+
if (aIsOptionalWithoutDefaultValue && !bIsOptionalWithoutDefaultValue) return -1;
20+
if (bIsOptionalWithoutDefaultValue && !aIsOptionalWithoutDefaultValue) return 1;
21+
822
return 0;
923
}

src/openApi/v3/parser/getModel.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ export function getModel(openApi: OpenApi, definition: OpenApiSchema, isDefiniti
2323
isDefinition,
2424
isReadOnly: definition.readOnly === true,
2525
isNullable: definition.nullable === true,
26-
isRequired: definition.default !== undefined,
26+
isRequired: false,
2727
format: definition.format,
2828
maximum: definition.maximum,
2929
exclusiveMaximum: definition.exclusiveMaximum,

src/openApi/v3/parser/getModelProperties.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ export function getModelProperties(openApi: OpenApi, definition: OpenApiSchema,
1515
for (const propertyName in definition.properties) {
1616
if (definition.properties.hasOwnProperty(propertyName)) {
1717
const property = definition.properties[propertyName];
18-
const propertyRequired = definition.required?.includes(propertyName) || property.default !== undefined;
18+
const propertyRequired = !!definition.required?.includes(propertyName);
1919
if (property.$ref) {
2020
const model = getType(property.$ref);
2121
models.push({
Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,23 @@
11
import type { OperationParameter } from '../../../client/interfaces/OperationParameter';
22

33
export function sortByRequired(a: OperationParameter, b: OperationParameter): number {
4-
const aNeedsValue = a.isRequired && a.default === undefined;
5-
const bNeedsValue = b.isRequired && b.default === undefined;
6-
if (aNeedsValue && !bNeedsValue) return -1;
7-
if (!aNeedsValue && bNeedsValue) return 1;
4+
const aIsRequiredWithoutDefaultValue = a.isRequired && a.default === undefined;
5+
const bIsRequiredWithoutDefaultValue = b.isRequired && b.default === undefined;
6+
const aIsRequiredWithDefaultValue = a.isRequired && a.default !== undefined;
7+
const bIsRequiredWithDefaultValue = b.isRequired && b.default !== undefined;
8+
const aIsOptionalWithDefaultValue = !a.isRequired && a.default !== undefined;
9+
const bIsOptionalWithDefaultValue = !b.isRequired && b.default !== undefined;
10+
const aIsOptionalWithoutDefaultValue = !a.isRequired && a.default === undefined;
11+
const bIsOptionalWithoutDefaultValue = !b.isRequired && b.default === undefined;
12+
13+
if (aIsRequiredWithoutDefaultValue && !bIsRequiredWithoutDefaultValue) return -1;
14+
if (bIsRequiredWithoutDefaultValue && !aIsRequiredWithoutDefaultValue) return 1;
15+
if (aIsRequiredWithDefaultValue && !bIsRequiredWithDefaultValue) return -1;
16+
if (bIsRequiredWithDefaultValue && !aIsRequiredWithDefaultValue) return 1;
17+
if (aIsOptionalWithDefaultValue && !bIsOptionalWithDefaultValue) return -1;
18+
if (bIsOptionalWithDefaultValue && !aIsOptionalWithDefaultValue) return 1;
19+
if (aIsOptionalWithoutDefaultValue && !bIsOptionalWithoutDefaultValue) return -1;
20+
if (bIsOptionalWithoutDefaultValue && !aIsOptionalWithoutDefaultValue) return 1;
21+
822
return 0;
923
}

test/__snapshots__/index.spec.js.snap

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1927,31 +1927,31 @@ export class DefaultsService {
19271927

19281928
/**
19291929
* @param parameterStringWithNoDefault This is a string with no default
1930+
* @param parameterStringWithDefault This is a string with default
1931+
* @param parameterStringWithEmptyDefault This is a string with empty default
19301932
* @param parameterOptionalStringWithDefault This is a optional string with default
19311933
* @param parameterOptionalStringWithEmptyDefault This is a optional string with empty default
19321934
* @param parameterOptionalStringWithNoDefault This is a optional string with no default
1933-
* @param parameterStringWithDefault This is a string with default
1934-
* @param parameterStringWithEmptyDefault This is a string with empty default
19351935
* @throws ApiError
19361936
*/
19371937
public static async callToTestOrderOfParams(
19381938
parameterStringWithNoDefault: string,
1939+
parameterStringWithDefault: string = 'Hello World!',
1940+
parameterStringWithEmptyDefault: string = '',
19391941
parameterOptionalStringWithDefault: string = 'Hello World!',
19401942
parameterOptionalStringWithEmptyDefault: string = '',
19411943
parameterOptionalStringWithNoDefault?: string,
1942-
parameterStringWithDefault: string = 'Hello World!',
1943-
parameterStringWithEmptyDefault: string = '',
19441944
): Promise<void> {
19451945
const result = await __request({
19461946
method: 'PUT',
19471947
path: \`/api/v\${OpenAPI.VERSION}/defaults\`,
19481948
query: {
19491949
'parameterStringWithNoDefault': parameterStringWithNoDefault,
1950+
'parameterStringWithDefault': parameterStringWithDefault,
1951+
'parameterStringWithEmptyDefault': parameterStringWithEmptyDefault,
19501952
'parameterOptionalStringWithDefault': parameterOptionalStringWithDefault,
19511953
'parameterOptionalStringWithEmptyDefault': parameterOptionalStringWithEmptyDefault,
19521954
'parameterOptionalStringWithNoDefault': parameterOptionalStringWithNoDefault,
1953-
'parameterStringWithDefault': parameterStringWithDefault,
1954-
'parameterStringWithEmptyDefault': parameterStringWithEmptyDefault,
19551955
},
19561956
});
19571957
return result.body;
@@ -4493,7 +4493,7 @@ export class ComplexService {
44934493
requestBody?: {
44944494
readonly key: string | null,
44954495
name: string | null,
4496-
enabled: boolean,
4496+
enabled?: boolean,
44974497
readonly type: 'Monkey' | 'Horse' | 'Bird',
44984498
listOfModels?: Array<ModelWithString> | null,
44994499
listOfStrings?: Array<string> | null,
@@ -4590,31 +4590,31 @@ export class DefaultsService {
45904590

45914591
/**
45924592
* @param parameterStringWithNoDefault This is a string with no default
4593+
* @param parameterStringWithDefault This is a string with default
4594+
* @param parameterStringWithEmptyDefault This is a string with empty default
45934595
* @param parameterOptionalStringWithDefault This is a optional string with default
45944596
* @param parameterOptionalStringWithEmptyDefault This is a optional string with empty default
45954597
* @param parameterOptionalStringWithNoDefault This is a optional string with no default
4596-
* @param parameterStringWithDefault This is a string with default
4597-
* @param parameterStringWithEmptyDefault This is a string with empty default
45984598
* @throws ApiError
45994599
*/
46004600
public static async callToTestOrderOfParams(
46014601
parameterStringWithNoDefault: string,
4602+
parameterStringWithDefault: string = 'Hello World!',
4603+
parameterStringWithEmptyDefault: string = '',
46024604
parameterOptionalStringWithDefault: string = 'Hello World!',
46034605
parameterOptionalStringWithEmptyDefault: string = '',
46044606
parameterOptionalStringWithNoDefault?: string,
4605-
parameterStringWithDefault: string = 'Hello World!',
4606-
parameterStringWithEmptyDefault: string = '',
46074607
): Promise<void> {
46084608
const result = await __request({
46094609
method: 'PUT',
46104610
path: \`/api/v\${OpenAPI.VERSION}/defaults\`,
46114611
query: {
46124612
'parameterStringWithNoDefault': parameterStringWithNoDefault,
4613+
'parameterStringWithDefault': parameterStringWithDefault,
4614+
'parameterStringWithEmptyDefault': parameterStringWithEmptyDefault,
46134615
'parameterOptionalStringWithDefault': parameterOptionalStringWithDefault,
46144616
'parameterOptionalStringWithEmptyDefault': parameterOptionalStringWithEmptyDefault,
46154617
'parameterOptionalStringWithNoDefault': parameterOptionalStringWithNoDefault,
4616-
'parameterStringWithDefault': parameterStringWithDefault,
4617-
'parameterStringWithEmptyDefault': parameterStringWithEmptyDefault,
46184618
},
46194619
});
46204620
return result.body;

0 commit comments

Comments
 (0)