← back to donghwa535__CareConnect

Function bodies 105 total

All specs Real LLM only Function bodies
AdminController class · java · L20-L52 (33 LOC)
backend/src/main/java/com/remotecare/controller/AdminController.java
public class AdminController {

    private final CallSessionRepository callSessionRepository;
    private final AuditLogRepository auditLogRepository;
    private final PatientDeviceRepository patientDeviceRepository;

    @GetMapping("/calls")
    public ResponseEntity<List<CallSession>> getCalls(
            @RequestParam(required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDateTime from,
            @RequestParam(required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDateTime to) {
        
        if (from == null) from = LocalDateTime.now().minusDays(7);
        if (to == null) to = LocalDateTime.now();
        
        return ResponseEntity.ok(callSessionRepository.findByRequestedAtBetweenOrderByRequestedAtDesc(from, to));
    }

    @GetMapping("/devices")
    public ResponseEntity<List<PatientDevice>> getDevices() {
        return ResponseEntity.ok(patientDeviceRepository.findAll());
    }

    @GetMapping("/logs")
    public ResponseE
getDevices method · java · L38-L40 (3 LOC)
backend/src/main/java/com/remotecare/controller/AdminController.java
    public ResponseEntity<List<PatientDevice>> getDevices() {
        return ResponseEntity.ok(patientDeviceRepository.findAll());
    }
AuthController class · java · L15-L28 (14 LOC)
backend/src/main/java/com/remotecare/controller/AuthController.java
public class AuthController {

    private final AuthService authService;

    @PostMapping("/signup")
    public ResponseEntity<AuthResponse> signup(@Valid @RequestBody SignupRequest request) {
        return ResponseEntity.ok(authService.signup(request));
    }

    @PostMapping("/login")
    public ResponseEntity<AuthResponse> login(@Valid @RequestBody AuthRequest request) {
        return ResponseEntity.ok(authService.login(request));
    }
}
signup method · java · L20-L22 (3 LOC)
backend/src/main/java/com/remotecare/controller/AuthController.java
    public ResponseEntity<AuthResponse> signup(@Valid @RequestBody SignupRequest request) {
        return ResponseEntity.ok(authService.signup(request));
    }
login method · java · L25-L27 (3 LOC)
backend/src/main/java/com/remotecare/controller/AuthController.java
    public ResponseEntity<AuthResponse> login(@Valid @RequestBody AuthRequest request) {
        return ResponseEntity.ok(authService.login(request));
    }
CallController class · java · L16-L55 (40 LOC)
backend/src/main/java/com/remotecare/controller/CallController.java
public class CallController {

    private final CallService callService;

    @PostMapping("/request")
    public ResponseEntity<CallSessionDto> requestCall(
            Authentication authentication,
            @Valid @RequestBody CallRequestDto request) {
        Long userId = (Long) authentication.getPrincipal();
        return ResponseEntity.ok(callService.requestCall(userId, request));
    }

    @PostMapping("/accept")
    public ResponseEntity<CallSessionDto> acceptCall(
            Authentication authentication,
            @Valid @RequestBody CallAcceptRequest request) {
        Long userId = (Long) authentication.getPrincipal();
        return ResponseEntity.ok(callService.acceptCall(userId, request));
    }

    @PostMapping("/end")
    public ResponseEntity<Void> endCall(
            Authentication authentication,
            @Valid @RequestBody CallEndRequest request) {
        Long userId = (Long) authentication.getPrincipal();
        callService.endCall(userId, reques
requestCall method · java · L21-L26 (6 LOC)
backend/src/main/java/com/remotecare/controller/CallController.java
    public ResponseEntity<CallSessionDto> requestCall(
            Authentication authentication,
            @Valid @RequestBody CallRequestDto request) {
        Long userId = (Long) authentication.getPrincipal();
        return ResponseEntity.ok(callService.requestCall(userId, request));
    }
Repobility · code-quality intelligence · https://repobility.com
acceptCall method · java · L29-L34 (6 LOC)
backend/src/main/java/com/remotecare/controller/CallController.java
    public ResponseEntity<CallSessionDto> acceptCall(
            Authentication authentication,
            @Valid @RequestBody CallAcceptRequest request) {
        Long userId = (Long) authentication.getPrincipal();
        return ResponseEntity.ok(callService.acceptCall(userId, request));
    }
endCall method · java · L37-L43 (7 LOC)
backend/src/main/java/com/remotecare/controller/CallController.java
    public ResponseEntity<Void> endCall(
            Authentication authentication,
            @Valid @RequestBody CallEndRequest request) {
        Long userId = (Long) authentication.getPrincipal();
        callService.endCall(userId, request);
        return ResponseEntity.ok().build();
    }
getCallSession method · java · L46-L48 (3 LOC)
backend/src/main/java/com/remotecare/controller/CallController.java
    public ResponseEntity<CallSessionDto> getCallSession(@PathVariable Long id) {
        return ResponseEntity.ok(callService.getCallSession(id));
    }
getCallHistory method · java · L51-L54 (4 LOC)
backend/src/main/java/com/remotecare/controller/CallController.java
    public ResponseEntity<List<CallSessionDto>> getCallHistory(Authentication authentication) {
        Long userId = (Long) authentication.getPrincipal();
        return ResponseEntity.ok(callService.getCallHistory(userId));
    }
DeviceController class · java · L17-L51 (35 LOC)
backend/src/main/java/com/remotecare/controller/DeviceController.java
public class DeviceController {

    private final DeviceService deviceService;

    @PostMapping("/register")
    public ResponseEntity<PatientDevice> registerDevice(
            Authentication authentication,
            @Valid @RequestBody DeviceRegisterRequest request) {
        Long userId = (Long) authentication.getPrincipal();
        return ResponseEntity.ok(deviceService.registerDevice(userId, request));
    }

    @PostMapping("/heartbeat")
    public ResponseEntity<Void> heartbeat(
            Authentication authentication,
            @Valid @RequestBody DeviceHeartbeatRequest request) {
        Long userId = (Long) authentication.getPrincipal();
        deviceService.heartbeat(userId, request);
        return ResponseEntity.ok().build();
    }

    @PatchMapping("/settings")
    public ResponseEntity<PatientDevice> updateSettings(
            Authentication authentication,
            @Valid @RequestBody DeviceSettingsRequest request) {
        Long userId = (Long) authent
registerDevice method · java · L22-L27 (6 LOC)
backend/src/main/java/com/remotecare/controller/DeviceController.java
    public ResponseEntity<PatientDevice> registerDevice(
            Authentication authentication,
            @Valid @RequestBody DeviceRegisterRequest request) {
        Long userId = (Long) authentication.getPrincipal();
        return ResponseEntity.ok(deviceService.registerDevice(userId, request));
    }
heartbeat method · java · L30-L36 (7 LOC)
backend/src/main/java/com/remotecare/controller/DeviceController.java
    public ResponseEntity<Void> heartbeat(
            Authentication authentication,
            @Valid @RequestBody DeviceHeartbeatRequest request) {
        Long userId = (Long) authentication.getPrincipal();
        deviceService.heartbeat(userId, request);
        return ResponseEntity.ok().build();
    }
updateSettings method · java · L39-L44 (6 LOC)
backend/src/main/java/com/remotecare/controller/DeviceController.java
    public ResponseEntity<PatientDevice> updateSettings(
            Authentication authentication,
            @Valid @RequestBody DeviceSettingsRequest request) {
        Long userId = (Long) authentication.getPrincipal();
        return ResponseEntity.ok(deviceService.updateSettings(userId, request));
    }
Open data scored by Repobility · https://repobility.com
getMyDevice method · java · L47-L50 (4 LOC)
backend/src/main/java/com/remotecare/controller/DeviceController.java
    public ResponseEntity<PatientDevice> getMyDevice(Authentication authentication) {
        Long userId = (Long) authentication.getPrincipal();
        return ResponseEntity.ok(deviceService.getDeviceByPatientId(userId));
    }
PairingController class · java · L18-L41 (24 LOC)
backend/src/main/java/com/remotecare/controller/PairingController.java
public class PairingController {

    private final PairingService pairingService;

    @PostMapping("/code")
    public ResponseEntity<PairingCodeResponse> generateCode(Authentication authentication) {
        Long userId = (Long) authentication.getPrincipal();
        return ResponseEntity.ok(pairingService.generateCode(userId));
    }

    @PostMapping("/claim")
    public ResponseEntity<PairingDto> claimPairing(
            Authentication authentication,
            @Valid @RequestBody ClaimPairingRequest request) {
        Long userId = (Long) authentication.getPrincipal();
        return ResponseEntity.ok(pairingService.claimPairing(userId, request));
    }

    @GetMapping("/me")
    public ResponseEntity<List<PairingDto>> getMyPairings(Authentication authentication) {
        Long userId = (Long) authentication.getPrincipal();
        return ResponseEntity.ok(pairingService.getMyPairings(userId));
    }
}
generateCode method · java · L23-L26 (4 LOC)
backend/src/main/java/com/remotecare/controller/PairingController.java
    public ResponseEntity<PairingCodeResponse> generateCode(Authentication authentication) {
        Long userId = (Long) authentication.getPrincipal();
        return ResponseEntity.ok(pairingService.generateCode(userId));
    }
claimPairing method · java · L29-L34 (6 LOC)
backend/src/main/java/com/remotecare/controller/PairingController.java
    public ResponseEntity<PairingDto> claimPairing(
            Authentication authentication,
            @Valid @RequestBody ClaimPairingRequest request) {
        Long userId = (Long) authentication.getPrincipal();
        return ResponseEntity.ok(pairingService.claimPairing(userId, request));
    }
getMyPairings method · java · L37-L40 (4 LOC)
backend/src/main/java/com/remotecare/controller/PairingController.java
    public ResponseEntity<List<PairingDto>> getMyPairings(Authentication authentication) {
        Long userId = (Long) authentication.getPrincipal();
        return ResponseEntity.ok(pairingService.getMyPairings(userId));
    }
AuditLog class · java · L16-L52 (37 LOC)
backend/src/main/java/com/remotecare/domain/entity/AuditLog.java
public class AuditLog {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Enumerated(EnumType.STRING)
    @Column(nullable = false)
    private Type type;

    private Long actorUserId;

    private Long targetUserId;

    @Column(columnDefinition = "TEXT")
    private String payloadJson;

    @CreationTimestamp
    @Column(nullable = false, updatable = false)
    private LocalDateTime createdAt;

    public enum Type {
        USER_SIGNUP,
        USER_LOGIN,
        PAIRING_CODE_GENERATED,
        PAIRING_CLAIMED,
        DEVICE_REGISTERED,
        DEVICE_HEARTBEAT,
        DEVICE_SETTINGS_UPDATED,
        CALL_REQUESTED,
        CALL_ACCEPTED,
        CALL_REJECTED,
        CALL_CONNECTED,
        CALL_ENDED,
        CALL_FAILED,
        CALL_TIMEOUT
    }
}
CallSession class · java · L16-L46 (31 LOC)
backend/src/main/java/com/remotecare/domain/entity/CallSession.java
public class CallSession {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Column(nullable = false)
    private Long patientUserId;

    @Column(nullable = false)
    private Long guardianUserId;

    @Enumerated(EnumType.STRING)
    @Column(nullable = false)
    private Status status;

    @CreationTimestamp
    @Column(nullable = false, updatable = false)
    private LocalDateTime requestedAt;

    private LocalDateTime connectedAt;

    private LocalDateTime endedAt;

    private String failReason;

    private String providerSessionId;

    public enum Status {
        REQUESTED, ACCEPTED, CONNECTED, ENDED, REJECTED, FAILED, TIMEOUT
    }
}
PairingCode class · java · L16-L45 (30 LOC)
backend/src/main/java/com/remotecare/domain/entity/PairingCode.java
public class PairingCode {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Column(unique = true, nullable = false, length = 6)
    private String code;

    @Column(nullable = false)
    private Long patientUserId;

    @Column(nullable = false)
    private LocalDateTime expiresAt;

    @Builder.Default
    @Column(nullable = false)
    private Boolean used = false;

    @CreationTimestamp
    @Column(nullable = false, updatable = false)
    private LocalDateTime createdAt;

    public boolean isExpired() {
        return LocalDateTime.now().isAfter(expiresAt);
    }

    public boolean isValid() {
        return !used && !isExpired();
    }
}
All rows above produced by Repobility · https://repobility.com
isExpired method · java · L38-L40 (3 LOC)
backend/src/main/java/com/remotecare/domain/entity/PairingCode.java
    public boolean isExpired() {
        return LocalDateTime.now().isAfter(expiresAt);
    }
isValid method · java · L42-L44 (3 LOC)
backend/src/main/java/com/remotecare/domain/entity/PairingCode.java
    public boolean isValid() {
        return !used && !isExpired();
    }
Pairing class · java · L16-L38 (23 LOC)
backend/src/main/java/com/remotecare/domain/entity/Pairing.java
public class Pairing {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Column(nullable = false)
    private Long patientUserId;

    @Column(nullable = false)
    private Long guardianUserId;

    @Enumerated(EnumType.STRING)
    @Column(nullable = false)
    private Status status;

    @CreationTimestamp
    @Column(nullable = false, updatable = false)
    private LocalDateTime createdAt;

    public enum Status {
        ACTIVE, INACTIVE
    }
}
PatientDevice class · java · L17-L58 (42 LOC)
backend/src/main/java/com/remotecare/domain/entity/PatientDevice.java
public class PatientDevice {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Column(nullable = false, unique = true)
    private Long patientUserId;

    @Column(nullable = false, unique = true)
    private String deviceId;

    private LocalDateTime lastSeenAt;

    @Builder.Default
    @Column(nullable = false)
    private Boolean online = false;

    @Builder.Default
    @Column(nullable = false)
    private Boolean autoAnswerEnabled = true;

    @Builder.Default
    private LocalTime allowedTimeStart = LocalTime.of(0, 0);

    @Builder.Default
    private LocalTime allowedTimeEnd = LocalTime.of(23, 59);

    @CreationTimestamp
    @Column(nullable = false, updatable = false)
    private LocalDateTime createdAt;

    public boolean isOnline(long heartbeatTimeoutMs) {
        if (lastSeenAt == null) return false;
        return LocalDateTime.now().isBefore(lastSeenAt.plusNanos(heartbeatTimeoutMs * 1_000_000));
    }

    public boolean isCal
isOnline method · java · L48-L51 (4 LOC)
backend/src/main/java/com/remotecare/domain/entity/PatientDevice.java
    public boolean isOnline(long heartbeatTimeoutMs) {
        if (lastSeenAt == null) return false;
        return LocalDateTime.now().isBefore(lastSeenAt.plusNanos(heartbeatTimeoutMs * 1_000_000));
    }
isCallAllowed method · java · L53-L57 (5 LOC)
backend/src/main/java/com/remotecare/domain/entity/PatientDevice.java
    public boolean isCallAllowed() {
        if (!autoAnswerEnabled) return false;
        LocalTime now = LocalTime.now();
        return !now.isBefore(allowedTimeStart) && !now.isAfter(allowedTimeEnd);
    }
User class · java · L16-L41 (26 LOC)
backend/src/main/java/com/remotecare/domain/entity/User.java
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

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

    @Column(nullable = false)
    private String passwordHash;

    @Enumerated(EnumType.STRING)
    @Column(nullable = false)
    private Role role;

    @Column(nullable = false)
    private String name;

    @CreationTimestamp
    @Column(nullable = false, updatable = false)
    private LocalDateTime createdAt;

    public enum Role {
        PATIENT, GUARDIAN, ADMIN
    }
}
AuthRequest class · java · L8-L15 (8 LOC)
backend/src/main/java/com/remotecare/dto/AuthRequest.java
public class AuthRequest {
    @Email
    @NotBlank
    private String email;

    @NotBlank
    private String password;
}
All rows scored by the Repobility analyzer (https://repobility.com)
AuthResponse class · java · L13-L25 (13 LOC)
backend/src/main/java/com/remotecare/dto/AuthResponse.java
public class AuthResponse {
    private String accessToken;
    private UserDto user;

    @Data
    @Builder
    public static class UserDto {
        private Long id;
        private String email;
        private User.Role role;
        private String name;
    }
}
UserDto class · java · L19-L24 (6 LOC)
backend/src/main/java/com/remotecare/dto/AuthResponse.java
    public static class UserDto {
        private Long id;
        private String email;
        private User.Role role;
        private String name;
    }
CallAcceptRequest class · java · L8-L14 (7 LOC)
backend/src/main/java/com/remotecare/dto/CallAcceptRequest.java
public class CallAcceptRequest {
    @NotNull
    private Long callSessionId;
    
    @NotBlank
    private String deviceId;
}
CallEndRequest class · java · L7-L10 (4 LOC)
backend/src/main/java/com/remotecare/dto/CallEndRequest.java
public class CallEndRequest {
    @NotNull
    private Long callSessionId;
}
CallRequestDto class · java · L7-L10 (4 LOC)
backend/src/main/java/com/remotecare/dto/CallRequestDto.java
public class CallRequestDto {
    @NotNull
    private Long patientUserId;
}
CallSessionDto class · java · L15-L27 (13 LOC)
backend/src/main/java/com/remotecare/dto/CallSessionDto.java
public class CallSessionDto {
    private Long id;
    private Long patientUserId;
    private String patientName;
    private Long guardianUserId;
    private String guardianName;
    private CallSession.Status status;
    private LocalDateTime requestedAt;
    private LocalDateTime connectedAt;
    private LocalDateTime endedAt;
    private String failReason;
    private String providerSessionId;
}
ClaimPairingRequest class · java · L8-L12 (5 LOC)
backend/src/main/java/com/remotecare/dto/ClaimPairingRequest.java
public class ClaimPairingRequest {
    @NotBlank
    @Size(min = 6, max = 6)
    private String code;
}
DeviceHeartbeatRequest class · java · L7-L10 (4 LOC)
backend/src/main/java/com/remotecare/dto/DeviceHeartbeatRequest.java
public class DeviceHeartbeatRequest {
    @NotBlank
    private String deviceId;
}
Repobility · code-quality intelligence · https://repobility.com
DeviceRegisterRequest class · java · L7-L10 (4 LOC)
backend/src/main/java/com/remotecare/dto/DeviceRegisterRequest.java
public class DeviceRegisterRequest {
    @NotBlank
    private String deviceId;
}
DeviceSettingsRequest class · java · L8-L12 (5 LOC)
backend/src/main/java/com/remotecare/dto/DeviceSettingsRequest.java
public class DeviceSettingsRequest {
    private Boolean autoAnswerEnabled;
    private LocalTime allowedTimeStart;
    private LocalTime allowedTimeEnd;
}
PairingCodeResponse class · java · L14-L17 (4 LOC)
backend/src/main/java/com/remotecare/dto/PairingCodeResponse.java
public class PairingCodeResponse {
    private String code;
    private LocalDateTime expiresAt;
}
PairingDto class · java · L15-L31 (17 LOC)
backend/src/main/java/com/remotecare/dto/PairingDto.java
public class PairingDto {
    private Long id;
    private Long patientUserId;
    private String patientName;
    private Long guardianUserId;
    private String guardianName;
    private Pairing.Status status;
    private LocalDateTime createdAt;
    private DeviceStatusDto deviceStatus;

    @Data
    @Builder
    public static class DeviceStatusDto {
        private Boolean online;
        private LocalDateTime lastSeenAt;
    }
}
DeviceStatusDto class · java · L27-L30 (4 LOC)
backend/src/main/java/com/remotecare/dto/PairingDto.java
    public static class DeviceStatusDto {
        private Boolean online;
        private LocalDateTime lastSeenAt;
    }
SignupRequest class · java · L10-L23 (14 LOC)
backend/src/main/java/com/remotecare/dto/SignupRequest.java
public class SignupRequest {
    @Email
    @NotBlank
    private String email;

    @NotBlank
    private String password;

    @NotNull
    private User.Role role;

    @NotBlank
    private String name;
}
RemoteCareApplication class · java · L9-L13 (5 LOC)
backend/src/main/java/com/remotecare/RemoteCareApplication.java
public class RemoteCareApplication {
    public static void main(String[] args) {
        SpringApplication.run(RemoteCareApplication.class, args);
    }
}
main method · java · L10-L12 (3 LOC)
backend/src/main/java/com/remotecare/RemoteCareApplication.java
    public static void main(String[] args) {
        SpringApplication.run(RemoteCareApplication.class, args);
    }
Open data scored by Repobility · https://repobility.com
JwtAuthenticationFilter class · java · L20-L85 (66 LOC)
backend/src/main/java/com/remotecare/security/JwtAuthenticationFilter.java
public class JwtAuthenticationFilter extends OncePerRequestFilter {

    private final JwtUtil jwtUtil;

    @Override
    protected void doFilterInternal(HttpServletRequest request, 
                                    HttpServletResponse response, 
                                    FilterChain filterChain) throws ServletException, IOException {
        
        String requestURI = request.getRequestURI();
        System.out.println(">>> JWT Filter processing: " + request.getMethod() + " " + requestURI);
        
        final String authorizationHeader = request.getHeader("Authorization");
        System.out.println(">>> Authorization header: " + (authorizationHeader != null ? "Present" : "Missing"));

        String username = null;
        String jwt = null;

        if (authorizationHeader != null && authorizationHeader.startsWith("Bearer ")) {
            jwt = authorizationHeader.substring(7);
            System.out.println(">>> JWT token extracted, length: " + jwt.length());
doFilterInternal method · java · L25-L84 (60 LOC)
backend/src/main/java/com/remotecare/security/JwtAuthenticationFilter.java
    protected void doFilterInternal(HttpServletRequest request, 
                                    HttpServletResponse response, 
                                    FilterChain filterChain) throws ServletException, IOException {
        
        String requestURI = request.getRequestURI();
        System.out.println(">>> JWT Filter processing: " + request.getMethod() + " " + requestURI);
        
        final String authorizationHeader = request.getHeader("Authorization");
        System.out.println(">>> Authorization header: " + (authorizationHeader != null ? "Present" : "Missing"));

        String username = null;
        String jwt = null;

        if (authorizationHeader != null && authorizationHeader.startsWith("Bearer ")) {
            jwt = authorizationHeader.substring(7);
            System.out.println(">>> JWT token extracted, length: " + jwt.length());
            try {
                username = jwtUtil.extractUsername(jwt);
                System.out.println(">>> User
JwtUtil class · java · L17-L85 (69 LOC)
backend/src/main/java/com/remotecare/security/JwtUtil.java
public class JwtUtil {

    @Value("${jwt.secret}")
    private String secret;

    @Value("${jwt.expiration}")
    private Long expiration;

    private SecretKey getSigningKey() {
        return Keys.hmacShaKeyFor(secret.getBytes(StandardCharsets.UTF_8));
    }

    public String extractUsername(String token) {
        return extractClaim(token, Claims::getSubject);
    }

    public Date extractExpiration(String token) {
        return extractClaim(token, Claims::getExpiration);
    }

    public <T> T extractClaim(String token, Function<Claims, T> claimsResolver) {
        final Claims claims = extractAllClaims(token);
        return claimsResolver.apply(claims);
    }

    private Claims extractAllClaims(String token) {
        return Jwts.parser()
                .verifyWith(getSigningKey())
                .build()
                .parseSignedClaims(token)
                .getPayload();
    }

    private Boolean isTokenExpired(String token) {
        return extractExpiration(to
page 1 / 3next ›