From ce46bdc1b64fbb18d373ad5d279246ec79c590eb Mon Sep 17 00:00:00 2001 From: Hanna Adenholm Date: Fri, 22 Aug 2025 15:47:13 +0200 Subject: [PATCH] Finished core and extension --- .gitignore | 2 + build.gradle | 23 ++-- docs/extensions.html | 2 +- .../java/com/booleanuk/api/cinema/Main.java | 35 ++++++ .../cinema/controllers/AuthController.java | 101 +++++++++++++++ .../controllers/CustomerController.java | 102 ++++++++++++++++ .../cinema/controllers/MovieController.java | 115 ++++++++++++++++++ .../controllers/ScreeningController.java | 50 ++++++++ .../cinema/controllers/TicketController.java | 55 +++++++++ .../booleanuk/api/cinema/models/ERole.java | 7 ++ .../booleanuk/api/cinema/models/Movie.java | 56 +++++++++ .../com/booleanuk/api/cinema/models/Role.java | 23 ++++ .../api/cinema/models/Screening.java | 58 +++++++++ .../booleanuk/api/cinema/models/Ticket.java | 57 +++++++++ .../com/booleanuk/api/cinema/models/User.java | 77 ++++++++++++ .../cinema/payload/request/LoginRequest.java | 15 +++ .../cinema/payload/request/SignupRequest.java | 29 +++++ .../response/CustomerListResponse.java | 9 ++ .../payload/response/CustomerResponse.java | 6 + .../payload/response/ErrorResponse.java | 19 +++ .../cinema/payload/response/JwtResponse.java | 25 ++++ .../payload/response/MessageResponse.java | 14 +++ .../payload/response/MovieListResponse.java | 8 ++ .../payload/response/MovieResponse.java | 6 + .../api/cinema/payload/response/Response.java | 14 +++ .../response/ScreeningListResponse.java | 8 ++ .../payload/response/ScreeningResponse.java | 7 ++ .../payload/response/TicketListResponse.java | 9 ++ .../payload/response/TicketResponse.java | 6 + .../cinema/repository/MovieRepository.java | 7 ++ .../api/cinema/repository/RoleRepository.java | 12 ++ .../repository/ScreeningRepository.java | 11 ++ .../cinema/repository/TicketRepository.java | 14 +++ .../api/cinema/repository/UserRepository.java | 15 +++ .../cinema/security/WebSecurityConfig.java | 72 +++++++++++ .../security/jwt/AuthEntryPointJwt.java | 24 ++++ .../cinema/security/jwt/AuthTokenFilter.java | 54 ++++++++ .../api/cinema/security/jwt/JwtUtils.java | 63 ++++++++++ .../security/services/UserDetailsImpl.java | 59 +++++++++ .../services/UserDetailsServiceImpl.java | 26 ++++ 40 files changed, 1287 insertions(+), 8 deletions(-) create mode 100644 src/main/java/com/booleanuk/api/cinema/Main.java create mode 100644 src/main/java/com/booleanuk/api/cinema/controllers/AuthController.java create mode 100644 src/main/java/com/booleanuk/api/cinema/controllers/CustomerController.java create mode 100644 src/main/java/com/booleanuk/api/cinema/controllers/MovieController.java create mode 100644 src/main/java/com/booleanuk/api/cinema/controllers/ScreeningController.java create mode 100644 src/main/java/com/booleanuk/api/cinema/controllers/TicketController.java create mode 100644 src/main/java/com/booleanuk/api/cinema/models/ERole.java create mode 100644 src/main/java/com/booleanuk/api/cinema/models/Movie.java create mode 100644 src/main/java/com/booleanuk/api/cinema/models/Role.java create mode 100644 src/main/java/com/booleanuk/api/cinema/models/Screening.java create mode 100644 src/main/java/com/booleanuk/api/cinema/models/Ticket.java create mode 100644 src/main/java/com/booleanuk/api/cinema/models/User.java create mode 100644 src/main/java/com/booleanuk/api/cinema/payload/request/LoginRequest.java create mode 100644 src/main/java/com/booleanuk/api/cinema/payload/request/SignupRequest.java create mode 100644 src/main/java/com/booleanuk/api/cinema/payload/response/CustomerListResponse.java create mode 100644 src/main/java/com/booleanuk/api/cinema/payload/response/CustomerResponse.java create mode 100644 src/main/java/com/booleanuk/api/cinema/payload/response/ErrorResponse.java create mode 100644 src/main/java/com/booleanuk/api/cinema/payload/response/JwtResponse.java create mode 100644 src/main/java/com/booleanuk/api/cinema/payload/response/MessageResponse.java create mode 100644 src/main/java/com/booleanuk/api/cinema/payload/response/MovieListResponse.java create mode 100644 src/main/java/com/booleanuk/api/cinema/payload/response/MovieResponse.java create mode 100644 src/main/java/com/booleanuk/api/cinema/payload/response/Response.java create mode 100644 src/main/java/com/booleanuk/api/cinema/payload/response/ScreeningListResponse.java create mode 100644 src/main/java/com/booleanuk/api/cinema/payload/response/ScreeningResponse.java create mode 100644 src/main/java/com/booleanuk/api/cinema/payload/response/TicketListResponse.java create mode 100644 src/main/java/com/booleanuk/api/cinema/payload/response/TicketResponse.java create mode 100644 src/main/java/com/booleanuk/api/cinema/repository/MovieRepository.java create mode 100644 src/main/java/com/booleanuk/api/cinema/repository/RoleRepository.java create mode 100644 src/main/java/com/booleanuk/api/cinema/repository/ScreeningRepository.java create mode 100644 src/main/java/com/booleanuk/api/cinema/repository/TicketRepository.java create mode 100644 src/main/java/com/booleanuk/api/cinema/repository/UserRepository.java create mode 100644 src/main/java/com/booleanuk/api/cinema/security/WebSecurityConfig.java create mode 100644 src/main/java/com/booleanuk/api/cinema/security/jwt/AuthEntryPointJwt.java create mode 100644 src/main/java/com/booleanuk/api/cinema/security/jwt/AuthTokenFilter.java create mode 100644 src/main/java/com/booleanuk/api/cinema/security/jwt/JwtUtils.java create mode 100644 src/main/java/com/booleanuk/api/cinema/security/services/UserDetailsImpl.java create mode 100644 src/main/java/com/booleanuk/api/cinema/security/services/UserDetailsServiceImpl.java diff --git a/.gitignore b/.gitignore index dc01f204..0f4123f1 100644 --- a/.gitignore +++ b/.gitignore @@ -36,3 +36,5 @@ out/ ### VS Code ### .vscode/ + +*.yml \ No newline at end of file diff --git a/build.gradle b/build.gradle index 3d7f7607..e2aa4713 100644 --- a/build.gradle +++ b/build.gradle @@ -1,6 +1,6 @@ plugins { id 'java' - id 'org.springframework.boot' version '3.3.1' + id 'org.springframework.boot' version '3.5.4' id 'io.spring.dependency-management' version '1.1.5' } @@ -18,12 +18,21 @@ repositories { } dependencies { - implementation 'org.springframework.boot:spring-boot-starter-data-jpa' - implementation 'org.springframework.boot:spring-boot-starter-web' - developmentOnly 'org.springframework.boot:spring-boot-devtools' - runtimeOnly 'org.postgresql:postgresql' - testImplementation 'org.springframework.boot:spring-boot-starter-test' - testRuntimeOnly 'org.junit.platform:junit-platform-launcher' + implementation 'org.springframework.boot:spring-boot-starter-data-jpa' + implementation 'org.springframework.boot:spring-boot-starter-security' + implementation 'org.springframework.boot:spring-boot-starter-web' + implementation 'io.jsonwebtoken:jjwt-api:0.12.7' + implementation 'io.jsonwebtoken:jjwt-impl:0.12.7' + runtimeOnly 'io.jsonwebtoken:jjwt-jackson:0.12.7' + + compileOnly 'org.projectlombok:lombok' + developmentOnly 'org.springframework.boot:spring-boot-devtools' + runtimeOnly 'org.postgresql:postgresql' + annotationProcessor 'org.projectlombok:lombok' + testImplementation 'org.springframework.boot:spring-boot-starter-test' + testImplementation 'org.springframework.security:spring-security-test' + + implementation 'jakarta.validation:jakarta.validation-api:3.1.1' } tasks.named('test') { diff --git a/docs/extensions.html b/docs/extensions.html index 46608c92..04b4d1bf 100644 --- a/docs/extensions.html +++ b/docs/extensions.html @@ -421,7 +421,7 @@

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": [
    ]
}