ratings update and publish script changed to shady's vps

This commit is contained in:
McMistrzYT 2024-01-24 20:21:52 +01:00
parent 9a64c7a95b
commit bf72a67083
3 changed files with 68 additions and 1 deletions

View File

@ -0,0 +1,64 @@
import { RequireAuthentication, ValidateBody } from "../Modules/Middleware";
import { Router } from "express";
import { Song } from "../Schemas/Song";
import { Rating } from "../Schemas/Rating";
import j from "joi";
const App = Router();
App.get("/:InternalID", async (req, res) => {
const SongData = await Song.findOne({ where: { ID: req.params.InternalID }, relations: { Ratings: true } });
if (!SongData)
return res.status(404).json({ errorMessage: "The song you're trying to get the rating for has not been found." });
let Average = 0;
if (SongData.Ratings.length > 0) {
SongData.Ratings.map(x => Average += x.Stars);
Average = Average / SongData.Ratings.length;
}
res.json({
Average,
Amount: SongData.Ratings.length
});
})
App.post("/:InternalID",
RequireAuthentication({ Ratings: { Rated: true } }),
ValidateBody(j.object({
Rating: j.number().integer().min(1).max(5).required()
})),
async (req, res) => {
const SongData = await Song.findOne({ where: { ID: req.params.InternalID } });
if (!SongData)
return res.status(404).json({ errorMessage: "The song you're trying to get the rating for has not been found." });
const Existing = req.user?.Ratings.find(x => SongData.ID === x.Rated.ID)
if (Existing)
{
Existing.Stars = req.body.Rating as number;
await Existing.save();
return res.json({
...Existing,
Author: undefined,
Rated: SongData.ID
});
}
const CreatedRating = await Rating.create({
Author: req.user,
Rated: SongData,
Stars: req.body.Rating as number
}).save();
res.json({
...CreatedRating,
Author: undefined,
Rated: SongData.ID
});
})
export default {
App,
DefaultAPI: "/api/ratings"
}

View File

@ -12,6 +12,9 @@ export class ForcedCategory extends BaseEntity {
@Column() @Column()
Activated: boolean; Activated: boolean;
@Column()
Priority: number;
@ManyToMany(() => Song, { eager: true }) @ManyToMany(() => Song, { eager: true })
@JoinTable() @JoinTable()
Songs: Song[]; Songs: Song[];

View File

@ -7,7 +7,7 @@
"dev": "vite", "dev": "vite",
"build": "tsc && vite build", "build": "tsc && vite build",
"create": "mkdir ./Out && npm run build && mv ./dist ./Out/dist && cd Server && tsc && cd .. && cp ./Server/.env ./Out && cp ./Server/package.json ./Out && cp ./Server/package-lock.json ./Out", "create": "mkdir ./Out && npm run build && mv ./dist ./Out/dist && cd Server && tsc && cd .. && cp ./Server/.env ./Out && cp ./Server/package.json ./Out && cp ./Server/package-lock.json ./Out",
"publish": "npm run create && ssh mc \"cd /home/PartypackProd; rm -rf ./Out\" && scp -r ./Out mc:/home/PartypackProd && ssh mc \"cd /home/PartypackProd/Out; npm i; pm2 restart PartypackProd --update-env\" && rm -rf ./Out", "publish": "npm run create && ssh shady \"cd /home/PartypackProd; rm -rf ./Out\" && scp -r ./Out shady:/home/PartypackProd && ssh shady \"cd /home/PartypackProd/Out; npm i; pm2 restart PartypackProd --update-env\" && rm -rf ./Out",
"lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0", "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
"preview": "vite preview", "preview": "vite preview",
"dev:all": "start cmd.exe /k \"cd ./Server && npm run dev:watch\" && vite" "dev:all": "start cmd.exe /k \"cd ./Server && npm run dev:watch\" && vite"