@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
JavaScript
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;