refactor: rename delta-force-guide to ahsarah-guide and merge into monorepo
- Merge delta-force-guide-server into server/ subdirectory - Merge delta-force-guide-web into web/ subdirectory - Rename Java package com.onixbyte.deltaforceguide to com.onixbyte.ahsarahguide - Rename DeltaForceGuideApplication to AhsarahGuideApplication - Update all config files, Dockerfiles, and CI workflows - Update frontend display name and repo links - Update legal documents (EULA, PrivacyPolicy) - Create root-level CLAUDE.md, README.md, LICENCE, .gitignore, .gitattributes - Move CI workflows to root .gitea/workflows/ with working-directory - Delete .gitlab-ci.yml (legacy) - Preserve git history from both original repositories
This commit is contained in:
144 files changed
+492
-966
No files matched your search
@@ -1,3 +0,0 @@
|
||||
/gradlew text eol=lf
|
||||
*.bat text eol=crlf
|
||||
*.jar binary
|
||||
@@ -1,86 +0,0 @@
|
||||
name: Build and Deploy
|
||||
|
||||
on:
|
||||
release:
|
||||
types: [published]
|
||||
|
||||
env:
|
||||
APP_NAME: delta-force-guide-server
|
||||
|
||||
jobs:
|
||||
build-and-release:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Set up JDK 21 (Corretto)
|
||||
uses: actions/setup-java@v4
|
||||
with:
|
||||
java-version: 21
|
||||
distribution: corretto
|
||||
cache: gradle
|
||||
|
||||
- name: Build with Gradle
|
||||
run: >
|
||||
./gradlew bootJar -x test
|
||||
-PartefactVersion="${{ gitea.event.release.tag_name }}"
|
||||
-PbuildChannel=stable
|
||||
-Pvendor=${{ vars.VENDOR }}
|
||||
|
||||
- name: Resolve JAR file path
|
||||
id: jar
|
||||
run: |
|
||||
JAR_PATH=$(find build/libs -name '*.jar' | head -1)
|
||||
echo "file=$JAR_PATH" >> "$GITHUB_OUTPUT"
|
||||
|
||||
- name: Upload JAR to Gitea Release
|
||||
run: |
|
||||
TAG="${{ gitea.event.release.tag_name }}"
|
||||
FILE="${{ steps.jar.outputs.file }}"
|
||||
ASSET_NAME="${APP_NAME}-${TAG}.jar"
|
||||
curl -X POST \
|
||||
-H "Authorization: token ${{ secrets.GITEA_TOKEN }}" \
|
||||
-H "Content-Type: multipart/form-data" \
|
||||
-F "attachment=@${FILE};filename=${ASSET_NAME}" \
|
||||
"${{ gitea.server_url }}/api/v1/repos/${{ gitea.repository }}/releases/${{ gitea.event.release.id }}/assets?name=${ASSET_NAME}"
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
|
||||
- name: Log in to Docker Hub
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
username: ${{ vars.DOCKER_HUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_HUB_TOKEN }}
|
||||
|
||||
- name: Generate image tags
|
||||
id: meta
|
||||
run: |
|
||||
DOCKERHUB_USER="${{ vars.DOCKER_HUB_USERNAME }}"
|
||||
echo "tag_version=${DOCKERHUB_USER}/${APP_NAME}:${{ gitea.event.release.tag_name }}" >> "$GITHUB_OUTPUT"
|
||||
echo "tag_latest=${DOCKERHUB_USER}/${APP_NAME}:latest" >> "$GITHUB_OUTPUT"
|
||||
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@v6
|
||||
with:
|
||||
context: .
|
||||
file: Dockerfile.ci
|
||||
build-args: |
|
||||
JAR_FILE=${{ steps.jar.outputs.file }}
|
||||
IMAGE_VERSION=${{ gitea.event.release.tag_name }}
|
||||
IMAGE_VENDOR=${{ vars.VENDOR }}
|
||||
BUILD_DATE=${{ gitea.event.release.published_at }}
|
||||
push: true
|
||||
tags: |
|
||||
${{ steps.meta.outputs.tag_version }}
|
||||
${{ steps.meta.outputs.tag_latest }}
|
||||
|
||||
- name: Push README to Docker Hub
|
||||
uses: christian-korneck/update-container-description-action@v1
|
||||
env:
|
||||
DOCKER_USER: ${{ vars.DOCKER_HUB_USERNAME }}
|
||||
DOCKER_PASS: ${{ secrets.DOCKER_HUB_TOKEN }}
|
||||
with:
|
||||
destination_container_repo: ${{ vars.DOCKER_HUB_USERNAME }}/${{ env.APP_NAME }}
|
||||
provider: dockerhub
|
||||
readme_file: README.md
|
||||
@@ -1,162 +0,0 @@
|
||||
### macOS
|
||||
# General
|
||||
.DS_Store
|
||||
.AppleDouble
|
||||
.LSOverride
|
||||
|
||||
# Thumbnails
|
||||
._*
|
||||
|
||||
# Files that might appear in the root of a volume
|
||||
.DocumentRevisions-V100
|
||||
.fseventsd
|
||||
.Spotlight-V100
|
||||
.TemporaryItems
|
||||
.Trashes
|
||||
.VolumeIcon.icns
|
||||
.com.apple.timemachine.donotpresent
|
||||
|
||||
# Directories potentially created on remote AFP share
|
||||
.AppleDB
|
||||
.AppleDesktop
|
||||
Network Trash Folder
|
||||
Temporary Items
|
||||
.apdisk
|
||||
|
||||
### Linux
|
||||
*~
|
||||
|
||||
# temporary files which can be created if a process still has a handle open of a deleted file
|
||||
.fuse_hidden*
|
||||
|
||||
# Metadata left by Dolphin file manager, which comes with KDE Plasma
|
||||
.directory
|
||||
|
||||
# Linux trash folder which might appear on any partition or disk
|
||||
.Trash-*
|
||||
|
||||
# .nfs files are created when an open file is removed but is still being accessed
|
||||
.nfs*
|
||||
|
||||
# Log files created by default by the nohup command
|
||||
nohup.out
|
||||
|
||||
### Windows
|
||||
|
||||
# Windows thumbnail cache files
|
||||
Thumbs.db
|
||||
Thumbs.db:encryptable
|
||||
ehthumbs.db
|
||||
ehthumbs_vista.db
|
||||
|
||||
# Dump file
|
||||
*.stackdump
|
||||
|
||||
# Folder config file
|
||||
[Dd]esktop.ini
|
||||
|
||||
# Recycle Bin used on file shares
|
||||
$RECYCLE.BIN/
|
||||
|
||||
# Windows Installer files
|
||||
*.cab
|
||||
*.msi
|
||||
*.msix
|
||||
*.msm
|
||||
*.msp
|
||||
|
||||
# Windows shortcuts
|
||||
*.lnk
|
||||
|
||||
### JetBrains IDE
|
||||
# Covers JetBrains IDEs: IntelliJ, GoLand, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
|
||||
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
|
||||
|
||||
# User-specific stuff
|
||||
.idea
|
||||
|
||||
# Gradle and Maven with auto-import
|
||||
*.iml
|
||||
*.ipr
|
||||
|
||||
# File-based project format
|
||||
*.iws
|
||||
|
||||
# IntelliJ
|
||||
out/
|
||||
|
||||
# JIRA plugin
|
||||
atlassian-ide-plugin.xml
|
||||
|
||||
# Crashlytics plugin (for Android Studio and IntelliJ)
|
||||
com_crashlytics_export_strings.xml
|
||||
crashlytics.properties
|
||||
crashlytics-build.properties
|
||||
fabric.properties
|
||||
|
||||
# Editor-based HTTP Client
|
||||
http-client.private.env.json
|
||||
|
||||
### Server
|
||||
# Compiled class file
|
||||
*.class
|
||||
|
||||
# Log file
|
||||
*.log
|
||||
|
||||
# BlueJ files
|
||||
*.ctxt
|
||||
|
||||
# Mobile Tools for Java (J2ME)
|
||||
.mtj.tmp/
|
||||
|
||||
# Package Files #
|
||||
*.war
|
||||
*.nar
|
||||
*.ear
|
||||
*.zip
|
||||
*.tar.gz
|
||||
*.rar
|
||||
*.jar
|
||||
|
||||
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
|
||||
hs_err_pid*
|
||||
replay_pid*
|
||||
|
||||
# Config
|
||||
config/*.yml
|
||||
config/*.yaml
|
||||
config/*.properties
|
||||
|
||||
# Tests
|
||||
test/
|
||||
|
||||
### Gradle
|
||||
.gradle
|
||||
**/build/
|
||||
!**/src/**/build/
|
||||
|
||||
!gradle/
|
||||
!gradle/wrapper
|
||||
!gradle/wrapper/gradle-wrapper.jar
|
||||
!gradle/wrapper/gradle-wrapper.properties
|
||||
gradle-app.setting
|
||||
.gradletasknamecache
|
||||
|
||||
### Claude Code
|
||||
.claude/settings.local.json
|
||||
.claude/memory/
|
||||
.claude/plans/
|
||||
.claude/worktrees/
|
||||
.claude/scheduled_tasks.json
|
||||
|
||||
# Eclipse Gradle plugin generated files
|
||||
# Eclipse Core
|
||||
.project
|
||||
# JDT-specific (Eclipse Java Development Tools)
|
||||
.classpath
|
||||
|
||||
gradle.properties
|
||||
|
||||
# frp config
|
||||
frpc.toml
|
||||
@@ -1,109 +0,0 @@
|
||||
# CLAUDE.md
|
||||
|
||||
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
||||
|
||||
## Coding Standards
|
||||
|
||||
- **Style**: Follow the Google Java Coding Style as the foundation.
|
||||
- **Indentation**: Use 4 spaces — no tabs.
|
||||
- **Line length**: Maximum 100 characters per line.
|
||||
- **Comments**: All code comments must use British English spelling (e.g. "colour" not "color", "behaviour" not "behavior", "serialise" not "serialize", "analyse" not "analyze", "traveller" not "traveler").
|
||||
|
||||
## Build & Test Commands
|
||||
|
||||
```bash
|
||||
# Build the project (skip tests)
|
||||
./gradlew build -x test
|
||||
|
||||
# Run all tests
|
||||
./gradlew test
|
||||
|
||||
# Run a single test class
|
||||
./gradlew test --tests "com.onixbyte.deltaforceguide.service.PasswordEncoderTest"
|
||||
|
||||
# Run a specific test method
|
||||
./gradlew test --tests "com.onixbyte.deltaforceguide.service.PasswordEncoderTest.generatePassword"
|
||||
|
||||
# Build the full JAR
|
||||
./gradlew bootJar
|
||||
```
|
||||
|
||||
The project uses Gradle with Java 21 (Amazon Corretto). Tests use JUnit 5 with the Spring Boot test framework, H2 in-memory database for test runtime, and Spring Security test support. Tests require an active `dev` profile.
|
||||
|
||||
## Code Architecture
|
||||
|
||||
**Delta Force Guide Server** — A REST API backend for managing Delta Force game firearm builds/modifications.
|
||||
|
||||
### Package structure
|
||||
|
||||
```
|
||||
com.onixbyte.deltaforceguide
|
||||
├── client/ # External service clients (TokenClient for JWT)
|
||||
├── config/ # Spring beans: Security, CORS, Cache/Redis, Jackson, MyBatis, Spring Data
|
||||
├── controller/ # REST controllers (Firearm, Modification, Tag, Auth)
|
||||
├── domain/
|
||||
│ ├── converter/ # JPA attribute converters (FirearmTypeConverter)
|
||||
│ ├── dto/ # Request/response records (FirearmRequest, ModificationResponse, etc.)
|
||||
│ └── entity/ # JPA entities (Firearm, Modification, User, Accessory, Tuning)
|
||||
├── enumeration/ # Enums (FirearmType)
|
||||
├── exeption/ # BizException (custom runtime exception with HTTP status)
|
||||
├── filter/ # TokenAuthenticationFilter (JWT auth via OncePerRequestFilter)
|
||||
├── manager/ # Thin @Transactional wrappers around repositories
|
||||
├── mapper/ # MyBatis mappers (configured but currently unused)
|
||||
├── properties/ # @ConfigurationProperties records (Cors, Token, Cookie)
|
||||
├── repository/ # Spring Data JPA repositories
|
||||
├── security/
|
||||
│ ├── authentication/ # Custom UsernamePasswordAuthentication impl
|
||||
│ └── provider/ # UsernamePasswordAuthenticationProvider
|
||||
├── service/ # Business logic layer (FirearmService, ModificationService, AuthService, etc.)
|
||||
├── shared/ # Constants and utility classes (CookieName, CredentialProvider, JacksonModules)
|
||||
└── utils/ # Helpers (DateTimeUtil)
|
||||
```
|
||||
|
||||
### Key design decisions
|
||||
|
||||
- **JPA + native queries**: Most CRUD uses Spring Data JPA. Native queries (in `ModificationRepository`) handle JSONB tag filtering with Postgres `@>` operator.
|
||||
- **Custom auth flow**: JWT tokens in httpOnly cookies (`AccessToken`). Spring Security with a custom `UsernamePasswordAuthenticationProvider` and `TokenAuthenticationFilter`. Tokens are auto-renewed within 5 min of expiry.
|
||||
- **JSONB storage**: `Modification.tags` and `Modification.accessories` (including nested `Tuning` objects) are stored as JSONB columns using Hypersistence Utils `JsonType`.
|
||||
- **Strict layering**: The call chain must follow `Controller → Service → Manager → Repository/Mapper`. Skipping layers (e.g. Controller calling Manager directly, Service calling Repository directly) is not permitted. Each layer has a distinct responsibility: Controller handles HTTP concerns, Service contains business logic, Manager manages `@Transactional` boundaries and data access coordination, Repository/Mapper handles raw data access.
|
||||
- **DTOs as Java records**: All request/response objects are immutable records with static `from()` factory methods for entity→DTO conversion.
|
||||
- **Flyway migrations**: SQL migrations in `src/main/resources/db/migration/` — V2 (init), V3 (bullet/damage fields), V4 (user), V5 (accessories JSONB column).
|
||||
|
||||
### Data model
|
||||
|
||||
- `firearm` table: id, name, type (int→FirearmType enum), level, calibre, fire_rate, armour_damage, body_damage, review
|
||||
- `modification` table: id, firearm_id (FK→firearm), name, code, tags (jsonb), accessories (jsonb), note, author, video_url
|
||||
- `app_user` table: id, username, email
|
||||
- `user_credential` table: user_id, provider, credential (hashed)
|
||||
|
||||
### API endpoints
|
||||
|
||||
| Path | Methods | Auth |
|
||||
|-------------------------------|------------------|--------------------------------------|
|
||||
| `/firearms` | GET, POST | GET public, POST requires auth |
|
||||
| `/firearms/{id}` | GET, PUT, DELETE | GET public, PUT/DELETE requires auth |
|
||||
| `/modifications` | GET, POST | GET public, POST requires auth |
|
||||
| `/modifications/{id}` | GET, PUT, DELETE | GET public, PUT/DELETE requires auth |
|
||||
| `/modifications/batch` | POST | Requires auth |
|
||||
| `/modifications/batch-delete` | DELETE | Requires auth |
|
||||
| `/tags` | GET | Public |
|
||||
| `/auth/login` | POST | Public |
|
||||
| `/auth/logout` | POST | Authenticated |
|
||||
|
||||
### Commit convention
|
||||
|
||||
Conventional commits: `feat:`, `chore:`, `fix:`. Messages are in English, present tense imperative style.
|
||||
|
||||
### External dependencies
|
||||
|
||||
- **DB**: PostgreSQL (via Flyway migrations), H2 in test
|
||||
- **Cache**: Redis (via Spring Cache + RedisTemplate with GenericJackson2JsonRedisSerializer)
|
||||
- **Auth**: java-jwt (auth0), BCrypt
|
||||
- **Docs**: springdoc-openapi (Swagger UI) on dev profile
|
||||
- **Onixbyte internal libs**: version-catalogue, tuple, common-toolbox, math-toolbox, identity-generator, captcha, regions
|
||||
- **AWS**: S3 SDK
|
||||
|
||||
### Profiles
|
||||
|
||||
- `dev`: Enables Swagger UI, connects to dev DB/Redis at `dfguide.onixbyte.cn`. Config in `config/application-dev.yaml`.
|
||||
- Default profile: Used for production, no Swagger, connects to production datasource.
|
||||
+1
-1
@@ -6,5 +6,5 @@ RUN chmod +x ./gradlew && \
|
||||
|
||||
FROM amazoncorretto:21-alpine AS runner
|
||||
WORKDIR /app
|
||||
COPY --from=builder /app/build/libs/delta-force-guide-server-1.0.0.jar app.jar
|
||||
COPY --from=builder /app/build/libs/ahsarah-guide-server-*.jar app.jar
|
||||
ENTRYPOINT ["java", "-jar", "app.jar"]
|
||||
@@ -8,11 +8,11 @@ ARG BUILD_DATE
|
||||
|
||||
COPY ${JAR_FILE} app.jar
|
||||
|
||||
LABEL org.opencontainers.image.title="delta-force-guide-server" \
|
||||
org.opencontainers.image.description="REST API backend for managing Delta Force game firearm builds and modifications" \
|
||||
LABEL org.opencontainers.image.title="ahsarah-guide-server" \
|
||||
org.opencontainers.image.description="REST API backend for Ahsarah Guide" \
|
||||
org.opencontainers.image.version="${IMAGE_VERSION}" \
|
||||
org.opencontainers.image.vendor="${IMAGE_VENDOR}" \
|
||||
org.opencontainers.image.source="https://git.onixbyte.com/onixbyte/delta-force-guide-server" \
|
||||
org.opencontainers.image.source="https://onixbyte.dev/onixbyte/ahsarah-guide" \
|
||||
org.opencontainers.image.licenses="MIT" \
|
||||
org.opencontainers.image.created="${BUILD_DATE}"
|
||||
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
MIT Licence
|
||||
|
||||
Copyright (c) 2026 OnixByte
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
@@ -1,150 +0,0 @@
|
||||
# Delta Force Guide Server
|
||||
|
||||
REST API backend for managing **Delta Force** game firearm builds and modifications. Provides endpoints to browse, create, and share weapon configurations including attachments, tuning setups, tags, and build reviews.
|
||||
|
||||
|
||||
## Tech Stack
|
||||
|
||||
| Layer | Technology |
|
||||
|-----------|------------------------------------------------------------|
|
||||
| Language | Java 21 (Amazon Corretto) |
|
||||
| Framework | Spring Boot 3.x (Web, Security, Data JPA, Cache, Actuator) |
|
||||
| Build | Gradle (Kotlin DSL) |
|
||||
| Database | PostgreSQL (Flyway migrations, JSONB columns) |
|
||||
| Cache | Redis (2-hour TTL) |
|
||||
| Auth | Custom JWT via httpOnly cookies + BCrypt |
|
||||
| API Docs | springdoc-openapi (Swagger UI, dev profile only) |
|
||||
| Container | Multi-stage Docker image (Amazon Corretto 21 → Alpine) |
|
||||
| CI/CD | GitHub Actions — builds on release publish |
|
||||
|
||||
|
||||
## Quick Start
|
||||
|
||||
### Prerequisites
|
||||
|
||||
- JDK 21 (Amazon Corretto recommended)
|
||||
- PostgreSQL
|
||||
- Redis
|
||||
|
||||
### Configure
|
||||
|
||||
Copy and customise the development config:
|
||||
|
||||
```bash
|
||||
cp config/application-prod.yaml.example \
|
||||
config/application-dev.yaml
|
||||
```
|
||||
|
||||
Fill in your datasource and Redis connection details, then place the production config at `config/`, then enable it by environment variable `SPRING_PROFILES_ACTIVE`.
|
||||
|
||||
### Build
|
||||
|
||||
```bash
|
||||
# Compile (skip tests)
|
||||
./gradlew build -x test
|
||||
|
||||
# Run all tests
|
||||
./gradlew test
|
||||
|
||||
# Build executable JAR
|
||||
./gradlew bootJar
|
||||
```
|
||||
|
||||
### Run
|
||||
|
||||
```bash
|
||||
SPRING_PROFILES_ACTIVE=prod java -jar build/libs/delta-force-guide-server-$version.jar
|
||||
```
|
||||
|
||||
Swagger UI is available at `http://localhost:8080/swagger-ui.html` when the `dev` profile is active.
|
||||
|
||||
## Data Model
|
||||
|
||||
- **Firearm** — weapon base stats (name, type, level, calibre, fire rate, armour/body damage, review)
|
||||
- **Modification** — a build attached to a firearm, with name, code, tags (JSONB), accessories including nested tuning objects (JSONB), author notes, and video links
|
||||
- **App User** — registered user (username, email) with hashed credentials via BCrypt
|
||||
|
||||
Tags and accessories are stored as PostgreSQL JSONB columns using [Hypersistence Utils](https://github.com/vladmihalcea/hypersistence-utils), enabling flexible per-build metadata and filtering with the `@>` operator.
|
||||
|
||||
|
||||
## Architecture
|
||||
|
||||
```
|
||||
Controller → Service → Manager → Repository / Mapper
|
||||
(HTTP) (logic) (@Transactional) (data access)
|
||||
```
|
||||
|
||||
The call chain is strictly enforced — skipping layers is not permitted. All request/response objects are Java records with static `from()` factory methods for entity-to-DTO conversion.
|
||||
|
||||
|
||||
## Docker
|
||||
|
||||
```bash
|
||||
# Build image
|
||||
docker pull registry.onixbyte.cn/onixbyte/delta-force-guide-server:latest
|
||||
|
||||
# Run container
|
||||
docker run -p 8080:8080 \
|
||||
-v /path/to/config:/app/config \
|
||||
-e SPRING_PROFILES_ACTIVE=$your_active_profiles
|
||||
delta-force-guide-server
|
||||
```
|
||||
|
||||
Pre-built images are published to **Self-hosted GitLab Container Registry** (`registry.onixbyte.cn/onixbyte/delta-force-guide-server`) on every release.
|
||||
|
||||
|
||||
## CI/CD
|
||||
|
||||
GitLab CI triggers on **tags**. The pipeline:
|
||||
|
||||
1. Builds the boot JAR with the release tag as the version
|
||||
2. Uploads the JAR as a release asset
|
||||
3. Builds and pushes a multi-arch Docker image to GHCR tagged with both `:latest` and `:<version>`
|
||||
|
||||
No tests are run in CI by design — tests are expected to pass locally before a release is cut.
|
||||
|
||||
|
||||
## Profiles
|
||||
|
||||
| Profile | Purpose |
|
||||
|---------|-----------------------------------------------------------------------|
|
||||
| `dev` | Enables Swagger UI, connects to dev DB/Redis at `dfguide.onixbyte.cn` |
|
||||
| default | Production mode, no Swagger, uses production datasource |
|
||||
|
||||
|
||||
## Project Structure
|
||||
|
||||
```
|
||||
src/main/java/com/onixbyte/deltaforceguide/
|
||||
├── client/ External service HTTP clients
|
||||
├── config/ Spring bean definitions (Security, CORS, Cache, Jackson, MyBatis)
|
||||
├── controller/ REST controllers
|
||||
├── domain/
|
||||
│ ├── converter/ JPA attribute converters
|
||||
│ ├── dto/ Request/response records
|
||||
│ └── entity/ JPA entities
|
||||
├── enumeration/ Enums (FirearmType)
|
||||
├── exception/ Custom BizException with HTTP status mapping
|
||||
├── filter/ TokenAuthenticationFilter (JWT through OncePerRequestFilter)
|
||||
├── manager/ @Transactional wrappers around repositories
|
||||
├── mapper/ MyBatis mapper interfaces (reserved for future use)
|
||||
├── properties/ @ConfigurationProperties records
|
||||
├── repository/ Spring Data JPA repositories
|
||||
├── security/
|
||||
│ ├── authentication/ Custom UsernamePasswordAuthentication
|
||||
│ └── provider/ UsernamePasswordAuthenticationProvider
|
||||
├── service/ Business logic
|
||||
├── shared/ Constants and utility classes
|
||||
└── utils/ General-purpose helpers
|
||||
```
|
||||
|
||||
|
||||
## Versioning
|
||||
|
||||
The application exposes its version at `/versions` (GET).
|
||||
|
||||
|
||||
## Licence
|
||||
|
||||
This project is licensed under the [MIT Licence](LICENCE). Copyright © 2026 OnixByte.
|
||||
|
||||
@@ -8,7 +8,7 @@ val artefactVersion: String by project
|
||||
val buildChannel: String by project
|
||||
val vendor: String by project
|
||||
|
||||
group = "com.onixbyte.helix"
|
||||
group = "com.onixbyte.ahsarahguide"
|
||||
version = artefactVersion
|
||||
|
||||
tasks.withType<JavaCompile> {
|
||||
|
||||
@@ -95,7 +95,7 @@ app:
|
||||
max-age: PT2H
|
||||
jwt:
|
||||
# Issuer identifier, domain name is recommended.
|
||||
issuer: dfguide.local
|
||||
issuer: ahsarah-guide.local
|
||||
|
||||
# Token signing secret, a 32-byte long or longer string is recommended.
|
||||
secret: qwertyuiopasdfghjklzxcvbnm123456
|
||||
|
||||
@@ -11,4 +11,4 @@ dependencyResolutionManagement {
|
||||
}
|
||||
}
|
||||
|
||||
rootProject.name = "delta-force-guide-server"
|
||||
rootProject.name = "ahsarah-guide-server"
|
||||
+4
-4
@@ -1,20 +1,20 @@
|
||||
package com.onixbyte.deltaforceguide;
|
||||
package com.onixbyte.ahsarahguide;
|
||||
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
import org.springframework.scheduling.annotation.EnableAsync;
|
||||
|
||||
/**
|
||||
* Entry point for the Delta Force Guide Server application.
|
||||
* Entry point for the Ahsarah Guide Server application.
|
||||
*
|
||||
* @author zihluwang
|
||||
*/
|
||||
@EnableAsync
|
||||
@SpringBootApplication
|
||||
public class DeltaForceGuideApplication {
|
||||
public class AhsarahGuideApplication {
|
||||
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(DeltaForceGuideApplication.class, args);
|
||||
SpringApplication.run(AhsarahGuideApplication.class, args);
|
||||
}
|
||||
|
||||
}
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.onixbyte.deltaforceguide.client;
|
||||
package com.onixbyte.ahsarahguide.client;
|
||||
|
||||
import jakarta.mail.MessagingException;
|
||||
import jakarta.mail.internet.InternetAddress;
|
||||
+4
-4
@@ -1,12 +1,12 @@
|
||||
package com.onixbyte.deltaforceguide.client;
|
||||
package com.onixbyte.ahsarahguide.client;
|
||||
|
||||
import com.auth0.jwt.JWT;
|
||||
import com.auth0.jwt.JWTVerifier;
|
||||
import com.auth0.jwt.algorithms.Algorithm;
|
||||
import com.auth0.jwt.interfaces.DecodedJWT;
|
||||
import com.onixbyte.deltaforceguide.domain.entity.User;
|
||||
import com.onixbyte.deltaforceguide.properties.TokenProperties;
|
||||
import com.onixbyte.deltaforceguide.utils.DateTimeUtil;
|
||||
import com.onixbyte.ahsarahguide.domain.entity.User;
|
||||
import com.onixbyte.ahsarahguide.properties.TokenProperties;
|
||||
import com.onixbyte.ahsarahguide.utils.DateTimeUtil;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
+5
-5
@@ -1,9 +1,9 @@
|
||||
package com.onixbyte.deltaforceguide.config;
|
||||
package com.onixbyte.ahsarahguide.config;
|
||||
|
||||
import com.onixbyte.deltaforceguide.interceptor.GitHubWebhookInterceptor;
|
||||
import com.onixbyte.deltaforceguide.interceptor.TrafficInterceptor;
|
||||
import com.onixbyte.deltaforceguide.properties.AppProperties;
|
||||
import com.onixbyte.deltaforceguide.security.resolver.CurrentUserArgumentResolver;
|
||||
import com.onixbyte.ahsarahguide.interceptor.GitHubWebhookInterceptor;
|
||||
import com.onixbyte.ahsarahguide.interceptor.TrafficInterceptor;
|
||||
import com.onixbyte.ahsarahguide.properties.AppProperties;
|
||||
import com.onixbyte.ahsarahguide.security.resolver.CurrentUserArgumentResolver;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
package com.onixbyte.deltaforceguide.config;
|
||||
package com.onixbyte.ahsarahguide.config;
|
||||
|
||||
import com.onixbyte.deltaforceguide.shared.JacksonRedisSerialiser;
|
||||
import com.onixbyte.ahsarahguide.shared.JacksonRedisSerialiser;
|
||||
import org.springframework.cache.annotation.EnableCaching;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
package com.onixbyte.deltaforceguide.config;
|
||||
package com.onixbyte.ahsarahguide.config;
|
||||
|
||||
import com.onixbyte.deltaforceguide.properties.CorsProperties;
|
||||
import com.onixbyte.ahsarahguide.properties.CorsProperties;
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.onixbyte.deltaforceguide.config;
|
||||
package com.onixbyte.ahsarahguide.config;
|
||||
|
||||
import com.onixbyte.captcha.text.TextProducer;
|
||||
import com.onixbyte.captcha.text.impl.DefaultTextProducer;
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
package com.onixbyte.deltaforceguide.config;
|
||||
package com.onixbyte.ahsarahguide.config;
|
||||
|
||||
import com.onixbyte.deltaforceguide.filter.WebhookFilter;
|
||||
import com.onixbyte.ahsarahguide.filter.WebhookFilter;
|
||||
import org.springframework.boot.web.servlet.FilterRegistrationBean;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
+2
-2
@@ -1,7 +1,7 @@
|
||||
package com.onixbyte.deltaforceguide.config;
|
||||
package com.onixbyte.ahsarahguide.config;
|
||||
|
||||
import com.fasterxml.jackson.databind.SerializationFeature;
|
||||
import com.onixbyte.deltaforceguide.shared.JacksonModules;
|
||||
import com.onixbyte.ahsarahguide.shared.JacksonModules;
|
||||
import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
+2
-2
@@ -1,4 +1,4 @@
|
||||
package com.onixbyte.deltaforceguide.config;
|
||||
package com.onixbyte.ahsarahguide.config;
|
||||
|
||||
import org.mybatis.spring.annotation.MapperScan;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
@@ -9,7 +9,7 @@ import org.springframework.context.annotation.Configuration;
|
||||
* @author zihluwang
|
||||
*/
|
||||
@Configuration
|
||||
@MapperScan(basePackages = {"com.onixbyte.deltaforceguide.mapper"})
|
||||
@MapperScan(basePackages = {"com.onixbyte.ahsarahguide.mapper"})
|
||||
public class MyBatisConfig {
|
||||
}
|
||||
|
||||
+4
-4
@@ -1,4 +1,4 @@
|
||||
package com.onixbyte.deltaforceguide.config;
|
||||
package com.onixbyte.ahsarahguide.config;
|
||||
|
||||
import io.swagger.v3.oas.annotations.OpenAPIDefinition;
|
||||
import io.swagger.v3.oas.annotations.info.Contact;
|
||||
@@ -8,8 +8,8 @@ import org.springframework.context.annotation.Configuration;
|
||||
|
||||
@OpenAPIDefinition(
|
||||
info = @Info(
|
||||
title = "Delta Force Guide Server",
|
||||
description = "API for managing Delta Force game firearm builds",
|
||||
title = "Ahsarah Guide Server",
|
||||
description = "API for Ahsarah Guide",
|
||||
version = "1.4.0",
|
||||
contact = @Contact(
|
||||
name = "Zihlu Wang",
|
||||
@@ -17,7 +17,7 @@ import org.springframework.context.annotation.Configuration;
|
||||
),
|
||||
license = @License(
|
||||
name = "MIT",
|
||||
url = "https://onixbyte.dev/onixbyte/delta-force-guide-server/raw/branch/main/LICENCE"
|
||||
url = "https://onixbyte.dev/onixbyte/ahsarah-guide/raw/branch/main/LICENCE"
|
||||
)
|
||||
)
|
||||
)
|
||||
+7
-7
@@ -1,14 +1,14 @@
|
||||
package com.onixbyte.deltaforceguide.config;
|
||||
package com.onixbyte.ahsarahguide.config;
|
||||
|
||||
import com.auth0.jwt.JWT;
|
||||
import com.auth0.jwt.JWTVerifier;
|
||||
import com.auth0.jwt.algorithms.Algorithm;
|
||||
import com.onixbyte.deltaforceguide.exeption.ForbiddenException;
|
||||
import com.onixbyte.deltaforceguide.exeption.UnauthorisedException;
|
||||
import com.onixbyte.deltaforceguide.filter.TokenAuthenticationFilter;
|
||||
import com.onixbyte.deltaforceguide.properties.CookieProperties;
|
||||
import com.onixbyte.deltaforceguide.properties.TokenProperties;
|
||||
import com.onixbyte.deltaforceguide.security.provider.UsernamePasswordAuthenticationProvider;
|
||||
import com.onixbyte.ahsarahguide.exeption.ForbiddenException;
|
||||
import com.onixbyte.ahsarahguide.exeption.UnauthorisedException;
|
||||
import com.onixbyte.ahsarahguide.filter.TokenAuthenticationFilter;
|
||||
import com.onixbyte.ahsarahguide.properties.CookieProperties;
|
||||
import com.onixbyte.ahsarahguide.properties.TokenProperties;
|
||||
import com.onixbyte.ahsarahguide.security.provider.UsernamePasswordAuthenticationProvider;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
+2
-2
@@ -1,4 +1,4 @@
|
||||
package com.onixbyte.deltaforceguide.config;
|
||||
package com.onixbyte.ahsarahguide.config;
|
||||
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
|
||||
@@ -9,7 +9,7 @@ import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
|
||||
* @author zihluwang
|
||||
*/
|
||||
@Configuration
|
||||
@EnableJpaRepositories(basePackages = {"com.onixbyte.deltaforceguide.repository"})
|
||||
@EnableJpaRepositories(basePackages = {"com.onixbyte.ahsarahguide.repository"})
|
||||
public class SpringDataConfig {
|
||||
}
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
package com.onixbyte.deltaforceguide.config;
|
||||
package com.onixbyte.ahsarahguide.config;
|
||||
|
||||
import com.onixbyte.deltaforceguide.properties.GitHubWebhookProperties;
|
||||
import com.onixbyte.ahsarahguide.properties.GitHubWebhookProperties;
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
+4
-4
@@ -1,8 +1,8 @@
|
||||
package com.onixbyte.deltaforceguide.controller;
|
||||
package com.onixbyte.ahsarahguide.controller;
|
||||
|
||||
import com.onixbyte.deltaforceguide.domain.dto.ManageRoleRequest;
|
||||
import com.onixbyte.deltaforceguide.security.annotation.RequiresAuth;
|
||||
import com.onixbyte.deltaforceguide.service.UserService;
|
||||
import com.onixbyte.ahsarahguide.domain.dto.ManageRoleRequest;
|
||||
import com.onixbyte.ahsarahguide.security.annotation.RequiresAuth;
|
||||
import com.onixbyte.ahsarahguide.service.UserService;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import jakarta.validation.Valid;
|
||||
+4
-4
@@ -1,8 +1,8 @@
|
||||
package com.onixbyte.deltaforceguide.controller;
|
||||
package com.onixbyte.ahsarahguide.controller;
|
||||
|
||||
import com.onixbyte.deltaforceguide.domain.dto.*;
|
||||
import com.onixbyte.deltaforceguide.security.annotation.RequiresAuth;
|
||||
import com.onixbyte.deltaforceguide.service.AuthService;
|
||||
import com.onixbyte.ahsarahguide.domain.dto.*;
|
||||
import com.onixbyte.ahsarahguide.security.annotation.RequiresAuth;
|
||||
import com.onixbyte.ahsarahguide.service.AuthService;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import org.springframework.http.HttpHeaders;
|
||||
+3
-3
@@ -1,7 +1,7 @@
|
||||
package com.onixbyte.deltaforceguide.controller;
|
||||
package com.onixbyte.ahsarahguide.controller;
|
||||
|
||||
import com.onixbyte.deltaforceguide.domain.dto.DailyPasswordResponse;
|
||||
import com.onixbyte.deltaforceguide.service.DailyPasswordService;
|
||||
import com.onixbyte.ahsarahguide.domain.dto.DailyPasswordResponse;
|
||||
import com.onixbyte.ahsarahguide.service.DailyPasswordService;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
+7
-7
@@ -1,11 +1,11 @@
|
||||
package com.onixbyte.deltaforceguide.controller;
|
||||
package com.onixbyte.ahsarahguide.controller;
|
||||
|
||||
import com.onixbyte.deltaforceguide.domain.dto.FirearmRequest;
|
||||
import com.onixbyte.deltaforceguide.domain.dto.FirearmResponse;
|
||||
import com.onixbyte.deltaforceguide.domain.dto.PageResponse;
|
||||
import com.onixbyte.deltaforceguide.enumeration.FirearmType;
|
||||
import com.onixbyte.deltaforceguide.security.annotation.RequiresAuth;
|
||||
import com.onixbyte.deltaforceguide.service.FirearmService;
|
||||
import com.onixbyte.ahsarahguide.domain.dto.FirearmRequest;
|
||||
import com.onixbyte.ahsarahguide.domain.dto.FirearmResponse;
|
||||
import com.onixbyte.ahsarahguide.domain.dto.PageResponse;
|
||||
import com.onixbyte.ahsarahguide.enumeration.FirearmType;
|
||||
import com.onixbyte.ahsarahguide.security.annotation.RequiresAuth;
|
||||
import com.onixbyte.ahsarahguide.service.FirearmService;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import jakarta.validation.constraints.Max;
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
package com.onixbyte.deltaforceguide.controller;
|
||||
package com.onixbyte.ahsarahguide.controller;
|
||||
|
||||
import com.onixbyte.deltaforceguide.domain.dto.ErrorResponse;
|
||||
import com.onixbyte.ahsarahguide.domain.dto.ErrorResponse;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.security.access.AccessDeniedException;
|
||||
+9
-9
@@ -1,13 +1,13 @@
|
||||
package com.onixbyte.deltaforceguide.controller;
|
||||
package com.onixbyte.ahsarahguide.controller;
|
||||
|
||||
import com.onixbyte.deltaforceguide.domain.dto.ModificationBatchCreateRequest;
|
||||
import com.onixbyte.deltaforceguide.domain.dto.ModificationRequest;
|
||||
import com.onixbyte.deltaforceguide.domain.dto.ModificationResponse;
|
||||
import com.onixbyte.deltaforceguide.domain.dto.PageResponse;
|
||||
import com.onixbyte.deltaforceguide.domain.entity.User;
|
||||
import com.onixbyte.deltaforceguide.security.annotation.RequiresAuth;
|
||||
import com.onixbyte.deltaforceguide.security.resolver.CurrentUser;
|
||||
import com.onixbyte.deltaforceguide.service.ModificationService;
|
||||
import com.onixbyte.ahsarahguide.domain.dto.ModificationBatchCreateRequest;
|
||||
import com.onixbyte.ahsarahguide.domain.dto.ModificationRequest;
|
||||
import com.onixbyte.ahsarahguide.domain.dto.ModificationResponse;
|
||||
import com.onixbyte.ahsarahguide.domain.dto.PageResponse;
|
||||
import com.onixbyte.ahsarahguide.domain.entity.User;
|
||||
import com.onixbyte.ahsarahguide.security.annotation.RequiresAuth;
|
||||
import com.onixbyte.ahsarahguide.security.resolver.CurrentUser;
|
||||
import com.onixbyte.ahsarahguide.service.ModificationService;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import jakarta.validation.Valid;
|
||||
+2
-2
@@ -1,4 +1,4 @@
|
||||
package com.onixbyte.deltaforceguide.controller;
|
||||
package com.onixbyte.ahsarahguide.controller;
|
||||
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
@@ -6,7 +6,7 @@ import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import com.onixbyte.deltaforceguide.service.ModificationService;
|
||||
import com.onixbyte.ahsarahguide.service.ModificationService;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
+10
-10
@@ -1,14 +1,14 @@
|
||||
package com.onixbyte.deltaforceguide.controller;
|
||||
package com.onixbyte.ahsarahguide.controller;
|
||||
|
||||
import com.onixbyte.deltaforceguide.domain.dto.BuildSummaryResponse;
|
||||
import com.onixbyte.deltaforceguide.domain.dto.ChangePasswordRequest;
|
||||
import com.onixbyte.deltaforceguide.domain.dto.PageResponse;
|
||||
import com.onixbyte.deltaforceguide.domain.dto.UpdateProfileRequest;
|
||||
import com.onixbyte.deltaforceguide.domain.dto.UserProfileResponse;
|
||||
import com.onixbyte.deltaforceguide.domain.entity.User;
|
||||
import com.onixbyte.deltaforceguide.security.annotation.RequiresAuth;
|
||||
import com.onixbyte.deltaforceguide.security.resolver.CurrentUser;
|
||||
import com.onixbyte.deltaforceguide.service.UserService;
|
||||
import com.onixbyte.ahsarahguide.domain.dto.BuildSummaryResponse;
|
||||
import com.onixbyte.ahsarahguide.domain.dto.ChangePasswordRequest;
|
||||
import com.onixbyte.ahsarahguide.domain.dto.PageResponse;
|
||||
import com.onixbyte.ahsarahguide.domain.dto.UpdateProfileRequest;
|
||||
import com.onixbyte.ahsarahguide.domain.dto.UserProfileResponse;
|
||||
import com.onixbyte.ahsarahguide.domain.entity.User;
|
||||
import com.onixbyte.ahsarahguide.security.annotation.RequiresAuth;
|
||||
import com.onixbyte.ahsarahguide.security.resolver.CurrentUser;
|
||||
import com.onixbyte.ahsarahguide.service.UserService;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import jakarta.validation.Valid;
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
package com.onixbyte.deltaforceguide.controller;
|
||||
package com.onixbyte.ahsarahguide.controller;
|
||||
|
||||
import com.onixbyte.deltaforceguide.service.AppService;
|
||||
import com.onixbyte.ahsarahguide.service.AppService;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
+4
-4
@@ -1,8 +1,8 @@
|
||||
package com.onixbyte.deltaforceguide.controller;
|
||||
package com.onixbyte.ahsarahguide.controller;
|
||||
|
||||
import com.onixbyte.deltaforceguide.domain.dto.GitHubIssueRequest;
|
||||
import com.onixbyte.deltaforceguide.service.WebhookService;
|
||||
import com.onixbyte.deltaforceguide.shared.GitHubWebhookHeader;
|
||||
import com.onixbyte.ahsarahguide.domain.dto.GitHubIssueRequest;
|
||||
import com.onixbyte.ahsarahguide.service.WebhookService;
|
||||
import com.onixbyte.ahsarahguide.shared.GitHubWebhookHeader;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import org.slf4j.Logger;
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
package com.onixbyte.deltaforceguide.domain.converter;
|
||||
package com.onixbyte.ahsarahguide.domain.converter;
|
||||
|
||||
import com.onixbyte.deltaforceguide.enumeration.FirearmType;
|
||||
import com.onixbyte.ahsarahguide.enumeration.FirearmType;
|
||||
import jakarta.persistence.AttributeConverter;
|
||||
import jakarta.persistence.Converter;
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
package com.onixbyte.deltaforceguide.domain.converter;
|
||||
package com.onixbyte.ahsarahguide.domain.converter;
|
||||
|
||||
import com.onixbyte.deltaforceguide.enumeration.ModificationStatus;
|
||||
import com.onixbyte.ahsarahguide.enumeration.ModificationStatus;
|
||||
import jakarta.persistence.AttributeConverter;
|
||||
import jakarta.persistence.Converter;
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.onixbyte.deltaforceguide.domain.dto;
|
||||
package com.onixbyte.ahsarahguide.domain.dto;
|
||||
|
||||
import jakarta.validation.Valid;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
package com.onixbyte.deltaforceguide.domain.dto;
|
||||
package com.onixbyte.ahsarahguide.domain.dto;
|
||||
|
||||
import com.onixbyte.deltaforceguide.domain.entity.Accessory;
|
||||
import com.onixbyte.ahsarahguide.domain.entity.Accessory;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.onixbyte.deltaforceguide.domain.dto;
|
||||
package com.onixbyte.ahsarahguide.domain.dto;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.onixbyte.deltaforceguide.domain.dto;
|
||||
package com.onixbyte.ahsarahguide.domain.dto;
|
||||
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.Pattern;
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.onixbyte.deltaforceguide.domain.dto;
|
||||
package com.onixbyte.ahsarahguide.domain.dto;
|
||||
|
||||
/**
|
||||
* DTO representing a single daily-generated password for a map.
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.onixbyte.deltaforceguide.domain.dto;
|
||||
package com.onixbyte.ahsarahguide.domain.dto;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.onixbyte.deltaforceguide.domain.dto;
|
||||
package com.onixbyte.ahsarahguide.domain.dto;
|
||||
|
||||
/**
|
||||
* DTO holding metadata about the daily password source and update tracking.
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.onixbyte.deltaforceguide.domain.dto;
|
||||
package com.onixbyte.ahsarahguide.domain.dto;
|
||||
|
||||
/**
|
||||
* Response DTO wrapping daily password data with metadata.
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.onixbyte.deltaforceguide.domain.dto;
|
||||
package com.onixbyte.ahsarahguide.domain.dto;
|
||||
|
||||
public record EmailVerificationCode(
|
||||
String username,
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.onixbyte.deltaforceguide.domain.dto;
|
||||
package com.onixbyte.ahsarahguide.domain.dto;
|
||||
|
||||
/**
|
||||
* Standard error response body returned on API failures.
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
package com.onixbyte.deltaforceguide.domain.dto;
|
||||
package com.onixbyte.ahsarahguide.domain.dto;
|
||||
|
||||
import com.onixbyte.deltaforceguide.enumeration.FirearmType;
|
||||
import com.onixbyte.ahsarahguide.enumeration.FirearmType;
|
||||
|
||||
/**
|
||||
* Request DTO for creating or updating a firearm.
|
||||
+3
-3
@@ -1,7 +1,7 @@
|
||||
package com.onixbyte.deltaforceguide.domain.dto;
|
||||
package com.onixbyte.ahsarahguide.domain.dto;
|
||||
|
||||
import com.onixbyte.deltaforceguide.domain.entity.Firearm;
|
||||
import com.onixbyte.deltaforceguide.enumeration.FirearmType;
|
||||
import com.onixbyte.ahsarahguide.domain.entity.Firearm;
|
||||
import com.onixbyte.ahsarahguide.enumeration.FirearmType;
|
||||
|
||||
/**
|
||||
* Response DTO for a firearm record, including associated modifications.
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.onixbyte.deltaforceguide.domain.dto;
|
||||
package com.onixbyte.ahsarahguide.domain.dto;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.databind.PropertyNamingStrategies;
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.onixbyte.deltaforceguide.domain.dto;
|
||||
package com.onixbyte.ahsarahguide.domain.dto;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.databind.PropertyNamingStrategies;
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.onixbyte.deltaforceguide.domain.dto;
|
||||
package com.onixbyte.ahsarahguide.domain.dto;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.databind.PropertyNamingStrategies;
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.onixbyte.deltaforceguide.domain.dto;
|
||||
package com.onixbyte.ahsarahguide.domain.dto;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.databind.PropertyNamingStrategies;
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.onixbyte.deltaforceguide.domain.dto;
|
||||
package com.onixbyte.ahsarahguide.domain.dto;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.databind.PropertyNamingStrategies;
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.onixbyte.deltaforceguide.domain.dto;
|
||||
package com.onixbyte.ahsarahguide.domain.dto;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.onixbyte.deltaforceguide.domain.dto;
|
||||
package com.onixbyte.ahsarahguide.domain.dto;
|
||||
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.onixbyte.deltaforceguide.domain.dto;
|
||||
package com.onixbyte.ahsarahguide.domain.dto;
|
||||
|
||||
import jakarta.validation.Valid;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.onixbyte.deltaforceguide.domain.dto;
|
||||
package com.onixbyte.ahsarahguide.domain.dto;
|
||||
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import jakarta.validation.constraints.Positive;
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.onixbyte.deltaforceguide.domain.dto;
|
||||
package com.onixbyte.ahsarahguide.domain.dto;
|
||||
|
||||
import jakarta.validation.Valid;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
package com.onixbyte.deltaforceguide.domain.dto;
|
||||
package com.onixbyte.ahsarahguide.domain.dto;
|
||||
|
||||
import com.onixbyte.deltaforceguide.domain.entity.Modification;
|
||||
import com.onixbyte.ahsarahguide.domain.entity.Modification;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.onixbyte.deltaforceguide.domain.dto;
|
||||
package com.onixbyte.ahsarahguide.domain.dto;
|
||||
|
||||
import org.springframework.data.domain.Page;
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.onixbyte.deltaforceguide.domain.dto;
|
||||
package com.onixbyte.ahsarahguide.domain.dto;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.Email;
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.onixbyte.deltaforceguide.domain.dto;
|
||||
package com.onixbyte.ahsarahguide.domain.dto;
|
||||
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.onixbyte.deltaforceguide.domain.dto;
|
||||
package com.onixbyte.ahsarahguide.domain.dto;
|
||||
|
||||
public record SendVerificationCodeResponse(
|
||||
String verificationCodeId
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.onixbyte.deltaforceguide.domain.dto;
|
||||
package com.onixbyte.ahsarahguide.domain.dto;
|
||||
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
package com.onixbyte.deltaforceguide.domain.dto;
|
||||
package com.onixbyte.ahsarahguide.domain.dto;
|
||||
|
||||
import com.onixbyte.deltaforceguide.domain.entity.Tuning;
|
||||
import com.onixbyte.ahsarahguide.domain.entity.Tuning;
|
||||
|
||||
/**
|
||||
* Response DTO for a tuning adjustment on an accessory.
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.onixbyte.deltaforceguide.domain.dto;
|
||||
package com.onixbyte.ahsarahguide.domain.dto;
|
||||
|
||||
import jakarta.validation.constraints.Email;
|
||||
import jakarta.validation.constraints.Size;
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
package com.onixbyte.deltaforceguide.domain.dto;
|
||||
package com.onixbyte.ahsarahguide.domain.dto;
|
||||
|
||||
import com.onixbyte.deltaforceguide.domain.entity.User;
|
||||
import com.onixbyte.ahsarahguide.domain.entity.User;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
package com.onixbyte.deltaforceguide.domain.dto;
|
||||
package com.onixbyte.ahsarahguide.domain.dto;
|
||||
|
||||
import com.onixbyte.deltaforceguide.domain.entity.User;
|
||||
import com.onixbyte.ahsarahguide.domain.entity.User;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.onixbyte.deltaforceguide.domain.entity;
|
||||
package com.onixbyte.ahsarahguide.domain.entity;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
+3
-3
@@ -1,7 +1,7 @@
|
||||
package com.onixbyte.deltaforceguide.domain.entity;
|
||||
package com.onixbyte.ahsarahguide.domain.entity;
|
||||
|
||||
import com.onixbyte.deltaforceguide.domain.converter.FirearmTypeConverter;
|
||||
import com.onixbyte.deltaforceguide.enumeration.FirearmType;
|
||||
import com.onixbyte.ahsarahguide.domain.converter.FirearmTypeConverter;
|
||||
import com.onixbyte.ahsarahguide.enumeration.FirearmType;
|
||||
import jakarta.persistence.CascadeType;
|
||||
import jakarta.persistence.Column;
|
||||
import jakarta.persistence.Convert;
|
||||
+3
-3
@@ -1,7 +1,7 @@
|
||||
package com.onixbyte.deltaforceguide.domain.entity;
|
||||
package com.onixbyte.ahsarahguide.domain.entity;
|
||||
|
||||
import com.onixbyte.deltaforceguide.domain.converter.ModificationStatusConverter;
|
||||
import com.onixbyte.deltaforceguide.enumeration.ModificationStatus;
|
||||
import com.onixbyte.ahsarahguide.domain.converter.ModificationStatusConverter;
|
||||
import com.onixbyte.ahsarahguide.enumeration.ModificationStatus;
|
||||
import io.hypersistence.utils.hibernate.type.json.JsonType;
|
||||
import jakarta.persistence.*;
|
||||
import org.hibernate.annotations.Type;
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.onixbyte.deltaforceguide.domain.entity;
|
||||
package com.onixbyte.ahsarahguide.domain.entity;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.onixbyte.deltaforceguide.domain.entity;
|
||||
package com.onixbyte.ahsarahguide.domain.entity;
|
||||
|
||||
import jakarta.persistence.CascadeType;
|
||||
import jakarta.persistence.Column;
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.onixbyte.deltaforceguide.domain.entity;
|
||||
package com.onixbyte.ahsarahguide.domain.entity;
|
||||
|
||||
import jakarta.persistence.Column;
|
||||
import jakarta.persistence.AttributeOverride;
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.onixbyte.deltaforceguide.domain.entity;
|
||||
package com.onixbyte.ahsarahguide.domain.entity;
|
||||
|
||||
import jakarta.persistence.Embeddable;
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.onixbyte.deltaforceguide.domain.entity;
|
||||
package com.onixbyte.ahsarahguide.domain.entity;
|
||||
|
||||
import jakarta.persistence.Column;
|
||||
import jakarta.persistence.Entity;
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.onixbyte.deltaforceguide.enumeration;
|
||||
package com.onixbyte.ahsarahguide.enumeration;
|
||||
|
||||
/**
|
||||
* Enumeration of firearm types in the Delta Force game.
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.onixbyte.deltaforceguide.enumeration;
|
||||
package com.onixbyte.ahsarahguide.enumeration;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Map;
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.onixbyte.deltaforceguide.exeption;
|
||||
package com.onixbyte.ahsarahguide.exeption;
|
||||
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.web.server.ResponseStatusException;
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.onixbyte.deltaforceguide.exeption;
|
||||
package com.onixbyte.ahsarahguide.exeption;
|
||||
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.web.server.ResponseStatusException;
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.onixbyte.deltaforceguide.exeption;
|
||||
package com.onixbyte.ahsarahguide.exeption;
|
||||
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.web.server.ResponseStatusException;
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.onixbyte.deltaforceguide.exeption;
|
||||
package com.onixbyte.ahsarahguide.exeption;
|
||||
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.web.server.ResponseStatusException;
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.onixbyte.deltaforceguide.exeption;
|
||||
package com.onixbyte.ahsarahguide.exeption;
|
||||
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.web.server.ResponseStatusException;
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.onixbyte.deltaforceguide.exeption;
|
||||
package com.onixbyte.ahsarahguide.exeption;
|
||||
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.web.server.ResponseStatusException;
|
||||
+7
-7
@@ -1,12 +1,12 @@
|
||||
package com.onixbyte.deltaforceguide.filter;
|
||||
package com.onixbyte.ahsarahguide.filter;
|
||||
|
||||
import com.auth0.jwt.exceptions.JWTVerificationException;
|
||||
import com.onixbyte.deltaforceguide.client.TokenClient;
|
||||
import com.onixbyte.deltaforceguide.exeption.UnauthorisedException;
|
||||
import com.onixbyte.deltaforceguide.manager.CookieManager;
|
||||
import com.onixbyte.deltaforceguide.manager.UserManager;
|
||||
import com.onixbyte.deltaforceguide.manager.UserRoleManager;
|
||||
import com.onixbyte.deltaforceguide.security.authentication.UsernamePasswordAuthentication;
|
||||
import com.onixbyte.ahsarahguide.client.TokenClient;
|
||||
import com.onixbyte.ahsarahguide.exeption.UnauthorisedException;
|
||||
import com.onixbyte.ahsarahguide.manager.CookieManager;
|
||||
import com.onixbyte.ahsarahguide.manager.UserManager;
|
||||
import com.onixbyte.ahsarahguide.manager.UserRoleManager;
|
||||
import com.onixbyte.ahsarahguide.security.authentication.UsernamePasswordAuthentication;
|
||||
import jakarta.servlet.FilterChain;
|
||||
import jakarta.servlet.ServletException;
|
||||
import jakarta.servlet.http.Cookie;
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
package com.onixbyte.deltaforceguide.filter;
|
||||
package com.onixbyte.ahsarahguide.filter;
|
||||
|
||||
import com.onixbyte.deltaforceguide.wrapper.RepeatedlyReadRequestWrapper;
|
||||
import com.onixbyte.ahsarahguide.wrapper.RepeatedlyReadRequestWrapper;
|
||||
import jakarta.servlet.*;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import org.springframework.stereotype.Component;
|
||||
+6
-6
@@ -1,11 +1,11 @@
|
||||
package com.onixbyte.deltaforceguide.interceptor;
|
||||
package com.onixbyte.ahsarahguide.interceptor;
|
||||
|
||||
import com.onixbyte.crypto.util.CryptoUtil;
|
||||
import com.onixbyte.deltaforceguide.exeption.InternalServerErrorException;
|
||||
import com.onixbyte.deltaforceguide.exeption.UnauthorisedException;
|
||||
import com.onixbyte.deltaforceguide.manager.WebhookManager;
|
||||
import com.onixbyte.deltaforceguide.shared.GitHubWebhookHeader;
|
||||
import com.onixbyte.deltaforceguide.wrapper.RepeatedlyReadRequestWrapper;
|
||||
import com.onixbyte.ahsarahguide.exeption.InternalServerErrorException;
|
||||
import com.onixbyte.ahsarahguide.exeption.UnauthorisedException;
|
||||
import com.onixbyte.ahsarahguide.manager.WebhookManager;
|
||||
import com.onixbyte.ahsarahguide.shared.GitHubWebhookHeader;
|
||||
import com.onixbyte.ahsarahguide.wrapper.RepeatedlyReadRequestWrapper;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import org.jspecify.annotations.NonNull;
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.onixbyte.deltaforceguide.interceptor;
|
||||
package com.onixbyte.ahsarahguide.interceptor;
|
||||
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
package com.onixbyte.deltaforceguide.manager;
|
||||
package com.onixbyte.ahsarahguide.manager;
|
||||
|
||||
import com.onixbyte.deltaforceguide.properties.AppProperties;
|
||||
import com.onixbyte.ahsarahguide.properties.AppProperties;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
package com.onixbyte.deltaforceguide.manager;
|
||||
package com.onixbyte.ahsarahguide.manager;
|
||||
|
||||
import com.onixbyte.deltaforceguide.properties.CookieProperties;
|
||||
import com.onixbyte.ahsarahguide.properties.CookieProperties;
|
||||
import org.springframework.boot.web.server.Cookie;
|
||||
import org.springframework.http.ResponseCookie;
|
||||
import org.springframework.stereotype.Component;
|
||||
+4
-4
@@ -1,11 +1,11 @@
|
||||
package com.onixbyte.deltaforceguide.manager;
|
||||
package com.onixbyte.ahsarahguide.manager;
|
||||
|
||||
import com.fasterxml.jackson.databind.DeserializationFeature;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.fasterxml.jackson.databind.PropertyNamingStrategies;
|
||||
import com.onixbyte.deltaforceguide.domain.dto.DailyPasswordResponse;
|
||||
import com.onixbyte.deltaforceguide.exeption.InternalServerErrorException;
|
||||
import com.onixbyte.deltaforceguide.shared.JacksonModules;
|
||||
import com.onixbyte.ahsarahguide.domain.dto.DailyPasswordResponse;
|
||||
import com.onixbyte.ahsarahguide.exeption.InternalServerErrorException;
|
||||
import com.onixbyte.ahsarahguide.shared.JacksonModules;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.redis.core.RedisTemplate;
|
||||
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
|
||||
+12
-12
@@ -1,16 +1,16 @@
|
||||
package com.onixbyte.deltaforceguide.manager;
|
||||
package com.onixbyte.ahsarahguide.manager;
|
||||
|
||||
import com.onixbyte.deltaforceguide.domain.entity.Accessory;
|
||||
import com.onixbyte.deltaforceguide.domain.entity.Firearm;
|
||||
import com.onixbyte.deltaforceguide.domain.entity.Modification;
|
||||
import com.onixbyte.deltaforceguide.domain.entity.Tuning;
|
||||
import com.onixbyte.deltaforceguide.domain.entity.User;
|
||||
import com.onixbyte.deltaforceguide.domain.dto.AccessoryRequest;
|
||||
import com.onixbyte.deltaforceguide.domain.dto.ModificationRequest;
|
||||
import com.onixbyte.deltaforceguide.domain.dto.ModificationResponse;
|
||||
import com.onixbyte.deltaforceguide.domain.dto.TuningRequest;
|
||||
import com.onixbyte.deltaforceguide.repository.FirearmRepository;
|
||||
import com.onixbyte.deltaforceguide.repository.ModificationRepository;
|
||||
import com.onixbyte.ahsarahguide.domain.entity.Accessory;
|
||||
import com.onixbyte.ahsarahguide.domain.entity.Firearm;
|
||||
import com.onixbyte.ahsarahguide.domain.entity.Modification;
|
||||
import com.onixbyte.ahsarahguide.domain.entity.Tuning;
|
||||
import com.onixbyte.ahsarahguide.domain.entity.User;
|
||||
import com.onixbyte.ahsarahguide.domain.dto.AccessoryRequest;
|
||||
import com.onixbyte.ahsarahguide.domain.dto.ModificationRequest;
|
||||
import com.onixbyte.ahsarahguide.domain.dto.ModificationResponse;
|
||||
import com.onixbyte.ahsarahguide.domain.dto.TuningRequest;
|
||||
import com.onixbyte.ahsarahguide.repository.FirearmRepository;
|
||||
import com.onixbyte.ahsarahguide.repository.ModificationRepository;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.data.jpa.domain.Specification;
|
||||
+3
-3
@@ -1,7 +1,7 @@
|
||||
package com.onixbyte.deltaforceguide.manager;
|
||||
package com.onixbyte.ahsarahguide.manager;
|
||||
|
||||
import com.onixbyte.deltaforceguide.domain.entity.UserCredential;
|
||||
import com.onixbyte.deltaforceguide.repository.UserCredentialRepository;
|
||||
import com.onixbyte.ahsarahguide.domain.entity.UserCredential;
|
||||
import com.onixbyte.ahsarahguide.repository.UserCredentialRepository;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.List;
|
||||
+5
-5
@@ -1,9 +1,9 @@
|
||||
package com.onixbyte.deltaforceguide.manager;
|
||||
package com.onixbyte.ahsarahguide.manager;
|
||||
|
||||
import com.onixbyte.deltaforceguide.domain.entity.User;
|
||||
import com.onixbyte.deltaforceguide.domain.entity.UserRole;
|
||||
import com.onixbyte.deltaforceguide.repository.UserRepository;
|
||||
import com.onixbyte.deltaforceguide.repository.UserRoleRepository;
|
||||
import com.onixbyte.ahsarahguide.domain.entity.User;
|
||||
import com.onixbyte.ahsarahguide.domain.entity.UserRole;
|
||||
import com.onixbyte.ahsarahguide.repository.UserRepository;
|
||||
import com.onixbyte.ahsarahguide.repository.UserRoleRepository;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
+3
-3
@@ -1,7 +1,7 @@
|
||||
package com.onixbyte.deltaforceguide.manager;
|
||||
package com.onixbyte.ahsarahguide.manager;
|
||||
|
||||
import com.onixbyte.deltaforceguide.domain.entity.UserRole;
|
||||
import com.onixbyte.deltaforceguide.repository.UserRoleRepository;
|
||||
import com.onixbyte.ahsarahguide.domain.entity.UserRole;
|
||||
import com.onixbyte.ahsarahguide.repository.UserRoleRepository;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.List;
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
package com.onixbyte.deltaforceguide.manager;
|
||||
package com.onixbyte.ahsarahguide.manager;
|
||||
|
||||
import com.onixbyte.deltaforceguide.properties.GitHubWebhookProperties;
|
||||
import com.onixbyte.ahsarahguide.properties.GitHubWebhookProperties;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.List;
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.onixbyte.deltaforceguide.properties;
|
||||
package com.onixbyte.ahsarahguide.properties;
|
||||
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.onixbyte.deltaforceguide.properties;
|
||||
package com.onixbyte.ahsarahguide.properties;
|
||||
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
import org.springframework.boot.context.properties.bind.DefaultValue;
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.onixbyte.deltaforceguide.properties;
|
||||
package com.onixbyte.ahsarahguide.properties;
|
||||
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
import org.springframework.boot.context.properties.bind.DefaultValue;
|
||||
Loaded 100 of 144 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user