Small Nest.js-based project
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

32 lines
1.1 KiB

import type { InternalProvider } from '../../../types';
import { normalizeRawInternalData } from './converters';
import { createStorageClient } from './storage';
export const createInternalProvider = (): InternalProvider => {
const storageClient = createStorageClient();
return {
getMetadataByInternalId: async (internalId) => {
const rawInternalData =
await storageClient.getMetadataByInternalId(internalId);
if (!rawInternalData) {
return undefined;
}
return normalizeRawInternalData(rawInternalData);
},
getMetadataByImdbId: async (imdbId) => {
const rawInternalData =
await storageClient.getMetadataByImdbId(imdbId);
if (!rawInternalData) {
return undefined;
}
return normalizeRawInternalData(rawInternalData);
},
getAllMetadata: async () => {
const rawInternalData = await storageClient.getAllMetadata();
return rawInternalData.map(normalizeRawInternalData);
},
};
};