Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

58 bug batch 2 backend #61

Merged
merged 4 commits into from
Mar 21, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion common/utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ const isInteger = (value) => {

// dependency for publishedSchedule.js
const calculateYear = (eventDate, gradeLevel) => {
if (gradeLevel) {
if (gradeLevel && gradeLevel.length) {
const currentDay = new Date(eventDate);
// console.log('current day', currentDay.getFullYear() + (currentDay.getMonth() >= 7 ? 2 : 1));
if (gradeLevel.toLowerCase() === 'junior') {
Expand Down
36 changes: 21 additions & 15 deletions routes/catalog.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ catalogRouter.get('/', async (req, res) => {

const offset = (page - 1) * limit;

let query = 'FROM catalog WHERE 1=1';
let query = 'FROM catalog WHERE 1=1 AND hidden = false';
// removed space at beginning here

const params = [];
Expand Down Expand Up @@ -85,7 +85,9 @@ catalogRouter.get('/', async (req, res) => {
catalogRouter.get('/:id', async (req, res) => {
try {
const { id } = req.params;
const allUsers = await db.query(`SELECT * FROM catalog WHERE id = $1;`, [id]);
const allUsers = await db.query(`SELECT * FROM catalog WHERE id = $1 AND hidden = false;`, [
id,
]);
res.status(200).json(keysToCamel(allUsers));
} catch (err) {
res.status(500).send(err.message);
Expand All @@ -94,13 +96,13 @@ catalogRouter.get('/:id', async (req, res) => {

// -- POST - Adds a new row to the catalog table
catalogRouter.post('/', async (req, res) => {
const { host, title, eventType, subject, description, year, season, location } = req.body;
const { host, title, eventType, subject, description, year, season } = req.body;
try {
const returnedData = await db.query(
`INSERT INTO catalog (id, host, title, event_type, subject, description, year, season, location)
VALUES (nextval('catalog_id_seq'), $1, $2, $3, $4, $5, $6, $7, $8)
`INSERT INTO catalog (id, host, title, event_type, subject, description, year, season, hidden)
VALUES (nextval('catalog_id_seq'), $1, $2, $3::event[], $4::subject[], $5, $6::year[], $7::season[], false)
RETURNING id;`,
[host, title, eventType, subject, description, year, season, location],
[host, title, eventType, subject, description, year, season],
);
res.status(201).json({ id: returnedData[0].id, status: 'Success' });
} catch (err) {
Expand All @@ -116,18 +118,17 @@ catalogRouter.post('/', async (req, res) => {
catalogRouter.put('/:id', async (req, res) => {
try {
const { id } = req.params;
const { host, title, eventType, subject, description, year, location, season } = req.body;
const { host, title, eventType, subject, description, year, season } = req.body;

const updatedCatalog = await db.query(
`UPDATE catalog SET
${host ? 'host = $(host), ' : ''}
${title ? 'title = $(title),' : ''}
${eventType ? 'event_type = $(eventType), ' : ''}
${subject ? 'subject = $(subject), ' : ''}
${eventType ? 'event_type = $(eventType)::event[], ' : ''}
${subject ? 'subject = $(subject)::subject[], ' : ''}
${description ? 'description = $(description), ' : ''}
${year ? 'year = $(year), ' : ''}
${location ? 'location = $(location), ' : ''}
${season ? 'season = $(season), ' : ''}
${year ? 'year = $(year)::year[], ' : ''}
${season ? 'season = $(season)::season[], ' : ''}
id = '${id}'
WHERE id = '${id}'
RETURNING *;`,
Expand All @@ -139,7 +140,6 @@ catalogRouter.put('/:id', async (req, res) => {
description,
year,
id,
location,
season,
},
);
Expand All @@ -153,8 +153,14 @@ catalogRouter.put('/:id', async (req, res) => {
catalogRouter.delete('/:id', async (req, res) => {
try {
const { id } = req.params;
const delUser = await db.query(`DELETE FROM catalog WHERE id = $1 RETURNING *;`, [id]);
res.status(200).send(keysToCamel(delUser));
const inUse = await db.query(`SELECT * FROM published_schedule WHERE event_id = $1;`, [id]);
let hidden;
if (inUse && inUse.length) {
hidden = await db.query(`UPDATE catalog SET hidden = true WHERE id = $1 RETURNING *;`, [id]);
} else {
hidden = await db.query(`DELETE FROM catalog WHERE id = $1 RETURNING *;`, [id]);
}
res.status(200).send(keysToCamel(hidden));
} catch (err) {
res.status(500).send(err.message);
}
Expand Down
2 changes: 1 addition & 1 deletion routes/publishedSchedule.js
Original file line number Diff line number Diff line change
Expand Up @@ -394,7 +394,7 @@ publishedScheduleRouter.put('/:id', async (req, res) => {
start_time = COALESCE($5, start_time),
end_time = COALESCE($6, end_time),
cohort = COALESCE($7, cohort),
notes = COALESCE($8, notes)
notes = COALESCE($8, notes),
created_on = COALESCE($9, created_on)

WHERE id = $10
Expand Down
6 changes: 3 additions & 3 deletions server/schema/catalog.sql
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@ CREATE TABLE catalog (
id SERIAL PRIMARY KEY,
host VARCHAR(50) NOT NULL,
title VARCHAR(50) NOT NULL,
event_type event NOT NULL,
subject subject NOT NULL,
event_type event[] NOT NULL,
subject subject[] NOT NULL,
description VARCHAR(50) NOT NULL,
year year NOT NULL,
season season,
location VARCHAR(256)
hidden boolean NOT NULL
);
5 changes: 3 additions & 2 deletions server/schema/day.sql
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
DROP TABLE IF EXISTS day;
CREATE TABLE IF NOT EXISTS day (
id serial PRIMARY KEY,
event_date DATE NOT NULL,
event_date DATE UNIQUE NOT NULL,
start_time TIME NOT NULL,
end_time TIME NOT NULL,
location VARCHAR( 256 ) NOT NULL,
notes VARCHAR( 250 )
notes VARCHAR( 250 ),
day_count INTEGER
);
2 changes: 1 addition & 1 deletion server/schema/published_schedule.sql
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ CREATE TABLE IF NOT EXISTS published_schedule (
FOREIGN KEY (event_id)
REFERENCES catalog (id),
FOREIGN KEY (day_id)
REFERENCES day (id)
REFERENCES day (id) ON DELETE CASCADE
);

CREATE INDEX idx_day_id ON published_schedule (day_id);
Loading