UNPKG

@sudowealth/schwab-api

Version:

TypeScript client for Charles Schwab API with OAuth support, market data, trading functionality, and complete type safety

36 lines (35 loc) 1.44 kB
import { z } from 'zod'; import { mergeShapes } from '../../utils/schema-utils'; const UserPreferenceAccount = z.object({ accountNumber: z.string(), primaryAccount: z.boolean().default(false), type: z.string(), nickName: z.string(), accountColor: z.enum(['Green', 'Blue']), displayAcctId: z.string(), autoPositionEffect: z.boolean().default(false), }); const StreamerInfo = z.object({ streamerSocketUrl: z.string(), schwabClientCustomerId: z.string(), schwabClientCorrelId: z.string(), schwabClientChannel: z.string(), schwabClientFunctionId: z.string(), }); const Offer = z.object({ level2Permissions: z.boolean().default(false), mktDataPermission: z.string(), }); const UserPreference = z.object({ accounts: z.array(UserPreferenceAccount), streamerInfo: z.array(StreamerInfo), offers: z.array(Offer), }); // Path Parameters Schema for GET /userpreference (no path params) export const GetUserPreferencePathParams = z.object({}); // Query Parameters Schema for GET /userpreference (no query params) export const GetUserPreferenceQueryParams = z.object({}); // Request Params Schema for GET /userpreference (merged path + query params) export const GetUserPreferenceParams = z.object(mergeShapes(GetUserPreferenceQueryParams.shape, GetUserPreferencePathParams.shape)); // Response Body Schema for GET /userpreference export const GetUserPreferenceResponse = UserPreference;