in libs/newsletters-data-client/src/lib/layout-storage/S3LayoutStorage.ts [123:160]
async update(
edition: EditionId,
layout: Layout,
): Promise<SuccessfulStorageResponse<Layout> | UnsuccessfulStorageResponse> {
const filename = this.editionIdToFileName(edition);
const parseResult = layoutSchema.safeParse(layout);
if (!parseResult.success) {
return {
ok: false,
message: 'layout in wrong format',
reason: StorageRequestFailureReason.InvalidDataInput,
};
}
try {
try {
await this.putObject(layout, filename);
} catch (err) {
return {
ok: false,
message: `failed update layout ${edition}.`,
reason: StorageRequestFailureReason.S3Failure,
};
}
return {
ok: true,
data: layout,
};
} catch (error) {
console.error(error);
return {
ok: false,
message: `failed to update newsletter ${edition}`,
reason: StorageRequestFailureReason.S3Failure,
};
}
}