/*! * @license * Copyright Squiz Australia Pty Ltd. All Rights Reserved. */ import { inject } from 'inversify'; import { JobManifestRepository } from '../../repository'; import { provideSingleton } from '../../singletonProvider'; import { CreateJobManifestRequest, JobManifest, UpdateJobManifestRequest } from '../../manifest'; @provideSingleton(JobManifestService) export class JobManifestService { constructor(@inject(JobManifestRepository) protected jobManifestRepository: JobManifestRepository) {} public async createJobManifest(input: CreateJobManifestRequest): Promise { return this.jobManifestRepository.create(input); } public async updateJobManifest( name: string, version: string, input: UpdateJobManifestRequest, ): Promise { return this.jobManifestRepository.update({ name, version }, input); } public async listAllJobManifests(): Promise> { return this.jobManifestRepository.list(); } public async findJobManifest(name: string, version: string): Promise { return this.jobManifestRepository.findOne({ name, version }); } }