From f083c2cd5734973f566f1cb453a8f4e7bce1b9b1 Mon Sep 17 00:00:00 2001 From: SrGooglo Date: Tue, 30 May 2023 01:09:11 +0000 Subject: [PATCH] remove unnecessary controllers --- .../services/getPlaylistsFromFollowing.js | 19 +--- .../services/getPlaylistsFromGlobal.js | 19 +--- .../endpoints/deletePlaylist.js | 29 ------ .../endpoints/getPlaylist.js | 22 ----- .../endpoints/getSelfReleases.js | 27 ------ .../endpoints/putPlaylist.js | 90 ------------------- .../controllers/PlaylistsController/index.js | 9 -- .../services/getPlaylist.js | 34 ------- .../TracksController/endpoints/getTrack.js | 18 ---- .../TracksController/endpoints/putTrack.js | 15 ---- .../src/controllers/TracksController/index.js | 9 -- .../services/createOrUpdateTrack.js | 43 --------- .../services/getTrackDataById.js | 25 ------ packages/server/src/controllers/index.js | 3 - packages/server/src/models/track/index.js | 39 -------- 15 files changed, 2 insertions(+), 399 deletions(-) delete mode 100755 packages/server/src/controllers/PlaylistsController/endpoints/deletePlaylist.js delete mode 100755 packages/server/src/controllers/PlaylistsController/endpoints/getPlaylist.js delete mode 100755 packages/server/src/controllers/PlaylistsController/endpoints/getSelfReleases.js delete mode 100644 packages/server/src/controllers/PlaylistsController/endpoints/putPlaylist.js delete mode 100755 packages/server/src/controllers/PlaylistsController/index.js delete mode 100755 packages/server/src/controllers/PlaylistsController/services/getPlaylist.js delete mode 100755 packages/server/src/controllers/TracksController/endpoints/getTrack.js delete mode 100755 packages/server/src/controllers/TracksController/endpoints/putTrack.js delete mode 100755 packages/server/src/controllers/TracksController/index.js delete mode 100644 packages/server/src/controllers/TracksController/services/createOrUpdateTrack.js delete mode 100755 packages/server/src/controllers/TracksController/services/getTrackDataById.js delete mode 100755 packages/server/src/models/track/index.js diff --git a/packages/server/src/controllers/FeedController/services/getPlaylistsFromFollowing.js b/packages/server/src/controllers/FeedController/services/getPlaylistsFromFollowing.js index e889e273..50440f63 100755 --- a/packages/server/src/controllers/FeedController/services/getPlaylistsFromFollowing.js +++ b/packages/server/src/controllers/FeedController/services/getPlaylistsFromFollowing.js @@ -1,5 +1,4 @@ -import { User, Playlist, UserFollow } from "@models" -import getTrackDataById from "../../TracksController/services/getTrackDataById" +import { Playlist, UserFollow } from "@models" export default async (payload) => { const { @@ -31,21 +30,5 @@ export default async (payload) => { .limit(limit) .skip(skip) - playlists = await Promise.all(playlists.map(async (playlist) => { - // get user data - const user = await User.findById(playlist.user_id) - - playlist.list = await Promise.all(playlist.list.map(async (track_id) => { - return await getTrackDataById(track_id) - })).catch((err) => { - return [] - }) - - return { - ...playlist.toObject(), - user: user.toObject(), - } - })) - return playlists } \ No newline at end of file diff --git a/packages/server/src/controllers/FeedController/services/getPlaylistsFromGlobal.js b/packages/server/src/controllers/FeedController/services/getPlaylistsFromGlobal.js index 30274995..1cecacf5 100644 --- a/packages/server/src/controllers/FeedController/services/getPlaylistsFromGlobal.js +++ b/packages/server/src/controllers/FeedController/services/getPlaylistsFromGlobal.js @@ -1,5 +1,4 @@ -import { User, Playlist } from "@models" -import getTrackDataById from "../../TracksController/services/getTrackDataById" +import { Playlist } from "@models" export default async (payload) => { const { @@ -16,21 +15,5 @@ export default async (payload) => { .limit(limit) .skip(skip) - playlists = await Promise.all(playlists.map(async (playlist) => { - // get user data - const user = await User.findById(playlist.user_id) - - playlist.list = await Promise.all(playlist.list.map(async (track_id) => { - return await getTrackDataById(track_id) - })).catch((err) => { - return [] - }) - - return { - ...playlist.toObject(), - user: user.toObject(), - } - })) - return playlists } \ No newline at end of file diff --git a/packages/server/src/controllers/PlaylistsController/endpoints/deletePlaylist.js b/packages/server/src/controllers/PlaylistsController/endpoints/deletePlaylist.js deleted file mode 100755 index 24a8f318..00000000 --- a/packages/server/src/controllers/PlaylistsController/endpoints/deletePlaylist.js +++ /dev/null @@ -1,29 +0,0 @@ -import { Playlist } from "@models" - -export default { - method: "DELETE", - route: "/:playlist_id", - middlewares: ["withAuthentication"], - fn: async (req, res) => { - const user_id = req.user._id.toString() - - let playlist = await Playlist.findById(req.params.playlist_id).catch((err) => false) - - if (!playlist) { - return res.status(404).json({ - message: "Playlist not found" - }) - } - - // check if the user is the owner of the playlist - if (user_id !== playlist.user_id.toString()) { - return res.status(403).json({ - message: "You are not the owner of this playlist" - }) - } - - await playlist.delete() - - return res.json({ message: "Playlist deleted" }) - } -} \ No newline at end of file diff --git a/packages/server/src/controllers/PlaylistsController/endpoints/getPlaylist.js b/packages/server/src/controllers/PlaylistsController/endpoints/getPlaylist.js deleted file mode 100755 index 86744ce6..00000000 --- a/packages/server/src/controllers/PlaylistsController/endpoints/getPlaylist.js +++ /dev/null @@ -1,22 +0,0 @@ -import getPlaylist from "../services/getPlaylist" - -export default { - method: "GET", - route: "/data/:id", - middlewares: ["withAuthentication"], - fn: async (req, res) => { - const result = await getPlaylist({ - _id: req.params.id - }).catch((err) => { - res.status(500).json({ - error: err.message - }) - - return null - }) - - if (result) { - return res.json(result) - } - } -} \ No newline at end of file diff --git a/packages/server/src/controllers/PlaylistsController/endpoints/getSelfReleases.js b/packages/server/src/controllers/PlaylistsController/endpoints/getSelfReleases.js deleted file mode 100755 index 966f0229..00000000 --- a/packages/server/src/controllers/PlaylistsController/endpoints/getSelfReleases.js +++ /dev/null @@ -1,27 +0,0 @@ -import { User, Playlist } from "@models" -import getTrackDataById from "../../TracksController/services/getTrackDataById" - -export default { - method: "GET", - route: "/self", - middlewares: ["withAuthentication"], - fn: async (req, res) => { - const user_id = req.user._id.toString() - - let playlists = await Playlist.find({ user_id }).catch((err) => false) - - if (!playlists) { - throw new Error("Playlists not found") - } - - playlists = await Promise.all(playlists.map(async (playlist) => { - playlist.list = await Promise.all(playlist.list.map(async (track_id) => { - return await getTrackDataById(track_id).catch((err) => null) - })) - - return playlist - })) - - return res.json(playlists) - } -} \ No newline at end of file diff --git a/packages/server/src/controllers/PlaylistsController/endpoints/putPlaylist.js b/packages/server/src/controllers/PlaylistsController/endpoints/putPlaylist.js deleted file mode 100644 index 6bf537aa..00000000 --- a/packages/server/src/controllers/PlaylistsController/endpoints/putPlaylist.js +++ /dev/null @@ -1,90 +0,0 @@ -import { Schematized } from "@lib" - -import { Playlist } from "@models" - -import createOrUpdateTrack from "../../TracksController/services/createOrUpdateTrack" - -export default { - method: "PUT", - route: "/", - middlewares: ["withAuthentication"], - fn: Schematized({ - required: ["title", "list"], - }, async (req, res) => { - if (!Array.isArray(req.body.list)) { - return res.status(400).json({ - error: "list must be an array" - }) - } - - let trackList = req.body.list - - trackList = await Promise.all(trackList.map(async (track) => { - if (typeof track !== "object") { - return track - } - - track.user_id = req.user._id.toString() - - const result = await createOrUpdateTrack(track) - - if (result) { - return result._id.toString() - } - })) - - let playlist = null - - // check if body._id exists, if it does, update the playlist - // if it doesn't, create a new playlist - if (req.body._id) { - playlist = await Playlist.findById(req.body._id) - - if (!playlist) { - return res.status(404).json({ - error: "playlist not found" - }) - } - - // check if req.user._id is the same as playlist.user_id - if (playlist.user_id !== req.user._id.toString()) { - return res.status(403).json({ - error: "You don't have permission to edit this playlist" - }) - } - - playlist.title = req.body.title - playlist.description = req.body.description - playlist.thumbnail = req.body.thumbnail - playlist.explicit = req.body.explicit - playlist.public = req.body.visibility ? req.body.visibility === "public" : true - playlist.list = trackList - - playlist = await Playlist.findByIdAndUpdate(req.body._id, playlist) - - if (!playlist) { - return res.status(500).json({ - error: "An error occurred while updating the playlist" - }) - } - - global.eventBus.emit(`playlist.${playlist._id}.updated`, playlist) - } else { - playlist = new Playlist({ - user_id: req.user._id.toString(), - created_at: Date.now(), - title: req.body.title ?? "Untitled", - description: req.body.description, - thumbnail: req.body.thumbnail, - explicit: req.body.explicit, - list: trackList, - }) - - await playlist.save() - - // TODO: use custom event - } - - return res.json(playlist) - }) -} \ No newline at end of file diff --git a/packages/server/src/controllers/PlaylistsController/index.js b/packages/server/src/controllers/PlaylistsController/index.js deleted file mode 100755 index 845b0655..00000000 --- a/packages/server/src/controllers/PlaylistsController/index.js +++ /dev/null @@ -1,9 +0,0 @@ -import { Controller } from "linebridge/dist/server" -import generateEndpointsFromDir from "linebridge/dist/server/lib/generateEndpointsFromDir" - -export default class PlaylistsController extends Controller { - static refName = "PlaylistsController" - static useRoute = "/playlist" - - httpEndpoints = generateEndpointsFromDir(__dirname + "/endpoints") -} \ No newline at end of file diff --git a/packages/server/src/controllers/PlaylistsController/services/getPlaylist.js b/packages/server/src/controllers/PlaylistsController/services/getPlaylist.js deleted file mode 100755 index 70671b1e..00000000 --- a/packages/server/src/controllers/PlaylistsController/services/getPlaylist.js +++ /dev/null @@ -1,34 +0,0 @@ -import { User, Playlist } from "@models" -import getTrackDataById from "../../TracksController/services/getTrackDataById" - -export default async (payload) => { - const { _id } = payload - - if (!_id) { - throw new Error("Missing _id") - } - - let playlist = await Playlist.findById(_id).catch((err) => false) - - if (!playlist) { - throw new Error("Playlist not found") - } - - playlist = playlist.toObject() - - const user = await User.findById(playlist.user_id).catch((err) => false) - - if (!user) { - throw new Error("User not found") - } - - playlist.user = user - - playlist.list = await Promise.all(playlist.list.map(async (track_id) => { - return await getTrackDataById(track_id) - })) - - playlist.artist = user.fullName ?? user.username - - return playlist -} \ No newline at end of file diff --git a/packages/server/src/controllers/TracksController/endpoints/getTrack.js b/packages/server/src/controllers/TracksController/endpoints/getTrack.js deleted file mode 100755 index eb4ae6e5..00000000 --- a/packages/server/src/controllers/TracksController/endpoints/getTrack.js +++ /dev/null @@ -1,18 +0,0 @@ -import { Track } from "@models" - -export default { - method: "GET", - route: "/:id", - middlewares: ["withAuthentication"], - fn: async (req, res) => { - const track = await Track.findById(req.params.id).catch((err) => false) - - if (!track) { - return res.status(404).json({ - error: "Track not found" - }) - } - - return res.json(track) - } -} \ No newline at end of file diff --git a/packages/server/src/controllers/TracksController/endpoints/putTrack.js b/packages/server/src/controllers/TracksController/endpoints/putTrack.js deleted file mode 100755 index 6c2c8922..00000000 --- a/packages/server/src/controllers/TracksController/endpoints/putTrack.js +++ /dev/null @@ -1,15 +0,0 @@ -import createOrUpdateTrack from "../services/createOrUpdateTrack" - -export default { - method: "POST", - route: "/", - middlewares: ["withAuthentication"], - fn: async (req, res) => { - const result = await createOrUpdateTrack({ - user_id: req.user._id.toString(), - ...req.body, - }) - - return res.json(result) - } -} \ No newline at end of file diff --git a/packages/server/src/controllers/TracksController/index.js b/packages/server/src/controllers/TracksController/index.js deleted file mode 100755 index 76cfbdc4..00000000 --- a/packages/server/src/controllers/TracksController/index.js +++ /dev/null @@ -1,9 +0,0 @@ -import { Controller } from "linebridge/dist/server" -import generateEndpointsFromDir from "linebridge/dist/server/lib/generateEndpointsFromDir" - -export default class TracksController extends Controller { - static refName = "TracksController" - static useRoute = "/track" - - httpEndpoints = generateEndpointsFromDir(__dirname + "/endpoints") -} \ No newline at end of file diff --git a/packages/server/src/controllers/TracksController/services/createOrUpdateTrack.js b/packages/server/src/controllers/TracksController/services/createOrUpdateTrack.js deleted file mode 100644 index 9fe13291..00000000 --- a/packages/server/src/controllers/TracksController/services/createOrUpdateTrack.js +++ /dev/null @@ -1,43 +0,0 @@ -import { Track } from "@models" - -const allowedUpdateFields = [ - "title", - "thumbnail", - "album", - "artist", - "explicit", -] - -export default async (payload) => { - if (!payload.title || !payload.source || !payload.user_id) { - throw new Error("title and source and user_id are required") - } - - let track = null - - if (payload._id) { - track = await Track.findById(payload._id) - - if (!track) { - throw new Error("track not found") - } - - allowedUpdateFields.forEach((field) => { - if (typeof payload[field] !== "undefined") { - track[field] = payload[field] - } - }) - - track = await Track.findByIdAndUpdate(payload._id, track) - - if (!track) { - throw new Error("Failed to update track") - } - } else { - track = new Track(payload) - - await track.save() - } - - return track -} \ No newline at end of file diff --git a/packages/server/src/controllers/TracksController/services/getTrackDataById.js b/packages/server/src/controllers/TracksController/services/getTrackDataById.js deleted file mode 100755 index b4c8e973..00000000 --- a/packages/server/src/controllers/TracksController/services/getTrackDataById.js +++ /dev/null @@ -1,25 +0,0 @@ -import { Track, User } from "@models" - -export default async (_id) => { - if (!_id) { - throw new Error("Missing _id") - } - - let track = await Track.findById(_id).catch((err) => false) - - if (!track) { - throw new Error("Track not found") - } - - track = track.toObject() - - if (!track.metadata) { - // TODO: Get metadata from source - } - - const userData = await User.findById(track.user_id).catch((err) => false) - - track.artist = track.artist ?? userData?.fullName ?? userData?.username ?? "Unknown artist" - - return track -} \ No newline at end of file diff --git a/packages/server/src/controllers/index.js b/packages/server/src/controllers/index.js index f7254869..61938fe9 100755 --- a/packages/server/src/controllers/index.js +++ b/packages/server/src/controllers/index.js @@ -16,15 +16,12 @@ export { default as StreamingController } from "./StreamingController" export { default as BadgesController } from "./BadgesController" export { default as FeaturedEventsController } from "./FeaturedEventsController" // Needs to migrate to lb 0.15 -export { default as PlaylistsController } from "./PlaylistsController" // Needs to migrate to lb 0.15 export { default as FilesController } from "./FilesController" // Needs to migrate to lb 0.15 export { default as RolesController } from "./RolesController" // Needs to migrate to lb 0.15 export { default as SearchController } from "./SearchController" // Needs to migrate to lb 0.15 export { default as ModerationController } from "./ModerationController" -export { default as TracksController } from "./TracksController" - export { default as AdminController } from "./AdminController" export { default as SyncController } from "./SyncController" \ No newline at end of file diff --git a/packages/server/src/models/track/index.js b/packages/server/src/models/track/index.js deleted file mode 100755 index b497b606..00000000 --- a/packages/server/src/models/track/index.js +++ /dev/null @@ -1,39 +0,0 @@ -export default { - name: "Track", - collection: "tracks", - schema: { - user_id: { - type: String, - required: true, - }, - title: { - type: String, - required: true, - }, - album: { - type: String, - }, - artist: { - type: String, - }, - source: { - type: String, - required: true, - }, - metadata: { - type: Object, - }, - explicit: { - type: Boolean, - default: false, - }, - public: { - type: Boolean, - default: true, - }, - thumbnail: { - type: String, - default: "https://storage.ragestudio.net/comty-static-assets/default_song.png" - }, - } -} \ No newline at end of file