Skip to content

Commit

Permalink
Updated the driver model to include the country that the driver is re…
Browse files Browse the repository at this point in the history
…presenting.
  • Loading branch information
richarddubay committed Aug 1, 2024
1 parent fbdc808 commit 5e3bca5
Show file tree
Hide file tree
Showing 5 changed files with 41 additions and 25 deletions.
42 changes: 21 additions & 21 deletions database/local-data-seed/V1.1000__Local_Seed_Data.sql
Original file line number Diff line number Diff line change
Expand Up @@ -28,28 +28,28 @@ WITH inserted_teams AS (
)

INSERT INTO
public.driver (first_name, last_name, team_id, driver_number, place_of_birth, created_at)
public.driver (first_name, last_name, team_id, driver_number, place_of_birth, country, created_at)
VALUES
('Alexander', 'Albon', (SELECT id FROM inserted_teams WHERE team_name = 'Williams'), 23, 'London, England', CURRENT_TIMESTAMP),
('Fernando', 'Alonso', (SELECT id FROM inserted_teams WHERE team_name = 'Aston Martin'), 14, 'Oviedo, Spain', CURRENT_TIMESTAMP),
('Valtteri', 'Bottas', (SELECT id FROM inserted_teams WHERE team_name = 'Kick Sauber'), 77, 'Nastola, Finland', CURRENT_TIMESTAMP),
('Pierre', 'Gasly', (SELECT id FROM inserted_teams WHERE team_name = 'Alpine'), 10, 'Rouen, France', CURRENT_TIMESTAMP),
('Lewis', 'Hamilton', (SELECT id FROM inserted_teams WHERE team_name = 'Mercedes'), 44, 'Stevenage, England', CURRENT_TIMESTAMP),
('Nico', 'Hülkenberg', (SELECT id FROM inserted_teams WHERE team_name = 'Haas'), 27, 'Emmerich am Rhein, Germany', CURRENT_TIMESTAMP),
('Charles', 'Leclerc', (SELECT id FROM inserted_teams WHERE team_name = 'Ferrari'), 16, 'Monte Carlo, Monaco', CURRENT_TIMESTAMP),
('Kevin', 'Magnussen', (SELECT id FROM inserted_teams WHERE team_name = 'Haas'), 20, 'Roskilde, Denmark', CURRENT_TIMESTAMP),
('Lando', 'Norris', (SELECT id FROM inserted_teams WHERE team_name = 'McLaren'), 4, 'Bristol, England', CURRENT_TIMESTAMP),
('Esteban', 'Ocon', (SELECT id FROM inserted_teams WHERE team_name = 'Alpine'), 31, 'Évreux, Normandy', CURRENT_TIMESTAMP),
('Sergio', 'Pérez', (SELECT id FROM inserted_teams WHERE team_name = 'Red Bull'), 11, 'Guadalajara, Mexico', CURRENT_TIMESTAMP),
('Oscar', 'Piastri', (SELECT id FROM inserted_teams WHERE team_name = 'McLaren'), 81, 'Melbourne, Victoria', CURRENT_TIMESTAMP),
('Daniel', 'Ricciardo', (SELECT id FROM inserted_teams WHERE team_name = 'Visa Cash App RB'), 3, 'Perth, Australia', CURRENT_TIMESTAMP),
('George', 'Russell', (SELECT id FROM inserted_teams WHERE team_name = 'Mercedes'), 63, 'King''s Lynn, England', CURRENT_TIMESTAMP),
('Carlos', 'Sainz', (SELECT id FROM inserted_teams WHERE team_name = 'Ferrari'), 55, 'Madrid, Spain', CURRENT_TIMESTAMP),
('Logan', 'Sargeant', (SELECT id FROM inserted_teams WHERE team_name = 'Williams'), 2, 'Fort Lauderdale, Florida', CURRENT_TIMESTAMP),
('Lance', 'Stroll', (SELECT id FROM inserted_teams WHERE team_name = 'Aston Martin'), 18, 'Montreal, Canada', CURRENT_TIMESTAMP),
('Yuki', 'Tsunoda', (SELECT id FROM inserted_teams WHERE team_name = 'Visa Cash App RB'), 22, 'Sagamihara, Japan', CURRENT_TIMESTAMP),
('Max', 'Verstappen', (SELECT id FROM inserted_teams WHERE team_name = 'Red Bull'), 1, 'Hasselt, Belgium', CURRENT_TIMESTAMP),
('Guanyu', 'Zhou', (SELECT id FROM inserted_teams WHERE team_name = 'Kick Sauber'), 24, 'Shanghai, China', CURRENT_TIMESTAMP);
('Alexander', 'Albon', (SELECT id FROM inserted_teams WHERE team_name = 'Williams'), 23, 'London, England', 'Thailand', CURRENT_TIMESTAMP),
('Fernando', 'Alonso', (SELECT id FROM inserted_teams WHERE team_name = 'Aston Martin'), 14, 'Oviedo, Spain', 'Spain', CURRENT_TIMESTAMP),
('Valtteri', 'Bottas', (SELECT id FROM inserted_teams WHERE team_name = 'Kick Sauber'), 77, 'Nastola, Finland', 'Finland', CURRENT_TIMESTAMP),
('Pierre', 'Gasly', (SELECT id FROM inserted_teams WHERE team_name = 'Alpine'), 10, 'Rouen, France', 'France', CURRENT_TIMESTAMP),
('Lewis', 'Hamilton', (SELECT id FROM inserted_teams WHERE team_name = 'Mercedes'), 44, 'Stevenage, England', 'United Kingdom', CURRENT_TIMESTAMP),
('Nico', 'Hülkenberg', (SELECT id FROM inserted_teams WHERE team_name = 'Haas'), 27, 'Emmerich am Rhein, Germany', 'Germany', CURRENT_TIMESTAMP),
('Charles', 'Leclerc', (SELECT id FROM inserted_teams WHERE team_name = 'Ferrari'), 16, 'Monte Carlo, Monaco', 'Monaco', CURRENT_TIMESTAMP),
('Kevin', 'Magnussen', (SELECT id FROM inserted_teams WHERE team_name = 'Haas'), 20, 'Roskilde, Denmark', 'Denmark', CURRENT_TIMESTAMP),
('Lando', 'Norris', (SELECT id FROM inserted_teams WHERE team_name = 'McLaren'), 4, 'Bristol, England', 'United Kingdom', CURRENT_TIMESTAMP),
('Esteban', 'Ocon', (SELECT id FROM inserted_teams WHERE team_name = 'Alpine'), 31, 'Évreux, Normandy', 'France', CURRENT_TIMESTAMP),
('Sergio', 'Pérez', (SELECT id FROM inserted_teams WHERE team_name = 'Red Bull'), 11, 'Guadalajara, Mexico', 'Mexico', CURRENT_TIMESTAMP),
('Oscar', 'Piastri', (SELECT id FROM inserted_teams WHERE team_name = 'McLaren'), 81, 'Melbourne, Victoria', 'Australia', CURRENT_TIMESTAMP),
('Daniel', 'Ricciardo', (SELECT id FROM inserted_teams WHERE team_name = 'Visa Cash App RB'), 3, 'Perth, Australia', 'Australia', CURRENT_TIMESTAMP),
('George', 'Russell', (SELECT id FROM inserted_teams WHERE team_name = 'Mercedes'), 63, 'King''s Lynn, England', 'United Kingdom', CURRENT_TIMESTAMP),
('Carlos', 'Sainz', (SELECT id FROM inserted_teams WHERE team_name = 'Ferrari'), 55, 'Madrid, Spain', 'Spain', CURRENT_TIMESTAMP),
('Logan', 'Sargeant', (SELECT id FROM inserted_teams WHERE team_name = 'Williams'), 2, 'Fort Lauderdale, Florida', 'United States', CURRENT_TIMESTAMP),
('Lance', 'Stroll', (SELECT id FROM inserted_teams WHERE team_name = 'Aston Martin'), 18, 'Montreal, Canada', 'Canada', CURRENT_TIMESTAMP),
('Yuki', 'Tsunoda', (SELECT id FROM inserted_teams WHERE team_name = 'Visa Cash App RB'), 22, 'Sagamihara, Japan', 'Japan', CURRENT_TIMESTAMP),
('Max', 'Verstappen', (SELECT id FROM inserted_teams WHERE team_name = 'Red Bull'), 1, 'Hasselt, Belgium', 'Netherlands', CURRENT_TIMESTAMP),
('Guanyu', 'Zhou', (SELECT id FROM inserted_teams WHERE team_name = 'Kick Sauber'), 24, 'Shanghai, China', 'China', CURRENT_TIMESTAMP);

