@@ -72,22 +72,27 @@ const txPushResource = async (name, articles, type) => {
72
72
} ;
73
73
74
74
/**
75
- * get a flattened list of folders
76
- * @param {category } categories array of categories the folders belong to
77
- * @return {Promise } flattened list of folders
75
+ * get a flattened list of folders associated with the specified categories
76
+ * @param {object[] } categories array of categories the folders belong to
77
+ * @return {Promise<object[]> } flattened list of folders from all requested categories
78
78
*/
79
79
const getFolders = async ( categories ) => {
80
- let categoryFolders = await Promise . all ( // eslint-disable-line no-undef
80
+ const categoryFolders = await Promise . all (
81
81
categories . map ( category => FD . listFolders ( category ) )
82
82
) ;
83
83
return [ ] . concat ( ...categoryFolders ) ;
84
84
} ;
85
85
86
86
const PUBLISHED = 2 ; // in Freshdesk, draft status = 1, and published = 2
87
- const saveArticles = ( folder ) => {
88
- FD . listArticles ( folder )
87
+
88
+ /**
89
+ * Save articles in a particular folder
90
+ * @param {object } folder The folder object
91
+ */
92
+ const saveArticles = async folder => {
93
+ await FD . listArticles ( folder )
89
94
. then ( json => {
90
- let txArticles = json . reduce ( ( strings , current ) => {
95
+ const txArticles = json . reduce ( ( strings , current ) => {
91
96
if ( current . status === PUBLISHED ) {
92
97
strings [ `${ current . id } ` ] = {
93
98
title : {
@@ -107,13 +112,16 @@ const saveArticles = (folder) => {
107
112
txPushResource ( `${ makeTxId ( folder ) } _json` , txArticles , 'STRUCTURED_JSON' ) ;
108
113
} ) ;
109
114
} ;
110
- const getArticles = async ( folders ) => {
111
- return Promise . all ( folders . map ( folder => saveArticles ( folder ) ) ) ; // eslint-disable-line no-undef
115
+
116
+ /**
117
+ * @param {object[] } folders Array of folders containing articles to be saved
118
+ */
119
+ const saveArticleFolders = async ( folders ) => {
120
+ await Promise . all ( folders . map ( folder => saveArticles ( folder ) ) ) ;
112
121
} ;
113
122
114
123
const syncSources = async ( ) => {
115
- let status = 0 ;
116
- status = await FD . listCategories ( )
124
+ await FD . listCategories ( )
117
125
. then ( json => {
118
126
// save category names for translation
119
127
for ( let cat of json . values ( ) ) {
@@ -131,12 +139,7 @@ const syncSources = async () => {
131
139
txPushResource ( 'folderNames_json' , folderNames , 'KEYVALUEJSON' ) ;
132
140
return data ;
133
141
} )
134
- . then ( getArticles )
135
- . catch ( ( e ) => {
136
- process . stdout . write ( `Error:${ e . message } \n` ) ;
137
- return 1 ;
138
- } ) ;
139
- process . exitCode = status ;
142
+ . then ( saveArticleFolders ) ;
140
143
} ;
141
144
142
145
syncSources ( ) ;
0 commit comments