Merge branch 'main' into feature-fixStats
This commit is contained in:
@ -1,6 +1,8 @@
|
||||
import { getToken } from "next-auth/jwt";
|
||||
import { authOptions } from './auth/[...nextauth]'
|
||||
import { getServerSession } from "next-auth/next"
|
||||
import { NextApiRequest, NextApiResponse } from 'next'
|
||||
import { DayOfWeek, AvailabilityType } from '@prisma/client';
|
||||
import { DayOfWeek, AvailabilityType, UserRole, EventLogType } from '@prisma/client';
|
||||
const common = require('../../src/helpers/common');
|
||||
const dataHelper = require('../../src/helpers/data');
|
||||
const subq = require('../../prisma/bl/subqueries');
|
||||
@ -9,6 +11,7 @@ import { addMinutes } from 'date-fns';
|
||||
import fs from 'fs';
|
||||
import path from 'path';
|
||||
import { all } from "axios";
|
||||
import { logger } from "src/helpers/common";
|
||||
|
||||
/**
|
||||
*
|
||||
@ -46,6 +49,9 @@ export default async function handler(req, res) {
|
||||
let monthInfo = common.getMonthDatesInfo(day);
|
||||
const searchText = req.query.searchText?.normalize('NFC');
|
||||
|
||||
const sessionServer = await getServerSession(req, res, authOptions)
|
||||
var isAdmin = sessionServer?.user.role == UserRole.ADMIN
|
||||
|
||||
try {
|
||||
switch (action) {
|
||||
case "initDb":
|
||||
@ -137,7 +143,7 @@ export default async function handler(req, res) {
|
||||
break;
|
||||
|
||||
case "getCalendarEvents":
|
||||
let events = await dataHelper.getCalendarEvents(req.query.publisherId, day);
|
||||
let events = await dataHelper.getCalendarEvents(req.query.publisherId, true, true, isAdmin);
|
||||
res.status(200).json(events);
|
||||
|
||||
case "getPublisherInfo":
|
||||
@ -817,10 +823,70 @@ async function replaceInAssignment(oldPublisherId, newPublisherId, shiftId) {
|
||||
},
|
||||
data: {
|
||||
publisherId: newPublisherId,
|
||||
originalPublisherId: oldPublisherId,
|
||||
isConfirmed: false,
|
||||
isBySystem: true,
|
||||
isMailSent: false
|
||||
}
|
||||
});
|
||||
|
||||
// log the event
|
||||
let shift = await prisma.shift.findUnique({
|
||||
where: {
|
||||
id: shiftId
|
||||
},
|
||||
select: {
|
||||
startTime: true,
|
||||
cartEvent: {
|
||||
select: {
|
||||
location: {
|
||||
select: {
|
||||
name: true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
include: {
|
||||
assignments: {
|
||||
include: {
|
||||
publisher: {
|
||||
select: {
|
||||
firstName: true,
|
||||
lastName: true,
|
||||
email: true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
let publishers = await prisma.publisher.findMany({
|
||||
where: {
|
||||
id: { in: [oldPublisherId, newPublisherId] }
|
||||
},
|
||||
select: {
|
||||
id: true,
|
||||
firstName: true,
|
||||
lastName: true,
|
||||
email: true
|
||||
}
|
||||
});
|
||||
let originalPublisher = publishers.find(p => p.id == oldPublisherId);
|
||||
let newPublisher = publishers.find(p => p.id == newPublisherId);
|
||||
let eventLog = await prisma.eventLog.create({
|
||||
data: {
|
||||
date: new Date(),
|
||||
publisher: { connect: { id: oldPublisherId } },
|
||||
shift: { connect: { id: shiftId } },
|
||||
type: EventLogType.AssignmentReplacementManual,
|
||||
content: "Въведено заместване от " + originalPublisher.firstName + " " + originalPublisher.lastName + ". Ще го замества " + newPublisher.firstName + " " + newPublisher.lastName + "."
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
logger.info("User: " + originalPublisher.email + " replaced his assignment for " + shift.cartEvent.location.name + " " + shift.startTime.toISOString() + " with " + newPublisher.firstName + " " + newPublisher.lastName + "<" + newPublisher.email + ">. EventLogId: " + eventLog.id + "");
|
||||
|
||||
|
||||
return result;
|
||||
}
|
Reference in New Issue
Block a user