@@ -24,6 +24,8 @@ function getCopyrightText(cpyrhDivCd: string): string {
2424}
2525
2626function makeDescription ( eventDescription : ITourDataInfo [ ] ) {
27+ if ( ! eventDescription ) return ''
28+
2729 const description = [ ]
2830 eventDescription . sort ( ( a , b ) => parseInt ( a . serialnum ) - parseInt ( b . serialnum ) )
2931 eventDescription . forEach ( item => description . push ( `${ item . infoname } : ${ item . infotext } ` ) )
@@ -33,42 +35,48 @@ function makeDescription(eventDescription: ITourDataInfo[]) {
3335async function saveTourData ( data : ITourFestivalData [ ] , today : Date ) {
3436 const bulkOps = [ ]
3537 for ( const event of data ) {
36- const startDate = toZonedTime ( parseDate ( event . eventstartdate ) , 'Asia/Seoul' )
37- const endDate = parseEndDate ( event . eventenddate )
38- if ( startDate < today && endDate < today ) continue
38+ try {
39+ const startDate = toZonedTime ( parseDate ( event . eventstartdate ) , 'Asia/Seoul' )
40+ const endDate = parseEndDate ( event . eventenddate )
41+ if ( startDate < today && endDate < today ) continue
3942
40- const [ eventDetail , eventDescription ] = await Promise . all ( [ getTourDataDetail ( event . contentid ) , getTourFestivalDataInfo ( event . contentid ) ] )
43+ const [ eventDetail , eventDescription ] = await Promise . all ( [ getTourDataDetail ( event . contentid ) , getTourFestivalDataInfo ( event . contentid ) ] )
4144
42- const registeredAt = toZonedTime ( parse ( event . createdtime , 'yyyyMMddHHmmss' , new Date ( ) ) , 'Asia/Seoul' )
43- const images = [ ]
44- if ( event . firstimage ) images . push ( event . firstimage )
45- else if ( event . firstimage2 ) images . push ( event . firstimage2 )
45+ const registeredAt = toZonedTime ( parse ( event . createdtime , 'yyyyMMddHHmmss' , new Date ( ) ) , 'Asia/Seoul' )
46+ const images = [ ]
47+ if ( event . firstimage ) images . push ( event . firstimage )
48+ else if ( event . firstimage2 ) images . push ( event . firstimage2 )
4649
47- bulkOps . push ( {
48- updateOne : {
49- filter : {
50- name : event . title ,
51- registeredAt : registeredAt ,
52- } ,
53- update : {
54- name : event . title ,
55- address : `${ event . addr1 } ${ event . addr2 === '' ? '' : `(${ event . addr2 } )` } ` ,
56- location : {
57- type : 'Point' ,
58- coordinates : [ parseFloat ( event . mapx ) , parseFloat ( event . mapy ) ] ,
50+ bulkOps . push ( {
51+ updateOne : {
52+ filter : {
53+ name : event . title ,
54+ registeredAt : registeredAt ,
5955 } ,
60- startDate : startDate ,
61- endDate : endDate ,
62- description : `${ makeDescription ( eventDescription . response . body . items . item ) } \n${ getCopyrightText ( event . cpyrhDivCd ) } ` ,
63- photo : images ,
64- cost : eventDetail . response . body . items . item . usetimefestival || '' ,
65- category : [ categoryMapTourCodeToCode [ event . lclsSystm3 ] || CategoryCode . OTHERS ] ,
66- targetAudience : [ eventDetail . response . body . items . item . agelimit ] ,
67- registeredAt : registeredAt ,
56+ update : {
57+ name : event . title ,
58+ address : `${ event . addr1 } ${ event . addr2 === '' ? '' : `(${ event . addr2 } )` } ` ,
59+ location : {
60+ type : 'Point' ,
61+ coordinates : [ parseFloat ( event . mapx ) , parseFloat ( event . mapy ) ] ,
62+ } ,
63+ startDate : startDate ,
64+ endDate : endDate ,
65+ description : `${ makeDescription ( eventDescription . response . body . items . item ) } \n${ getCopyrightText ( event . cpyrhDivCd ) } ` ,
66+ photo : images ,
67+ cost : eventDetail . response . body . items . item ?. usetimefestival || '' ,
68+ category : [ categoryMapTourCodeToCode [ event . lclsSystm3 ] || CategoryCode . OTHERS ] ,
69+ targetAudience : eventDetail . response . body . items . item ?. agelimit
70+ ? [ String ( eventDetail . response . body . items . item ?. agelimit ) ]
71+ : [ ] ,
72+ registeredAt : registeredAt ,
73+ } ,
74+ upsert : true ,
6875 } ,
69- upsert : true ,
70- } ,
71- } )
76+ } )
77+ } catch ( error ) {
78+ logger . warn ( 'Skipping a tour event due to a processing error' , { error, event } )
79+ }
7280 }
7381 try {
7482 if ( bulkOps . length > 0 ) {
0 commit comments