From fa120fe7b5009cc53dac73cb87e851908abbc5dd Mon Sep 17 00:00:00 2001 From: ThisBirchWood Date: Thu, 12 Jun 2025 22:23:10 +0200 Subject: [PATCH] ADD database integration & ADD simple dummy user entity --- bruno/VoD-System/Edit/Edit.bru | 4 +-- docker-compose.yml | 2 +- .../java/com/ddf/vodsystem/entities/User.java | 32 +++++++++++++++++++ .../repositories/UserRepository.java | 9 ++++++ src/main/resources/application.properties | 7 ++-- src/main/resources/db/data.sql | 12 +++++++ src/main/resources/db/schema.sql | 9 ++++++ 7 files changed, 70 insertions(+), 5 deletions(-) create mode 100644 src/main/java/com/ddf/vodsystem/entities/User.java create mode 100644 src/main/java/com/ddf/vodsystem/repositories/UserRepository.java create mode 100644 src/main/resources/db/data.sql create mode 100644 src/main/resources/db/schema.sql diff --git a/bruno/VoD-System/Edit/Edit.bru b/bruno/VoD-System/Edit/Edit.bru index 13bce1f..4836047 100644 --- a/bruno/VoD-System/Edit/Edit.bru +++ b/bruno/VoD-System/Edit/Edit.bru @@ -11,6 +11,6 @@ post { } body:form-urlencoded { - startPoint: 30 - endPoint: 120 + startPoint: 130 + endPoint: 140 } diff --git a/docker-compose.yml b/docker-compose.yml index 5d62a4a..38dfd15 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -7,7 +7,7 @@ services: environment: POSTGRES_USER: myuser POSTGRES_PASSWORD: mypassword - POSTGRES_DB: mydb + POSTGRES_DB: vodSystem ports: - "5432:5432" volumes: diff --git a/src/main/java/com/ddf/vodsystem/entities/User.java b/src/main/java/com/ddf/vodsystem/entities/User.java new file mode 100644 index 0000000..46929b1 --- /dev/null +++ b/src/main/java/com/ddf/vodsystem/entities/User.java @@ -0,0 +1,32 @@ +package com.ddf.vodsystem.entities; + +import jakarta.persistence.*; +import lombok.Data; + +import java.time.LocalDateTime; + +@Entity +@Table(name = "users") +@Data +public class User { + @Column(name = "id", nullable = false, unique = true) + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Id + private Long id; + + @Column(name = "google_id", nullable = false, unique = true) + private String googleId; + + @Column(name = "username", nullable = false, unique = true) + private String username; + + @Column(name = "email", nullable = false, unique = true) + private String email; + + @Column(name = "name", nullable = false) + private String name; + + @Column(name = "created_at", nullable = false) + private LocalDateTime createdAt; +} + diff --git a/src/main/java/com/ddf/vodsystem/repositories/UserRepository.java b/src/main/java/com/ddf/vodsystem/repositories/UserRepository.java new file mode 100644 index 0000000..b907163 --- /dev/null +++ b/src/main/java/com/ddf/vodsystem/repositories/UserRepository.java @@ -0,0 +1,9 @@ +package com.ddf.vodsystem.repositories; + +import com.ddf.vodsystem.entities.User; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface UserRepository extends JpaRepository { +} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index c798028..f3ab51b 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -7,13 +7,16 @@ temp.vod.storage=videos/inputs/ temp.vod.output=videos/outputs/ # Database -spring.datasource.url=jdbc:postgresql://localhost:5432/mydb +spring.datasource.url=jdbc:postgresql://postgres:5432/vodSystem spring.datasource.username=myuser spring.datasource.password=mypassword spring.datasource.driver-class-name=org.postgresql.Driver spring.jpa.hibernate.ddl-auto=update spring.jpa.show-sql=true -spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect +spring.sql.init.mode=always + +spring.sql.init.schema-locations=classpath:db/schema.sql +spring.sql.init.data-locations=classpath:db/data.sql # Logging logging.level.org.springframework.web=DEBUG \ No newline at end of file diff --git a/src/main/resources/db/data.sql b/src/main/resources/db/data.sql new file mode 100644 index 0000000..42776a3 --- /dev/null +++ b/src/main/resources/db/data.sql @@ -0,0 +1,12 @@ +INSERT INTO users (id, google_id, username, email, name) +VALUES + (1, 'google-uid-001', 'alice', 'alice@example.com', 'Alice Example'), + (2, 'google-uid-002', 'bob', 'bob@example.com', 'Bob Example'), + (3, 'google-uid-003', 'carol', 'carol@example.com', 'Carol Example'), + (4, 'google-uid-004', 'wizard42', 'gandalf@middle.earth', 'Gandalf the Grey'), + (5, 'google-uid-005', 'catnap', 'whiskers@meowmail.com', 'Sir Whiskers McFluff'), + (6, 'google-uid-006', 'robotron', 'bender@futurama.tv', 'Bender Rodriguez'), + (7, 'google-uid-007', 'unicorn', 'sparkle@rainbow.com', 'Princess Sparklehoof'), + (8, 'google-uid-008', 'pirate', 'blackbeard@seas.com', 'Edward Teach'), + (9, 'google-uid-009', 'detective', 'holmes@bakerstreet.uk', 'Sherlock Holmes'), + (10, 'google-uid-010', 'timey', 'docbrown@delorean.net', 'Dr. Emmett Brown'); \ No newline at end of file diff --git a/src/main/resources/db/schema.sql b/src/main/resources/db/schema.sql new file mode 100644 index 0000000..8afe3a0 --- /dev/null +++ b/src/main/resources/db/schema.sql @@ -0,0 +1,9 @@ +DROP TABLE IF EXISTS users; +CREATE TABLE IF NOT EXISTS users ( + id BIGINT PRIMARY KEY, + google_id VARCHAR(64), + username VARCHAR(50) NOT NULL UNIQUE, + email VARCHAR(100) NOT NULL UNIQUE, + name VARCHAR(100) NOT NULL, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP +); \ No newline at end of file