Files
medusa-store/docs/content/references/services/classes/CustomerService.md
2022-06-01 18:33:08 +02:00

453 lines
9.1 KiB
Markdown

# Class: CustomerService
Provides layer to manipulate customers.
**`implements`** {BaseService}
## Hierarchy
- `"medusa-interfaces"`
**`CustomerService`**
## Constructors
### constructor
**new CustomerService**(`__namedParameters`)
#### Parameters
| Name | Type |
| :------ | :------ |
| `__namedParameters` | `Object` |
#### Overrides
BaseService.constructor
#### Defined in
[services/customer.js:20](https://github.com/medusajs/medusa/blob/2d3e404f/packages/medusa/src/services/customer.js#L20)
## Properties
### Events
`Static` **Events**: `Object`
#### Type declaration
| Name | Type |
| :------ | :------ |
| `CREATED` | `string` |
| `PASSWORD_RESET` | `string` |
| `UPDATED` | `string` |
#### Defined in
[services/customer.js:14](https://github.com/medusajs/medusa/blob/2d3e404f/packages/medusa/src/services/customer.js#L14)
## Methods
### addAddress
**addAddress**(`customerId`, `address`): `Promise`<`any`\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `customerId` | `any` |
| `address` | `any` |
#### Returns
`Promise`<`any`\>
#### Defined in
[services/customer.js:479](https://github.com/medusajs/medusa/blob/2d3e404f/packages/medusa/src/services/customer.js#L479)
___
### count
**count**(): `Promise`<`any`\>
Return the total number of documents in database
#### Returns
`Promise`<`any`\>
the result of the count operation
#### Defined in
[services/customer.js:192](https://github.com/medusajs/medusa/blob/2d3e404f/packages/medusa/src/services/customer.js#L192)
___
### create
**create**(`customer`): `Promise`<`any`\>
Creates a customer from an email - customers can have accounts associated,
e.g. to login and view order history, etc. If a password is provided the
customer will automatically get an account, otherwise the customer is just
used to hold details of customers.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `customer` | `any` | the customer to create |
#### Returns
`Promise`<`any`\>
the result of create
#### Defined in
[services/customer.js:290](https://github.com/medusajs/medusa/blob/2d3e404f/packages/medusa/src/services/customer.js#L290)
___
### decorate
**decorate**(`customer`, `fields?`, `expandFields?`): `Customer`
Decorates a customer.
#### Parameters
| Name | Type | Default value | Description |
| :------ | :------ | :------ | :------ |
| `customer` | `Customer` | `undefined` | the cart to decorate. |
| `fields` | `string`[] | `[]` | the fields to include. |
| `expandFields` | `string`[] | `[]` | fields to expand. |
#### Returns
`Customer`
return the decorated customer.
#### Defined in
[services/customer.js:547](https://github.com/medusajs/medusa/blob/2d3e404f/packages/medusa/src/services/customer.js#L547)
___
### delete
**delete**(`customerId`): `Promise`<`any`\>
Deletes a customer from a given customer id.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `customerId` | `string` | the id of the customer to delete. Must be castable as an ObjectId |
#### Returns
`Promise`<`any`\>
the result of the delete operation.
#### Defined in
[services/customer.js:523](https://github.com/medusajs/medusa/blob/2d3e404f/packages/medusa/src/services/customer.js#L523)
___
### generateResetPasswordToken
**generateResetPasswordToken**(`customerId`): `string`
Generate a JSON Web token, that will be sent to a customer, that wishes to
reset password.
The token will be signed with the customer's current password hash as a
secret a long side a payload with userId and the expiry time for the token,
which is always 15 minutes.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `customerId` | `string` | the customer to reset the password for |
#### Returns
`string`
the generated JSON web token
#### Defined in
[services/customer.js:67](https://github.com/medusajs/medusa/blob/2d3e404f/packages/medusa/src/services/customer.js#L67)
___
### hashPassword\_
**hashPassword_**(`password`): `Promise`<`string`\>
Hashes a password
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `password` | `string` | the value to hash |
#### Returns
`Promise`<`string`\>
hashed password
#### Defined in
[services/customer.js:277](https://github.com/medusajs/medusa/blob/2d3e404f/packages/medusa/src/services/customer.js#L277)
___
### list
**list**(`selector?`, `config?`): `Promise`<`any`\>
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `selector` | `any` | the query object for find |
| `config` | `any` | the config object containing query settings |
#### Returns
`Promise`<`any`\>
the result of the find operation
#### Defined in
[services/customer.js:106](https://github.com/medusajs/medusa/blob/2d3e404f/packages/medusa/src/services/customer.js#L106)
___
### listAndCount
**listAndCount**(`selector`, `config?`): `Promise`<`any`\>
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `selector` | `any` | the query object for find |
| `config` | `FindConfig`<`Customer`\> | the config object containing query settings |
#### Returns
`Promise`<`any`\>
the result of the find operation
#### Defined in
[services/customer.js:147](https://github.com/medusajs/medusa/blob/2d3e404f/packages/medusa/src/services/customer.js#L147)
___
### removeAddress
**removeAddress**(`customerId`, `addressId`): `Promise`<`any`\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `customerId` | `any` |
| `addressId` | `any` |
#### Returns
`Promise`<`any`\>
#### Defined in
[services/customer.js:460](https://github.com/medusajs/medusa/blob/2d3e404f/packages/medusa/src/services/customer.js#L460)
___
### retrieve
**retrieve**(`customerId`, `config?`): `Promise`<`Customer`\>
Gets a customer by id.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `customerId` | `string` | the id of the customer to get. |
| `config` | `any` | the config object containing query settings |
#### Returns
`Promise`<`Customer`\>
the customer document.
#### Defined in
[services/customer.js:205](https://github.com/medusajs/medusa/blob/2d3e404f/packages/medusa/src/services/customer.js#L205)
___
### retrieveByEmail
**retrieveByEmail**(`email`, `config?`): `Promise`<`Customer`\>
Gets a customer by email.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `email` | `string` | the email of the customer to get. |
| `config` | `any` | the config object containing query settings |
#### Returns
`Promise`<`Customer`\>
the customer document.
#### Defined in
[services/customer.js:230](https://github.com/medusajs/medusa/blob/2d3e404f/packages/medusa/src/services/customer.js#L230)
___
### retrieveByPhone
**retrieveByPhone**(`phone`, `config?`): `Promise`<`Customer`\>
Gets a customer by phone.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `phone` | `string` | the phone of the customer to get. |
| `config` | `any` | the config object containing query settings |
#### Returns
`Promise`<`Customer`\>
the customer document.
#### Defined in
[services/customer.js:254](https://github.com/medusajs/medusa/blob/2d3e404f/packages/medusa/src/services/customer.js#L254)
___
### update
**update**(`customerId`, `update`): `Promise`<`any`\>
Updates a customer.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `customerId` | `string` | the id of the variant. Must be a string that can be casted to an ObjectId |
| `update` | `any` | an object with the update values. |
#### Returns
`Promise`<`any`\>
resolves to the update result.
#### Defined in
[services/customer.js:346](https://github.com/medusajs/medusa/blob/2d3e404f/packages/medusa/src/services/customer.js#L346)
___
### updateAddress
**updateAddress**(`customerId`, `addressId`, `address`): `Promise`<`any`\>
#### Parameters
| Name | Type |
| :------ | :------ |
| `customerId` | `any` |
| `addressId` | `any` |
| `address` | `any` |
#### Returns
`Promise`<`any`\>
#### Defined in
[services/customer.js:441](https://github.com/medusajs/medusa/blob/2d3e404f/packages/medusa/src/services/customer.js#L441)
___
### updateBillingAddress\_
**updateBillingAddress_**(`customer`, `addressOrId`, `addrRepo`): `Promise`<`any`\>
Updates the customers' billing address.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `customer` | `Customer` | the Customer to update |
| `addressOrId` | `any` | the value to set the billing address to |
| `addrRepo` | `any` | address repository |
#### Returns
`Promise`<`any`\>
the result of the update operation
#### Defined in
[services/customer.js:408](https://github.com/medusajs/medusa/blob/2d3e404f/packages/medusa/src/services/customer.js#L408)
___
### withTransaction
**withTransaction**(`transactionManager`): [`CustomerService`](CustomerService.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `transactionManager` | `any` |
#### Returns
[`CustomerService`](CustomerService.md)
#### Defined in
[services/customer.js:41](https://github.com/medusajs/medusa/blob/2d3e404f/packages/medusa/src/services/customer.js#L41)