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:
siujamo committed 2026-08-28 09:51:36 +08:00
1 parent a2b94dfda5
commit 33a7c32b1e
144 files changed
+492 -966

No files matched your search

-3
View File
@@ -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
-162
View File
@@ -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
-109
View File
@@ -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
View File
@@ -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"]
+3 -3
View File
@@ -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}"
-21
View File
@@ -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.
-150
View File
@@ -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 &copy; 2026 OnixByte.
+1 -1
View File
@@ -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> {
+1 -1
View File
@@ -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
+1 -1
View File
@@ -11,4 +11,4 @@ dependencyResolutionManagement {
}
}
rootProject.name = "delta-force-guide-server"
rootProject.name = "ahsarah-guide-server"
@@ -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,4 +1,4 @@
package com.onixbyte.deltaforceguide.client;
package com.onixbyte.ahsarahguide.client;
import jakarta.mail.MessagingException;
import jakarta.mail.internet.InternetAddress;
@@ -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;
@@ -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;
@@ -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;
@@ -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,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;
@@ -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;
@@ -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;
@@ -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 {
}
@@ -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"
)
)
)
@@ -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;
@@ -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 {
}
@@ -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;
@@ -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;
@@ -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;
@@ -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;
@@ -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;
@@ -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;
@@ -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;
@@ -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;
@@ -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;
@@ -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;
@@ -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;
@@ -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;
@@ -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,4 +1,4 @@
package com.onixbyte.deltaforceguide.domain.dto;
package com.onixbyte.ahsarahguide.domain.dto;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotBlank;
@@ -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,4 +1,4 @@
package com.onixbyte.deltaforceguide.domain.dto;
package com.onixbyte.ahsarahguide.domain.dto;
import java.util.List;
@@ -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,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,4 +1,4 @@
package com.onixbyte.deltaforceguide.domain.dto;
package com.onixbyte.ahsarahguide.domain.dto;
import java.time.LocalDateTime;
import java.util.List;
@@ -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,4 +1,4 @@
package com.onixbyte.deltaforceguide.domain.dto;
package com.onixbyte.ahsarahguide.domain.dto;
/**
* Response DTO wrapping daily password data with metadata.
@@ -1,4 +1,4 @@
package com.onixbyte.deltaforceguide.domain.dto;
package com.onixbyte.ahsarahguide.domain.dto;
public record EmailVerificationCode(
String username,
@@ -1,4 +1,4 @@
package com.onixbyte.deltaforceguide.domain.dto;
package com.onixbyte.ahsarahguide.domain.dto;
/**
* Standard error response body returned on API failures.
@@ -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.
@@ -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,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,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,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,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,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,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,4 +1,4 @@
package com.onixbyte.deltaforceguide.domain.dto;
package com.onixbyte.ahsarahguide.domain.dto;
import jakarta.validation.constraints.NotBlank;
@@ -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,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,4 +1,4 @@
package com.onixbyte.deltaforceguide.domain.dto;
package com.onixbyte.ahsarahguide.domain.dto;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotBlank;
@@ -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,4 +1,4 @@
package com.onixbyte.deltaforceguide.domain.dto;
package com.onixbyte.ahsarahguide.domain.dto;
import org.springframework.data.domain.Page;
@@ -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,4 +1,4 @@
package com.onixbyte.deltaforceguide.domain.dto;
package com.onixbyte.ahsarahguide.domain.dto;
import jakarta.validation.constraints.NotBlank;
@@ -1,4 +1,4 @@
package com.onixbyte.deltaforceguide.domain.dto;
package com.onixbyte.ahsarahguide.domain.dto;
public record SendVerificationCodeResponse(
String verificationCodeId
@@ -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;
@@ -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,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;
@@ -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;
@@ -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,4 +1,4 @@
package com.onixbyte.deltaforceguide.domain.entity;
package com.onixbyte.ahsarahguide.domain.entity;
import java.util.ArrayList;
import java.util.List;
@@ -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;
@@ -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,4 +1,4 @@
package com.onixbyte.deltaforceguide.domain.entity;
package com.onixbyte.ahsarahguide.domain.entity;
import java.util.Objects;
@@ -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,4 +1,4 @@
package com.onixbyte.deltaforceguide.domain.entity;
package com.onixbyte.ahsarahguide.domain.entity;
import jakarta.persistence.Column;
import jakarta.persistence.AttributeOverride;
@@ -1,4 +1,4 @@
package com.onixbyte.deltaforceguide.domain.entity;
package com.onixbyte.ahsarahguide.domain.entity;
import jakarta.persistence.Embeddable;
@@ -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,4 +1,4 @@
package com.onixbyte.deltaforceguide.enumeration;
package com.onixbyte.ahsarahguide.enumeration;
/**
* Enumeration of firearm types in the Delta Force game.
@@ -1,4 +1,4 @@
package com.onixbyte.deltaforceguide.enumeration;
package com.onixbyte.ahsarahguide.enumeration;
import java.util.Arrays;
import java.util.Map;
@@ -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,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,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,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,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,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,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;
@@ -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;
@@ -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,4 +1,4 @@
package com.onixbyte.deltaforceguide.interceptor;
package com.onixbyte.ahsarahguide.interceptor;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
@@ -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
@@ -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;
@@ -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;
@@ -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;
@@ -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;
@@ -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;
@@ -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;
@@ -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,4 +1,4 @@
package com.onixbyte.deltaforceguide.properties;
package com.onixbyte.ahsarahguide.properties;
import org.springframework.boot.context.properties.ConfigurationProperties;
@@ -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,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