diff --git a/src/helpers/index.js b/src/helpers/index.js index 128f594..3a81cc7 100644 --- a/src/helpers/index.js +++ b/src/helpers/index.js @@ -5,13 +5,25 @@ import { discogsToken } from "../config"; export const getBaseUrl = (req) => `${req.protocol}://${req.get("host")}`; -export const searchSong = async (q) => { +export const searchSong = async (q, format, year, country) => { const dis = new Discogs({ userToken: discogsToken }).database(); - const res = await dis.search({ + const params = { q, type: "release", - }); + }; + + if (format) { + params.format = format; + } + if (year) { + params.year = year; + } + if (country) { + params.country = country; + } + + const res = await dis.search(params); return res; }; diff --git a/src/routes/api/v1/search.js b/src/routes/api/v1/search.js index 76e1c7e..267ec0f 100644 --- a/src/routes/api/v1/search.js +++ b/src/routes/api/v1/search.js @@ -9,7 +9,12 @@ const router = express.Router(); router.route("/").get(ensureLoggedIn("/connexion"), async (req, res, next) => { try { - const data = await searchSong(req.query.q); + const data = await searchSong( + req.query.q, + req.query.format || null, + req.query.year || null, + req.query.country || null + ); sendResponse(req, res, data); } catch (err) { diff --git a/views/pages/ajouter-un-album.ejs b/views/pages/ajouter-un-album.ejs index 2cd4ab4..549140e 100644 --- a/views/pages/ajouter-un-album.ejs +++ b/views/pages/ajouter-un-album.ejs @@ -1,19 +1,37 @@

Ajouter un album

-
-
-
+ +
+
- +
- +
+
+ + +
+
+ + +
+
+ + +
+
+
-
+ +
@@ -158,10 +176,77 @@ data() { return { q: '', + year: '', + country: '', + format: '', loading: false, items: [], details: {}, modalIsVisible: false, + formats: [ + 'Vinyl', + 'Acetate', + 'Flexi-disc', + 'Lathe Cut', + 'Mighty Tiny', + 'Shellac', + 'Sopic', + 'Pathé Disc', + 'Edison Disc', + 'Cylinder', + 'CD', + 'CDr', + 'CDV', + 'DVD', + 'DVDr', + 'HD DVD', + 'HD DVD-R', + 'Blu-ray', + 'Blu-ray-R', + 'Ultra HD Blu-ray', + 'SACD', + '4-Track Cartridge', + '8-Track Cartridge', + 'Cassette', + 'DC-International', + 'Elcaset', + 'PlayTape', + 'RCA Tape Cartridge', + 'DAT', + 'DCC', + 'Microcassette', + 'NT Cassette', + 'Pocket Rocker', + 'Revere Magnetic Stereo Tape Ca', + 'Tefifon', + 'Reel-To-Reel', + 'Sabamobil', + 'Betacam', + 'Betacam SP', + 'Betamax', + 'Cartrivision', + 'MiniDV', + 'Super VHS', + 'U-matic', + 'VHS', + 'Video 2000', + 'Video8', + 'Film Reel', + 'HitClips', + 'Laserdisc', + 'SelectaVision', + 'VHD', + 'Wire Recording', + 'Minidisc', + 'MVD', + 'UMD', + 'Floppy Disk', + 'File', + 'Memory Stick', + 'Hybrid', + 'All Media', + 'Box Set', + ] } }, methods: { @@ -173,8 +258,19 @@ } this.loading = true; + let url = `/api/v1/search?q=${this.q}`; - axios.get(`/api/v1/search?q=${this.q}`) + if ( this.year ) { + url += `&year=${this.year}`; + } + if ( this.country ) { + url += `&country=${this.country}`; + } + if ( this.format ) { + url += `&format=${this.format}`; + } + + axios.get(url) .then( response => { const { results, @@ -242,6 +338,9 @@ showToastr(err.response?.data?.message || "Impossible d'ajouter cet album pour le moment…"); }); }, + orderedItems(items) { + return items.sort(); + } } }).mount('#app');