Skip to content
This repository was archived by the owner on Feb 18, 2026. It is now read-only.
This repository was archived by the owner on Feb 18, 2026. It is now read-only.

Refactor Contact Logic into Reusable Package #529

@yacosta738

Description

@yacosta738

Description:

The contact functionality needs to be refactored into a modular and reusable package/library. This will allow its reuse across multiple applications (as services/containers) without duplication.


Context:

Location: @server/engine/src/main/kotlin/com/cvix/contact/

Purpose:

  • The contact service handles contact form submissions with external integrations, such as HCaptcha.

Components:

  1. Core Functionalities:
    • Commands: ContactSender, SendContactCommand, SendContactCommandHandler.
    • Domain: ContactData, CaptchaValidator, ContactNotifier, ContactException.
  2. Infrastructure:
    • Configurations: ContactProperties, WebClientConfig.
    • External Integrations: HCaptchaClient, N8nContactClient.
  3. HTTP Layer:
    • ContactController, SendContactRequest, SendContactResponse.

Tasks:

  1. Modularization:
    • Move the above components into a new contact-service package.
  2. Reusable Interfaces:
    • Expose clean APIs for interacting with the contact-service.
  3. Test Coverage:
    • Ensure new package is fully covered by tests.
  4. Documentation:
    • Document the new module with setup steps and usage instructions.

Acceptance Criteria:

  1. All components listed above are moved to a dedicated package.
  2. APIs are exposed for clean interaction.
  3. Test coverage and documentation are complete.
  4. Backward compatibility with existing services (during migration).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions