PERS SDK - v2.3.26 / Exports / CampaignService
Platform-Agnostic Campaign Service
Contains campaign business logic and operations that work across platforms. No framework dependencies - pure TypeScript business logic.
Focuses only on actual backend capabilities.
- getCampaignById
- claimCampaign
- getClaimsForLoggedUser
- getCampaigns
- getCampaignTriggers
- getCampaignTriggerById
- createCampaignTrigger
- updateCampaignTrigger
- deleteCampaignTrigger
- toggleCampaignActive
- toggleCampaignTestnet
- createCampaign
- setCampaignTrigger
- removeCampaignTrigger
- updateCampaign
- createCampaignTokenUnit
- deleteCampaignTokenUnit
- addBusinessEngagementToCampaign
- updateCampaignBusinessEngagement
- deleteCampaignBusinessEngagement
- getCampaignClaims
- getCampaignClaimsByUserId
- getCampaignClaimsByBusinessId
- assignTriggerSourceToCampaign
- removeTriggerSourceFromCampaign
• new CampaignService(campaignApi): CampaignService
| Name | Type |
|---|---|
campaignApi | CampaignApi |
campaign/services/campaign-service.ts:43
▸ getCampaignById(id, include?): Promise<CampaignDTO>
PUBLIC: Get campaign by ID
| Name | Type | Description |
|---|---|---|
id | string | Campaign UUID |
include? | CampaignIncludeRelation[] | Relations to include: 'triggerSources', 'businesses' |
Promise<CampaignDTO>
campaign/services/campaign-service.ts:54
▸ claimCampaign(request): Promise<CampaignClaimDTO>
AUTH: Claim campaign
| Name | Type |
|---|---|
request | CampaignClaimRequestDTO |
Promise<CampaignClaimDTO>
campaign/services/campaign-service.ts:65
▸ getClaimsForLoggedUser(options?, include?): Promise<PaginatedResponseDTO<CampaignClaimDTO>>
AUTH: Get claims for logged user with pagination
| Name | Type | Description |
|---|---|---|
options? | PaginationOptions | Pagination options |
include? | CampaignClaimIncludeRelation[] | Optional relations to include (campaign, user, business) |
Promise<PaginatedResponseDTO<CampaignClaimDTO>>
campaign/services/campaign-service.ts:74
▸ getCampaigns(options?): Promise<PaginatedResponseDTO<CampaignDTO>>
Get campaigns with pagination support Intelligent access: Public gets active only, Business gets own campaigns, Admin gets all
| Name | Type |
|---|---|
options? | CampaignQueryParams |
Promise<PaginatedResponseDTO<CampaignDTO>>
See
CampaignFilterOptions for available filter options
campaign/services/campaign-service.ts:90
▸ getCampaignTriggers(options?): Promise<PaginatedResponseDTO<CampaignTriggerDTO>>
ADMIN: Get campaign triggers with pagination
| Name | Type |
|---|---|
options? | PaginationOptions |
Promise<PaginatedResponseDTO<CampaignTriggerDTO>>
campaign/services/campaign-service.ts:97
▸ getCampaignTriggerById(triggerId): Promise<CampaignTriggerDTO>
ADMIN: Get campaign trigger by ID
| Name | Type |
|---|---|
triggerId | string |
Promise<CampaignTriggerDTO>
campaign/services/campaign-service.ts:104
▸ createCampaignTrigger(data): Promise<CampaignTriggerDTO>
ADMIN: Create campaign trigger
| Name | Type |
|---|---|
data | CampaignTriggerCreateRequestDTO |
Promise<CampaignTriggerDTO>
campaign/services/campaign-service.ts:111
▸ updateCampaignTrigger(triggerId, data): Promise<CampaignTriggerDTO>
ADMIN: Update campaign trigger
| Name | Type |
|---|---|
triggerId | string |
data | Partial<CampaignTriggerCreateRequestDTO> |
Promise<CampaignTriggerDTO>
campaign/services/campaign-service.ts:118
▸ deleteCampaignTrigger(triggerId): Promise<boolean>
ADMIN: Delete campaign trigger
| Name | Type |
|---|---|
triggerId | string |
Promise<boolean>
campaign/services/campaign-service.ts:125
▸ toggleCampaignActive(campaignId): Promise<CampaignDTO>
ADMIN: Toggle campaign active status
| Name | Type |
|---|---|
campaignId | string |
Promise<CampaignDTO>
campaign/services/campaign-service.ts:132
▸ toggleCampaignTestnet(campaignId): Promise<CampaignDTO>
ADMIN: Toggle campaign testnet environment
| Name | Type |
|---|---|
campaignId | string |
Promise<CampaignDTO>
campaign/services/campaign-service.ts:139
▸ createCampaign(campaign): Promise<CampaignDTO>
ADMIN: Create campaign
| Name | Type |
|---|---|
campaign | CampaignCreateRequestDTO |
Promise<CampaignDTO>
campaign/services/campaign-service.ts:146
▸ setCampaignTrigger(campaignId, triggerId): Promise<CampaignDTO>
ADMIN: Set campaign trigger
| Name | Type |
|---|---|
campaignId | string |
triggerId | string |
Promise<CampaignDTO>
campaign/services/campaign-service.ts:153
▸ removeCampaignTrigger(campaignId, triggerId): Promise<CampaignDTO>
ADMIN: Remove trigger from campaign (unassign)
| Name | Type |
|---|---|
campaignId | string |
triggerId | string |
Promise<CampaignDTO>
campaign/services/campaign-service.ts:160
▸ updateCampaign(campaignId, campaign): Promise<CampaignDTO>
ADMIN: Update campaign
| Name | Type |
|---|---|
campaignId | string |
campaign | CampaignCreateRequestDTO |
Promise<CampaignDTO>
campaign/services/campaign-service.ts:167
▸ createCampaignTokenUnit(campaignId, campaignTokenUnit): Promise<CampaignDTO>
ADMIN: Create campaign token unit
| Name | Type |
|---|---|
campaignId | string |
campaignTokenUnit | TokenUnitCreateRequestDTO |
Promise<CampaignDTO>
campaign/services/campaign-service.ts:174
▸ deleteCampaignTokenUnit(campaignId, campaignTokenUnitId): Promise<CampaignDTO>
ADMIN: Delete campaign token unit
| Name | Type |
|---|---|
campaignId | string |
campaignTokenUnitId | string |
Promise<CampaignDTO>
campaign/services/campaign-service.ts:181
▸ addBusinessEngagementToCampaign(campaignId, campaignBusinessEngagement): Promise<CampaignDTO>
ADMIN: Add business engagement to campaign
| Name | Type |
|---|---|
campaignId | string |
campaignBusinessEngagement | CampaignBusinessEngagementCreateRequestDTO |
Promise<CampaignDTO>
campaign/services/campaign-service.ts:188
▸ updateCampaignBusinessEngagement(campaignId, businessEngagementId, campaignBusinessEngagement): Promise<CampaignDTO>
ADMIN: Update campaign business engagement
| Name | Type |
|---|---|
campaignId | string |
businessEngagementId | string |
campaignBusinessEngagement | CampaignBusinessEngagementCreateRequestDTO |
Promise<CampaignDTO>
campaign/services/campaign-service.ts:195
▸ deleteCampaignBusinessEngagement(campaignId, businessEngagementId): Promise<CampaignDTO>
| Name | Type |
|---|---|
campaignId | string |
businessEngagementId | string |
Promise<CampaignDTO>
campaign/services/campaign-service.ts:199
▸ getCampaignClaims(filters?, include?): Promise<PaginatedResponseDTO<CampaignClaimDTO>>
ADMIN: Get campaign claims with optional filters and pagination
| Name | Type | Description |
|---|---|---|
filters? | Object | Filter and pagination options including date range |
filters.campaignId? | string | - |
filters.userId? | string | - |
filters.businessId? | string | - |
filters.dateFrom? | string | Date | - |
filters.dateTo? | string | Date | - |
filters.page? | number | - |
filters.limit? | number | - |
filters.sortBy? | string | - |
filters.sortOrder? | SortOrder | - |
include? | CampaignClaimIncludeRelation[] | Optional relations to include (campaign, user, business) |
Promise<PaginatedResponseDTO<CampaignClaimDTO>>
campaign/services/campaign-service.ts:208
▸ getCampaignClaimsByUserId(userId, options?, include?): Promise<PaginatedResponseDTO<CampaignClaimDTO>>
ADMIN: Get campaign claims by user ID with pagination
| Name | Type | Description |
|---|---|---|
userId | string | User ID to filter by |
options? | PaginationOptions | Pagination options |
include? | CampaignClaimIncludeRelation[] | Optional relations to include (campaign, user, business) |
Promise<PaginatedResponseDTO<CampaignClaimDTO>>
campaign/services/campaign-service.ts:231
▸ getCampaignClaimsByBusinessId(businessId, options?, include?): Promise<PaginatedResponseDTO<CampaignClaimDTO>>
ADMIN: Get campaign claims by business ID with pagination
| Name | Type | Description |
|---|---|---|
businessId | string | Business ID to filter by |
options? | PaginationOptions | Pagination options |
include? | CampaignClaimIncludeRelation[] | Optional relations to include (campaign, user, business) |
Promise<PaginatedResponseDTO<CampaignClaimDTO>>
campaign/services/campaign-service.ts:245
▸ assignTriggerSourceToCampaign(campaignId, triggerSourceId): Promise<CampaignDTO>
ADMIN: Assign a trigger source to a campaign
| Name | Type |
|---|---|
campaignId | string |
triggerSourceId | string |
Promise<CampaignDTO>
campaign/services/campaign-service.ts:261
▸ removeTriggerSourceFromCampaign(campaignId, triggerSourceId): Promise<CampaignDTO>
ADMIN: Remove a trigger source from a campaign
| Name | Type |
|---|---|
campaignId | string |
triggerSourceId | string |
Promise<CampaignDTO>