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.
 

25 lines
769 B

import type { OmdbProvider } from '../../../types';
import { createOmdbApiClient } from './apiClient';
import { normalizeRawOmdbData } from './converters';
import type { OmdbApiClient } from './types';
export const createOmdbProviderByApiClient = (
apiClient: OmdbApiClient,
): OmdbProvider => {
return {
getMetadata: async (imdbId) => {
const rawOmdbData = await apiClient.fetchMetadata(imdbId);
if (!rawOmdbData) {
return undefined;
}
return normalizeRawOmdbData(rawOmdbData);
},
};
};
export const createOmdbProviderByApiKey = (apiKey: string): OmdbProvider => {
const apiClient = createOmdbApiClient(apiKey);
return createOmdbProviderByApiClient(apiClient);
};