Skip to content

Commit 6708d7f

Browse files
committed
Added user and user login schemas
1 parent 7ddff46 commit 6708d7f

26 files changed

Lines changed: 1898 additions & 0 deletions

src/funcs/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,5 @@ export * from "./commerce/cartItemsGet.js";
1515
export * from "./commerce/cartItemsCreate.js";
1616
export * from "./commerce/cartItemsUpdate.js";
1717
export * from "./commerce/cartItemsDelete.js";
18+
export * from "./meGet.js";
19+
export * from "./users/index.js";

src/funcs/meGet.ts

Lines changed: 155 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,155 @@
1+
/*
2+
* Get current authenticated principal.
3+
*/
4+
5+
import { ClientSDK, RequestOptions } from "../lib/sdks.js";
6+
import * as M from "../lib/matchers.js";
7+
import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js";
8+
import * as errors from "../models/errors/index.js";
9+
import { ResponseValidationError } from "../models/errors/response-validation-error.js";
10+
import { SDKValidationError } from "../models/errors/sdk-validation-error.js";
11+
import {
12+
ConnectionError,
13+
InvalidRequestError,
14+
RequestAbortedError,
15+
RequestTimeoutError,
16+
UnexpectedClientError,
17+
} from "../models/errors/http-client-errors.js";
18+
import { MeResponse$inboundSchema } from "../models/identity/me.js";
19+
import * as operations from "../models/operations/index.js";
20+
import { APICall, APIPromise } from "../types/async.js";
21+
import { Result } from "../types/fp.js";
22+
23+
export function meGet(
24+
client: ClientSDK,
25+
options?: RequestOptions,
26+
): APIPromise<
27+
Result<
28+
operations.GetMeResponse,
29+
| errors.ErrorResponse
30+
| errors.OminityDefaultError
31+
| ResponseValidationError
32+
| ConnectionError
33+
| RequestAbortedError
34+
| RequestTimeoutError
35+
| InvalidRequestError
36+
| UnexpectedClientError
37+
| SDKValidationError
38+
>
39+
> {
40+
return new APIPromise($do(
41+
client,
42+
options,
43+
));
44+
}
45+
46+
async function $do(
47+
client: ClientSDK,
48+
options?: RequestOptions,
49+
): Promise<
50+
[
51+
Result<
52+
operations.GetMeResponse,
53+
| errors.ErrorResponse
54+
| errors.OminityDefaultError
55+
| ResponseValidationError
56+
| ConnectionError
57+
| RequestAbortedError
58+
| RequestTimeoutError
59+
| InvalidRequestError
60+
| UnexpectedClientError
61+
| SDKValidationError
62+
>,
63+
APICall,
64+
]
65+
> {
66+
const body = null;
67+
68+
const path = "/me";
69+
70+
const headers = new Headers({
71+
Accept: "application/hal+json",
72+
});
73+
74+
const securityInput = await extractSecurity(client._options.security);
75+
const requestSecurity = resolveGlobalSecurity(securityInput);
76+
77+
const context = {
78+
options: client._options,
79+
baseURL: options?.serverURL ?? client._baseURL ?? "",
80+
operationID: "me.get",
81+
oAuth2Scopes: null,
82+
resolvedSecurity: requestSecurity,
83+
securitySource: client._options.security,
84+
retryConfig: options?.retries
85+
|| client._options.retryConfig
86+
|| {
87+
strategy: "backoff",
88+
backoff: {
89+
initialInterval: 500,
90+
maxInterval: 5000,
91+
exponent: 2,
92+
maxElapsedTime: 7500,
93+
},
94+
retryConnectionErrors: true,
95+
}
96+
|| { strategy: "none" },
97+
retryCodes: options?.retryCodes || ["5xx"],
98+
};
99+
100+
const requestRes = client._createRequest(context, {
101+
security: requestSecurity,
102+
method: "GET",
103+
baseURL: options?.serverURL,
104+
path: path,
105+
headers: headers,
106+
body: body,
107+
userAgent: client._options.userAgent,
108+
timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1,
109+
}, options);
110+
if (!requestRes.ok) {
111+
return [requestRes, { status: "invalid" }];
112+
}
113+
const req = requestRes.value;
114+
115+
const doResult = await client._do(req, {
116+
context,
117+
errorCodes: ["400", "4XX", "5XX"],
118+
retryConfig: context.retryConfig,
119+
retryCodes: context.retryCodes,
120+
});
121+
if (!doResult.ok) {
122+
return [doResult, { status: "request-error", request: req }];
123+
}
124+
const response = doResult.value;
125+
126+
const responseFields = {
127+
HttpMeta: { Response: response, Request: req },
128+
};
129+
130+
const [result] = await M.match<
131+
operations.GetMeResponse,
132+
| errors.ErrorResponse
133+
| errors.OminityDefaultError
134+
| ResponseValidationError
135+
| ConnectionError
136+
| RequestAbortedError
137+
| RequestTimeoutError
138+
| InvalidRequestError
139+
| UnexpectedClientError
140+
| SDKValidationError
141+
>(
142+
M.json(200, MeResponse$inboundSchema, {
143+
ctype: "application/hal+json",
144+
}),
145+
M.jsonErr("4XX", errors.ErrorResponse$inboundSchema, {
146+
ctype: "application/hal+json",
147+
}),
148+
M.fail("5XX"),
149+
)(response, req, { extraFields: responseFields });
150+
if (!result.ok) {
151+
return [result, { status: "complete", request: req, response }];
152+
}
153+
154+
return [result, { status: "complete", request: req, response }];
155+
}

