Skip to content
Open
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
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import com.codedifferently.lesson25.models.LibraryDataModel;
import com.codedifferently.lesson25.repository.LibraryGuestRepository;
import com.codedifferently.lesson25.repository.LibraryUserRepository;
import com.codedifferently.lesson25.repository.MediaItemRepository;
import java.io.IOException;
import org.springframework.beans.factory.annotation.Autowired;
Expand All @@ -13,13 +14,15 @@ public final class LibraryDbDataLoader implements LibraryDataLoader {

@Autowired private MediaItemRepository mediaItemsRepository;
@Autowired private LibraryGuestRepository libraryGuestRepository;
@Autowired private LibraryUserRepository libraryUserRepository;

@Override
public LibraryDataModel loadData() throws IOException {
var model = new LibraryDataModel();

model.mediaItems = mediaItemsRepository.findAll();
model.guests = libraryGuestRepository.findAll();
model.users = libraryUserRepository.findAll();

return model;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ public class LibraryDataModel {

public List<MediaItemModel> mediaItems;
public List<LibraryGuestModel> guests;
public List<LibraryUserModel> users;

public List<MediaItem> getMediaItems() {
List<MediaItem> results = new ArrayList<>();
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package com.codedifferently.lesson25.models;

import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import jakarta.persistence.Table;

@Entity
@Table(name = "library_users")
public class LibraryUserModel {

@Id
public String id;

@Column(unique = true, nullable = false)
public String email;

@Column(name = "first_name", nullable = false)
public String firstName;

@Column(name = "last_name", nullable = false)
public String lastName;

@Column(name = "password_hash", nullable = false)
public String passwordHash;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package com.codedifferently.lesson25.repository;

import java.util.List;

import org.springframework.data.repository.CrudRepository;

import com.codedifferently.lesson25.models.LibraryUserModel;

public interface LibraryUserRepository extends CrudRepository<LibraryUserModel, String> {

@Override
List<LibraryUserModel> findAll();
}
12 changes: 12 additions & 0 deletions lesson_25/db/db_app/src/main/resources/data.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
-- Populating library_users table with sample data
INSERT OR IGNORE INTO library_users (id, email, first_name, last_name, password_hash) VALUES
('550e8400-e29b-41d4-a716-446655440001', 'john.doe@example.com', 'John', 'Doe', '$2b$10$rOeWgMLJ8J8j8J8j8J8j8OmQ8J8j8J8j8J8j8J8j8J8j8J8j8J8j8'),
('550e8400-e29b-41d4-a716-446655440002', 'jane.smith@example.com', 'Jane', 'Smith', '$2b$10$rOeWgMLJ8J8j8J8j8J8j8OmQ8J8j8J8j8J8j8J8j8J8j8J8j8J8j8'),
('550e8400-e29b-41d4-a716-446655440003', 'mike.johnson@example.com', 'Mike', 'Johnson', '$2b$10$rOeWgMLJ8J8j8J8j8J8j8OmQ8J8j8J8j8J8j8J8j8J8j8J8j8J8j8'),
('550e8400-e29b-41d4-a716-446655440004', 'sarah.wilson@example.com', 'Sarah', 'Wilson', '$2b$10$rOeWgMLJ8J8j8J8j8J8j8OmQ8J8j8J8j8J8j8J8j8J8j8J8j8J8j8'),
('550e8400-e29b-41d4-a716-446655440005', 'david.brown@example.com', 'David', 'Brown', '$2b$10$rOeWgMLJ8J8j8J8j8J8j8OmQ8J8j8J8j8J8j8J8j8J8j8J8j8J8j8'),
('550e8400-e29b-41d4-a716-446655440006', 'emily.davis@example.com', 'Emily', 'Davis', '$2b$10$rOeWgMLJ8J8j8J8j8J8j8OmQ8J8j8J8j8J8j8J8j8J8j8J8j8J8j8'),
('550e8400-e29b-41d4-a716-446655440007', 'robert.miller@example.com', 'Robert', 'Miller', '$2b$10$rOeWgMLJ8J8j8J8j8J8j8OmQ8J8j8J8j8J8j8J8j8J8j8J8j8J8j8'),
('550e8400-e29b-41d4-a716-446655440008', 'lisa.garcia@example.com', 'Lisa', 'Garcia', '$2b$10$rOeWgMLJ8J8j8J8j8J8j8OmQ8J8j8J8j8J8j8J8j8J8j8J8j8J8j8'),
('550e8400-e29b-41d4-a716-446655440009', 'james.martinez@example.com', 'James', 'Martinez', '$2b$10$rOeWgMLJ8J8j8J8j8J8j8OmQ8J8j8J8j8J8j8J8j8J8j8J8j8J8j8'),
('550e8400-e29b-41d4-a716-446655440010', 'amanda.anderson@example.com', 'Amanda', 'Anderson', '$2b$10$rOeWgMLJ8J8j8J8j8J8j8OmQ8J8j8J8j8J8j8J8j8J8j8J8j8J8j8');
24 changes: 24 additions & 0 deletions lesson_25/db/db_app/src/main/resources/queries/jarededge.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
-- SQL Queries for Library Database
SELECT type, COUNT(*) as count
FROM media_items
GROUP BY type;

SELECT SUM(pages)
FROM media_items
JOIN checked_out_items ON media_items.id = checked_out_items.item_id;

SELECT guests.name, guests.email, media_items.title
FROM guests
LEFT JOIN checked_out_items ON guests.email = checked_out_items.email
LEFT JOIN media_items ON checked_out_items.item_id = media_items.id;

-- Table Creation
CREATE TABLE library_users (
id TEXT NOT NULL,
email TEXT NOT NULL,
first_name TEXT NOT NULL,
last_name TEXT NOT NULL,
password_hash TEXT NOT NULL,
PRIMARY KEY (id),
UNIQUE (email)
);
Loading