UNPKG

@spree/storefront-api-v2-sdk

Version:

Node module to easily integrate your JavaScript or TypeScript application with Spree Storefront API V2. You can create an entirely custom Storefront in JS/TS with this package including one page checkout, Single Page Apps, PWAs and so on.

432 lines (431 loc) 16.7 kB
import { Http } from '@spree/core-api-v2-sdk'; import type { IQuery, IToken, NoContentResult } from '@spree/core-api-v2-sdk'; import type { IAccountResult, IAccountConfirmationResult, AccountAddressesResult, AccountAddressResult, AccountAddressParams, ForgotPasswordParams, ResetPasswordParams, AccountInfoOptions, CreditCardsListOptions, DefaultCreditCardOptions, RemoveCreditCardOptions, CompletedOrdersListOptions, CompletedOrderOptions, CreateOptions, ConfirmOptions, ForgotPasswordOptions, ResetPasswordOptions, UpdateOptions, AddressesListOptions, ShowAddressOptions, CreateAddressOptions, RemoveAddressOptions, UpdateAddressOptions } from '../interfaces/Account'; import type { ICreditCardResult, ICreditCardsResult } from '../interfaces/CreditCard'; import type { IOrderResult, IOrdersResult } from '../interfaces/Order'; export default class Account extends Http { /** * Creates new account and returns its attributes. See [api docs](https://api.spreecommerce.org/docs/api-v2/534a12ece987f-create-an-account). * * **Success response schema:** [Success schema](../pages/response-schema.html#success-schema) * * **Failure response schema:** [Error schema](../pages/response-schema.html#error-schema) * * **Example:** * ```ts * const response = await client.account.create({ * user: { * email: 'john@snow.org', * password: 'spree123', * password_confirmation: 'spree123' * } * }) * ``` */ create(options: CreateOptions): Promise<IAccountResult>; /** * @hidden * @deprecated Use the combined options signature instead. * Creates new account and returns its attributes. */ create(params: IQuery): Promise<IAccountResult>; /** * Confirms new account e-mail and returns account registration status. See [reference](https://github.com/spree/spree_auth_devise/blob/db4ccf202f42cdb713931e9915b213ab9c9b2062/config/routes.rb). * * **Success response schema:** * ```ts * { * data: { * state: string * } * } * ``` * **Failure response schema:** [Error schema](../pages/response-schema.html#error-schema) * * **Example:** * ```ts * const response = await client.account.confirm({ confirmation_token: '2xssfC9Hzf8DJXyRZGmB' }) * ``` */ confirm(option: ConfirmOptions): Promise<IAccountConfirmationResult>; /** * @hidden * @deprecated Use the combined options signature instead. */ confirm(confirmationToken: string): Promise<IAccountConfirmationResult>; /** * Sends an account recovery link to the provided email address. The link allows resetting the password for the account. * * **Success response schema:** [Success schema](../pages/response-schema.html#success-schema) * * **Failure response schema:** [Error schema](../pages/response-schema.html#error-schema) * * **Example:** * ```ts * const response = await client.account.forgotPassword({ * user: { * email: 'spree@example.com' * } * }) * ``` */ forgotPassword(options: ForgotPasswordOptions): Promise<NoContentResult>; /** * @hidden * @deprecated Use the combined options signature instead. */ forgotPassword(params: ForgotPasswordParams): Promise<NoContentResult>; /** * Changes the password associated with the account using an account recovery token. * * **Success response schema:** [Success schema](../pages/response-schema.html#success-schema) * * **Failure response schema:** [Error schema](../pages/response-schema.html#error-schema) * * **Example:** * ```ts * const response = await client.account.resetPassword({ * reset_password_token: '7381273269536713689562374856', * user: { * password: '123!@#asdASD', * password_confirmation: '123!@#asdASD' * } * }) * ``` */ resetPassword(options: ResetPasswordOptions): Promise<NoContentResult>; /** * @hidden * @deprecated Use the combined options signature instead. */ resetPassword(resetPasswordToken: string, params: ResetPasswordParams): Promise<NoContentResult>; /** * Updates account and returns its attributes. See [api docs](https://api.spreecommerce.org/docs/api-v2/9f8e112bbb91f-update-an-account). * * **Required token:** [Bearer token](../pages/tokens.html#bearer-token) * * **Success response schema:** [Success schema](../pages/response-schema.html#success-schema) * * **Failure response schema:** [Error schema](../pages/response-schema.html#error-schema) * * **Example:** * ```ts * const response = await client.account.update({ * bearer_token: '7381273269536713689562374856', * user: { * email: 'john@snow.org', * password: 'new_spree123', * password_confirmation: 'new_spree123' * } * }) * ``` */ update(options: UpdateOptions): Promise<IAccountResult>; /** * @hidden * @deprecated Use the combined options signature instead. */ update(token: IToken, params: IQuery): Promise<IAccountResult>; /** * Returns current user information. See [api docs](https://api.spreecommerce.org/docs/api-v2/a531029531471-retrieve-an-account). * * **Required token:** [Bearer token](../pages/tokens.html#bearer-token) * * **Success response schema:** [Success schema](../pages/response-schema.html#success-schema) * * **Failure response schema:** [Error schema](../pages/response-schema.html#error-schema) * * **Example:** * ```ts * const response = await client.account.accountInfo({ bearer_token: '7381273269536713689562374856' }) * ``` */ accountInfo(options: AccountInfoOptions): Promise<IAccountResult>; /** * @hidden * @deprecated Use the combined options signature instead. */ accountInfo(token: IToken, params?: IQuery): Promise<IAccountResult>; /** * Returns a list of Credit Cards for the signed in User. See [api docs](https://api.spreecommerce.org/docs/api-v2/eae76f03a90db-list-all-credit-cards). * * **Required token:** [Bearer token](../pages/tokens.html#bearer-token) * * **Success response schema:** [Success schema](../pages/response-schema.html#success-schema) * * **Failure response schema:** [Error schema](../pages/response-schema.html#error-schema) * * **Example:** * ```ts * const response = await client.account.creditCardsList({ bearer_token: '7381273269536713689562374856' }) * ``` */ creditCardsList(options: CreditCardsListOptions): Promise<ICreditCardsResult>; /** * @hidden * @deprecated Use the combined options signature instead. */ creditCardsList(token: IToken, params?: IQuery): Promise<ICreditCardsResult>; /** * Return the User's default Credit Card. See [api docs](https://api.spreecommerce.org/docs/api-v2/1054d9230daf4-retrieve-the-default-credit-card). * * **Required token:** [Bearer token](../pages/tokens.html#bearer-token) * * **Success response schema:** [Success schema](../pages/response-schema.html#success-schema) * * **Failure response schema:** [Error schema](../pages/response-schema.html#error-schema) * * **Example:** * ```ts * const response = await client.account.defaultCreditCard({ bearer_token: '7381273269536713689562374856' }) * ``` */ defaultCreditCard(options: DefaultCreditCardOptions): Promise<ICreditCardResult>; /** * @hidden * @deprecated Use the combined options signature instead. */ defaultCreditCard(token: IToken, params?: IQuery): Promise<ICreditCardResult>; /** * Remove a User's Credit Card. See [api docs](https://api.spreecommerce.org/docs/api-v2/b3A6MTc1NjU3NDM-remove-a-credit-card). * * **Required token:** [Bearer token](../pages/tokens.html#bearer-token) * * **Success response schema:** [Success schema](../pages/response-schema.html#success-schema) * * **Failure response schema:** [Error schema](../pages/response-schema.html#error-schema) * * **Example:** * ```ts * const response = await client.account.removeCreditCard({ * bearer_token: '7381273269536713689562374856', * id: '14' * }) * ``` */ removeCreditCard(options: RemoveCreditCardOptions): Promise<NoContentResult>; /** * @hidden * @deprecated Use the combined options signature instead. */ removeCreditCard(token: IToken, id: string, params?: IQuery): Promise<NoContentResult>; /** * Returns Orders placed by the User. Only completed ones. See [api docs](https://api.spreecommerce.org/docs/api-v2/94d319dfe8909-list-all-orders). * * **Required token:** [Bearer token](../pages/tokens.html#bearer-token) * * **Success response schema:** [Success schema](../pages/response-schema.html#success-schema) * * **Failure response schema:** [Error schema](../pages/response-schema.html#error-schema) * * **Example:** * ```ts * const response = await client.account.completedOrdersList({ * bearer_token: '7381273269536713689562374856' * }) * ``` */ completedOrdersList(options: CompletedOrdersListOptions): Promise<IOrdersResult>; /** * @hidden * @deprecated Use the combined options signature instead. */ completedOrdersList(token: IToken, params?: IQuery): Promise<IOrdersResult>; /** * Return the User's completed Order. See [api docs](https://api.spreecommerce.org/docs/api-v2/ab4c5da10fbba-retrieve-an-order). * * **Required token:** [Bearer token](../pages/tokens.html#bearer-token) * * **Success response schema:** [Success schema](../pages/response-schema.html#success-schema) * * **Failure response schema:** [Error schema](../pages/response-schema.html#error-schema) * * **Example:** * ```ts * const response = await client.account.completedOrder({ * bearer_token: '7381273269536713689562374856', * order_number: 'R653163382' * }) * ``` */ completedOrder(options: CompletedOrderOptions): Promise<IOrderResult>; /** * @hidden * @deprecated Use the combined options signature instead. */ completedOrder(token: IToken, orderNumber: string, params?: IQuery): Promise<IOrderResult>; /** * Returns a list of Addresses for the signed in User. See [api docs](https://api.spreecommerce.org/docs/api-v2/c8ebb212f75bf-list-all-addresses). * * **Required token:** [Bearer token](../pages/tokens.html#bearer-token) * * **Success response schema:** [Success schema](../pages/response-schema.html#success-schema) * * **Failure response schema:** [Error schema](../pages/response-schema.html#error-schema) * * **Example:** * ```ts * const response = await client.account.addressesList({ * bearer_token: '7381273269536713689562374856' * }) * ``` */ addressesList(options: AddressesListOptions): Promise<AccountAddressesResult>; /** * @hidden * @deprecated Use the combined options signature instead. */ addressesList(token: IToken): Promise<AccountAddressesResult>; /** * Returns a single address for the signed in User. * * **Required token:** [Bearer token](../pages/tokens.html#bearer-token) * * **Success response schema:** [Success schema](../pages/response-schema.html#success-schema) * * **Failure response schema:** [Error schema](../pages/response-schema.html#error-schema) * * **Example:** * ```ts * const response = await client.account.showAddress({ * bearer_token: '7381273269536713689562374856', * id: '1' * }) * ``` */ showAddress(options: ShowAddressOptions): Promise<AccountAddressResult>; /** * @hidden * @deprecated Use the combined options signature instead. */ showAddress(token: IToken, addressId: string, params?: IQuery): Promise<AccountAddressResult>; /** * Create a new Address for the signed in User. See [api docs](https://api.spreecommerce.org/docs/api-v2/daacab4666dfc-create-an-address). * * **Required token:** [Bearer token](../pages/tokens.html#bearer-token) * * **Options schema:** * ```ts * interface options { * address: { * firstname: string * lastname: string * address1: string * address2?: string * city: string * phone?: string * zipcode: string * state_name: string // State Abbreviations * country_iso: string // Country ISO (2-chars) or ISO3 (3-chars) * company?: string * } * } * ``` * * **Success response schema:** [Success schema](../pages/response-schema.html#success-schema) * * **Failure response schema:** [Error schema](../pages/response-schema.html#error-schema) * * **Example:** * ```ts * const response = await client.account.createAddress({ * bearer_token: '7381273269536713689562374856', * address: { * firstname: 'John', * lastname: 'Snow', * address1: '7735 Old Georgetown Road', * address2: '2nd Floor', * city: 'Bethesda', * phone: '3014445002', * zipcode: '20814', * state_name: 'MD', * country_iso: 'US', * company: 'Spark' * } * }) * ``` */ createAddress(options: CreateAddressOptions): Promise<AccountAddressResult>; /** * @hidden * @deprecated Use the combined options signature instead. */ createAddress(token: IToken, params: AccountAddressParams): Promise<AccountAddressResult>; /** * Removes selected Address for the signed in User. See [api docs](https://api.spreecommerce.org/docs/api-v2/b3A6MTAwNjA3Njg-remove-an-address). * * **Required token:** [Bearer token](../pages/tokens.html#bearer-token) * * **Success response schema:** [Success schema](../pages/response-schema.html#success-schema) * * **Failure response schema:** [Error schema](../pages/response-schema.html#error-schema) * * **Example:** * ```ts * const response = await client.account.removeAddress({ * bearer_token: '7381273269536713689562374856', * id: '1' * }) * ``` */ removeAddress(options: RemoveAddressOptions): Promise<NoContentResult>; /** * @hidden * @deprecated Use the combined options signature instead. */ removeAddress(token: IToken, id: string, params?: IQuery): Promise<NoContentResult>; /** * Update selected Address for the signed in User. See [api docs](https://api.spreecommerce.org/docs/api-v2/fbae19a10190d-update-an-address). * * Required token: Bearer token * * **Options schema:** * ```ts * interface options { * id: string * address: { * firstname: string * lastname: string * address1: string * address2?: string * city: string * phone?: string * zipcode: string * state_name: string // State Abbreviations * country_iso: string // Country ISO (2-chars) or ISO3 (3-chars) * company?: string * } * } * ``` * * **Success response schema:** [Success schema](../pages/response-schema.html#success-schema) * * **Failure response schema:** [Error schema](../pages/response-schema.html#error-schema) * * **Example:** * ```ts * const response = await client.account.updateAddress({ * bearer_token: '7381273269536713689562374856', * id: '1', * address: { * firstname: 'John', * lastname: 'Snow', * address1: '7735 Old Georgetown Road', * address2: '2nd Floor', * city: 'Bethesda', * phone: '3014445002', * zipcode: '20814', * state_name: 'MD', * country_iso: 'US', * company: 'Spark' * } * }) * ``` */ updateAddress(options: UpdateAddressOptions): Promise<AccountAddressResult>; /** * @hidden * @deprecated Use the combined options signature instead. */ updateAddress(token: IToken, addressId: string, params: AccountAddressParams): Promise<AccountAddressResult>; }