in libs/newsletters-data-client/src/lib/newsletter-storage/InMemoryNewsletterStorage.ts [157:189]
async replace(
listId: number,
newsletter: NewsletterDataWithoutMeta,
user: UserProfile,
) {
const match = this.memory.find((item) => item.listId === listId);
if (!match) {
return Promise.resolve(this.buildNoItemError(listId));
}
if (
newsletter.identityName !== match.identityName ||
newsletter.listId !== match.listId
) {
console.error(
`newsletter identityName or listId mismatch for newsletter with id ${listId}`,
);
throw new Error(
`newsletter identityName or listId mismatch for newsletter with id ${listId}`,
);
}
const updatedItem: NewsletterDataWithMeta = {
...newsletter,
meta: this.updateMeta(match.meta, user),
};
this.memory.splice(this.memory.indexOf(match), 1, updatedItem);
const response: SuccessfulStorageResponse<NewsletterDataWithoutMeta> = {
ok: true,
data: this.stripMeta(updatedItem),
};
return Promise.resolve(response);
}