clean up with constants

This commit is contained in:
heyethereum
2024-07-18 08:28:10 +08:00
parent 686c4f939e
commit b966597ca6
8 changed files with 35 additions and 27 deletions

View File

@@ -7,4 +7,9 @@ public class CommonConstants {
public static final String HEADER_USER_ID = "X-USER-ID"; public static final String HEADER_USER_ID = "X-USER-ID";
public static final String DEFAULT_QR_CODE_TYPE = "TEXT"; public static final String DEFAULT_QR_CODE_TYPE = "TEXT";
public static final int MAX_REDIRECT_COUNT = 20; public static final int MAX_REDIRECT_COUNT = 20;
public static final String QR_CODE_TYPE_EMAIL = "EMAIL";
public static final String QR_CODE_TYPE_PHONE = "PHONE";
public static final String QR_CODE_TYPE_SMS = "SMS";
public static final String QR_CODE_TYPE_URL = "URL";
public static final String QR_CODE_TYPE_WIFI = "WIFI";
} }

View File

@@ -1,7 +1,7 @@
package com.safeqr.app.qrcode.controller; package com.safeqr.app.qrcode.controller;
import com.safeqr.app.constants.APIConstants; import static com.safeqr.app.constants.APIConstants.*;
import com.safeqr.app.constants.CommonConstants; import static com.safeqr.app.constants.CommonConstants.*;
import com.safeqr.app.qrcode.dto.QRCodePayload; import com.safeqr.app.qrcode.dto.QRCodePayload;
import com.safeqr.app.qrcode.dto.RedirectCountResponse; import com.safeqr.app.qrcode.dto.RedirectCountResponse;
import com.safeqr.app.qrcode.dto.URLVerificationResponse; import com.safeqr.app.qrcode.dto.URLVerificationResponse;
@@ -22,9 +22,9 @@ import org.springframework.web.bind.annotation.*;
import java.util.List; import java.util.List;
@RestController @RestController
@RequestMapping(APIConstants.API_VERSION) @RequestMapping(API_VERSION)
public class QRCodeTypeController { public class QRCodeTypeController {
private static final Logger logger = LoggerFactory.getLogger(QRCodeTypeService.class); private static final Logger logger = LoggerFactory.getLogger(QRCodeTypeController.class);
@Autowired @Autowired
private QRCodeTypeService qrCodeTypeService; private QRCodeTypeService qrCodeTypeService;
@@ -38,30 +38,30 @@ public class QRCodeTypeController {
@Autowired @Autowired
private RedirectCountService redirectCountService; private RedirectCountService redirectCountService;
@GetMapping(value = APIConstants.API_URL_QRCODE_GET_ALL) @GetMapping(value = API_URL_QRCODE_GET_ALL)
public ResponseEntity<List<QRCodeTypeEntity>> getAllTypes() { public ResponseEntity<List<QRCodeTypeEntity>> getAllTypes() {
return ResponseEntity.ok(qrCodeTypeService.getAllTypes()); return ResponseEntity.ok(qrCodeTypeService.getAllTypes());
} }
@PostMapping(value = APIConstants.API_URL_QRCODE_SCAN, produces = MediaType.APPLICATION_JSON_VALUE) @PostMapping(value = API_URL_QRCODE_SCAN, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<BaseScanResponse> scanQRCode(@RequestBody QRCodePayload payload, public ResponseEntity<BaseScanResponse> scanQRCode(@RequestBody QRCodePayload payload,
@RequestHeader(required = false, name = CommonConstants.HEADER_USER_ID) String userId) { @RequestHeader(required = false, name = HEADER_USER_ID) String userId) {
logger.info("Invoking scan endpoint"); logger.info("Invoking scan endpoint");
return ResponseEntity.ok(qrCodeTypeService.scanQRCode(userId, payload)); return ResponseEntity.ok(qrCodeTypeService.scanQRCode(userId, payload));
} }
@PostMapping(APIConstants.API_URL_QRCODE_DETECT) @PostMapping(API_URL_QRCODE_DETECT)
public ResponseEntity<String> detectType(@RequestBody QRCodePayload payload) { public ResponseEntity<String> detectType(@RequestBody QRCodePayload payload) {
return ResponseEntity.ok(qrCodeTypeService.detectType(payload).block()); return ResponseEntity.ok(qrCodeTypeService.detectType(payload).block());
} }
@PostMapping(APIConstants.API_URL_QRCODE_VERIFY_URL) @PostMapping(API_URL_QRCODE_VERIFY_URL)
public ResponseEntity<URLVerificationResponse> verifyURL(@RequestBody QRCodePayload payload) { public ResponseEntity<URLVerificationResponse> verifyURL(@RequestBody QRCodePayload payload) {
URLVerificationResponse response = urlVerificationService.verifyURL(payload); URLVerificationResponse response = urlVerificationService.verifyURL(payload);
return ResponseEntity.ok(response); return ResponseEntity.ok(response);
} }
@PostMapping(APIConstants.API_URL_QRCODE_VIRUS_TOTAL_CHECK) @PostMapping(API_URL_QRCODE_VIRUS_TOTAL_CHECK)
public ResponseEntity<Boolean> virusTotalCheck(@RequestBody QRCodePayload payload) { public ResponseEntity<Boolean> virusTotalCheck(@RequestBody QRCodePayload payload) {
try { try {
String analysisId = virusTotalService.scanURL(payload); String analysisId = virusTotalService.scanURL(payload);
@@ -72,7 +72,7 @@ public class QRCodeTypeController {
} }
} }
@PostMapping(APIConstants.API_URL_QRCODE_REDIRECT_COUNT) @PostMapping(API_URL_QRCODE_REDIRECT_COUNT)
public ResponseEntity<RedirectCountResponse> checkRedirects(@RequestBody QRCodePayload payload) { public ResponseEntity<RedirectCountResponse> checkRedirects(@RequestBody QRCodePayload payload) {
return ResponseEntity.ok(redirectCountService.countRedirects(payload).block()); return ResponseEntity.ok(redirectCountService.countRedirects(payload).block());
} }

View File

@@ -7,6 +7,9 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import static com.safeqr.app.constants.CommonConstants.*;
@Component @Component
public class QRCodeFactoryProvider { public class QRCodeFactoryProvider {
private final ApplicationContext applicationContext; private final ApplicationContext applicationContext;
@@ -17,12 +20,12 @@ public class QRCodeFactoryProvider {
public QRCodeModel createQRCodeInstance(QRCodeEntity scannedQRCodeEntity, QRCodeTypeEntity qrCodeTypeEntity) { public QRCodeModel createQRCodeInstance(QRCodeEntity scannedQRCodeEntity, QRCodeTypeEntity qrCodeTypeEntity) {
return switch (qrCodeTypeEntity.getType().toUpperCase()) { return switch (qrCodeTypeEntity.getType().toUpperCase()) {
case "URL" -> applicationContext.getBean(URLFactory.class).create(scannedQRCodeEntity, qrCodeTypeEntity); case QR_CODE_TYPE_URL-> applicationContext.getBean(URLFactory.class).create(scannedQRCodeEntity, qrCodeTypeEntity);
case "PHONE" -> applicationContext.getBean(PhoneFactory.class).create(scannedQRCodeEntity, qrCodeTypeEntity); case QR_CODE_TYPE_PHONE -> applicationContext.getBean(PhoneFactory.class).create(scannedQRCodeEntity, qrCodeTypeEntity);
case "SMS" -> applicationContext.getBean(SMSFactory.class).create(scannedQRCodeEntity, qrCodeTypeEntity); case QR_CODE_TYPE_SMS -> applicationContext.getBean(SMSFactory.class).create(scannedQRCodeEntity, qrCodeTypeEntity);
case "EMAIL" -> applicationContext.getBean(EmailFactory.class).create(scannedQRCodeEntity, qrCodeTypeEntity); case QR_CODE_TYPE_EMAIL -> applicationContext.getBean(EmailFactory.class).create(scannedQRCodeEntity, qrCodeTypeEntity);
case "WIFI" -> applicationContext.getBean(WifiFactory.class).create(scannedQRCodeEntity, qrCodeTypeEntity); case QR_CODE_TYPE_WIFI -> applicationContext.getBean(WifiFactory.class).create(scannedQRCodeEntity, qrCodeTypeEntity);
case "TEXT" -> applicationContext.getBean(TextFactory.class).create(scannedQRCodeEntity, qrCodeTypeEntity); case DEFAULT_QR_CODE_TYPE -> applicationContext.getBean(TextFactory.class).create(scannedQRCodeEntity, qrCodeTypeEntity);
default -> throw new IllegalArgumentException("Unsupported QR code type: " + qrCodeTypeEntity.getType()); default -> throw new IllegalArgumentException("Unsupported QR code type: " + qrCodeTypeEntity.getType());
}; };
} }

View File

@@ -16,8 +16,8 @@ public class EmailVerificationService {
public EmailVerificationService(EmailRepository emailRepository) { public EmailVerificationService(EmailRepository emailRepository) {
this.emailRepository = emailRepository; this.emailRepository = emailRepository;
} }
public void insertDB(EmailEntity EmailEntity) { public void insertDB(EmailEntity emailEntity) {
emailRepository.save(EmailEntity); emailRepository.save(emailEntity);
} }
} }

View File

@@ -16,8 +16,8 @@ public class PhoneVerificationService {
public PhoneVerificationService(PhoneRepository phoneRepository) { public PhoneVerificationService(PhoneRepository phoneRepository) {
this.phoneRepository = phoneRepository; this.phoneRepository = phoneRepository;
} }
public void insertDB(PhoneEntity PhoneEntity) { public void insertDB(PhoneEntity phoneEntity) {
phoneRepository.save(PhoneEntity); phoneRepository.save(phoneEntity);
} }
} }

View File

@@ -16,8 +16,8 @@ public class SMSVerificationService {
public SMSVerificationService(SMSRepository smsRepository) { public SMSVerificationService(SMSRepository smsRepository) {
this.smsRepository = smsRepository; this.smsRepository = smsRepository;
} }
public void insertDB(SMSEntity SMSEntity) { public void insertDB(SMSEntity smsEntity) {
smsRepository.save(SMSEntity); smsRepository.save(smsEntity);
} }
} }

View File

@@ -10,7 +10,7 @@ import org.springframework.stereotype.Service;
@Service @Service
public class TextVerificationService { public class TextVerificationService {
private final TextRepository textRepository; private final TextRepository textRepository;
private static final Logger logger = LoggerFactory.getLogger(TextVerificationService.class);
@Autowired @Autowired
public TextVerificationService(TextRepository textRepository) { public TextVerificationService(TextRepository textRepository) {
this.textRepository = textRepository; this.textRepository = textRepository;
@@ -18,5 +18,5 @@ public class TextVerificationService {
public void insertDB(TextEntity textEntity) { public void insertDB(TextEntity textEntity) {
textRepository.save(textEntity); textRepository.save(textEntity);
} }
private static final Logger logger = LoggerFactory.getLogger(TextVerificationService.class);
} }

View File

@@ -16,8 +16,8 @@ public class WifiVerificationService {
public WifiVerificationService(WifiRepository wifiRepository) { public WifiVerificationService(WifiRepository wifiRepository) {
this.wifiRepository = wifiRepository; this.wifiRepository = wifiRepository;
} }
public void insertDB(WifiEntity WifiEntity) { public void insertDB(WifiEntity wifiEntity) {
wifiRepository.save(WifiEntity); wifiRepository.save(wifiEntity);
} }
} }