How elmasghatimohamed-cmd/afffiliatelink works
AffiliateLink is a Spring REST API for affiliate marketing. Its main workflow is profile registration and administration, advertiser offer creation and discovery, then campaign creation and lifecycle management. The Profile and Offer modules are documented as communicating through public APIs and a profile-suspension event; campaign creation also checks advertiser activity through ProfileApi. Service implementations form the internal business layer between controllers and persistence. The README documents publisher notifications, but the sampled sources do not establish their trigger or delivery path.
Main entry points: implementation Profile services · CampaignServiceImpl.java Campaign services · OfferServiceImpl.java Offer services · ProfileApi.java Profile module API
Components 20
Profile management
- Publisher endpoints
src/main/java/ma/affilatelink/profil/controllers/PublisherController.java - Advertiser endpoints
src/main/java/ma/affilatelink/profil/controllers/AdvertiserController.java - Admin endpoints
src/main/java/ma/affilatelink/profil/controllers/AdminController.java - Profile services
src/main/java/ma/affilatelink/profil/services/implementation - Profile repositories
src/main/java/ma/affilatelink/profil/repositories - Suspension event
src/main/java/ma/affilatelink/profil/events/ProfileSuspended.java - Profile module API
src/main/java/ma/affilatelink/profil/api/ProfileApi.java
Offer management
- Offer endpoints
src/main/java/ma/affilatelink/offer/controllers/OfferController.java - Offer services
src/main/java/ma/affilatelink/offer/services/implementation/OfferServiceImpl.java - Offer repositories
src/main/java/ma/affilatelink/offer/repositories - Offers and tags
src/main/java/ma/affilatelink/offer/entities/Offer.java
Campaign management
- Campaign endpoints
src/main/java/ma/affilatelink/offer/controllers/CampaignController.java - Campaign services
src/main/java/ma/affilatelink/offer/services/implementation/CampaignServiceImpl.java - Campaign repository
src/main/java/ma/affilatelink/offer/repositories/CampaignRepository.java - Campaign records
src/main/java/ma/affilatelink/offer/entities/Campaign.java - Suspension listener
src/main/java/ma/affilatelink/offer/listeners/ProfileSuspendedListener.java - Publisher notifications
src/main/java/ma/affilatelink/offer/services/implementation/PublisherNotificationServiceImpl.java
Shared API handling
- API error handling
src/main/java/ma/affilatelink/common/exceptions/GlobalExceptionHandler.java
Other components
- API clients
- Spring application
src/main/java/ma/affilatelink/AffiliateLinkApplication.java
Connections 22
- API clients → Publisher endpoints: registers or reads
README.md - API clients → Advertiser endpoints: registers or reads
README.md - API clients → Admin endpoints: changes status
README.md - API clients → Offer endpoints: creates or searches
README.md - API clients → Campaign endpoints: manages campaigns
README.md - Publisher endpoints → Profile services: delegates to
src/main/java/ma/affilatelink/profil/controllers/PublisherController.java - Advertiser endpoints → Profile services: delegates to
src/main/java/ma/affilatelink/profil/controllers/AdvertiserController.java - Admin endpoints → Profile services: delegates to
src/main/java/ma/affilatelink/profil/controllers/AdminController.java - Profile services → Profile repositories: persists profiles
src/main/java/ma/affilatelink/profil/services/implementation/AdvertiserServiceImpl.java - Profile services → Suspension event: publishes
README.md - Offer endpoints → Offer services: delegates to
src/main/java/ma/affilatelink/offer/controllers/OfferController.java - Offer services → Offer repositories: queries and saves
src/main/java/ma/affilatelink/offer/services/implementation/OfferServiceImpl.java - Offer services → Profile module API: checks advertiser
src/main/java/ma/affilatelink/offer/services/implementation/OfferServiceImpl.java - Campaign endpoints → Campaign services: delegates to
src/main/java/ma/affilatelink/offer/controllers/CampaignController.java - Campaign services → Campaign repository: queries and saves
src/main/java/ma/affilatelink/offer/services/implementation/CampaignServiceImpl.java - Campaign services → Offer repositories: loads offer
src/main/java/ma/affilatelink/offer/services/implementation/CampaignServiceImpl.java - Campaign services → Profile module API: checks advertiser
src/main/java/ma/affilatelink/offer/services/implementation/CampaignServiceImpl.java - Profile module API → Profile services: checks profile status
- Suspension event → Suspension listener: dispatches event
README.md - Suspension listener → Campaign services: suspends campaigns
README.md - Offer services → Publisher notifications: triggers notifications
- API error handling → API clients: returns API errors
src/main/java/ma/affilatelink/common/exceptions/GlobalExceptionHandler.java