added bookmarked to scan history
This commit is contained in:
@@ -8,9 +8,9 @@ public class APIConstants {
|
|||||||
public static final String API_URL_QRCODE_GET_ALL = "/qrcodetypes";
|
public static final String API_URL_QRCODE_GET_ALL = "/qrcodetypes";
|
||||||
public static final String API_URL_QRCODE_SCAN = "/qrcodetypes/scan";
|
public static final String API_URL_QRCODE_SCAN = "/qrcodetypes/scan";
|
||||||
public static final String API_URL_QRCODE_DETECT = "/qrcodetypes/detect";
|
public static final String API_URL_QRCODE_DETECT = "/qrcodetypes/detect";
|
||||||
public static final String API_URL_QRCODE_VERIFY_URL = "/qrcodetypes/verifyurl";
|
public static final String API_URL_QRCODE_VERIFY_URL = "/qrcodetypes/verifyURL";
|
||||||
public static final String API_URL_QRCODE_VIRUS_TOTAL_CHECK = "/qrcodetypes/virustotalcheck";
|
public static final String API_URL_QRCODE_VIRUS_TOTAL_CHECK = "/qrcodetypes/virusTotalCheck";
|
||||||
public static final String API_URL_QRCODE_REDIRECT_COUNT = "/qrcodetypes/redirectcount";
|
public static final String API_URL_QRCODE_REDIRECT_COUNT = "/qrcodetypes/checkRedirects";
|
||||||
public static final String API_URL_QRCODE_GET_QR_DETAILS = "/qrcodetypes/getQRDetails";
|
public static final String API_URL_QRCODE_GET_QR_DETAILS = "/qrcodetypes/getQRDetails";
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -35,6 +35,9 @@ public class ScanHistoryEntity {
|
|||||||
@Column(name = "date_updated")
|
@Column(name = "date_updated")
|
||||||
private OffsetDateTime dateUpdated;
|
private OffsetDateTime dateUpdated;
|
||||||
|
|
||||||
|
@Column(name = "bookmarked")
|
||||||
|
private boolean bookmarked;
|
||||||
|
|
||||||
public enum ScanStatus {
|
public enum ScanStatus {
|
||||||
ACTIVE,
|
ACTIVE,
|
||||||
INACTIVE
|
INACTIVE
|
||||||
|
|||||||
@@ -1,10 +1,11 @@
|
|||||||
package com.safeqr.app.qrcode.repository;
|
package com.safeqr.app.qrcode.repository;
|
||||||
|
|
||||||
import com.safeqr.app.qrcode.entity.QRCodeEntity;
|
|
||||||
import com.safeqr.app.qrcode.entity.ScanHistoryEntity;
|
import com.safeqr.app.qrcode.entity.ScanHistoryEntity;
|
||||||
|
import com.safeqr.app.user.dto.ScannedHistoriesDto;
|
||||||
import org.springframework.data.jpa.repository.JpaRepository;
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
import org.springframework.data.jpa.repository.Modifying;
|
import org.springframework.data.jpa.repository.Modifying;
|
||||||
import org.springframework.data.jpa.repository.Query;
|
import org.springframework.data.jpa.repository.Query;
|
||||||
|
import org.springframework.data.repository.query.Param;
|
||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -12,8 +13,9 @@ import java.util.UUID;
|
|||||||
|
|
||||||
@Repository
|
@Repository
|
||||||
public interface ScanHistoryRepository extends JpaRepository<ScanHistoryEntity, Long> {
|
public interface ScanHistoryRepository extends JpaRepository<ScanHistoryEntity, Long> {
|
||||||
@Query("SELECT sh.qrCodeEntity FROM ScanHistoryEntity sh WHERE sh.userId = :userId AND sh.scanStatus = 'ACTIVE'")
|
@Query("SELECT new com.safeqr.app.user.dto.ScannedHistoriesDto(sh.qrCodeEntity, sh.bookmarked) " +
|
||||||
List<QRCodeEntity> findAllQRCodesByUserId(String userId);
|
"FROM ScanHistoryEntity sh WHERE sh.userId = :userId AND sh.scanStatus = 'ACTIVE' ORDER BY sh.dateCreated DESC")
|
||||||
|
List<ScannedHistoriesDto> findAllQRCodesByUserId(@Param("userId") String userId);
|
||||||
|
|
||||||
@Modifying
|
@Modifying
|
||||||
@Query("UPDATE ScanHistoryEntity sh SET sh.scanStatus = com.safeqr.app.qrcode.entity.ScanHistoryEntity$ScanStatus.INACTIVE, sh.dateUpdated = CURRENT_TIMESTAMP WHERE sh.userId = :userId AND sh.scanStatus = com.safeqr.app.qrcode.entity.ScanHistoryEntity$ScanStatus.ACTIVE AND sh.qrCodeId = :qrCodeId")
|
@Query("UPDATE ScanHistoryEntity sh SET sh.scanStatus = com.safeqr.app.qrcode.entity.ScanHistoryEntity$ScanStatus.INACTIVE, sh.dateUpdated = CURRENT_TIMESTAMP WHERE sh.userId = :userId AND sh.scanStatus = com.safeqr.app.qrcode.entity.ScanHistoryEntity$ScanStatus.ACTIVE AND sh.qrCodeId = :qrCodeId")
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import static com.safeqr.app.constants.CommonConstants.HEADER_USER_ID;
|
|||||||
import com.safeqr.app.qrcode.entity.QRCodeEntity;
|
import com.safeqr.app.qrcode.entity.QRCodeEntity;
|
||||||
import com.safeqr.app.user.dto.BaseResponse;
|
import com.safeqr.app.user.dto.BaseResponse;
|
||||||
import com.safeqr.app.user.dto.BookmarkRequestDto;
|
import com.safeqr.app.user.dto.BookmarkRequestDto;
|
||||||
|
import com.safeqr.app.user.dto.ScannedHistoriesDto;
|
||||||
import com.safeqr.app.user.dto.UserResponseDto;
|
import com.safeqr.app.user.dto.UserResponseDto;
|
||||||
import com.safeqr.app.user.service.UserService;
|
import com.safeqr.app.user.service.UserService;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
@@ -41,7 +42,7 @@ public class UserController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping(value = API_URL_USER_GET_SCANNED_HISTORIES, produces = MediaType.APPLICATION_JSON_VALUE)
|
@GetMapping(value = API_URL_USER_GET_SCANNED_HISTORIES, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
public ResponseEntity<List<QRCodeEntity>> getUserScannedHistories(@RequestHeader(name = HEADER_USER_ID) String userId) {
|
public ResponseEntity<List<ScannedHistoriesDto>> getUserScannedHistories(@RequestHeader(name = HEADER_USER_ID) String userId) {
|
||||||
logger.info("Invoking GET User Scanned Histories endpoint");
|
logger.info("Invoking GET User Scanned Histories endpoint");
|
||||||
return ResponseEntity.ok(userService.getUserScannedHistories(userId));
|
return ResponseEntity.ok(userService.getUserScannedHistories(userId));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,18 @@
|
|||||||
|
package com.safeqr.app.user.dto;
|
||||||
|
|
||||||
|
import com.safeqr.app.qrcode.entity.QRCodeEntity;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
public class ScannedHistoriesDto {
|
||||||
|
|
||||||
|
private QRCodeEntity data;
|
||||||
|
private boolean bookmarked;
|
||||||
|
|
||||||
|
public ScannedHistoriesDto(QRCodeEntity qrCodeEntity, boolean bookmarked) {
|
||||||
|
this.data = qrCodeEntity;
|
||||||
|
this.bookmarked = bookmarked;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
package com.safeqr.app.user.dto;
|
|
||||||
|
|
||||||
public class ScannedHistoriesResponse {
|
|
||||||
}
|
|
||||||
@@ -6,8 +6,8 @@ import com.safeqr.app.qrcode.entity.QRCodeEntity;
|
|||||||
import com.safeqr.app.qrcode.entity.ScanBookmarkEntity;
|
import com.safeqr.app.qrcode.entity.ScanBookmarkEntity;
|
||||||
import com.safeqr.app.qrcode.repository.ScanBookmarkRepository;
|
import com.safeqr.app.qrcode.repository.ScanBookmarkRepository;
|
||||||
import com.safeqr.app.qrcode.repository.ScanHistoryRepository;
|
import com.safeqr.app.qrcode.repository.ScanHistoryRepository;
|
||||||
import com.safeqr.app.user.controller.UserController;
|
|
||||||
import com.safeqr.app.user.dto.BaseResponse;
|
import com.safeqr.app.user.dto.BaseResponse;
|
||||||
|
import com.safeqr.app.user.dto.ScannedHistoriesDto;
|
||||||
import com.safeqr.app.user.dto.UserResponseDto;
|
import com.safeqr.app.user.dto.UserResponseDto;
|
||||||
import com.safeqr.app.user.entity.UserEntity;
|
import com.safeqr.app.user.entity.UserEntity;
|
||||||
import com.safeqr.app.user.repository.UserRepository;
|
import com.safeqr.app.user.repository.UserRepository;
|
||||||
@@ -54,7 +54,7 @@ public class UserService {
|
|||||||
.status(userEntity.getStatus())
|
.status(userEntity.getStatus())
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
public List<QRCodeEntity> getUserScannedHistories(String userId) {
|
public List<ScannedHistoriesDto> getUserScannedHistories(String userId) {
|
||||||
return scanHistoryRepository.findAllQRCodesByUserId(userId);
|
return scanHistoryRepository.findAllQRCodesByUserId(userId);
|
||||||
}
|
}
|
||||||
@Transactional
|
@Transactional
|
||||||
|
|||||||
Reference in New Issue
Block a user