Fake Mirrors
    Preparing search index...

    Class RedisLureRepository

    Redis-based lure repository implementation.

    Depends:

    import { DIContainer } from '@famir/common'
    import { LURE_REPOSITORY, LureRepository, RedisLureRepository } from '@famir/database'

    // Get container singleton
    const container = DIContainer.getInstance()

    // Register dependency in container
    RedisLureRepository.register(container)

    // Resolve dependency from container
    const lureRepository = container.resolve<LureRepository>(LURE_REPOSITORY)

    // TODO more examples

    Implements

    • Creates a new lure.

      The lure will be created in a disabled state (isEnabled = false). Use enable to activate it for traffic routing.

      Parameters

      • campaignId: string

        The ID of the campaign to create the lure in.

      • lureId: string

        The new lure ID to create.

      • path: string

        The URL path for the lure.

      • redirectorId: string

        The ID of the redirector that handles this lure.

      • lockSecret: string

        The campaign lock secret obtained from CampaignRepository.lock.

      Returns Promise<void>

      DatabaseError If the campaign does not exist.

      DatabaseError If the campaign is not locked.

      DatabaseError If the campaign lock secret does not match.

      DatabaseError If a lure with the same ID already exists.

      DatabaseError If the lure URL path is already used by another campaign.

      DatabaseError If the redirector does not exist.

      DatabaseError If the data validation fails.

    • Deletes the lure by its ID.

      A lure must be disabled before it can be deleted.

      Parameters

      • campaignId: string

        The ID of the campaign containing the lure.

      • lureId: string

        The lure ID to delete.

      • redirectorId: string

        The ID of the redirector that handles this lure.

      • lockSecret: string

        The campaign lock secret obtained from CampaignRepository.lock.

      Returns Promise<void>

      DatabaseError If the campaign does not exist.

      DatabaseError If the campaign is not locked.

      DatabaseError If the campaign lock secret does not match.

      DatabaseError If the lure does not exist.

      DatabaseError If the redirector does not exist.

      DatabaseError If the lure is still enabled.

      DatabaseError If the lure redirector ID does not match the provided one.

      DatabaseError If the data validation fails.

    • Finds a lure by its URL path.

      This is the primary routing method for HTTP requests. When a request arrives at a mirror domain, the request path is extracted and used to instantly find the corresponding lure via a direct hash lookup.

      Parameters

      • campaignId: string

        The ID of the campaign to search in.

      • path: string

        The URL path to look up.

      Returns Promise<LureModel | null>

      The lure model, or null if no lure matches the URL path.

      DatabaseError If the data validation fails.