diff --git a/src/middleware/Albums.js b/src/middleware/Albums.js index 9afbbc8..249b12b 100644 --- a/src/middleware/Albums.js +++ b/src/middleware/Albums.js @@ -18,9 +18,7 @@ class Albums extends Pages { * @return {string} */ static async convertToCsv(rows) { - let data = ""; - - data += + let data = "Artiste;Titre;Genre;Styles;Pays;Année;Date de sortie;Format\n\r"; for (let i = 0; i < rows.length; i += 1) { @@ -50,7 +48,7 @@ class Albums extends Pages { * Méthode permettant de convertir les rows en fichier xls * @param {Array} rows * - * @return {string} + * @return {Object} */ static async convertToXls(rows) { const wb = new xl.Workbook(); @@ -131,6 +129,26 @@ class Albums extends Pages { return wb; } + /** + * Méthode permettant de convertir les rows en csv pour importer dans MusicTopus + * @param {Array} rows + * + * @return {string} + */ + static async convertToMusicTopus(rows) { + let data = "itemId;createdAt;updatedAt\n\r"; + + for (let i = 0; i < rows.length; i += 1) { + const { discogsId, createdAt, updatedAt } = rows[i]; + + data += `${discogsId};${createdAt};${updatedAt}\n\r`; + } + + data += "v1.0"; + + return data; + } + /** * Méthode permettant d'ajouter un album dans une collection * @param {Object} req @@ -234,6 +252,8 @@ class Albums extends Pages { return Albums.convertToCsv(rows); case "xls": return Albums.convertToXls(rows); + case "musictopus": + return Albums.convertToMusicTopus(rows); case "json": default: return { diff --git a/src/routes/api/v1/albums.js b/src/routes/api/v1/albums.js index df1b5c6..c4a7aee 100644 --- a/src/routes/api/v1/albums.js +++ b/src/routes/api/v1/albums.js @@ -17,6 +17,7 @@ router switch (exportFormat) { case "csv": + case "musictopus": res.header("Content-Type", "text/csv"); return res.status(200).send(data); case "xls":