All files / libs/data-capture/imports/core/src/lib refreshments.tasks.ts

0% Statements 0/34
0% Branches 0/1
0% Functions 0/1
0% Lines 0/34

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35                                                                     
import { type INestApplicationContext } from '@nestjs/common';

import {
  MessageTasks,
  type QueueMessageAttributes,
  type QueueMessageContent,
  type ScheduleRefreshmentPayload,
} from '@amalia/kernel/queue/core';

import { RefreshmentsModule } from './refreshments.module';
import { ScheduleRefreshmentUseCase } from './usecases/schedule-refreshment.use-case';

export const executeRefreshmentsTasks = async (
  app: INestApplicationContext,
  attributes: QueueMessageAttributes<MessageTasks>,
  messageContent: QueueMessageContent,
) => {
  switch (attributes.taskIdentifier) {
    case MessageTasks.SCHEDULE_REFRESHMENT: {
      await app
        .select(RefreshmentsModule)
        .get(ScheduleRefreshmentUseCase)
        .execute(messageContent as ScheduleRefreshmentPayload);
      break;
    }

    // Will not handle any tasks.
    default:
      return false;
  }

  // Task has been handled.
  return true;
};