Big Feature and Beautifying Package
This commit is contained in:
parent
87da2a3861
commit
1f2ff67f38
171 changed files with 1286 additions and 663 deletions
|
|
@ -237,7 +237,7 @@ fitpub:
|
|||
|
||||
logging:
|
||||
level:
|
||||
org.operaton.fitpub: DEBUG
|
||||
net.javahippie.fitpub: DEBUG
|
||||
```
|
||||
|
||||
#### `application-instance2.yml`
|
||||
|
|
@ -261,7 +261,7 @@ fitpub:
|
|||
|
||||
logging:
|
||||
level:
|
||||
org.operaton.fitpub: DEBUG
|
||||
net.javahippie.fitpub: DEBUG
|
||||
```
|
||||
|
||||
### Step 3: Build the Application
|
||||
|
|
|
|||
74
pom.xml
74
pom.xml
|
|
@ -11,7 +11,7 @@
|
|||
<relativePath/>
|
||||
</parent>
|
||||
|
||||
<groupId>org.operaton</groupId>
|
||||
<groupId>net.javahippie</groupId>
|
||||
<artifactId>feditrack</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
<name>FitPub</name>
|
||||
|
|
@ -23,6 +23,7 @@
|
|||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<java.version>17</java.version>
|
||||
<jjwt.version>0.12.3</jjwt.version>
|
||||
<testcontainers.version>2.0.3</testcontainers.version>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
|
|
@ -77,16 +78,6 @@
|
|||
<artifactId>flyway-core</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- Testcontainers for Dev Services -->
|
||||
<!-- These are excluded from production builds via Maven profile -->
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-testcontainers</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.testcontainers</groupId>
|
||||
<artifactId>postgresql</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.hypersistence</groupId>
|
||||
<artifactId>hypersistence-utils-hibernate-63</artifactId>
|
||||
|
|
@ -155,6 +146,7 @@
|
|||
<artifactId>spring-boot-starter-test</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.security</groupId>
|
||||
<artifactId>spring-security-test</artifactId>
|
||||
|
|
@ -168,45 +160,29 @@
|
|||
<scope>runtime</scope>
|
||||
<optional>true</optional>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||
<configuration>
|
||||
<excludes>
|
||||
<exclude>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
</exclude>
|
||||
<!-- Exclude Testcontainers from production JAR -->
|
||||
<exclude>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-testcontainers</artifactId>
|
||||
</exclude>
|
||||
<exclude>
|
||||
<groupId>org.testcontainers</groupId>
|
||||
<artifactId>testcontainers</artifactId>
|
||||
</exclude>
|
||||
<exclude>
|
||||
<groupId>org.testcontainers</groupId>
|
||||
<artifactId>postgresql</artifactId>
|
||||
</exclude>
|
||||
<exclude>
|
||||
<groupId>org.testcontainers</groupId>
|
||||
<artifactId>jdbc</artifactId>
|
||||
</exclude>
|
||||
<exclude>
|
||||
<groupId>org.testcontainers</groupId>
|
||||
<artifactId>database-commons</artifactId>
|
||||
</exclude>
|
||||
</excludes>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-testcontainers</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.testcontainers</groupId>
|
||||
<artifactId>testcontainers-junit-jupiter</artifactId>
|
||||
<version>2.0.2</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
|
||||
<dependency>
|
||||
<groupId>org.testcontainers</groupId>
|
||||
<artifactId>testcontainers-postgresql</artifactId>
|
||||
<version>2.0.1</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
<profiles>
|
||||
<!-- Profile to skip integration tests (useful when Docker is not available) -->
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
package org.operaton.fitpub;
|
||||
package net.javahippie.fitpub;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.hc.client5.http.classic.HttpClient;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.operaton.fitpub.config;
|
||||
package net.javahippie.fitpub.config;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.operaton.fitpub.config;
|
||||
package net.javahippie.fitpub.config;
|
||||
|
||||
import org.apache.hc.core5.http.EntityDetails;
|
||||
import org.apache.hc.core5.http.HttpRequest;
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
package org.operaton.fitpub.config;
|
||||
package net.javahippie.fitpub.config;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.operaton.fitpub.security.JwtAuthenticationFilter;
|
||||
import net.javahippie.fitpub.security.JwtAuthenticationFilter;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.http.HttpMethod;
|
||||
|
|
@ -36,7 +36,7 @@ public class SecurityConfig {
|
|||
|
||||
private final JwtAuthenticationFilter jwtAuthenticationFilter;
|
||||
private final UserDetailsService userDetailsService;
|
||||
private final org.operaton.fitpub.security.CustomAuthenticationEntryPoint customAuthenticationEntryPoint;
|
||||
private final net.javahippie.fitpub.security.CustomAuthenticationEntryPoint customAuthenticationEntryPoint;
|
||||
|
||||
/**
|
||||
* Configures the security filter chain.
|
||||
|
|
@ -62,6 +62,7 @@ public class SecurityConfig {
|
|||
// Public endpoints - Web UI pages
|
||||
.requestMatchers("/", "/login", "/register", "/timeline", "/timeline/**").permitAll()
|
||||
.requestMatchers("/discover").permitAll() // User discovery page
|
||||
.requestMatchers("/terms").permitAll() // Terms of Service page
|
||||
|
||||
// Protected view pages - require authentication
|
||||
.requestMatchers("/activities", "/activities/upload").authenticated()
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.operaton.fitpub.config;
|
||||
package net.javahippie.fitpub.config;
|
||||
|
||||
import nz.net.ultraq.thymeleaf.layoutdialect.LayoutDialect;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.operaton.fitpub.controller;
|
||||
package net.javahippie.fitpub.controller;
|
||||
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
|
|
@ -1,22 +1,23 @@
|
|||
package org.operaton.fitpub.controller;
|
||||
package net.javahippie.fitpub.controller;
|
||||
|
||||
import jakarta.validation.Valid;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.operaton.fitpub.model.dto.ActivityDTO;
|
||||
import org.operaton.fitpub.model.dto.ActivityUpdateRequest;
|
||||
import org.operaton.fitpub.model.dto.ActivityUploadRequest;
|
||||
import org.operaton.fitpub.model.entity.Activity;
|
||||
import org.operaton.fitpub.model.entity.PrivacyZone;
|
||||
import org.operaton.fitpub.model.entity.User;
|
||||
import org.operaton.fitpub.repository.UserRepository;
|
||||
import org.operaton.fitpub.service.ActivityFileService;
|
||||
import org.operaton.fitpub.service.ActivityImageService;
|
||||
import org.operaton.fitpub.service.ActivityPostProcessingService;
|
||||
import org.operaton.fitpub.service.FederationService;
|
||||
import org.operaton.fitpub.service.FitFileService;
|
||||
import org.operaton.fitpub.service.PrivacyZoneService;
|
||||
import org.operaton.fitpub.service.TrackPrivacyFilter;
|
||||
import net.javahippie.fitpub.model.dto.ActivityDTO;
|
||||
import net.javahippie.fitpub.model.dto.ActivityUpdateRequest;
|
||||
import net.javahippie.fitpub.model.dto.ActivityUploadRequest;
|
||||
import net.javahippie.fitpub.model.entity.Activity;
|
||||
import net.javahippie.fitpub.model.entity.PrivacyZone;
|
||||
import net.javahippie.fitpub.model.entity.User;
|
||||
import net.javahippie.fitpub.repository.UserRepository;
|
||||
import net.javahippie.fitpub.service.ActivityFileService;
|
||||
import net.javahippie.fitpub.service.ActivityImageService;
|
||||
import net.javahippie.fitpub.service.ActivityPostProcessingService;
|
||||
import net.javahippie.fitpub.service.FederationService;
|
||||
import net.javahippie.fitpub.service.WeatherService;
|
||||
import net.javahippie.fitpub.service.FitFileService;
|
||||
import net.javahippie.fitpub.service.PrivacyZoneService;
|
||||
import net.javahippie.fitpub.service.TrackPrivacyFilter;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
|
|
@ -46,7 +47,7 @@ public class ActivityController {
|
|||
private final ActivityPostProcessingService activityPostProcessingService;
|
||||
private final FederationService federationService;
|
||||
private final ActivityImageService activityImageService;
|
||||
private final org.operaton.fitpub.service.WeatherService weatherService;
|
||||
private final WeatherService weatherService;
|
||||
private final PrivacyZoneService privacyZoneService;
|
||||
private final TrackPrivacyFilter trackPrivacyFilter;
|
||||
|
||||
|
|
@ -250,7 +251,8 @@ public class ActivityController {
|
|||
userId,
|
||||
request.getTitle(),
|
||||
request.getDescription(),
|
||||
request.getVisibility()
|
||||
request.getVisibility(),
|
||||
request.getRace()
|
||||
);
|
||||
|
||||
ActivityDTO dto = ActivityDTO.fromEntity(updated);
|
||||
|
|
@ -1,15 +1,17 @@
|
|||
package org.operaton.fitpub.controller;
|
||||
package net.javahippie.fitpub.controller;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.operaton.fitpub.model.activitypub.Actor;
|
||||
import org.operaton.fitpub.model.activitypub.OrderedCollection;
|
||||
import org.operaton.fitpub.model.entity.Activity;
|
||||
import org.operaton.fitpub.model.entity.User;
|
||||
import org.operaton.fitpub.repository.ActivityRepository;
|
||||
import org.operaton.fitpub.repository.UserRepository;
|
||||
import org.operaton.fitpub.service.ActivityImageService;
|
||||
import org.operaton.fitpub.util.ActivityFormatter;
|
||||
import net.javahippie.fitpub.model.activitypub.Actor;
|
||||
import net.javahippie.fitpub.model.activitypub.OrderedCollection;
|
||||
import net.javahippie.fitpub.model.entity.Activity;
|
||||
import net.javahippie.fitpub.model.entity.User;
|
||||
import net.javahippie.fitpub.repository.FollowRepository;
|
||||
import net.javahippie.fitpub.repository.ActivityRepository;
|
||||
import net.javahippie.fitpub.repository.UserRepository;
|
||||
import net.javahippie.fitpub.service.ActivityImageService;
|
||||
import net.javahippie.fitpub.service.InboxProcessor;
|
||||
import net.javahippie.fitpub.util.ActivityFormatter;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.MediaType;
|
||||
|
|
@ -33,8 +35,8 @@ public class ActivityPubController {
|
|||
private final UserRepository userRepository;
|
||||
private final ActivityRepository activityRepository;
|
||||
private final ActivityImageService activityImageService;
|
||||
private final org.operaton.fitpub.service.InboxProcessor inboxProcessor;
|
||||
private final org.operaton.fitpub.repository.FollowRepository followRepository;
|
||||
private final InboxProcessor inboxProcessor;
|
||||
private final FollowRepository followRepository;
|
||||
|
||||
@Value("${fitpub.base-url}")
|
||||
private String baseUrl;
|
||||
|
|
@ -1,10 +1,19 @@
|
|||
package org.operaton.fitpub.controller;
|
||||
package net.javahippie.fitpub.controller;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.operaton.fitpub.model.entity.*;
|
||||
import org.operaton.fitpub.repository.UserRepository;
|
||||
import org.operaton.fitpub.service.*;
|
||||
import net.javahippie.fitpub.model.entity.Achievement;
|
||||
import net.javahippie.fitpub.model.entity.ActivitySummary;
|
||||
import net.javahippie.fitpub.model.entity.PersonalRecord;
|
||||
import net.javahippie.fitpub.model.entity.TrainingLoad;
|
||||
import net.javahippie.fitpub.model.entity.User;
|
||||
import net.javahippie.fitpub.service.AchievementService;
|
||||
import net.javahippie.fitpub.service.ActivitySummaryService;
|
||||
import net.javahippie.fitpub.service.PersonalRecordService;
|
||||
import net.javahippie.fitpub.service.TrainingLoadService;
|
||||
import net.javahippie.fitpub.model.entity.*;
|
||||
import net.javahippie.fitpub.repository.UserRepository;
|
||||
import net.javahippie.fitpub.service.*;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.security.core.annotation.AuthenticationPrincipal;
|
||||
import org.springframework.security.core.userdetails.UserDetails;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.operaton.fitpub.controller;
|
||||
package net.javahippie.fitpub.controller;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Controller;
|
||||
|
|
@ -1,14 +1,14 @@
|
|||
package org.operaton.fitpub.controller;
|
||||
package net.javahippie.fitpub.controller;
|
||||
|
||||
import jakarta.servlet.http.Cookie;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.Valid;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.operaton.fitpub.model.dto.AuthResponse;
|
||||
import org.operaton.fitpub.model.dto.LoginRequest;
|
||||
import org.operaton.fitpub.model.dto.RegisterRequest;
|
||||
import org.operaton.fitpub.service.UserService;
|
||||
import net.javahippie.fitpub.model.dto.AuthResponse;
|
||||
import net.javahippie.fitpub.model.dto.LoginRequest;
|
||||
import net.javahippie.fitpub.model.dto.RegisterRequest;
|
||||
import net.javahippie.fitpub.service.UserService;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.operaton.fitpub.controller;
|
||||
package net.javahippie.fitpub.controller;
|
||||
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
|
|
@ -1,14 +1,14 @@
|
|||
package org.operaton.fitpub.controller;
|
||||
package net.javahippie.fitpub.controller;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.operaton.fitpub.model.entity.BatchImportFileResult;
|
||||
import org.operaton.fitpub.model.entity.BatchImportJob;
|
||||
import org.operaton.fitpub.model.entity.User;
|
||||
import org.operaton.fitpub.repository.BatchImportFileResultRepository;
|
||||
import org.operaton.fitpub.repository.BatchImportJobRepository;
|
||||
import org.operaton.fitpub.repository.UserRepository;
|
||||
import org.operaton.fitpub.service.BatchImportService;
|
||||
import net.javahippie.fitpub.model.entity.BatchImportFileResult;
|
||||
import net.javahippie.fitpub.model.entity.BatchImportJob;
|
||||
import net.javahippie.fitpub.model.entity.User;
|
||||
import net.javahippie.fitpub.repository.BatchImportFileResultRepository;
|
||||
import net.javahippie.fitpub.repository.BatchImportJobRepository;
|
||||
import net.javahippie.fitpub.repository.UserRepository;
|
||||
import net.javahippie.fitpub.service.BatchImportService;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.PageRequest;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.operaton.fitpub.controller;
|
||||
package net.javahippie.fitpub.controller;
|
||||
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
|
|
@ -1,18 +1,18 @@
|
|||
package org.operaton.fitpub.controller;
|
||||
package net.javahippie.fitpub.controller;
|
||||
|
||||
import jakarta.validation.Valid;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.operaton.fitpub.model.dto.CommentCreateRequest;
|
||||
import org.operaton.fitpub.model.dto.CommentDTO;
|
||||
import org.operaton.fitpub.model.entity.Activity;
|
||||
import org.operaton.fitpub.model.entity.Comment;
|
||||
import org.operaton.fitpub.model.entity.User;
|
||||
import org.operaton.fitpub.repository.ActivityRepository;
|
||||
import org.operaton.fitpub.repository.CommentRepository;
|
||||
import org.operaton.fitpub.repository.UserRepository;
|
||||
import org.operaton.fitpub.service.FederationService;
|
||||
import org.operaton.fitpub.service.NotificationService;
|
||||
import net.javahippie.fitpub.model.dto.CommentCreateRequest;
|
||||
import net.javahippie.fitpub.model.dto.CommentDTO;
|
||||
import net.javahippie.fitpub.model.entity.Activity;
|
||||
import net.javahippie.fitpub.model.entity.Comment;
|
||||
import net.javahippie.fitpub.model.entity.User;
|
||||
import net.javahippie.fitpub.repository.ActivityRepository;
|
||||
import net.javahippie.fitpub.repository.CommentRepository;
|
||||
import net.javahippie.fitpub.repository.UserRepository;
|
||||
import net.javahippie.fitpub.service.FederationService;
|
||||
import net.javahippie.fitpub.service.NotificationService;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.PageRequest;
|
||||
|
|
@ -1,9 +1,9 @@
|
|||
package org.operaton.fitpub.controller;
|
||||
package net.javahippie.fitpub.controller;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.operaton.fitpub.model.entity.User;
|
||||
import org.operaton.fitpub.repository.UserRepository;
|
||||
import net.javahippie.fitpub.model.entity.User;
|
||||
import net.javahippie.fitpub.repository.UserRepository;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
|
@ -1,13 +1,13 @@
|
|||
package org.operaton.fitpub.controller;
|
||||
package net.javahippie.fitpub.controller;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.operaton.fitpub.model.dto.HeatmapDataDTO;
|
||||
import org.operaton.fitpub.model.entity.User;
|
||||
import org.operaton.fitpub.model.entity.UserHeatmapGrid;
|
||||
import org.operaton.fitpub.repository.ActivityRepository;
|
||||
import org.operaton.fitpub.repository.UserRepository;
|
||||
import org.operaton.fitpub.service.HeatmapGridService;
|
||||
import net.javahippie.fitpub.model.dto.HeatmapDataDTO;
|
||||
import net.javahippie.fitpub.model.entity.User;
|
||||
import net.javahippie.fitpub.model.entity.UserHeatmapGrid;
|
||||
import net.javahippie.fitpub.repository.ActivityRepository;
|
||||
import net.javahippie.fitpub.repository.UserRepository;
|
||||
import net.javahippie.fitpub.service.HeatmapGridService;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.security.core.annotation.AuthenticationPrincipal;
|
||||
import org.springframework.security.core.userdetails.UserDetails;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.operaton.fitpub.controller;
|
||||
package net.javahippie.fitpub.controller;
|
||||
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
|
|
@ -18,4 +18,9 @@ public class HomeController {
|
|||
public String heatmap() {
|
||||
return "heatmap";
|
||||
}
|
||||
|
||||
@GetMapping("/terms")
|
||||
public String terms() {
|
||||
return "terms";
|
||||
}
|
||||
}
|
||||
|
|
@ -1,16 +1,16 @@
|
|||
package org.operaton.fitpub.controller;
|
||||
package net.javahippie.fitpub.controller;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.operaton.fitpub.model.dto.LikeDTO;
|
||||
import org.operaton.fitpub.model.entity.Activity;
|
||||
import org.operaton.fitpub.model.entity.Like;
|
||||
import org.operaton.fitpub.model.entity.User;
|
||||
import org.operaton.fitpub.repository.ActivityRepository;
|
||||
import org.operaton.fitpub.repository.LikeRepository;
|
||||
import org.operaton.fitpub.repository.UserRepository;
|
||||
import org.operaton.fitpub.service.FederationService;
|
||||
import org.operaton.fitpub.service.NotificationService;
|
||||
import net.javahippie.fitpub.model.dto.LikeDTO;
|
||||
import net.javahippie.fitpub.model.entity.Activity;
|
||||
import net.javahippie.fitpub.model.entity.Like;
|
||||
import net.javahippie.fitpub.model.entity.User;
|
||||
import net.javahippie.fitpub.repository.ActivityRepository;
|
||||
import net.javahippie.fitpub.repository.LikeRepository;
|
||||
import net.javahippie.fitpub.repository.UserRepository;
|
||||
import net.javahippie.fitpub.service.FederationService;
|
||||
import net.javahippie.fitpub.service.NotificationService;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
|
|
@ -20,7 +20,6 @@ import org.springframework.security.core.userdetails.UsernameNotFoundException;
|
|||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
|
@ -1,12 +1,12 @@
|
|||
package org.operaton.fitpub.controller;
|
||||
package net.javahippie.fitpub.controller;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.operaton.fitpub.model.dto.NotificationDTO;
|
||||
import org.operaton.fitpub.model.entity.Notification;
|
||||
import org.operaton.fitpub.model.entity.User;
|
||||
import org.operaton.fitpub.repository.UserRepository;
|
||||
import org.operaton.fitpub.service.NotificationService;
|
||||
import net.javahippie.fitpub.model.dto.NotificationDTO;
|
||||
import net.javahippie.fitpub.model.entity.Notification;
|
||||
import net.javahippie.fitpub.model.entity.User;
|
||||
import net.javahippie.fitpub.repository.UserRepository;
|
||||
import net.javahippie.fitpub.service.NotificationService;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.operaton.fitpub.controller;
|
||||
package net.javahippie.fitpub.controller;
|
||||
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
|
|
@ -1,15 +1,15 @@
|
|||
package org.operaton.fitpub.controller;
|
||||
package net.javahippie.fitpub.controller;
|
||||
|
||||
import jakarta.validation.Valid;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.operaton.fitpub.model.dto.CreatePrivacyZoneRequest;
|
||||
import org.operaton.fitpub.model.dto.PrivacyZoneDTO;
|
||||
import org.operaton.fitpub.model.dto.UpdatePrivacyZoneRequest;
|
||||
import org.operaton.fitpub.model.entity.PrivacyZone;
|
||||
import org.operaton.fitpub.model.entity.User;
|
||||
import org.operaton.fitpub.repository.UserRepository;
|
||||
import org.operaton.fitpub.service.PrivacyZoneService;
|
||||
import net.javahippie.fitpub.model.dto.CreatePrivacyZoneRequest;
|
||||
import net.javahippie.fitpub.model.dto.PrivacyZoneDTO;
|
||||
import net.javahippie.fitpub.model.dto.UpdatePrivacyZoneRequest;
|
||||
import net.javahippie.fitpub.model.entity.PrivacyZone;
|
||||
import net.javahippie.fitpub.model.entity.User;
|
||||
import net.javahippie.fitpub.repository.UserRepository;
|
||||
import net.javahippie.fitpub.service.PrivacyZoneService;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.security.core.annotation.AuthenticationPrincipal;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.operaton.fitpub.controller;
|
||||
package net.javahippie.fitpub.controller;
|
||||
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.Model;
|
||||
|
|
@ -1,11 +1,11 @@
|
|||
package org.operaton.fitpub.controller;
|
||||
package net.javahippie.fitpub.controller;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.operaton.fitpub.model.dto.TimelineActivityDTO;
|
||||
import org.operaton.fitpub.model.entity.User;
|
||||
import org.operaton.fitpub.repository.UserRepository;
|
||||
import org.operaton.fitpub.service.TimelineService;
|
||||
import net.javahippie.fitpub.model.dto.TimelineActivityDTO;
|
||||
import net.javahippie.fitpub.model.entity.User;
|
||||
import net.javahippie.fitpub.repository.UserRepository;
|
||||
import net.javahippie.fitpub.service.TimelineService;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.PageRequest;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.operaton.fitpub.controller;
|
||||
package net.javahippie.fitpub.controller;
|
||||
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.Model;
|
||||
|
|
@ -1,19 +1,21 @@
|
|||
package org.operaton.fitpub.controller;
|
||||
package net.javahippie.fitpub.controller;
|
||||
|
||||
import jakarta.validation.Valid;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.operaton.fitpub.model.dto.AccountDeletionRequest;
|
||||
import org.operaton.fitpub.model.dto.ActorDTO;
|
||||
import org.operaton.fitpub.model.dto.UserDTO;
|
||||
import org.operaton.fitpub.model.dto.UserUpdateRequest;
|
||||
import org.operaton.fitpub.model.entity.Follow;
|
||||
import org.operaton.fitpub.model.entity.RemoteActor;
|
||||
import org.operaton.fitpub.model.entity.User;
|
||||
import org.operaton.fitpub.repository.FollowRepository;
|
||||
import org.operaton.fitpub.repository.RemoteActorRepository;
|
||||
import org.operaton.fitpub.repository.UserRepository;
|
||||
import org.operaton.fitpub.service.UserService;
|
||||
import net.javahippie.fitpub.model.dto.AccountDeletionRequest;
|
||||
import net.javahippie.fitpub.model.dto.ActorDTO;
|
||||
import net.javahippie.fitpub.model.dto.UserDTO;
|
||||
import net.javahippie.fitpub.model.dto.UserUpdateRequest;
|
||||
import net.javahippie.fitpub.model.entity.Follow;
|
||||
import net.javahippie.fitpub.model.entity.RemoteActor;
|
||||
import net.javahippie.fitpub.model.entity.User;
|
||||
import net.javahippie.fitpub.repository.FollowRepository;
|
||||
import net.javahippie.fitpub.repository.RemoteActorRepository;
|
||||
import net.javahippie.fitpub.repository.UserRepository;
|
||||
import net.javahippie.fitpub.service.FederationService;
|
||||
import net.javahippie.fitpub.service.WebFingerClient;
|
||||
import net.javahippie.fitpub.service.UserService;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
|
|
@ -42,8 +44,8 @@ public class UserController {
|
|||
private final UserRepository userRepository;
|
||||
private final FollowRepository followRepository;
|
||||
private final RemoteActorRepository remoteActorRepository;
|
||||
private final org.operaton.fitpub.service.WebFingerClient webFingerClient;
|
||||
private final org.operaton.fitpub.service.FederationService federationService;
|
||||
private final WebFingerClient webFingerClient;
|
||||
private final FederationService federationService;
|
||||
private final UserService userService;
|
||||
|
||||
@Value("${fitpub.base-url}")
|
||||
|
|
@ -1,10 +1,10 @@
|
|||
package org.operaton.fitpub.controller;
|
||||
package net.javahippie.fitpub.controller;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.operaton.fitpub.model.activitypub.WebFingerResponse;
|
||||
import org.operaton.fitpub.model.entity.User;
|
||||
import org.operaton.fitpub.repository.UserRepository;
|
||||
import net.javahippie.fitpub.model.activitypub.WebFingerResponse;
|
||||
import net.javahippie.fitpub.model.entity.User;
|
||||
import net.javahippie.fitpub.repository.UserRepository;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.operaton.fitpub.exception;
|
||||
package net.javahippie.fitpub.exception;
|
||||
|
||||
/**
|
||||
* Exception thrown when FIT file processing fails.
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.operaton.fitpub.exception;
|
||||
package net.javahippie.fitpub.exception;
|
||||
|
||||
/**
|
||||
* Base exception for GPX file processing errors.
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.operaton.fitpub.exception;
|
||||
package net.javahippie.fitpub.exception;
|
||||
|
||||
/**
|
||||
* Exception thrown when a FIT file is invalid or corrupted.
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.operaton.fitpub.exception;
|
||||
package net.javahippie.fitpub.exception;
|
||||
|
||||
/**
|
||||
* Exception thrown when a GPX file fails validation.
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.operaton.fitpub.exception;
|
||||
package net.javahippie.fitpub.exception;
|
||||
|
||||
/**
|
||||
* Exception thrown when an uploaded file format is not supported.
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.operaton.fitpub.model.activitypub;
|
||||
package net.javahippie.fitpub.model.activitypub;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
|
|
@ -6,6 +6,7 @@ import lombok.AllArgsConstructor;
|
|||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import net.javahippie.fitpub.model.entity.User;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
|
@ -41,7 +42,7 @@ public class Actor {
|
|||
/**
|
||||
* Creates an Actor from a User entity.
|
||||
*/
|
||||
public static Actor fromUser(org.operaton.fitpub.model.entity.User user, String baseUrl) {
|
||||
public static Actor fromUser(User user, String baseUrl) {
|
||||
String actorUri = user.getActorUri(baseUrl);
|
||||
|
||||
return Actor.builder()
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.operaton.fitpub.model.activitypub;
|
||||
package net.javahippie.fitpub.model.activitypub;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.operaton.fitpub.model.activitypub;
|
||||
package net.javahippie.fitpub.model.activitypub;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import lombok.AllArgsConstructor;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.operaton.fitpub.model.activitypub;
|
||||
package net.javahippie.fitpub.model.activitypub;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import lombok.AllArgsConstructor;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.operaton.fitpub.model.activitypub;
|
||||
package net.javahippie.fitpub.model.activitypub;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import lombok.AllArgsConstructor;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.operaton.fitpub.model.dto;
|
||||
package net.javahippie.fitpub.model.dto;
|
||||
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import lombok.AllArgsConstructor;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.operaton.fitpub.model.dto;
|
||||
package net.javahippie.fitpub.model.dto;
|
||||
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
|
|
@ -6,15 +6,13 @@ import lombok.AllArgsConstructor;
|
|||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.locationtech.jts.geom.Coordinate;
|
||||
import org.locationtech.jts.geom.LineString;
|
||||
import org.operaton.fitpub.model.entity.Activity;
|
||||
import org.operaton.fitpub.model.entity.PrivacyZone;
|
||||
import org.operaton.fitpub.service.TrackPrivacyFilter;
|
||||
import org.operaton.fitpub.util.ActivityFormatter;
|
||||
import net.javahippie.fitpub.model.entity.Activity;
|
||||
import net.javahippie.fitpub.model.entity.PrivacyZone;
|
||||
import net.javahippie.fitpub.service.TrackPrivacyFilter;
|
||||
import net.javahippie.fitpub.util.ActivityFormatter;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.Duration;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
|
|
@ -59,6 +57,9 @@ public class ActivityDTO {
|
|||
private String subSport; // SubSport field from FIT file (e.g., INDOOR_CYCLING, TREADMILL)
|
||||
private String indoorDetectionMethod; // How indoor flag was determined
|
||||
|
||||
// Race/competition flag
|
||||
private Boolean race; // True if activity is a race/competition (uses total time for pace calculation)
|
||||
|
||||
// Social interaction counts (populated separately)
|
||||
private Long likesCount;
|
||||
private Long commentsCount;
|
||||
|
|
@ -151,6 +152,9 @@ public class ActivityDTO {
|
|||
builder.subSport(activity.getSubSport());
|
||||
builder.indoorDetectionMethod(activity.getIndoorDetectionMethod());
|
||||
|
||||
// Race flag
|
||||
builder.race(activity.getRace() != null ? activity.getRace() : false);
|
||||
|
||||
return builder.build();
|
||||
}
|
||||
|
||||
|
|
@ -232,6 +236,7 @@ public class ActivityDTO {
|
|||
.indoor(activity.getIndoor() != null ? activity.getIndoor() : false)
|
||||
.subSport(activity.getSubSport())
|
||||
.indoorDetectionMethod(activity.getIndoorDetectionMethod())
|
||||
.race(activity.getRace() != null ? activity.getRace() : false)
|
||||
.build();
|
||||
}
|
||||
|
||||
|
|
@ -277,6 +282,9 @@ public class ActivityDTO {
|
|||
builder.subSport(activity.getSubSport());
|
||||
builder.indoorDetectionMethod(activity.getIndoorDetectionMethod());
|
||||
|
||||
// Race flag
|
||||
builder.race(activity.getRace() != null ? activity.getRace() : false);
|
||||
|
||||
return builder.build();
|
||||
}
|
||||
|
||||
|
|
@ -1,10 +1,10 @@
|
|||
package org.operaton.fitpub.model.dto;
|
||||
package net.javahippie.fitpub.model.dto;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.operaton.fitpub.model.entity.ActivityMetrics;
|
||||
import net.javahippie.fitpub.model.entity.ActivityMetrics;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.operaton.fitpub.model.dto;
|
||||
package net.javahippie.fitpub.model.dto;
|
||||
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import jakarta.validation.constraints.Size;
|
||||
|
|
@ -6,7 +6,7 @@ import lombok.AllArgsConstructor;
|
|||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.operaton.fitpub.model.entity.Activity;
|
||||
import net.javahippie.fitpub.model.entity.Activity;
|
||||
|
||||
/**
|
||||
* Request DTO for updating activity metadata.
|
||||
|
|
@ -26,4 +26,6 @@ public class ActivityUpdateRequest {
|
|||
|
||||
@NotNull(message = "Visibility is required")
|
||||
private Activity.Visibility visibility;
|
||||
|
||||
private Boolean race; // Race/competition flag
|
||||
}
|
||||
|
|
@ -1,12 +1,11 @@
|
|||
package org.operaton.fitpub.model.dto;
|
||||
package net.javahippie.fitpub.model.dto;
|
||||
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import jakarta.validation.constraints.Size;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.operaton.fitpub.model.entity.Activity;
|
||||
import net.javahippie.fitpub.model.entity.Activity;
|
||||
|
||||
/**
|
||||
* Request DTO for uploading a new activity.
|
||||
|
|
@ -1,11 +1,11 @@
|
|||
package org.operaton.fitpub.model.dto;
|
||||
package net.javahippie.fitpub.model.dto;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.operaton.fitpub.model.entity.RemoteActor;
|
||||
import org.operaton.fitpub.model.entity.User;
|
||||
import net.javahippie.fitpub.model.entity.RemoteActor;
|
||||
import net.javahippie.fitpub.model.entity.User;
|
||||
|
||||
import java.time.Instant;
|
||||
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.operaton.fitpub.model.dto;
|
||||
package net.javahippie.fitpub.model.dto;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.operaton.fitpub.model.dto;
|
||||
package net.javahippie.fitpub.model.dto;
|
||||
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.Size;
|
||||
|
|
@ -1,10 +1,10 @@
|
|||
package org.operaton.fitpub.model.dto;
|
||||
package net.javahippie.fitpub.model.dto;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.operaton.fitpub.model.entity.Comment;
|
||||
import net.javahippie.fitpub.model.entity.Comment;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.UUID;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.operaton.fitpub.model.dto;
|
||||
package net.javahippie.fitpub.model.dto;
|
||||
|
||||
import jakarta.validation.constraints.*;
|
||||
import lombok.AllArgsConstructor;
|
||||
|
|
@ -1,10 +1,10 @@
|
|||
package org.operaton.fitpub.model.dto;
|
||||
package net.javahippie.fitpub.model.dto;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.operaton.fitpub.model.entity.UserHeatmapGrid;
|
||||
import net.javahippie.fitpub.model.entity.UserHeatmapGrid;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
|
@ -1,10 +1,10 @@
|
|||
package org.operaton.fitpub.model.dto;
|
||||
package net.javahippie.fitpub.model.dto;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.operaton.fitpub.model.entity.Like;
|
||||
import net.javahippie.fitpub.model.entity.Like;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.UUID;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.operaton.fitpub.model.dto;
|
||||
package net.javahippie.fitpub.model.dto;
|
||||
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import lombok.AllArgsConstructor;
|
||||
|
|
@ -1,10 +1,10 @@
|
|||
package org.operaton.fitpub.model.dto;
|
||||
package net.javahippie.fitpub.model.dto;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.operaton.fitpub.model.entity.Notification;
|
||||
import net.javahippie.fitpub.model.entity.Notification;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.UUID;
|
||||
|
|
@ -1,10 +1,10 @@
|
|||
package org.operaton.fitpub.model.dto;
|
||||
package net.javahippie.fitpub.model.dto;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.operaton.fitpub.model.entity.PrivacyZone;
|
||||
import net.javahippie.fitpub.model.entity.PrivacyZone;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.UUID;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.operaton.fitpub.model.dto;
|
||||
package net.javahippie.fitpub.model.dto;
|
||||
|
||||
import jakarta.validation.constraints.Email;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
|
|
@ -1,13 +1,14 @@
|
|||
package org.operaton.fitpub.model.dto;
|
||||
package net.javahippie.fitpub.model.dto;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.operaton.fitpub.model.entity.Activity;
|
||||
import org.operaton.fitpub.model.entity.RemoteActivity;
|
||||
import org.operaton.fitpub.model.entity.RemoteActor;
|
||||
import net.javahippie.fitpub.model.entity.ActivityMetrics;
|
||||
import net.javahippie.fitpub.model.entity.Activity;
|
||||
import net.javahippie.fitpub.model.entity.RemoteActivity;
|
||||
import net.javahippie.fitpub.model.entity.RemoteActor;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
|
|
@ -63,6 +64,9 @@ public class TimelineActivityDTO {
|
|||
private String subSport; // SubSport field from FIT file (e.g., INDOOR_CYCLING, TREADMILL)
|
||||
private String indoorDetectionMethod; // How indoor flag was determined
|
||||
|
||||
// Race/competition flag
|
||||
private Boolean race; // True if activity is a race/competition
|
||||
|
||||
// Metrics summary
|
||||
private ActivityMetricsSummary metrics;
|
||||
|
||||
|
|
@ -93,6 +97,7 @@ public class TimelineActivityDTO {
|
|||
.indoor(activity.getIndoor() != null ? activity.getIndoor() : false)
|
||||
.subSport(activity.getSubSport())
|
||||
.indoorDetectionMethod(activity.getIndoorDetectionMethod())
|
||||
.race(activity.getRace() != null ? activity.getRace() : false)
|
||||
.metrics(activity.getMetrics() != null ? ActivityMetricsSummary.fromMetrics(activity.getMetrics()) : null)
|
||||
.build();
|
||||
}
|
||||
|
|
@ -155,7 +160,7 @@ public class TimelineActivityDTO {
|
|||
private Long movingTimeSeconds;
|
||||
private Long stoppedTimeSeconds;
|
||||
|
||||
public static ActivityMetricsSummary fromMetrics(org.operaton.fitpub.model.entity.ActivityMetrics metrics) {
|
||||
public static ActivityMetricsSummary fromMetrics(ActivityMetrics metrics) {
|
||||
return ActivityMetricsSummary.builder()
|
||||
.averageHeartRate(metrics.getAverageHeartRate())
|
||||
.maxHeartRate(metrics.getMaxHeartRate())
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.operaton.fitpub.model.dto;
|
||||
package net.javahippie.fitpub.model.dto;
|
||||
|
||||
import jakarta.validation.constraints.*;
|
||||
import lombok.AllArgsConstructor;
|
||||
|
|
@ -1,10 +1,10 @@
|
|||
package org.operaton.fitpub.model.dto;
|
||||
package net.javahippie.fitpub.model.dto;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.operaton.fitpub.model.entity.User;
|
||||
import net.javahippie.fitpub.model.entity.User;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.UUID;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.operaton.fitpub.model.dto;
|
||||
package net.javahippie.fitpub.model.dto;
|
||||
|
||||
import jakarta.validation.constraints.Max;
|
||||
import jakarta.validation.constraints.Min;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.operaton.fitpub.model.entity;
|
||||
package net.javahippie.fitpub.model.entity;
|
||||
|
||||
import jakarta.persistence.*;
|
||||
import lombok.*;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.operaton.fitpub.model.entity;
|
||||
package net.javahippie.fitpub.model.entity;
|
||||
|
||||
import io.hypersistence.utils.hibernate.type.json.JsonBinaryType;
|
||||
import jakarta.persistence.*;
|
||||
|
|
@ -130,6 +130,14 @@ public class Activity {
|
|||
@Column(name = "indoor_detection_method", length = 20)
|
||||
private String indoorDetectionMethod;
|
||||
|
||||
/**
|
||||
* Indicates if this is a race/competition activity.
|
||||
* Race activities use total time for pace calculation instead of moving time.
|
||||
*/
|
||||
@Column(name = "race", nullable = false)
|
||||
@Builder.Default
|
||||
private Boolean race = false;
|
||||
|
||||
@OneToOne(mappedBy = "activity", cascade = CascadeType.ALL, orphanRemoval = true)
|
||||
private ActivityMetrics metrics;
|
||||
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.operaton.fitpub.model.entity;
|
||||
package net.javahippie.fitpub.model.entity;
|
||||
|
||||
import jakarta.persistence.*;
|
||||
import lombok.*;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.operaton.fitpub.model.entity;
|
||||
package net.javahippie.fitpub.model.entity;
|
||||
|
||||
import jakarta.persistence.*;
|
||||
import lombok.*;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.operaton.fitpub.model.entity;
|
||||
package net.javahippie.fitpub.model.entity;
|
||||
|
||||
import jakarta.persistence.*;
|
||||
import lombok.*;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.operaton.fitpub.model.entity;
|
||||
package net.javahippie.fitpub.model.entity;
|
||||
|
||||
import jakarta.persistence.*;
|
||||
import lombok.*;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.operaton.fitpub.model.entity;
|
||||
package net.javahippie.fitpub.model.entity;
|
||||
|
||||
import jakarta.persistence.*;
|
||||
import lombok.*;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.operaton.fitpub.model.entity;
|
||||
package net.javahippie.fitpub.model.entity;
|
||||
|
||||
import jakarta.persistence.*;
|
||||
import lombok.AllArgsConstructor;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.operaton.fitpub.model.entity;
|
||||
package net.javahippie.fitpub.model.entity;
|
||||
|
||||
import jakarta.persistence.*;
|
||||
import lombok.*;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.operaton.fitpub.model.entity;
|
||||
package net.javahippie.fitpub.model.entity;
|
||||
|
||||
import jakarta.persistence.*;
|
||||
import lombok.AllArgsConstructor;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.operaton.fitpub.model.entity;
|
||||
package net.javahippie.fitpub.model.entity;
|
||||
|
||||
import jakarta.persistence.*;
|
||||
import lombok.*;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.operaton.fitpub.model.entity;
|
||||
package net.javahippie.fitpub.model.entity;
|
||||
|
||||
import jakarta.persistence.*;
|
||||
import lombok.*;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.operaton.fitpub.model.entity;
|
||||
package net.javahippie.fitpub.model.entity;
|
||||
|
||||
import io.hypersistence.utils.hibernate.type.json.JsonBinaryType;
|
||||
import jakarta.persistence.*;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.operaton.fitpub.model.entity;
|
||||
package net.javahippie.fitpub.model.entity;
|
||||
|
||||
import jakarta.persistence.*;
|
||||
import lombok.AllArgsConstructor;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.operaton.fitpub.model.entity;
|
||||
package net.javahippie.fitpub.model.entity;
|
||||
|
||||
import jakarta.persistence.*;
|
||||
import lombok.*;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.operaton.fitpub.model.entity;
|
||||
package net.javahippie.fitpub.model.entity;
|
||||
|
||||
import jakarta.persistence.*;
|
||||
import lombok.*;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.operaton.fitpub.model.entity;
|
||||
package net.javahippie.fitpub.model.entity;
|
||||
|
||||
import jakarta.persistence.*;
|
||||
import lombok.*;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.operaton.fitpub.model.entity;
|
||||
package net.javahippie.fitpub.model.entity;
|
||||
|
||||
import jakarta.persistence.*;
|
||||
import lombok.AllArgsConstructor;
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
package org.operaton.fitpub.repository;
|
||||
package net.javahippie.fitpub.repository;
|
||||
|
||||
import org.operaton.fitpub.model.entity.Achievement;
|
||||
import net.javahippie.fitpub.model.entity.Achievement;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.data.repository.query.Param;
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
package org.operaton.fitpub.repository;
|
||||
package net.javahippie.fitpub.repository;
|
||||
|
||||
import org.operaton.fitpub.model.entity.ActivityMetrics;
|
||||
import net.javahippie.fitpub.model.entity.ActivityMetrics;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.data.repository.query.Param;
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
package org.operaton.fitpub.repository;
|
||||
package net.javahippie.fitpub.repository;
|
||||
|
||||
import org.operaton.fitpub.model.entity.Activity;
|
||||
import net.javahippie.fitpub.model.entity.Activity;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
package org.operaton.fitpub.repository;
|
||||
package net.javahippie.fitpub.repository;
|
||||
|
||||
import org.operaton.fitpub.model.entity.ActivitySummary;
|
||||
import net.javahippie.fitpub.model.entity.ActivitySummary;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.data.repository.query.Param;
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
package org.operaton.fitpub.repository;
|
||||
package net.javahippie.fitpub.repository;
|
||||
|
||||
import org.operaton.fitpub.model.entity.BatchImportFileResult;
|
||||
import net.javahippie.fitpub.model.entity.BatchImportFileResult;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
package org.operaton.fitpub.repository;
|
||||
package net.javahippie.fitpub.repository;
|
||||
|
||||
import org.operaton.fitpub.model.entity.BatchImportJob;
|
||||
import net.javahippie.fitpub.model.entity.BatchImportJob;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
package org.operaton.fitpub.repository;
|
||||
package net.javahippie.fitpub.repository;
|
||||
|
||||
import org.operaton.fitpub.model.entity.Comment;
|
||||
import net.javahippie.fitpub.model.entity.Comment;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
package org.operaton.fitpub.repository;
|
||||
package net.javahippie.fitpub.repository;
|
||||
|
||||
import org.operaton.fitpub.model.entity.Follow;
|
||||
import net.javahippie.fitpub.model.entity.Follow;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.Modifying;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
|
|
@ -1,10 +1,8 @@
|
|||
package org.operaton.fitpub.repository;
|
||||
package net.javahippie.fitpub.repository;
|
||||
|
||||
import org.operaton.fitpub.model.entity.Like;
|
||||
import net.javahippie.fitpub.model.entity.Like;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.Modifying;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.data.repository.query.Param;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
package org.operaton.fitpub.repository;
|
||||
package net.javahippie.fitpub.repository;
|
||||
|
||||
import org.operaton.fitpub.model.entity.Notification;
|
||||
import net.javahippie.fitpub.model.entity.Notification;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
package org.operaton.fitpub.repository;
|
||||
package net.javahippie.fitpub.repository;
|
||||
|
||||
import org.operaton.fitpub.model.entity.PersonalRecord;
|
||||
import net.javahippie.fitpub.model.entity.PersonalRecord;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.data.repository.query.Param;
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
package org.operaton.fitpub.repository;
|
||||
package net.javahippie.fitpub.repository;
|
||||
|
||||
import org.operaton.fitpub.model.entity.PrivacyZone;
|
||||
import net.javahippie.fitpub.model.entity.PrivacyZone;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.data.repository.query.Param;
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
package org.operaton.fitpub.repository;
|
||||
package net.javahippie.fitpub.repository;
|
||||
|
||||
import org.operaton.fitpub.model.entity.RemoteActivity;
|
||||
import net.javahippie.fitpub.model.entity.RemoteActivity;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
package org.operaton.fitpub.repository;
|
||||
package net.javahippie.fitpub.repository;
|
||||
|
||||
import org.operaton.fitpub.model.entity.RemoteActor;
|
||||
import net.javahippie.fitpub.model.entity.RemoteActor;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
package org.operaton.fitpub.repository;
|
||||
package net.javahippie.fitpub.repository;
|
||||
|
||||
import org.operaton.fitpub.model.entity.TrainingLoad;
|
||||
import net.javahippie.fitpub.model.entity.TrainingLoad;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.data.repository.query.Param;
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
package org.operaton.fitpub.repository;
|
||||
package net.javahippie.fitpub.repository;
|
||||
|
||||
import org.locationtech.jts.geom.Point;
|
||||
import org.operaton.fitpub.model.entity.UserHeatmapGrid;
|
||||
import net.javahippie.fitpub.model.entity.UserHeatmapGrid;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.Modifying;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
package org.operaton.fitpub.repository;
|
||||
package net.javahippie.fitpub.repository;
|
||||
|
||||
import org.operaton.fitpub.model.entity.User;
|
||||
import net.javahippie.fitpub.model.entity.User;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
|
|
@ -8,7 +8,6 @@ import org.springframework.data.jpa.repository.Query;
|
|||
import org.springframework.data.repository.query.Param;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.UUID;
|
||||
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
package org.operaton.fitpub.repository;
|
||||
package net.javahippie.fitpub.repository;
|
||||
|
||||
import org.operaton.fitpub.model.entity.WeatherData;
|
||||
import net.javahippie.fitpub.model.entity.WeatherData;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
|
|
@ -1,8 +1,8 @@
|
|||
package org.operaton.fitpub.scheduler;
|
||||
package net.javahippie.fitpub.scheduler;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.operaton.fitpub.service.BatchImportService;
|
||||
import net.javahippie.fitpub.service.BatchImportService;
|
||||
import org.springframework.scheduling.annotation.Scheduled;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.operaton.fitpub.security;
|
||||
package net.javahippie.fitpub.security;
|
||||
|
||||
import jakarta.servlet.ServletException;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.operaton.fitpub.security;
|
||||
package net.javahippie.fitpub.security;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.operaton.fitpub.security;
|
||||
package net.javahippie.fitpub.security;
|
||||
|
||||
import jakarta.servlet.FilterChain;
|
||||
import jakarta.servlet.ServletException;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.operaton.fitpub.security;
|
||||
package net.javahippie.fitpub.security;
|
||||
|
||||
import io.jsonwebtoken.*;
|
||||
import io.jsonwebtoken.security.Keys;
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue