feat: implement explicit sticker history cleanup (TASK-WP5-06)
Dada P0-A isolated Windows CI / validate-and-package (push) Failing after 3m16s
Dada P0-A isolated Windows CI / validate-and-package (push) Failing after 3m16s
This commit is contained in:
@@ -328,6 +328,14 @@ export class StickerReleaseService {
|
||||
input.width, input.height, input.expectedMimeType, input.original.sha256, input.original.fileId, input.original.bytes,
|
||||
input.thumbnail.fileId, input.thumbnail.relativePath, input.thumbnail.sha256, input.thumbnail.bytes, input.enabled ? 1 : 0,
|
||||
);
|
||||
this.database.prepare(`
|
||||
INSERT OR IGNORE INTO sticker_managed_file_history (
|
||||
managed_file_id, stable_id, resource_version, file_kind, created_at
|
||||
) VALUES (?, ?, ?, 'original', ?), (?, ?, ?, 'thumbnail', ?)
|
||||
`).run(
|
||||
input.original.fileId, input.stableId, releaseVersion, this.clock(),
|
||||
input.thumbnail.fileId, input.stableId, releaseVersion, this.clock(),
|
||||
);
|
||||
this.consumeStagedStorage([input.original, input.thumbnail]);
|
||||
this.database.prepare(`
|
||||
INSERT INTO sticker_upload_receipts (actor_id, idempotency_key_digest, request_hash, release_version, stable_id, created_at)
|
||||
@@ -510,6 +518,15 @@ export class StickerReleaseService {
|
||||
created_at TEXT NOT NULL,
|
||||
PRIMARY KEY (actor_id, idempotency_key_digest)
|
||||
);
|
||||
CREATE TABLE IF NOT EXISTS sticker_managed_file_history (
|
||||
managed_file_id TEXT NOT NULL,
|
||||
stable_id TEXT NOT NULL,
|
||||
resource_version TEXT NOT NULL,
|
||||
file_kind TEXT NOT NULL CHECK (file_kind IN ('original', 'thumbnail')),
|
||||
created_at INTEGER NOT NULL,
|
||||
PRIMARY KEY (managed_file_id, file_kind),
|
||||
FOREIGN KEY (managed_file_id) REFERENCES managed_files(file_id)
|
||||
);
|
||||
CREATE TRIGGER IF NOT EXISTS sticker_releases_no_update
|
||||
BEFORE UPDATE ON sticker_releases BEGIN SELECT RAISE(ABORT, 'sticker_releases_immutable'); END;
|
||||
CREATE TRIGGER IF NOT EXISTS sticker_releases_no_delete
|
||||
@@ -523,5 +540,17 @@ export class StickerReleaseService {
|
||||
WHEN EXISTS (SELECT 1 FROM sticker_releases WHERE release_version = OLD.release_version)
|
||||
BEGIN SELECT RAISE(ABORT, 'sticker_release_items_immutable'); END;
|
||||
`);
|
||||
this.database.exec(`
|
||||
INSERT OR IGNORE INTO sticker_managed_file_history (
|
||||
managed_file_id, stable_id, resource_version, file_kind, created_at
|
||||
)
|
||||
SELECT original_file_id, stable_id, release_version, 'original', strftime('%s', 'now') * 1000
|
||||
FROM sticker_release_items;
|
||||
INSERT OR IGNORE INTO sticker_managed_file_history (
|
||||
managed_file_id, stable_id, resource_version, file_kind, created_at
|
||||
)
|
||||
SELECT thumbnail_file_id, stable_id, release_version, 'thumbnail', strftime('%s', 'now') * 1000
|
||||
FROM sticker_release_items;
|
||||
`);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user