feat: add Bytescale image uploads
This commit is contained in:
@@ -7,8 +7,13 @@ export const getAllNews = async (req, res) => {
|
||||
const page = parseInt(req.query.page);
|
||||
const limit = parseInt(req.query.limit);
|
||||
|
||||
const includeImages = {
|
||||
images: true,
|
||||
};
|
||||
|
||||
if (!page && !limit) {
|
||||
const news = await prisma.newsMedia.findMany({
|
||||
include: includeImages,
|
||||
orderBy: { createdAt: "desc" },
|
||||
});
|
||||
|
||||
@@ -20,6 +25,10 @@ export const getAllNews = async (req, res) => {
|
||||
SecondPara: n.secondPara,
|
||||
Date: n.date,
|
||||
Author: n.author,
|
||||
Images: n.images.map((img) => ({
|
||||
id: img.id,
|
||||
image: img.url,
|
||||
})),
|
||||
}));
|
||||
|
||||
return res.status(200).json({
|
||||
@@ -36,6 +45,7 @@ export const getAllNews = async (req, res) => {
|
||||
|
||||
const [news, total] = await Promise.all([
|
||||
prisma.newsMedia.findMany({
|
||||
include: includeImages,
|
||||
orderBy: { createdAt: "desc" },
|
||||
skip,
|
||||
take: currentLimit,
|
||||
@@ -51,6 +61,10 @@ export const getAllNews = async (req, res) => {
|
||||
SecondPara: n.secondPara,
|
||||
Date: n.date,
|
||||
Author: n.author,
|
||||
Images: n.images.map((img) => ({
|
||||
id: img.id,
|
||||
image: img.url,
|
||||
})),
|
||||
}));
|
||||
|
||||
return res.status(200).json({
|
||||
@@ -80,6 +94,7 @@ export const getNewsById = async (req, res) => {
|
||||
|
||||
const n = await prisma.newsMedia.findUnique({
|
||||
where: { id: Number(id) },
|
||||
include: { images: true },
|
||||
});
|
||||
|
||||
if (!n) {
|
||||
@@ -97,6 +112,10 @@ export const getNewsById = async (req, res) => {
|
||||
SecondPara: n.secondPara,
|
||||
Date: n.date,
|
||||
Author: n.author,
|
||||
Images: n.images.map((img) => ({
|
||||
id: img.id,
|
||||
image: img.url,
|
||||
})),
|
||||
};
|
||||
|
||||
return res.status(200).json({
|
||||
@@ -116,7 +135,15 @@ export const getNewsById = async (req, res) => {
|
||||
|
||||
export const createNews = async (req, res) => {
|
||||
try {
|
||||
const { headline, content, firstPara, secondPara, date, author } = req.body;
|
||||
const {
|
||||
headline,
|
||||
content,
|
||||
firstPara,
|
||||
secondPara,
|
||||
date,
|
||||
author,
|
||||
imageUrls,
|
||||
} = req.body;
|
||||
|
||||
if (!headline) {
|
||||
return res.status(400).json({
|
||||
@@ -133,7 +160,13 @@ export const createNews = async (req, res) => {
|
||||
secondPara,
|
||||
date: date ? new Date(date) : null,
|
||||
author,
|
||||
images: imageUrls
|
||||
? {
|
||||
create: imageUrls.map((url) => ({ url })),
|
||||
}
|
||||
: undefined,
|
||||
},
|
||||
include: { images: true },
|
||||
});
|
||||
|
||||
return res.status(201).json({
|
||||
@@ -155,13 +188,21 @@ export const createNews = async (req, res) => {
|
||||
export const updateNews = async (req, res) => {
|
||||
try {
|
||||
const { id } = req.params;
|
||||
const { imageUrls, ...otherData } = req.body;
|
||||
|
||||
const news = await prisma.newsMedia.update({
|
||||
where: { id: Number(id) },
|
||||
data: {
|
||||
...req.body,
|
||||
...otherData,
|
||||
date: req.body.date ? new Date(req.body.date) : undefined,
|
||||
images: imageUrls
|
||||
? {
|
||||
deleteMany: {},
|
||||
create: imageUrls.map((url) => ({ url })),
|
||||
}
|
||||
: undefined,
|
||||
},
|
||||
include: { images: true },
|
||||
});
|
||||
|
||||
return res.status(200).json({
|
||||
|
||||
Reference in New Issue
Block a user