@spree/storefront-api-v2-sdk
Version:
Node module to easily integrate your JavaScript or TypeScript application with Spree 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
184 lines (165 loc) • 7.35 kB
text/typescript
import squashAndPreparePositionalArguments from '../helpers/squashAndPreparePositionalArguments'
import Http from '../Http'
import type { NoContentResponse, NoContentResult } from '../interfaces/NoContent'
import type { IToken } from '../interfaces/Token'
import type {
WishedItem,
WishedItemResult,
WishlistsAddWishedItem,
WishlistsUpdateWishedItem,
AddWishedItemOptions,
UpdateWishedItemOptions,
RemoveWishedItemOptions
} from '../interfaces/WishedItem'
import type {
WishlistsList,
WishlistsResult,
Wishlists as WishlistsResponse,
Wishlist as WishlistResponse,
WishlistsShow,
WishlistResult,
WishlistsDefault,
WishlistsCreate,
WishlistsUpdate,
ListOptions,
ShowOptions,
DefaultOptions,
CreateOptions,
UpdateOptions,
RemoveOptions
} from '../interfaces/Wishlist'
import routes from '../routes'
export default class Wishlists extends Http {
public async list(options: ListOptions): Promise<WishlistsResult>
/**
* @deprecated Use the combined options signature instead.
*/
public async list(token: IToken, params?: WishlistsList): Promise<WishlistsResult>
public async list(...allArguments: any[]): Promise<WishlistsResult> {
const [tokenOrOptions, positionalParams = {}] = allArguments
const { token, params } = squashAndPreparePositionalArguments([tokenOrOptions, positionalParams], [])
return await this.spreeResponse<WishlistsResponse>('get', routes.wishlistsPath(), token, params)
}
public async show(options: ShowOptions): Promise<WishlistResult>
/**
* @deprecated Use the combined options signature instead.
*/
public async show(token: IToken, wishlistToken: string, params?: WishlistsShow): Promise<WishlistResult>
public async show(...allArguments: any[]): Promise<WishlistResult> {
const [tokenOrOptions, positionalWishlistToken, positionalParams = {}] = allArguments
const { wishlist_token, token, params } = squashAndPreparePositionalArguments(
[tokenOrOptions, { wishlist_token: positionalWishlistToken }, positionalParams],
['wishlist_token']
)
return await this.spreeResponse<WishlistResponse>('get', routes.wishlistPath(wishlist_token), token, params)
}
public async default(options: DefaultOptions): Promise<WishlistResult>
/**
* @deprecated Use the combined options signature instead.
*/
public async default(token: IToken, params?: WishlistsDefault): Promise<WishlistResult>
public async default(...allArguments: any[]): Promise<WishlistResult> {
const [tokenOrOptions, positionalParams = {}] = allArguments
const { token, params } = squashAndPreparePositionalArguments([tokenOrOptions, positionalParams], [])
return await this.spreeResponse<WishlistResponse>('get', routes.defaultWishlistPath(), token, params)
}
public async create(options: CreateOptions): Promise<WishlistResult>
/**
* @deprecated Use the combined options signature instead.
*/
public async create(token: IToken, params: WishlistsCreate): Promise<WishlistResult>
public async create(...allArguments: any[]): Promise<WishlistResult> {
const [tokenOrOptions, positionalParams] = allArguments
const { token, params } = squashAndPreparePositionalArguments([tokenOrOptions, positionalParams], [])
return await this.spreeResponse<WishlistResponse>('post', routes.wishlistsPath(), token, params)
}
public async update(options: UpdateOptions): Promise<WishlistResult>
/**
* @deprecated Use the combined options signature instead.
*/
public async update(token: IToken, wishlistToken: string, params: WishlistsUpdate): Promise<WishlistResult>
public async update(...allArguments: any[]): Promise<WishlistResult> {
const [tokenOrOptions, positionalWishlistToken, positionalParams] = allArguments
const { wishlist_token, token, params } = squashAndPreparePositionalArguments(
[tokenOrOptions, { wishlist_token: positionalWishlistToken }, positionalParams],
['wishlist_token']
)
return await this.spreeResponse<WishlistResponse>('patch', routes.wishlistPath(wishlist_token), token, params)
}
public async remove(options: RemoveOptions): Promise<NoContentResult>
/**
* @deprecated Use the combined options signature instead.
*/
public async remove(token: IToken, wishlistToken: string): Promise<NoContentResult>
public async remove(...allArguments: any[]): Promise<NoContentResult> {
const [tokenOrOptions, positionalWishlistToken] = allArguments
const { wishlist_token, token, params } = squashAndPreparePositionalArguments(
[tokenOrOptions, { wishlist_token: positionalWishlistToken }],
['wishlist_token']
)
return await this.spreeResponse<NoContentResponse>('delete', routes.wishlistPath(wishlist_token), token, params)
}
public async addWishedItem(options: AddWishedItemOptions): Promise<WishedItemResult>
/**
* @deprecated Use the combined options signature instead.
*/
public async addWishedItem(
token: IToken,
wishlistToken: string,
params: WishlistsAddWishedItem
): Promise<WishedItemResult>
public async addWishedItem(...allArguments: any[]): Promise<WishedItemResult> {
const [tokenOrOptions, positionalWishlistToken, positionalParams] = allArguments
const { wishlist_token, token, params } = squashAndPreparePositionalArguments(
[tokenOrOptions, { wishlist_token: positionalWishlistToken }, positionalParams],
['wishlist_token']
)
return await this.spreeResponse<WishedItem>(
'post',
routes.wishlistsAddWishedItemPath(wishlist_token),
token,
params
)
}
public async updateWishedItem(options: UpdateWishedItemOptions): Promise<WishedItemResult>
/**
* @deprecated Use the combined options signature instead.
*/
public async updateWishedItem(
token: IToken,
wishlistToken: string,
id: string,
params: WishlistsUpdateWishedItem
): Promise<WishedItemResult>
public async updateWishedItem(...allArguments: any[]): Promise<WishedItemResult> {
const [tokenOrOptions, positionalWishlistToken, positionalId, positionalParams] = allArguments
const { wishlist_token, id, token, params } = squashAndPreparePositionalArguments(
[tokenOrOptions, { wishlist_token: positionalWishlistToken }, { id: positionalId }, positionalParams],
['wishlist_token', 'id']
)
return await this.spreeResponse<WishedItem>(
'patch',
routes.wishlistsUpdateWishedItemQuantityPath(wishlist_token, id),
token,
params
)
}
public async removeWishedItem(options: RemoveWishedItemOptions): Promise<WishedItemResult>
/**
* @deprecated Use the combined options signature instead.
*/
public async removeWishedItem(token: IToken, wishlistToken: string, id: string): Promise<WishedItemResult>
public async removeWishedItem(...allArguments: any[]): Promise<WishedItemResult> {
const [tokenOrOptions, positionalWishlistToken, positionalId] = allArguments
const { wishlist_token, id, token, params } = squashAndPreparePositionalArguments(
[tokenOrOptions, { wishlist_token: positionalWishlistToken }, { id: positionalId }],
['wishlist_token', 'id']
)
return await this.spreeResponse<WishedItem>(
'delete',
routes.wishlistsRemoveWishedItemPath(wishlist_token, id),
token,
params
)
}
}