INSERT INTO
public.grand_prix (grand_prix_name, grand_prix_location, fp1_start, fp2_start, fp3_start, qualifying_start, race_start, sprint_qualifying_start, sprint_race_start, is_sprint_weekend, circuit_name, created_at)
Expand Down
2 changes: 2 additions & 0 deletions database/migrations/V1.5__Add_Driver_Country.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
ALTER TABLE driver
ADD COLUMN country VARCHAR(50) NOT NULL;
19 changes: 15 additions & 4 deletions server/controllers/drivers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ const deleteDriver = async (req: Request, res: Response) => {
first_name: deletedDriver.first_name,
last_name: deletedDriver.last_name,
place_of_birth: deletedDriver.place_of_birth,
country: deletedDriver.country,
created_at: deletedDriver.created_at,
},
});
Expand All @@ -40,14 +41,21 @@ const getDriverById = async (req: Request, res: Response) => {
};

const postDriver = async (req: Request, res: Response) => {
const { first_name, last_name, team_id, driver_number, place_of_birth } =
req.body;
const {
first_name,
last_name,
team_id,
driver_number,
place_of_birth,
country,
} = req.body;
const newDriver = {
first_name,
last_name,
team_id,
driver_number,
place_of_birth,
country,
created_at: new Date(),
};

Expand All @@ -56,12 +64,13 @@ const postDriver = async (req: Request, res: Response) => {
!newDriver.last_name ||
!newDriver.team_id ||
!newDriver.driver_number ||
!newDriver.place_of_birth
!newDriver.place_of_birth ||
!newDriver.country
) {
return res
.status(400)
.send(
"A driver needs a first name, a last name, a team id, a driver number, and a place of birth."
"A driver needs a first name, a last name, a team id, a driver number, a place of birth, and a country."
);
}

Expand Down Expand Up @@ -93,6 +102,7 @@ const putDriver = async (req: Request, res: Response) => {
team_id,
driver_number,
place_of_birth,
country,
created_at,
} = req.body;

Expand All @@ -102,6 +112,7 @@ const putDriver = async (req: Request, res: Response) => {
team_id,
driver_number,
place_of_birth,
country,
created_at,
};

Expand Down
2 changes: 2 additions & 0 deletions server/models/drivers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ type Driver = {
team_id: number;
driver_number: number;
place_of_birth: string;
country: string;
created_at: Date;
};

Expand Down Expand Up @@ -45,6 +46,7 @@ export const postDriver = async (driver: Driver) => {
team_id: driver.team_id,
driver_number: driver.driver_number,
place_of_birth: driver.place_of_birth,
country: driver.country,
created_at: driver.created_at,
},
});
Expand Down
1 change: 1 addition & 0 deletions server/prisma/schema.prisma
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ model driver {
updated_at DateTime? @db.Timestamp(6)
deleted_at DateTime? @db.Timestamp(6)
place_of_birth String @db.VarChar(255)
country String @db.VarChar(50)
}

model flyway_schema_history {
Expand Down

0 comments on commit 5e3bca5

Please sign in to comment.