This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
import { asc, eq } from 'drizzle-orm';
|
||||
|
||||
import { imageDerivativeJobs } from '../../../infrastructure/database/schema.js';
|
||||
|
||||
export function createImageDerivativeJobRepository(db) {
|
||||
return {
|
||||
async create(job) {
|
||||
const [createdJob] = await db.insert(imageDerivativeJobs).values(job).returning();
|
||||
return createdJob;
|
||||
},
|
||||
|
||||
async listByImageId(inventoryImageId) {
|
||||
return db
|
||||
.select()
|
||||
.from(imageDerivativeJobs)
|
||||
.where(eq(imageDerivativeJobs.inventoryImageId, inventoryImageId))
|
||||
.orderBy(asc(imageDerivativeJobs.createdAt));
|
||||
},
|
||||
};
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
import { createApplicationError } from '../../../shared/errors/application-error.js';
|
||||
import { validateImageSignature, validateInventoryImageMetadata } from '../domain/inventory-image.js';
|
||||
|
||||
export function createInventoryImageService({ inventoryImageRepository, imageStorage }) {
|
||||
export function createInventoryImageService({ inventoryImageRepository, imageDerivativeJobRepository, imageStorage }) {
|
||||
return {
|
||||
async create(input) {
|
||||
validateInventoryImageMetadata(input);
|
||||
@@ -14,6 +14,12 @@ export function createInventoryImageService({ inventoryImageRepository, imageSto
|
||||
throw createApplicationError('INVENTORY_ITEM_NOT_FOUND', 'Inventory item was not found.', 404);
|
||||
}
|
||||
|
||||
await imageDerivativeJobRepository?.create({
|
||||
inventoryImageId: image.id,
|
||||
sourceKey: image.storageKey,
|
||||
status: 'PENDING',
|
||||
});
|
||||
|
||||
return image;
|
||||
},
|
||||
|
||||
|
||||
Reference in New Issue
Block a user