Function bodies 105 total
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 ResponseEgetDevices 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, requesrequestCall 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) authentregisterDevice 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 isCalisOnline 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(">>> UserJwtUtil 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(topage 1 / 3next ›