neet/refined-itsukara-link

View on GitHub
packages/@neet/vschedule-api/src/app/organization/list-organizations.ts

Summary

Maintainability
A
3 hrs
Test Coverage
import { inject, injectable } from 'inversify';

import { TYPES } from '../../types';
import { OrganizationDto } from '../dto';
import { IOrganizationQueryService } from './organization-query-service';

export interface ListOrganizationCommand {
  readonly limit?: number;
  readonly offset?: number;
}

@injectable()
export class ListOrganization {
  constructor(
    @inject(TYPES.OrganizationQueryService)
    private readonly _organizationQueryService: IOrganizationQueryService,
  ) {}

  async invoke(command?: ListOrganizationCommand): Promise<OrganizationDto[]> {
    const actors = await this._organizationQueryService.queryMany({
      limit: command?.limit,
    });

    return actors;
  }
}