File tree 5 files changed +79
-11
lines changed
5 files changed +79
-11
lines changed Original file line number Diff line number Diff line change 1
- export * from './lib/services-omdb' ;
1
+ export * from './omdb.module'
2
+ export * from './omdb.service'
Load Diff This file was deleted.
Load Diff This file was deleted.
Original file line number Diff line number Diff line change
1
+ import { Module , Global } from '@nestjs/common'
2
+
3
+ import { OmdbService } from './omdb.service'
4
+
5
+ @Global ( )
6
+ @Module ( {
7
+ providers : [
8
+ OmdbService
9
+ ] ,
10
+ exports : [
11
+ OmdbService
12
+ ]
13
+ } )
14
+ export class OmdbModule {
15
+ }
Original file line number Diff line number Diff line change
1
+ import { Injectable , Logger } from '@nestjs/common'
2
+ import * as Omdb from 'omdb-api-pt'
3
+ import { Images , Movie } from '@pct-org/mongo-models'
4
+
5
+ @Injectable ( )
6
+ export class OmdbService {
7
+
8
+ private readonly omdb
9
+
10
+ private readonly logger = new Logger ( 'OMDB' )
11
+
12
+ constructor ( ) {
13
+ const omdbKey = process . env . OMDB_KEY
14
+
15
+ if ( omdbKey ) {
16
+ this . omdb = new Omdb ( {
17
+ apiKey : omdbKey
18
+ } )
19
+ }
20
+ }
21
+
22
+ public async getMovieImages ( item : Movie ) : Promise < Images > {
23
+ let poster = null
24
+
25
+ if ( item . images . poster ?. full ) {
26
+ return item . images
27
+ }
28
+
29
+ try {
30
+ const images = await this . omdb . byId ( {
31
+ imdb : item . imdbId ,
32
+ type : 'movie'
33
+ } )
34
+
35
+ poster = images . Poster
36
+
37
+ } catch ( err ) {
38
+ if ( err . statusCode && err . statusCode === 404 ) {
39
+ this . logger . error ( `Can't find images for '${ item . slug } '` , err )
40
+
41
+ } else if ( err . statusCode && err . statusCode === 401 ) {
42
+ this . logger . error ( `Rate limit hit when fetching for '${ item . slug } '` , err )
43
+
44
+ } else {
45
+ this . logger . error ( `Error happened getting images for '${ item . slug } '` , err )
46
+ }
47
+ }
48
+
49
+ return {
50
+ backdrop : item . images . backdrop ,
51
+ poster : poster
52
+ ? {
53
+ full : poster . url ,
54
+ high : poster . url ,
55
+ medium : poster . url ,
56
+ thumb : poster . url
57
+ }
58
+ : item . images . poster
59
+ }
60
+ }
61
+
62
+ }
You can’t perform that action at this time.
0 commit comments