src/funcs/users/index.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
/*
2+
* User-related SDK functions.
3+
*/
4+
5+
export * from "./usersList.js";
6+
export * from "./usersGet.js";
7+
export * from "./usersCreate.js";
8+
export * from "./usersUpdate.js";
9+
export * from "./loginsList.js";
10+
export * from "./loginsGet.js";
11+
export * from "./loginsCreate.js";

src/funcs/users/loginsCreate.ts

Lines changed: 156 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,156 @@
1+
/*
2+
* Create user login.
3+
*/
4+
5+
import { ClientSDK, RequestOptions } from "../../lib/sdks.js";
6+
import * as M from "../../lib/matchers.js";
7+
import { safeParse } from "../../lib/schemas.js";
8+
import { extractSecurity, resolveGlobalSecurity } from "../../lib/security.js";
9+
import * as errors from "../../models/errors/index.js";
10+
import { ResponseValidationError } from "../../models/errors/response-validation-error.js";
11+
import { SDKValidationError } from "../../models/errors/sdk-validation-error.js";
12+
import {
13+
ConnectionError,
14+
InvalidRequestError,
15+
RequestAbortedError,
16+
RequestTimeoutError,
17+
UnexpectedClientError,
18+
} from "../../models/errors/http-client-errors.js";
19+
import { UserLogin$inboundSchema } from "../../models/identity/users/user-login.js";
20+
import * as operations from "../../models/operations/index.js";
21+
import { APICall, APIPromise } from "../../types/async.js";
22+
import { Result } from "../../types/fp.js";
23+
24+
export function loginsCreate(
25+
client: ClientSDK,
26+
request: operations.CreateUserLoginRequest,
27+
options?: RequestOptions,
28+
): APIPromise<
29+
Result<
30+
operations.CreateUserLoginResponse,
31+
| errors.ErrorResponse
32+
| errors.OminityDefaultError
33+
| ResponseValidationError
34+
| ConnectionError
35+
| RequestAbortedError
36+
| RequestTimeoutError
37+
| InvalidRequestError
38+
| UnexpectedClientError
39+
| SDKValidationError
40+
>
41+
> {
42+
return new APIPromise($do(
43+
client,
44+
request,
45+
options,
46+
));
47+
}
48+
49+
async function $do(
50+
client: ClientSDK,
51+
request: operations.CreateUserLoginRequest,
52+
options?: RequestOptions,
53+
): Promise<
54+
[
55+
Result<
56+
operations.CreateUserLoginResponse,
57+
| errors.ErrorResponse
58+
| errors.OminityDefaultError
59+
| ResponseValidationError
60+
| ConnectionError
61+
| RequestAbortedError
62+
| RequestTimeoutError
63+
| InvalidRequestError
64+
| UnexpectedClientError
65+
| SDKValidationError
66+
>,
67+
APICall,
68+
]
69+
> {
70+
const parsed = safeParse(
71+
request,
72+
(value) => operations.CreateUserLoginRequest$outboundSchema.parse(value),
73+
"Input validation failed",
74+
);
75+
if (!parsed.ok) {
76+
return [parsed, { status: "invalid" }];
77+
}
78+
const payload = parsed.value;
79+
80+
const path = `/users/${payload.userId}/logins`;
81+
82+
const headers = new Headers({
83+
"Content-Type": "application/json",
84+
});
85+
86+
const securityInput = await extractSecurity(client._options.security);
87+
const requestSecurity = resolveGlobalSecurity(securityInput);
88+
89+
const context = {
90+
options: client._options,
91+
baseURL: options?.serverURL ?? client._baseURL ?? "",
92+
operationID: "users.logins.create",
93+
oAuth2Scopes: null,
94+
resolvedSecurity: requestSecurity,
95+
securitySource: client._options.security,
96+
retryConfig: options?.retries
97+
|| client._options.retryConfig
98+
|| { strategy: "none" },
99+
retryCodes: options?.retryCodes || ["429", "5XX"],
100+
};
101+
102+
const requestRes = client._createRequest(context, {
103+
security: requestSecurity,
104+
method: "POST",
105+
baseURL: options?.serverURL,
106+
path,
107+
headers,
108+
body: JSON.stringify(payload.body),
109+
userAgent: client._options.userAgent,
110+
timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1,
111+
}, options);
112+
if (!requestRes.ok) {
113+
return [requestRes, { status: "invalid" }];
114+
}
115+
const req = requestRes.value;
116+
117+
const doResult = await client._do(req, {
118+
context,
119+
errorCodes: ["4XX", "5XX"],
120+
retryConfig: context.retryConfig,
121+
retryCodes: context.retryCodes,
122+
});
123+
if (!doResult.ok) {
124+
return [doResult, { status: "request-error", request: req }];
125+
}
126+
const response = doResult.value;
127+
128+
const responseFields = {
129+
HttpMeta: { Response: response, Request: req },
130+
};
131+
132+
const [result] = await M.match<
133+
operations.CreateUserLoginResponse,
134+
| errors.ErrorResponse
135+
| errors.OminityDefaultError
136+
| ResponseValidationError
137+
| ConnectionError
138+
| RequestAbortedError
139+
| RequestTimeoutError
140+
| InvalidRequestError
141+
| UnexpectedClientError
142+
| SDKValidationError
143+
>(
144+
M.json(200, UserLogin$inboundSchema, { ctype: "application/hal+json" }),
145+
M.json(201, UserLogin$inboundSchema, { ctype: "application/hal+json" }),
146+
M.jsonErr("4XX", errors.ErrorResponse$inboundSchema, {
147+
ctype: "application/hal+json",
148+
}),
149+
M.fail("5XX"),
150+
)(response, req, { extraFields: responseFields });
151+
if (!result.ok) {
152+
return [result, { status: "complete", request: req, response }];
153+
}
154+
155+
return [result, { status: "complete", request: req, response }];
156+
}

0 commit comments

Comments
 (0)