Skip to content

add constants #808

@tacman

Description

@tacman

I hate typing strings, too easy to make mistakes.

Would you accept a PR for these two classes? We can gradually use those constants, but mostly they'd be helpful for developers who needed to call the library.

I've been using these in a bundle I'm deveoping, but the feel like they should be part of this library. I'll submit a PR with the proper namespace. What directory would you like them in? Metadata?

<?php
declare(strict_types=1);

namespace Survos\MeiliBundle\Meili;

/**
 * Official Meilisearch task statuses.
 * https://www.meilisearch.com/docs/reference/api/tasks#get-task
 */
final class MeiliTaskStatus
{
    public const ENQUEUED = 'enqueued';
    public const PROCESSING = 'processing';
    public const SUCCEEDED = 'succeeded';
    public const FAILED = 'failed';

    public const ACTIVE = [self::ENQUEUED, self::PROCESSING];
    public const TERMINAL = [self::SUCCEEDED, self::FAILED];
}
<?php
declare(strict_types=1);

namespace Survos\MeiliBundle\Meili;

/**
 * Meilisearch task types (string literals as returned by /tasks).
 * Source: Meilisearch API.
 */
final class MeiliTaskType
{
    public const DOCUMENT_ADDITION_OR_UPDATE = 'documentAdditionOrUpdate';
    public const DOCUMENT_EDITION            = 'documentEdition';
    public const DOCUMENT_DELETION           = 'documentDeletion';

    public const SETTINGS_UPDATE             = 'settingsUpdate';

    public const INDEX_CREATION              = 'indexCreation';
    public const INDEX_DELETION              = 'indexDeletion';
    public const INDEX_UPDATE                = 'indexUpdate';
    public const INDEX_SWAP                  = 'indexSwap';

    public const TASK_CANCELATION            = 'taskCancelation';
    public const TASK_DELETION               = 'taskDeletion';

    public const DUMP_CREATION               = 'dumpCreation';
    public const SNAPSHOT_CREATION           = 'snapshotCreation';

    public const EXPORT                      = 'export';
    public const UPGRADE_DATABASE            = 'upgradeDatabase';

    /** @var string[] All known types */
    public const ALL = [
        self::DOCUMENT_ADDITION_OR_UPDATE,
        self::DOCUMENT_EDITION,
        self::DOCUMENT_DELETION,
        self::SETTINGS_UPDATE,
        self::INDEX_CREATION,
        self::INDEX_DELETION,
        self::INDEX_UPDATE,
        self::INDEX_SWAP,
        self::TASK_CANCELATION,
        self::TASK_DELETION,
        self::DUMP_CREATION,
        self::SNAPSHOT_CREATION,
        self::EXPORT,
        self::UPGRADE_DATABASE,
    ];

    /** @var string[] Document-level mutations */
    public const DOCUMENT_TYPES = [
        self::DOCUMENT_ADDITION_OR_UPDATE,
        self::DOCUMENT_EDITION,
        self::DOCUMENT_DELETION,
    ];

    /** @var string[] Index-level mutations */
    public const INDEX_TYPES = [
        self::INDEX_CREATION,
        self::INDEX_DELETION,
        self::INDEX_UPDATE,
        self::INDEX_SWAP,
        self::SETTINGS_UPDATE,
    ];

    /** @var string[] Administrative/maintenance operations */
    public const ADMIN_TYPES = [
        self::TASK_CANCELATION,
        self::TASK_DELETION,
        self::DUMP_CREATION,
        self::SNAPSHOT_CREATION,
        self::EXPORT,
        self::UPGRADE_DATABASE,
    ];
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions