Skip to content

Commit

Permalink
Fix wrong endpoint response schema id duplication
Browse files Browse the repository at this point in the history
  • Loading branch information
hieuunguyeen committed Dec 13, 2023
1 parent e6db6dc commit d30e401
Show file tree
Hide file tree
Showing 4 changed files with 136 additions and 37 deletions.
2 changes: 1 addition & 1 deletion maas-schemas/schemas/tsp/payments-initiate/response.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"$id": "https://schemas.maas.global/tsp/payments-initiate/request.json",
"$id": "https://schemas.maas.global/tsp/payments-initiate/response.json",
"description": "Response schema for creating payment through TSP api",
"type": "object",
"properties": {
Expand Down
60 changes: 24 additions & 36 deletions maas-schemas/src/io-ts/_types/tsp/payments-initiate/request.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/*
undefined
Response schema for creating payment through TSP api
Request schema for creating payment through TSP api
!!! AUTO GENERATED BY IOTSFJS REFRAIN FROM MANUAL EDITING !!!
See https://www.npmjs.com/package/io-ts-from-json-schema
Expand Down Expand Up @@ -31,78 +31,66 @@ export const Defined: DefinedC = new DefinedType();

export const schemaId = 'https://schemas.maas.global/tsp/payments-initiate/request.json';

// Response
// Request
// The default export. More information at the top.
export type Response = t.Branded<
export type Request = t.Branded<
{
tspId?: Booking_4353_.TspId;
amount?: number;
paymentStatus?: string;
paymentAmount?: number;
} & {
tspId: Defined;
amount: Defined;
paymentStatus: Defined;
paymentAmount: Defined;
},
ResponseBrand
RequestBrand
>;
export type ResponseC = t.BrandC<
export type RequestC = t.BrandC<
t.IntersectionC<
[
t.PartialC<{
tspId: typeof Booking_4353_.TspId;
amount: t.NumberC;
paymentStatus: t.StringC;
paymentAmount: t.NumberC;
}>,
t.TypeC<{
tspId: typeof Defined;
amount: typeof Defined;
paymentStatus: typeof Defined;
paymentAmount: typeof Defined;
}>,
]
>,
ResponseBrand
RequestBrand
>;
export const Response: ResponseC = t.brand(
export const Request: RequestC = t.brand(
t.intersection([
t.partial({
tspId: Booking_4353_.TspId,
amount: t.number,
paymentStatus: t.string,
paymentAmount: t.number,
}),
t.type({
tspId: Defined,
amount: Defined,
paymentStatus: Defined,
paymentAmount: Defined,
}),
]),
(
x,
): x is t.Branded<
{
tspId?: Booking_4353_.TspId;
amount?: number;
paymentStatus?: string;
paymentAmount?: number;
} & {
tspId: Defined;
amount: Defined;
paymentStatus: Defined;
paymentAmount: Defined;
},
ResponseBrand
RequestBrand
> => true,
'Response',
'Request',
);
export type ResponseBrand = {
readonly Response: unique symbol;
export type RequestBrand = {
readonly Request: unique symbol;
};
/** require('io-ts-validator').validator(nonEmptyArray(Response)).decodeSync(examplesResponse) // => examplesResponse */
export const examplesResponse: NonEmptyArray<Response> = [
{
tspId: '00000000-cafe-cafe-cafe-cafecafecafe',
amount: 2405,
paymentStatus: 'CONFIRMED',
},
] as unknown as NonEmptyArray<Response>;
/** require('io-ts-validator').validator(nonEmptyArray(Request)).decodeSync(examplesRequest) // => examplesRequest */
export const examplesRequest: NonEmptyArray<Request> = [
{ tspId: '00000000-cafe-cafe-cafe-cafecafecafe', paymentAmount: 2405 },
] as unknown as NonEmptyArray<Request>;

export default Response;
export default Request;

// Success
108 changes: 108 additions & 0 deletions maas-schemas/src/io-ts/_types/tsp/payments-initiate/response.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
/*
undefined
Response schema for creating payment through TSP api
!!! AUTO GENERATED BY IOTSFJS REFRAIN FROM MANUAL EDITING !!!
See https://www.npmjs.com/package/io-ts-from-json-schema
*/

import { NonEmptyArray } from 'fp-ts/lib/NonEmptyArray';
import * as t from 'io-ts';
import { nonEmptyArray } from 'io-ts-types/lib/nonEmptyArray';

import * as Booking_4353_ from '../../core/booking';

export type Defined = {} | null;
export class DefinedType extends t.Type<Defined> {
readonly _tag: 'DefinedType' = 'DefinedType';
constructor() {
super(
'defined',
(u): u is Defined => typeof u !== 'undefined',
(u, c) => (this.is(u) ? t.success(u) : t.failure(u, c)),
t.identity,
);
}
}
export type DefinedC = {} & DefinedType;
export const Defined: DefinedC = new DefinedType();

export const schemaId = 'https://schemas.maas.global/tsp/payments-initiate/response.json';

// Response
// The default export. More information at the top.
export type Response = t.Branded<
{
tspId?: Booking_4353_.TspId;
amount?: number;
paymentStatus?: string;
} & {
tspId: Defined;
amount: Defined;
paymentStatus: Defined;
},
ResponseBrand
>;
export type ResponseC = t.BrandC<
t.IntersectionC<
[
t.PartialC<{
tspId: typeof Booking_4353_.TspId;
amount: t.NumberC;
paymentStatus: t.StringC;
}>,
t.TypeC<{
tspId: typeof Defined;
amount: typeof Defined;
paymentStatus: typeof Defined;
}>,
]
>,
ResponseBrand
>;
export const Response: ResponseC = t.brand(
t.intersection([
t.partial({
tspId: Booking_4353_.TspId,
amount: t.number,
paymentStatus: t.string,
}),
t.type({
tspId: Defined,
amount: Defined,
paymentStatus: Defined,
}),
]),
(
x,
): x is t.Branded<
{
tspId?: Booking_4353_.TspId;
amount?: number;
paymentStatus?: string;
} & {
tspId: Defined;
amount: Defined;
paymentStatus: Defined;
},
ResponseBrand
> => true,
'Response',
);
export type ResponseBrand = {
readonly Response: unique symbol;
};
/** require('io-ts-validator').validator(nonEmptyArray(Response)).decodeSync(examplesResponse) // => examplesResponse */
export const examplesResponse: NonEmptyArray<Response> = [
{
tspId: '00000000-cafe-cafe-cafe-cafecafecafe',
amount: 2405,
paymentStatus: 'CONFIRMED',
},
] as unknown as NonEmptyArray<Response>;

export default Response;

// Success
3 changes: 3 additions & 0 deletions maas-schemas/src/io-ts/tsp/payments-initiate/response.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
// Generated by update-index.ts Do not edit!

export * from '../../_types/tsp/payments-initiate/response';

0 comments on commit d30e401

Please sign in to comment.