chore(types, utils): update TSDocs related to analytics module (#12564)
This commit is contained in:
@@ -9,31 +9,65 @@ export interface TrackAnalyticsEventDTO {
|
|||||||
actor_id?: string
|
actor_id?: string
|
||||||
/**
|
/**
|
||||||
* The group that the event is for, such as an organization or team.
|
* The group that the event is for, such as an organization or team.
|
||||||
* The "type" defines the name of the group (eg. "organization"), and the "id" is the id of the group.
|
|
||||||
*/
|
*/
|
||||||
group?: {
|
group?: {
|
||||||
|
/**
|
||||||
|
* The name of the group.
|
||||||
|
*
|
||||||
|
* @example
|
||||||
|
* "organization"
|
||||||
|
*/
|
||||||
type?: string
|
type?: string
|
||||||
|
/**
|
||||||
|
* The group's ID.
|
||||||
|
*/
|
||||||
id?: string
|
id?: string
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* The properties of the event. The format and content depends on the provider.
|
* The properties of the event. The format and content is dynamic and depends on the integrated provider.
|
||||||
*/
|
*/
|
||||||
properties?: Record<string, any>
|
properties?: Record<string, any>
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface IdentifyActorDTO {
|
export interface IdentifyActorDTO {
|
||||||
|
/**
|
||||||
|
* The actor of the event, if there is any.
|
||||||
|
*/
|
||||||
actor_id: string
|
actor_id: string
|
||||||
|
/**
|
||||||
|
* The properties of the actor. The format and content is dynamic and depends on the integrated provider.
|
||||||
|
*/
|
||||||
properties?: Record<string, any>
|
properties?: Record<string, any>
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface IdentifyGroupDTO {
|
export interface IdentifyGroupDTO {
|
||||||
|
/**
|
||||||
|
* The group that the event is for, such as an organization or team.
|
||||||
|
*/
|
||||||
group: {
|
group: {
|
||||||
|
/**
|
||||||
|
* The name of the group.
|
||||||
|
*
|
||||||
|
* @example
|
||||||
|
* "organization"
|
||||||
|
*/
|
||||||
type: string
|
type: string
|
||||||
|
/**
|
||||||
|
* The group's ID.
|
||||||
|
*/
|
||||||
id: string
|
id: string
|
||||||
}
|
}
|
||||||
// When identifying a group, the actor can potentially be passed as well as metadata.
|
/**
|
||||||
|
* When identifying a group, the actor can potentially be passed as well as metadata.
|
||||||
|
*/
|
||||||
actor_id?: string
|
actor_id?: string
|
||||||
|
/**
|
||||||
|
* The properties of the group. The format and content is dynamic and depends on the integrated provider.
|
||||||
|
*/
|
||||||
properties?: Record<string, any>
|
properties?: Record<string, any>
|
||||||
}
|
}
|
||||||
// Either actor_id or group must be provided. Depending on the provided identifier, the properties will be set for the actor or group.
|
|
||||||
|
/**
|
||||||
|
* Either the `actor_id` or the `group` property must be set.
|
||||||
|
*/
|
||||||
export type IdentifyAnalyticsEventDTO = IdentifyActorDTO | IdentifyGroupDTO
|
export type IdentifyAnalyticsEventDTO = IdentifyActorDTO | IdentifyGroupDTO
|
||||||
|
|||||||
@@ -25,9 +25,21 @@ export interface IAnalyticsProvider {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* This method is used to shutdown the analytics provider, and flush all data before shutting down.
|
* This method is used to shutdown the analytics provider, and flush all data before shutting down.
|
||||||
|
*
|
||||||
|
* This method is called by the Analytics Module when the Medusa application is shutting down.
|
||||||
*
|
*
|
||||||
* @returns {Promise<void>} Resolves when the provider is shutdown successfully.
|
* @returns {Promise<void>} Resolves when the provider is shutdown successfully.
|
||||||
*
|
*
|
||||||
|
* @example
|
||||||
|
* class MyAnalyticsProviderService extends AbstractAnalyticsProviderService {
|
||||||
|
* // ...
|
||||||
|
* async shutdown(): Promise<void> {
|
||||||
|
* // perform any cleanup or shutdown logic
|
||||||
|
* // in the analytics provider or using custom logic
|
||||||
|
* // for example:
|
||||||
|
* await this.client.shutdown()
|
||||||
|
* }
|
||||||
|
* }
|
||||||
*/
|
*/
|
||||||
shutdown?(): Promise<void>
|
shutdown?(): Promise<void>
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,35 +4,43 @@ import { IAnalyticsProvider } from "./provider"
|
|||||||
|
|
||||||
export interface IAnalyticsModuleService extends IModuleService {
|
export interface IAnalyticsModuleService extends IModuleService {
|
||||||
/**
|
/**
|
||||||
* Returns a reference to the analytics provider in use
|
* This method returns the service of the configured Analytics Module Provider in `medusa-config.ts`. This is useful
|
||||||
|
* if you want to execute custom methods defined in the provider's service or you need direct access to it.
|
||||||
|
*
|
||||||
|
* @returns {IAnalyticsProvider} An instance of the Analytics Module Provider's service.
|
||||||
|
*
|
||||||
|
* @example
|
||||||
|
* const postHogProviderService = analyticsModuleService.getProvider()
|
||||||
|
* // TODO: perform custom actions with the provider
|
||||||
*/
|
*/
|
||||||
getProvider(): IAnalyticsProvider
|
getProvider(): IAnalyticsProvider
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This method tracks an event in the analytics provider
|
* This method tracks an event in the analytics provider. The Analytics Module
|
||||||
|
* will use the `track` method of the underlying provider configured in `medusa-config.ts` to track the event.
|
||||||
*
|
*
|
||||||
* @param {TrackAnalyticsEventDTO} data - The data for the event.
|
* @param {TrackAnalyticsEventDTO} data - The event's details.
|
||||||
* @returns {Promise<void>} Resolves when the event is tracked successfully.
|
* @returns {Promise<void>} Resolves when the event is tracked successfully.
|
||||||
*
|
*
|
||||||
*
|
|
||||||
* @example
|
* @example
|
||||||
* await analyticsModuleService.track({
|
* await analyticsModuleService.track({
|
||||||
* event: "product_viewed",
|
* event: "order_placed",
|
||||||
* properties: {
|
* properties: {
|
||||||
* product_id: "123",
|
* order_id: "order_123",
|
||||||
* product_name: "Product Name"
|
* customer_id: "customer_456",
|
||||||
|
* total: 100,
|
||||||
* }
|
* }
|
||||||
* })
|
* })
|
||||||
*/
|
*/
|
||||||
track(data: TrackAnalyticsEventDTO): Promise<void>
|
track(data: TrackAnalyticsEventDTO): Promise<void>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This method identifies an actor or group in the analytics provider
|
* This method identifies an actor or group in the analytics provider. The Analytics Module
|
||||||
|
* will use the `identify` method of the underlying provider configured in `medusa-config.ts` to identify the actor or group.
|
||||||
*
|
*
|
||||||
* @param {IdentifyAnalyticsEventDTO} data - The data for the actor or group.
|
* @param {IdentifyAnalyticsEventDTO} data - The details of the actor or group.
|
||||||
* @returns {Promise<void>} Resolves when the actor or group is identified successfully.
|
* @returns {Promise<void>} Resolves when the actor or group is identified successfully.
|
||||||
*
|
*
|
||||||
*
|
|
||||||
* @example
|
* @example
|
||||||
* await analyticsModuleService.identify({
|
* await analyticsModuleService.identify({
|
||||||
* actor_id: "123",
|
* actor_id: "123",
|
||||||
|
|||||||
@@ -8,7 +8,14 @@ import { CreateFileDTO, GetUploadFileUrlDTO } from "./mutations"
|
|||||||
|
|
||||||
export interface IFileModuleService extends IModuleService {
|
export interface IFileModuleService extends IModuleService {
|
||||||
/**
|
/**
|
||||||
* Returns a reference to the file provider in use
|
* This method returns the service of the configured File Module Provider in `medusa-config.ts`. This is useful
|
||||||
|
* if you want to execute custom methods defined in the provider's service or you need direct access to it.
|
||||||
|
*
|
||||||
|
* @returns {IFileProvider} An instance of the File Module Provider's service.
|
||||||
|
*
|
||||||
|
* @example
|
||||||
|
* const s3ProviderService = fileModuleService.getProvider()
|
||||||
|
* // TODO: perform custom actions with the provider
|
||||||
*/
|
*/
|
||||||
getProvider(): IFileProvider
|
getProvider(): IFileProvider
|
||||||
|
|
||||||
|
|||||||
@@ -72,11 +72,12 @@ export class AbstractAnalyticsProviderService implements IAnalyticsProvider {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This method tracks an event using your provider's semantics
|
* This method tracks an event with the third-party analytics provider. The Analytics Module
|
||||||
|
* will use this method in its `track` method if your provider is configured in `medusa-config.ts`.
|
||||||
|
*
|
||||||
|
* You can send the event to the third-party provider based on its semantics.
|
||||||
*
|
*
|
||||||
* This method will be used when tracking events to third-party providers.
|
* @param {ProviderTrackAnalyticsEventDTO} data - The event's details.
|
||||||
*
|
|
||||||
* @param {ProviderTrackAnalyticsEventDTO} data - The data for the event.
|
|
||||||
* @returns {Promise<void>} Resolves when the event is tracked successfully.
|
* @returns {Promise<void>} Resolves when the event is tracked successfully.
|
||||||
*
|
*
|
||||||
* @example
|
* @example
|
||||||
@@ -97,9 +98,10 @@ export class AbstractAnalyticsProviderService implements IAnalyticsProvider {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This method identifies an actor or group in the analytics provider
|
* This method identifies an actor or group in the third-party analytics provider. The Analytics Module
|
||||||
|
* will use this method in its `identify` method if your provider is configured in `medusa-config.ts`.
|
||||||
*
|
*
|
||||||
* @param {ProviderIdentifyAnalyticsEventDTO} data - The data for the actor or group.
|
* @param {ProviderIdentifyAnalyticsEventDTO} data - The details of the actor or group.
|
||||||
* @returns {Promise<void>} Resolves when the actor or group is identified successfully.
|
* @returns {Promise<void>} Resolves when the actor or group is identified successfully.
|
||||||
*
|
*
|
||||||
* @example
|
* @example
|
||||||
|
|||||||
Reference in New Issue
Block a user