From 3750ed073ac16c455ca88537be476911918a4367 Mon Sep 17 00:00:00 2001 From: DaFDEe31 Date: Fri, 10 Oct 2025 04:09:00 +0000 Subject: [PATCH 1/7] feat: Danielson SQL queries --- .../src/main/resources/queries/danielsonadjocy.sql | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 lesson_25/db/db_app/src/main/resources/queries/danielsonadjocy.sql diff --git a/lesson_25/db/db_app/src/main/resources/queries/danielsonadjocy.sql b/lesson_25/db/db_app/src/main/resources/queries/danielsonadjocy.sql new file mode 100644 index 000000000..69e427ee6 --- /dev/null +++ b/lesson_25/db/db_app/src/main/resources/queries/danielsonadjocy.sql @@ -0,0 +1,12 @@ +select type , COUNT(*) as count +from mediaItems group by type; + +select SUM(pages) as total_pages +from checked_out_items INNER JOIN mediaItems +ON checked_out_items.item_id = mediaItems.id +where mediaItems.pages IS NOT NULL; + + +select guests.id, guests.name, checked_out_items.item_id, checked_out_items.checked_out_date +from guests +left join checked_out_items on guests.id = checked_out_items.guest_id; \ No newline at end of file From 0f7b049e746ea2d43049cf6cf6f1a0f0dea8868e Mon Sep 17 00:00:00 2001 From: DaFDEe31 Date: Fri, 10 Oct 2025 04:46:47 +0000 Subject: [PATCH 2/7] feat: creating library table --- .../src/main/resources/queries/danielsonadjocy.sql | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/lesson_25/db/db_app/src/main/resources/queries/danielsonadjocy.sql b/lesson_25/db/db_app/src/main/resources/queries/danielsonadjocy.sql index 69e427ee6..fe8be7fdf 100644 --- a/lesson_25/db/db_app/src/main/resources/queries/danielsonadjocy.sql +++ b/lesson_25/db/db_app/src/main/resources/queries/danielsonadjocy.sql @@ -9,4 +9,13 @@ where mediaItems.pages IS NOT NULL; select guests.id, guests.name, checked_out_items.item_id, checked_out_items.checked_out_date from guests -left join checked_out_items on guests.id = checked_out_items.guest_id; \ No newline at end of file +left join checked_out_items on guests.id = checked_out_items.guest_id; + +CREATE Table library_users ( + id UUID PRIMARY KEY, + email VARCHAR(100) UNIQUE NOT NULL, + first_name VARCHAR(50) NOT NULL, + last_name VARCHAR(50) NOT NULL, + password_hash CHAR(60) NOT NULL, + +); \ No newline at end of file From 638c5b58c00089ebb165fd2a1147f35151de34dc Mon Sep 17 00:00:00 2001 From: DaFDEe31 Date: Fri, 10 Oct 2025 04:51:49 +0000 Subject: [PATCH 3/7] feat: adding library user model and repository --- .../lesson25/models/LibraryUsersModel.java | 45 +++++++++++++++++++ .../repository/LibraryUserRepository.java | 11 +++++ 2 files changed, 56 insertions(+) create mode 100644 lesson_25/db/db_app/src/main/java/com/codedifferently/lesson25/models/LibraryUsersModel.java create mode 100644 lesson_25/db/db_app/src/main/java/com/codedifferently/lesson25/repository/LibraryUserRepository.java diff --git a/lesson_25/db/db_app/src/main/java/com/codedifferently/lesson25/models/LibraryUsersModel.java b/lesson_25/db/db_app/src/main/java/com/codedifferently/lesson25/models/LibraryUsersModel.java new file mode 100644 index 000000000..fcb740d59 --- /dev/null +++ b/lesson_25/db/db_app/src/main/java/com/codedifferently/lesson25/models/LibraryUsersModel.java @@ -0,0 +1,45 @@ +package com.codedifferently.lesson25.models; + +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.Id; +import jakarta.persistence.OneToMany; +import jakarta.persistence.Table; +import java.util.List; +import java.util.UUID; +@Entity +@Table(name = "library_users") +public class LibraryUsersModel { + + @Id + public UUID id; + public String email; + public String firstName; + public String lastName; + public String passwordHash; + +} +/* + * + * package com.codedifferently.lesson25.models; + +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.Id; +import jakarta.persistence.OneToMany; +import jakarta.persistence.Table; +import java.util.List; + +@Entity +@Table(name = "guests") +public class LibraryGuestModel { + + public String type; + public String name; + @Id public String email; + + @OneToMany(mappedBy = "email", fetch = FetchType.EAGER) + public List checkedOutItems; +} + + */ \ No newline at end of file diff --git a/lesson_25/db/db_app/src/main/java/com/codedifferently/lesson25/repository/LibraryUserRepository.java b/lesson_25/db/db_app/src/main/java/com/codedifferently/lesson25/repository/LibraryUserRepository.java new file mode 100644 index 000000000..b0d8c2474 --- /dev/null +++ b/lesson_25/db/db_app/src/main/java/com/codedifferently/lesson25/repository/LibraryUserRepository.java @@ -0,0 +1,11 @@ +package com.codedifferently.lesson25.repository; + +import com.codedifferently.lesson25.models.LibraryGuestModel; +import java.util.List; +import org.springframework.data.repository.CrudRepository; + +public interface LibraryUserRepository extends CrudRepository { + + @Override + List findAll(); +} From 2c63ed9eb51011dc6f0125683ab81c09155ebe5e Mon Sep 17 00:00:00 2001 From: DaFDEe31 Date: Fri, 10 Oct 2025 17:13:53 +0000 Subject: [PATCH 4/7] fix: fixing syntax and semantic errors --- .../lesson25/models/LibraryUserModel.java | 21 +++++++++ .../lesson25/models/LibraryUsersModel.java | 45 ------------------- .../repository/LibraryUserRepository.java | 7 ++- .../resources/queries/danielsonadjocy.sql | 12 +++-- 4 files changed, 35 insertions(+), 50 deletions(-) create mode 100644 lesson_25/db/db_app/src/main/java/com/codedifferently/lesson25/models/LibraryUserModel.java delete mode 100644 lesson_25/db/db_app/src/main/java/com/codedifferently/lesson25/models/LibraryUsersModel.java diff --git a/lesson_25/db/db_app/src/main/java/com/codedifferently/lesson25/models/LibraryUserModel.java b/lesson_25/db/db_app/src/main/java/com/codedifferently/lesson25/models/LibraryUserModel.java new file mode 100644 index 000000000..fb23f57f5 --- /dev/null +++ b/lesson_25/db/db_app/src/main/java/com/codedifferently/lesson25/models/LibraryUserModel.java @@ -0,0 +1,21 @@ +package com.codedifferently.lesson25.models; + +import jakarta.persistence.Entity; +import jakarta.persistence.Id; +import jakarta.persistence.Table; +import java.util.UUID; + +@Entity +@Table(name = "library_users") +public class LibraryUserModel { + + @Id public UUID id; + public String email; + + public String first_name; + + public String last_name; + + public String password_hash; + public String passwordHash; +} \ No newline at end of file diff --git a/lesson_25/db/db_app/src/main/java/com/codedifferently/lesson25/models/LibraryUsersModel.java b/lesson_25/db/db_app/src/main/java/com/codedifferently/lesson25/models/LibraryUsersModel.java deleted file mode 100644 index fcb740d59..000000000 --- a/lesson_25/db/db_app/src/main/java/com/codedifferently/lesson25/models/LibraryUsersModel.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.codedifferently.lesson25.models; - -import jakarta.persistence.Entity; -import jakarta.persistence.FetchType; -import jakarta.persistence.Id; -import jakarta.persistence.OneToMany; -import jakarta.persistence.Table; -import java.util.List; -import java.util.UUID; -@Entity -@Table(name = "library_users") -public class LibraryUsersModel { - - @Id - public UUID id; - public String email; - public String firstName; - public String lastName; - public String passwordHash; - -} -/* - * - * package com.codedifferently.lesson25.models; - -import jakarta.persistence.Entity; -import jakarta.persistence.FetchType; -import jakarta.persistence.Id; -import jakarta.persistence.OneToMany; -import jakarta.persistence.Table; -import java.util.List; - -@Entity -@Table(name = "guests") -public class LibraryGuestModel { - - public String type; - public String name; - @Id public String email; - - @OneToMany(mappedBy = "email", fetch = FetchType.EAGER) - public List checkedOutItems; -} - - */ \ No newline at end of file diff --git a/lesson_25/db/db_app/src/main/java/com/codedifferently/lesson25/repository/LibraryUserRepository.java b/lesson_25/db/db_app/src/main/java/com/codedifferently/lesson25/repository/LibraryUserRepository.java index b0d8c2474..26cee329b 100644 --- a/lesson_25/db/db_app/src/main/java/com/codedifferently/lesson25/repository/LibraryUserRepository.java +++ b/lesson_25/db/db_app/src/main/java/com/codedifferently/lesson25/repository/LibraryUserRepository.java @@ -1,10 +1,13 @@ package com.codedifferently.lesson25.repository; -import com.codedifferently.lesson25.models.LibraryGuestModel; import java.util.List; +import java.util.UUID; + import org.springframework.data.repository.CrudRepository; -public interface LibraryUserRepository extends CrudRepository { +import com.codedifferently.lesson25.models.LibraryUserModel; + +public interface LibraryUserRepository extends CrudRepository { @Override List findAll(); diff --git a/lesson_25/db/db_app/src/main/resources/queries/danielsonadjocy.sql b/lesson_25/db/db_app/src/main/resources/queries/danielsonadjocy.sql index fe8be7fdf..f45ca5afb 100644 --- a/lesson_25/db/db_app/src/main/resources/queries/danielsonadjocy.sql +++ b/lesson_25/db/db_app/src/main/resources/queries/danielsonadjocy.sql @@ -16,6 +16,12 @@ CREATE Table library_users ( email VARCHAR(100) UNIQUE NOT NULL, first_name VARCHAR(50) NOT NULL, last_name VARCHAR(50) NOT NULL, - password_hash CHAR(60) NOT NULL, - -); \ No newline at end of file + password_hash CHAR(60) NOT NULL +); + +-- Inserting users: passwords are all "password123" hashed with bcrypt. +INSERT INTO library_users (id, email, first_name, last_name, password_hash) VALUES +('550e8400-e29b-41d4-a716-446655440001', 'john.doe@example.com', 'John', 'Doe', '$2a$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2uheWG/igi.'), +('550e8400-e29b-41d4-a716-446655440002', 'jane.smith@example.com', 'Jane', 'Smith', '$2a$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2uheWG/igi.'), +('550e8400-e29b-41d4-a716-446655440003', 'bob.johnson@example.com', 'Bob', 'Johnson', '$2a$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2uheWG/igi.'), +('550e8400-e29b-41d4-a716-446655440004', 'alice.williams@example.com', 'Alice', 'Williams', '$2a$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2uheWG/igi.'); \ No newline at end of file From 6c944332e8f8cd9d73ffcbd235b3b67367fac18f Mon Sep 17 00:00:00 2001 From: DaFDEe31 Date: Fri, 10 Oct 2025 17:16:10 +0000 Subject: [PATCH 5/7] fix: spotlessApply --- .../com/codedifferently/lesson25/models/LibraryUserModel.java | 4 ++-- .../lesson25/repository/LibraryUserRepository.java | 4 +--- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/lesson_25/db/db_app/src/main/java/com/codedifferently/lesson25/models/LibraryUserModel.java b/lesson_25/db/db_app/src/main/java/com/codedifferently/lesson25/models/LibraryUserModel.java index fb23f57f5..91d1ddef6 100644 --- a/lesson_25/db/db_app/src/main/java/com/codedifferently/lesson25/models/LibraryUserModel.java +++ b/lesson_25/db/db_app/src/main/java/com/codedifferently/lesson25/models/LibraryUserModel.java @@ -11,11 +11,11 @@ public class LibraryUserModel { @Id public UUID id; public String email; - + public String first_name; public String last_name; public String password_hash; public String passwordHash; -} \ No newline at end of file +} diff --git a/lesson_25/db/db_app/src/main/java/com/codedifferently/lesson25/repository/LibraryUserRepository.java b/lesson_25/db/db_app/src/main/java/com/codedifferently/lesson25/repository/LibraryUserRepository.java index 26cee329b..68e342050 100644 --- a/lesson_25/db/db_app/src/main/java/com/codedifferently/lesson25/repository/LibraryUserRepository.java +++ b/lesson_25/db/db_app/src/main/java/com/codedifferently/lesson25/repository/LibraryUserRepository.java @@ -1,12 +1,10 @@ package com.codedifferently.lesson25.repository; +import com.codedifferently.lesson25.models.LibraryUserModel; import java.util.List; import java.util.UUID; - import org.springframework.data.repository.CrudRepository; -import com.codedifferently.lesson25.models.LibraryUserModel; - public interface LibraryUserRepository extends CrudRepository { @Override From d43f7278defbc350cc820ea433a96a6d419556fa Mon Sep 17 00:00:00 2001 From: DaFDEe31 Date: Fri, 10 Oct 2025 17:23:17 +0000 Subject: [PATCH 6/7] fix: fixing password_hash bug; there were conflicting table names --- .../lesson25/models/LibraryUserModel.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/lesson_25/db/db_app/src/main/java/com/codedifferently/lesson25/models/LibraryUserModel.java b/lesson_25/db/db_app/src/main/java/com/codedifferently/lesson25/models/LibraryUserModel.java index 91d1ddef6..7fe7b5215 100644 --- a/lesson_25/db/db_app/src/main/java/com/codedifferently/lesson25/models/LibraryUserModel.java +++ b/lesson_25/db/db_app/src/main/java/com/codedifferently/lesson25/models/LibraryUserModel.java @@ -1,9 +1,11 @@ package com.codedifferently.lesson25.models; +import java.util.UUID; + +import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.Id; import jakarta.persistence.Table; -import java.util.UUID; @Entity @Table(name = "library_users") @@ -12,10 +14,12 @@ public class LibraryUserModel { @Id public UUID id; public String email; - public String first_name; + @Column(name = "first_name") + public String firstName; - public String last_name; + @Column(name = "last_name") + public String lastName; - public String password_hash; + @Column(name = "password_hash") public String passwordHash; } From 41ddac5a16a13a314a899e323d72734113de5e1f Mon Sep 17 00:00:00 2001 From: DaFDEe31 Date: Fri, 10 Oct 2025 17:25:52 +0000 Subject: [PATCH 7/7] fix: spotlessApply --- .../com/codedifferently/lesson25/models/LibraryUserModel.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lesson_25/db/db_app/src/main/java/com/codedifferently/lesson25/models/LibraryUserModel.java b/lesson_25/db/db_app/src/main/java/com/codedifferently/lesson25/models/LibraryUserModel.java index 7fe7b5215..788dc5a4f 100644 --- a/lesson_25/db/db_app/src/main/java/com/codedifferently/lesson25/models/LibraryUserModel.java +++ b/lesson_25/db/db_app/src/main/java/com/codedifferently/lesson25/models/LibraryUserModel.java @@ -1,11 +1,10 @@ package com.codedifferently.lesson25.models; -import java.util.UUID; - import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.Id; import jakarta.persistence.Table; +import java.util.UUID; @Entity @Table(name = "library_users")