async readAll()

in libs/newsletters-data-client/src/lib/layout-storage/S3LayoutStorage.ts [93:122]


	async readAll(): Promise<
		SuccessfulStorageResponse<EditionsLayouts> | UnsuccessfulStorageResponse
	> {
		try {
			const listOfObjectsKeys = await this.getListOfObjectsKeys();
			const layouts: EditionsLayouts = {};
			await Promise.all(
				listOfObjectsKeys.map(async (key) => {
					const editionId = this.keyToEditionId(key);
					const s3Response = await this.fetchObject(key);
					const responseAsLayout = await objectToLayout(s3Response);
					if (responseAsLayout && editionId) {
						layouts[editionId] = responseAsLayout;
					}
				}),
			);

			return {
				ok: true,
				data: layouts,
			};
		} catch (error) {
			console.error(error);
			return {
				ok: false,
				message: `failed to list newsletters`,
				reason: StorageRequestFailureReason.S3Failure,
			};
		}
	}