MusicTopus/src/middleware/Albums.js

86 lines
2.0 KiB
JavaScript

import moment from "moment";
import Pages from "./Pages";
import { getAlbumDetails } from "../helpers";
import AlbumsModel from "../models/albums";
/**
* Classe permettant la gestion des albums d'un utilisateur
*/
class Albums extends Pages {
async getFormAddOne() {
const data = await getAlbumDetails(this.req.params.discogsId);
const {
id, // Integer
year, // - Integer
uri, // String
artists, // - Array<Object>
artists_sort, // String
labels, // - Array<Object>
series, // Array
companies, // - Array<Object>
formats, // - Array<Object>
title, // - String
country, // - String
released, // - Date
notes, // - String
identifiers, // - Array<Object>
videos, // - Array<Object>
genres, // - Array<String>
styles, // - Array<String>
tracklist, // - Array<Object>
extraartists, // - Array<Object>
images, // - Array<Object
thumb, // - String
} = data;
this.pageContent.page.values = "test";
this.setPageContent("values", {
id,
year,
uri,
artists,
artists_sort,
labels,
series,
companies,
formats,
title,
country,
released,
notes,
identifiers,
videos,
genres,
styles,
tracklist,
extraartists,
images,
thumb,
});
return true;
}
static async postAddOne(req) {
const { body, user } = req;
const data = {
...body,
discogsId: body.id,
User: user._id,
};
data.released = moment(data.released.replace("-00", "-01"));
delete data.id;
const album = new AlbumsModel(data);
return album.save();
}
}
export default Albums;