Add last modified information to event GET endpoints
All checks were successful
Jenkins Production Deployment
All checks were successful
Jenkins Production Deployment
This commit is contained in:
parent
45dfc22c60
commit
9c45fb11ee
|
@ -53,6 +53,10 @@
|
||||||
* format: date-time
|
* format: date-time
|
||||||
* description: The date and time when the event was created
|
* description: The date and time when the event was created
|
||||||
* example: "2023-05-01T10:00:00.000Z"
|
* example: "2023-05-01T10:00:00.000Z"
|
||||||
|
* lastModifiedDate:
|
||||||
|
* type: string
|
||||||
|
* format: date-time
|
||||||
|
* example: "2023-05-01T10:00:00.000Z"
|
||||||
* location:
|
* location:
|
||||||
* type: string
|
* type: string
|
||||||
* description: The location of the event
|
* description: The location of the event
|
||||||
|
@ -65,6 +69,14 @@
|
||||||
* type: integer
|
* type: integer
|
||||||
* description: The ID of the user who created the event
|
* description: The ID of the user who created the event
|
||||||
* example: 456
|
* example: 456
|
||||||
|
* lastModifiedBy:
|
||||||
|
* type: string
|
||||||
|
* description: The name of the user who last modified the event
|
||||||
|
* example: "John Doe"
|
||||||
|
* lastModifiedById:
|
||||||
|
* type: integer
|
||||||
|
* description: The ID of the user who last modified the event
|
||||||
|
* example: 456
|
||||||
* url:
|
* url:
|
||||||
* type: string
|
* type: string
|
||||||
* description: A URL with more information about the event
|
* description: A URL with more information about the event
|
||||||
|
@ -88,9 +100,12 @@ export interface Event {
|
||||||
startDateTime: Date;
|
startDateTime: Date;
|
||||||
endDateTime: Date;
|
endDateTime: Date;
|
||||||
createdDate: Date;
|
createdDate: Date;
|
||||||
|
lastModifiedDate?: Date;
|
||||||
location: string;
|
location: string;
|
||||||
createdBy?: string;
|
createdBy?: string;
|
||||||
createdById: number;
|
createdById: number;
|
||||||
|
lastModifiedBy?: string;
|
||||||
|
lastModifiedById?: number;
|
||||||
url: string;
|
url: string;
|
||||||
wholeDay: boolean;
|
wholeDay: boolean;
|
||||||
status?: string;
|
status?: string;
|
||||||
|
|
|
@ -23,7 +23,7 @@ export const getAllEvents = async (calendarId: number): Promise<Event[]> => {
|
||||||
}
|
}
|
||||||
|
|
||||||
const eventsQuery = `
|
const eventsQuery = `
|
||||||
SELECT e.calendar_id, e.uuid, e.created_date, e.created_by_id, u.full_name, v.* FROM events e
|
SELECT e.calendar_id, e.uuid, e.created_date, e.created_by_id, u.full_name as created_by_name, u2.full_name as last_modified_by_name, v.* FROM events e
|
||||||
INNER JOIN (
|
INNER JOIN (
|
||||||
SELECT event_id, MAX(event_version_id) AS latest_version
|
SELECT event_id, MAX(event_version_id) AS latest_version
|
||||||
FROM event_versions
|
FROM event_versions
|
||||||
|
@ -33,6 +33,7 @@ export const getAllEvents = async (calendarId: number): Promise<Event[]> => {
|
||||||
INNER JOIN event_versions v
|
INNER JOIN event_versions v
|
||||||
ON v.event_id = latest_versions.event_id AND v.event_version_id = latest_versions.latest_version
|
ON v.event_id = latest_versions.event_id AND v.event_version_id = latest_versions.latest_version
|
||||||
LEFT OUTER JOIN users u ON u.user_id = e.created_by_id
|
LEFT OUTER JOIN users u ON u.user_id = e.created_by_id
|
||||||
|
LEFT OUTER JOIN users u2 ON u2.user_id = v.version_created_by_id
|
||||||
WHERE e.calendar_id IN (?) AND v.status = 'PUBLIC'
|
WHERE e.calendar_id IN (?) AND v.status = 'PUBLIC'
|
||||||
ORDER BY e.event_id`;
|
ORDER BY e.event_id`;
|
||||||
const eventsRes = await conn.query(eventsQuery, [calendarsToFetch]);
|
const eventsRes = await conn.query(eventsQuery, [calendarsToFetch]);
|
||||||
|
@ -47,9 +48,12 @@ export const getAllEvents = async (calendarId: number): Promise<Event[]> => {
|
||||||
startDateTime: row.start_datetime,
|
startDateTime: row.start_datetime,
|
||||||
endDateTime: row.end_datetime,
|
endDateTime: row.end_datetime,
|
||||||
createdDate: row.created_date,
|
createdDate: row.created_date,
|
||||||
|
lastModifiedDate: row.version_created_at,
|
||||||
location: row.location,
|
location: row.location,
|
||||||
createdBy: row.full_name,
|
createdBy: row.created_by_name,
|
||||||
createdById: row.created_by_id,
|
createdById: row.created_by_id,
|
||||||
|
lastModifiedBy: row.last_modified_by_name,
|
||||||
|
lastModifiedById: row.version_created_by_id,
|
||||||
url: row.url,
|
url: row.url,
|
||||||
wholeDay: row.whole_day
|
wholeDay: row.whole_day
|
||||||
});
|
});
|
||||||
|
@ -74,7 +78,7 @@ export const getAllEventsAdmin = async (calendarId: number): Promise<Event[]> =>
|
||||||
let eventRows: Event[] = [];
|
let eventRows: Event[] = [];
|
||||||
try {
|
try {
|
||||||
const eventsQuery = `
|
const eventsQuery = `
|
||||||
SELECT e.calendar_id, e.uuid, e.created_date, e.created_by_id, u.full_name, v.* FROM events e
|
SELECT e.calendar_id, e.uuid, e.created_date, e.created_by_id, u.full_name as created_by_name, u2.full_name as last_modified_by_name, v.* FROM events e
|
||||||
INNER JOIN (
|
INNER JOIN (
|
||||||
SELECT event_id, MAX(event_version_id) AS latest_version
|
SELECT event_id, MAX(event_version_id) AS latest_version
|
||||||
FROM event_versions
|
FROM event_versions
|
||||||
|
@ -84,6 +88,7 @@ export const getAllEventsAdmin = async (calendarId: number): Promise<Event[]> =>
|
||||||
INNER JOIN event_versions v
|
INNER JOIN event_versions v
|
||||||
ON v.event_id = latest_versions.event_id AND v.event_version_id = latest_versions.latest_version
|
ON v.event_id = latest_versions.event_id AND v.event_version_id = latest_versions.latest_version
|
||||||
LEFT OUTER JOIN users u ON u.user_id = e.created_by_id
|
LEFT OUTER JOIN users u ON u.user_id = e.created_by_id
|
||||||
|
LEFT OUTER JOIN users u2 ON u2.user_id = v.version_created_by_id
|
||||||
WHERE e.calendar_id = ?
|
WHERE e.calendar_id = ?
|
||||||
ORDER BY e.event_id`;
|
ORDER BY e.event_id`;
|
||||||
const eventsRes = await conn.query(eventsQuery, calendarId);
|
const eventsRes = await conn.query(eventsQuery, calendarId);
|
||||||
|
@ -98,9 +103,12 @@ export const getAllEventsAdmin = async (calendarId: number): Promise<Event[]> =>
|
||||||
startDateTime: row.start_datetime,
|
startDateTime: row.start_datetime,
|
||||||
endDateTime: row.end_datetime,
|
endDateTime: row.end_datetime,
|
||||||
createdDate: row.created_date,
|
createdDate: row.created_date,
|
||||||
|
lastModifiedDate: row.version_created_at,
|
||||||
location: row.location,
|
location: row.location,
|
||||||
createdBy: row.full_name,
|
createdBy: row.created_by_name,
|
||||||
createdById: row.created_by_id,
|
createdById: row.created_by_id,
|
||||||
|
lastModifiedBy: row.last_modified_by_name,
|
||||||
|
lastModifiedById: row.version_created_by_id,
|
||||||
url: row.url,
|
url: row.url,
|
||||||
wholeDay: row.whole_day,
|
wholeDay: row.whole_day,
|
||||||
status: row.status
|
status: row.status
|
||||||
|
@ -229,7 +237,7 @@ export const getNextUpcomingEvent = async (calendarId: number): Promise<Event |
|
||||||
|
|
||||||
const now = new Date();
|
const now = new Date();
|
||||||
const eventsQuery = `
|
const eventsQuery = `
|
||||||
SELECT e.calendar_id, e.uuid, e.created_date, e.created_by_id, u.full_name, v.* FROM events e
|
SELECT e.calendar_id, e.uuid, e.created_date, e.created_by_id, u.full_name as created_by_name, u2.full_name as last_modified_by_name, v.* FROM events e
|
||||||
INNER JOIN (
|
INNER JOIN (
|
||||||
SELECT event_id, MAX(event_version_id) AS latest_version
|
SELECT event_id, MAX(event_version_id) AS latest_version
|
||||||
FROM event_versions
|
FROM event_versions
|
||||||
|
@ -239,6 +247,7 @@ export const getNextUpcomingEvent = async (calendarId: number): Promise<Event |
|
||||||
INNER JOIN event_versions v
|
INNER JOIN event_versions v
|
||||||
ON v.event_id = latest_versions.event_id AND v.event_version_id = latest_versions.latest_version
|
ON v.event_id = latest_versions.event_id AND v.event_version_id = latest_versions.latest_version
|
||||||
LEFT OUTER JOIN users u ON u.user_id = e.created_by_id
|
LEFT OUTER JOIN users u ON u.user_id = e.created_by_id
|
||||||
|
LEFT OUTER JOIN users u2 ON u2.user_id = v.version_created_by_id
|
||||||
WHERE e.calendar_id IN (?) AND v.status = 'PUBLIC' AND v.start_datetime > ?
|
WHERE e.calendar_id IN (?) AND v.status = 'PUBLIC' AND v.start_datetime > ?
|
||||||
ORDER BY v.start_datetime ASC
|
ORDER BY v.start_datetime ASC
|
||||||
LIMIT 1`;
|
LIMIT 1`;
|
||||||
|
@ -258,9 +267,12 @@ export const getNextUpcomingEvent = async (calendarId: number): Promise<Event |
|
||||||
startDateTime: row.start_datetime,
|
startDateTime: row.start_datetime,
|
||||||
endDateTime: row.end_datetime,
|
endDateTime: row.end_datetime,
|
||||||
createdDate: row.created_date,
|
createdDate: row.created_date,
|
||||||
|
lastModifiedDate: row.version_created_at,
|
||||||
location: row.location,
|
location: row.location,
|
||||||
createdBy: row.full_name,
|
createdBy: row.created_by_name,
|
||||||
createdById: row.created_by_id,
|
createdById: row.created_by_id,
|
||||||
|
lastModifiedBy: row.last_modified_by_name,
|
||||||
|
lastModifiedById: row.version_created_by_id,
|
||||||
url: row.url,
|
url: row.url,
|
||||||
wholeDay: row.whole_day
|
wholeDay: row.whole_day
|
||||||
} as Event;
|
} as Event;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user