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