From 686c4f939e04b48d867f2e18483cbc77c6a6c1e0 Mon Sep 17 00:00:00 2001 From: heyethereum Date: Thu, 18 Jul 2024 00:47:01 +0800 Subject: [PATCH] added other types of qrcodes like phone, sms, email, wifi --- .../safeqr/app/qrcode/entity/EmailEntity.java | 31 +++++++++++ .../safeqr/app/qrcode/entity/PhoneEntity.java | 29 ++++++++++ .../safeqr/app/qrcode/entity/SMSEntity.java | 30 +++++++++++ ...{QRCodeTextEntity.java => TextEntity.java} | 6 +-- .../{QRCodeURLEntity.java => URLEntity.java} | 2 +- .../safeqr/app/qrcode/entity/WifiEntity.java | 32 +++++++++++ .../safeqr/app/qrcode/model/EmailModel.java | 36 +++++++++++++ .../safeqr/app/qrcode/model/PhoneModel.java | 36 +++++++++++++ .../safeqr/app/qrcode/model/QRCodeModel.java | 2 +- .../com/safeqr/app/qrcode/model/SMSModel.java | 36 +++++++++++++ .../model/{QRCodeText.java => TextModel.java} | 22 ++++---- .../model/{QRCodeURL.java => URLModel.java} | 21 ++++---- .../safeqr/app/qrcode/model/WifiModel.java | 36 +++++++++++++ .../qrcode/model/factory/EmailFactory.java | 24 +++++++++ .../qrcode/model/factory/PhoneFactory.java | 24 +++++++++ .../model/factory/QRCodeFactoryProvider.java | 22 ++++---- .../model/factory/QRCodeTextFactory.java | 23 -------- .../model/factory/QRCodeURLFactory.java | 23 -------- .../app/qrcode/model/factory/SMSFactory.java | 24 +++++++++ .../app/qrcode/model/factory/TextFactory.java | 24 +++++++++ .../app/qrcode/model/factory/URLFactory.java | 23 ++++++++ .../app/qrcode/model/factory/WifiFactory.java | 24 +++++++++ .../qrcode/repository/EmailRepository.java | 8 +++ .../qrcode/repository/PhoneRepository.java | 8 +++ .../app/qrcode/repository/SMSRepository.java | 8 +++ .../app/qrcode/repository/TextRepository.java | 4 +- .../app/qrcode/repository/URLRepository.java | 4 +- .../app/qrcode/repository/WifiRepository.java | 8 +++ .../service/EmailVerificationService.java | 23 ++++++++ .../service/PhoneVerificationService.java | 23 ++++++++ .../app/qrcode/service/QRCodeTypeService.java | 54 ++++++------------- .../service/SMSVerificationService.java | 23 ++++++++ .../service/TextVerificationService.java | 12 +++++ .../service/URLVerificationService.java | 16 ++++-- .../service/WifiVerificationService.java | 23 ++++++++ 35 files changed, 612 insertions(+), 132 deletions(-) create mode 100644 src/main/java/com/safeqr/app/qrcode/entity/EmailEntity.java create mode 100644 src/main/java/com/safeqr/app/qrcode/entity/PhoneEntity.java create mode 100644 src/main/java/com/safeqr/app/qrcode/entity/SMSEntity.java rename src/main/java/com/safeqr/app/qrcode/entity/{QRCodeTextEntity.java => TextEntity.java} (80%) rename src/main/java/com/safeqr/app/qrcode/entity/{QRCodeURLEntity.java => URLEntity.java} (97%) create mode 100644 src/main/java/com/safeqr/app/qrcode/entity/WifiEntity.java create mode 100644 src/main/java/com/safeqr/app/qrcode/model/EmailModel.java create mode 100644 src/main/java/com/safeqr/app/qrcode/model/PhoneModel.java create mode 100644 src/main/java/com/safeqr/app/qrcode/model/SMSModel.java rename src/main/java/com/safeqr/app/qrcode/model/{QRCodeText.java => TextModel.java} (52%) rename src/main/java/com/safeqr/app/qrcode/model/{QRCodeURL.java => URLModel.java} (71%) create mode 100644 src/main/java/com/safeqr/app/qrcode/model/WifiModel.java create mode 100644 src/main/java/com/safeqr/app/qrcode/model/factory/EmailFactory.java create mode 100644 src/main/java/com/safeqr/app/qrcode/model/factory/PhoneFactory.java delete mode 100644 src/main/java/com/safeqr/app/qrcode/model/factory/QRCodeTextFactory.java delete mode 100644 src/main/java/com/safeqr/app/qrcode/model/factory/QRCodeURLFactory.java create mode 100644 src/main/java/com/safeqr/app/qrcode/model/factory/SMSFactory.java create mode 100644 src/main/java/com/safeqr/app/qrcode/model/factory/TextFactory.java create mode 100644 src/main/java/com/safeqr/app/qrcode/model/factory/URLFactory.java create mode 100644 src/main/java/com/safeqr/app/qrcode/model/factory/WifiFactory.java create mode 100644 src/main/java/com/safeqr/app/qrcode/repository/EmailRepository.java create mode 100644 src/main/java/com/safeqr/app/qrcode/repository/PhoneRepository.java create mode 100644 src/main/java/com/safeqr/app/qrcode/repository/SMSRepository.java create mode 100644 src/main/java/com/safeqr/app/qrcode/repository/WifiRepository.java create mode 100644 src/main/java/com/safeqr/app/qrcode/service/EmailVerificationService.java create mode 100644 src/main/java/com/safeqr/app/qrcode/service/PhoneVerificationService.java create mode 100644 src/main/java/com/safeqr/app/qrcode/service/SMSVerificationService.java create mode 100644 src/main/java/com/safeqr/app/qrcode/service/WifiVerificationService.java diff --git a/src/main/java/com/safeqr/app/qrcode/entity/EmailEntity.java b/src/main/java/com/safeqr/app/qrcode/entity/EmailEntity.java new file mode 100644 index 0000000..192a4db --- /dev/null +++ b/src/main/java/com/safeqr/app/qrcode/entity/EmailEntity.java @@ -0,0 +1,31 @@ +package com.safeqr.app.qrcode.entity; + +import com.fasterxml.jackson.annotation.JsonIgnore; + +import jakarta.persistence.*; +import lombok.Data; +import lombok.Builder; +import org.hibernate.annotations.UuidGenerator; + +import java.util.UUID; + +@Entity +@Table(name = "email", schema = "safeqr") +@Data +@Builder +public class EmailEntity { + @Id + @JsonIgnore + @GeneratedValue(generator = "UUID") + @UuidGenerator + @Column(updatable = false, nullable = false) + private UUID id; + + @JsonIgnore + @Column(name = "qr_code_id") + private UUID qrCodeId; + + private String email; + private String title; + private String message; +} diff --git a/src/main/java/com/safeqr/app/qrcode/entity/PhoneEntity.java b/src/main/java/com/safeqr/app/qrcode/entity/PhoneEntity.java new file mode 100644 index 0000000..f265a75 --- /dev/null +++ b/src/main/java/com/safeqr/app/qrcode/entity/PhoneEntity.java @@ -0,0 +1,29 @@ +package com.safeqr.app.qrcode.entity; + +import com.fasterxml.jackson.annotation.JsonIgnore; + +import jakarta.persistence.*; +import lombok.Data; +import lombok.Builder; +import org.hibernate.annotations.UuidGenerator; + +import java.util.UUID; + +@Entity +@Table(name = "phone", schema = "safeqr") +@Data +@Builder +public class PhoneEntity { + @Id + @JsonIgnore + @GeneratedValue(generator = "UUID") + @UuidGenerator + @Column(updatable = false, nullable = false) + private UUID id; + + @JsonIgnore + @Column(name = "qr_code_id") + private UUID qrCodeId; + + private String phone; +} diff --git a/src/main/java/com/safeqr/app/qrcode/entity/SMSEntity.java b/src/main/java/com/safeqr/app/qrcode/entity/SMSEntity.java new file mode 100644 index 0000000..07cfb7e --- /dev/null +++ b/src/main/java/com/safeqr/app/qrcode/entity/SMSEntity.java @@ -0,0 +1,30 @@ +package com.safeqr.app.qrcode.entity; + +import com.fasterxml.jackson.annotation.JsonIgnore; + +import jakarta.persistence.*; +import lombok.Data; +import lombok.Builder; +import org.hibernate.annotations.UuidGenerator; + +import java.util.UUID; + +@Entity +@Table(name = "sms", schema = "safeqr") +@Data +@Builder +public class SMSEntity { + @Id + @JsonIgnore + @GeneratedValue(generator = "UUID") + @UuidGenerator + @Column(updatable = false, nullable = false) + private UUID id; + + @JsonIgnore + @Column(name = "qr_code_id") + private UUID qrCodeId; + + private String phone; + private String message; +} diff --git a/src/main/java/com/safeqr/app/qrcode/entity/QRCodeTextEntity.java b/src/main/java/com/safeqr/app/qrcode/entity/TextEntity.java similarity index 80% rename from src/main/java/com/safeqr/app/qrcode/entity/QRCodeTextEntity.java rename to src/main/java/com/safeqr/app/qrcode/entity/TextEntity.java index c32d862..7afaeae 100644 --- a/src/main/java/com/safeqr/app/qrcode/entity/QRCodeTextEntity.java +++ b/src/main/java/com/safeqr/app/qrcode/entity/TextEntity.java @@ -4,8 +4,6 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import jakarta.persistence.*; import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.AllArgsConstructor; import lombok.Builder; import org.hibernate.annotations.UuidGenerator; @@ -15,9 +13,7 @@ import java.util.UUID; @Table(name = "text", schema = "safeqr") @Data @Builder -@NoArgsConstructor -@AllArgsConstructor -public class QRCodeTextEntity { +public class TextEntity { @Id @JsonIgnore @GeneratedValue(generator = "UUID") diff --git a/src/main/java/com/safeqr/app/qrcode/entity/QRCodeURLEntity.java b/src/main/java/com/safeqr/app/qrcode/entity/URLEntity.java similarity index 97% rename from src/main/java/com/safeqr/app/qrcode/entity/QRCodeURLEntity.java rename to src/main/java/com/safeqr/app/qrcode/entity/URLEntity.java index e7da284..ce7a38f 100644 --- a/src/main/java/com/safeqr/app/qrcode/entity/QRCodeURLEntity.java +++ b/src/main/java/com/safeqr/app/qrcode/entity/URLEntity.java @@ -18,7 +18,7 @@ import java.util.UUID; @Builder @NoArgsConstructor @AllArgsConstructor -public class QRCodeURLEntity { +public class URLEntity { @Id @JsonIgnore @GeneratedValue(generator = "UUID") diff --git a/src/main/java/com/safeqr/app/qrcode/entity/WifiEntity.java b/src/main/java/com/safeqr/app/qrcode/entity/WifiEntity.java new file mode 100644 index 0000000..0a028b1 --- /dev/null +++ b/src/main/java/com/safeqr/app/qrcode/entity/WifiEntity.java @@ -0,0 +1,32 @@ +package com.safeqr.app.qrcode.entity; + +import com.fasterxml.jackson.annotation.JsonIgnore; + +import jakarta.persistence.*; +import lombok.Data; +import lombok.Builder; +import org.hibernate.annotations.UuidGenerator; + +import java.util.UUID; + +@Entity +@Table(name = "wifi", schema = "safeqr") +@Data +@Builder +public class WifiEntity { + @Id + @JsonIgnore + @GeneratedValue(generator = "UUID") + @UuidGenerator + @Column(updatable = false, nullable = false) + private UUID id; + + @JsonIgnore + @Column(name = "qr_code_id") + private UUID qrCodeId; + + private String ssid; + private String password; + private String encryption; + private boolean hidden; +} diff --git a/src/main/java/com/safeqr/app/qrcode/model/EmailModel.java b/src/main/java/com/safeqr/app/qrcode/model/EmailModel.java new file mode 100644 index 0000000..9ba071e --- /dev/null +++ b/src/main/java/com/safeqr/app/qrcode/model/EmailModel.java @@ -0,0 +1,36 @@ +package com.safeqr.app.qrcode.model; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.safeqr.app.qrcode.entity.QRCodeEntity; +import com.safeqr.app.qrcode.entity.EmailEntity; +import com.safeqr.app.qrcode.entity.QRCodeTypeEntity; +import com.safeqr.app.qrcode.service.EmailVerificationService; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +@EqualsAndHashCode(callSuper = true) +@Data +public class EmailModel extends QRCodeModel { + private static final Logger logger = LoggerFactory.getLogger(EmailModel.class); + + @JsonIgnore + private final EmailVerificationService emailVerificationService; + + EmailEntity details; + + public EmailModel(QRCodeEntity scannedQRCodeEntity, QRCodeTypeEntity qrCodeTypeEntity, EmailVerificationService emailVerificationService) { + this.scannedQRCode = scannedQRCodeEntity; + this.qrCode = qrCodeTypeEntity; + this.emailVerificationService = emailVerificationService; + this.details = null; + } + + @Override + public void setDetails() { + details = EmailEntity.builder().qrCodeId(scannedQRCode.getId()).build(); + // Insert into email table + emailVerificationService.insertDB(details); + } +} \ No newline at end of file diff --git a/src/main/java/com/safeqr/app/qrcode/model/PhoneModel.java b/src/main/java/com/safeqr/app/qrcode/model/PhoneModel.java new file mode 100644 index 0000000..1b01a60 --- /dev/null +++ b/src/main/java/com/safeqr/app/qrcode/model/PhoneModel.java @@ -0,0 +1,36 @@ +package com.safeqr.app.qrcode.model; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.safeqr.app.qrcode.entity.QRCodeEntity; +import com.safeqr.app.qrcode.entity.PhoneEntity; +import com.safeqr.app.qrcode.entity.QRCodeTypeEntity; +import com.safeqr.app.qrcode.service.PhoneVerificationService; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +@EqualsAndHashCode(callSuper = true) +@Data +public class PhoneModel extends QRCodeModel { + private static final Logger logger = LoggerFactory.getLogger(PhoneModel.class); + + @JsonIgnore + private final PhoneVerificationService phoneVerificationService; + + PhoneEntity details; + + public PhoneModel(QRCodeEntity scannedQRCodeEntity, QRCodeTypeEntity qrCodeTypeEntity, PhoneVerificationService phoneVerificationService) { + this.scannedQRCode = scannedQRCodeEntity; + this.qrCode = qrCodeTypeEntity; + this.phoneVerificationService = phoneVerificationService; + this.details = null; + } + + @Override + public void setDetails() { + details = PhoneEntity.builder().qrCodeId(scannedQRCode.getId()).build(); + // Insert into phone table + phoneVerificationService.insertDB(details); + } +} \ No newline at end of file diff --git a/src/main/java/com/safeqr/app/qrcode/model/QRCodeModel.java b/src/main/java/com/safeqr/app/qrcode/model/QRCodeModel.java index 7a88f0e..9a6f89f 100644 --- a/src/main/java/com/safeqr/app/qrcode/model/QRCodeModel.java +++ b/src/main/java/com/safeqr/app/qrcode/model/QRCodeModel.java @@ -9,5 +9,5 @@ public abstract class QRCodeModel { QRCodeEntity scannedQRCode; QRCodeTypeEntity qrCode; - public abstract void insertDB(); + public abstract void setDetails(); } diff --git a/src/main/java/com/safeqr/app/qrcode/model/SMSModel.java b/src/main/java/com/safeqr/app/qrcode/model/SMSModel.java new file mode 100644 index 0000000..ec83b17 --- /dev/null +++ b/src/main/java/com/safeqr/app/qrcode/model/SMSModel.java @@ -0,0 +1,36 @@ +package com.safeqr.app.qrcode.model; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.safeqr.app.qrcode.entity.QRCodeEntity; +import com.safeqr.app.qrcode.entity.SMSEntity; +import com.safeqr.app.qrcode.entity.QRCodeTypeEntity; +import com.safeqr.app.qrcode.service.SMSVerificationService; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +@EqualsAndHashCode(callSuper = true) +@Data +public class SMSModel extends QRCodeModel { + private static final Logger logger = LoggerFactory.getLogger(SMSModel.class); + + @JsonIgnore + private final SMSVerificationService smsVerificationService; + + SMSEntity details; + + public SMSModel(QRCodeEntity scannedQRCodeEntity, QRCodeTypeEntity qrCodeTypeEntity, SMSVerificationService smsVerificationService) { + this.scannedQRCode = scannedQRCodeEntity; + this.qrCode = qrCodeTypeEntity; + this.smsVerificationService = smsVerificationService; + this.details = null; + } + + @Override + public void setDetails() { + details = SMSEntity.builder().qrCodeId(scannedQRCode.getId()).build(); + // Insert into sms table + smsVerificationService.insertDB(details); + } +} \ No newline at end of file diff --git a/src/main/java/com/safeqr/app/qrcode/model/QRCodeText.java b/src/main/java/com/safeqr/app/qrcode/model/TextModel.java similarity index 52% rename from src/main/java/com/safeqr/app/qrcode/model/QRCodeText.java rename to src/main/java/com/safeqr/app/qrcode/model/TextModel.java index de2c1c3..ceb0de8 100644 --- a/src/main/java/com/safeqr/app/qrcode/model/QRCodeText.java +++ b/src/main/java/com/safeqr/app/qrcode/model/TextModel.java @@ -2,9 +2,8 @@ package com.safeqr.app.qrcode.model; import com.fasterxml.jackson.annotation.JsonIgnore; import com.safeqr.app.qrcode.entity.QRCodeEntity; -import com.safeqr.app.qrcode.entity.QRCodeTextEntity; +import com.safeqr.app.qrcode.entity.TextEntity; import com.safeqr.app.qrcode.entity.QRCodeTypeEntity; -import com.safeqr.app.qrcode.repository.TextRepository; import com.safeqr.app.qrcode.service.TextVerificationService; import lombok.Data; import lombok.EqualsAndHashCode; @@ -13,28 +12,25 @@ import org.slf4j.LoggerFactory; @EqualsAndHashCode(callSuper = true) @Data -public class QRCodeText extends QRCodeModel { - private static final Logger logger = LoggerFactory.getLogger(QRCodeText.class); +public class TextModel extends QRCodeModel { + private static final Logger logger = LoggerFactory.getLogger(TextModel.class); @JsonIgnore private final TextVerificationService textVerificationService; - @JsonIgnore - private final TextRepository textRepository; - QRCodeTextEntity details; + TextEntity details; - public QRCodeText(QRCodeEntity scannedQRCodeEntity, QRCodeTypeEntity qrCodeTypeEntity, TextVerificationService textVerificationService, TextRepository textRepository) { + public TextModel(QRCodeEntity scannedQRCodeEntity, QRCodeTypeEntity qrCodeTypeEntity, TextVerificationService textVerificationService) { this.scannedQRCode = scannedQRCodeEntity; this.qrCode = qrCodeTypeEntity; this.textVerificationService = textVerificationService; - this.textRepository = textRepository; this.details = null; } @Override - public void insertDB() { - details = QRCodeTextEntity.builder().qrCodeId(scannedQRCode.getId()).text(scannedQRCode.getContents()).build(); - // Insert into URL table - textRepository.save(details); + public void setDetails() { + details = TextEntity.builder().qrCodeId(scannedQRCode.getId()).text(scannedQRCode.getContents()).build(); + // Insert into text table + textVerificationService.insertDB(details); } } \ No newline at end of file diff --git a/src/main/java/com/safeqr/app/qrcode/model/QRCodeURL.java b/src/main/java/com/safeqr/app/qrcode/model/URLModel.java similarity index 71% rename from src/main/java/com/safeqr/app/qrcode/model/QRCodeURL.java rename to src/main/java/com/safeqr/app/qrcode/model/URLModel.java index 763f50e..78636fe 100644 --- a/src/main/java/com/safeqr/app/qrcode/model/QRCodeURL.java +++ b/src/main/java/com/safeqr/app/qrcode/model/URLModel.java @@ -3,12 +3,12 @@ package com.safeqr.app.qrcode.model; import com.fasterxml.jackson.annotation.JsonIgnore; import com.safeqr.app.qrcode.entity.QRCodeEntity; import com.safeqr.app.qrcode.entity.QRCodeTypeEntity; -import com.safeqr.app.qrcode.entity.QRCodeURLEntity; -import com.safeqr.app.qrcode.repository.URLRepository; +import com.safeqr.app.qrcode.entity.URLEntity; import com.safeqr.app.qrcode.service.URLVerificationService; import lombok.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import java.io.IOException; import java.net.URISyntaxException; @@ -16,25 +16,22 @@ import java.util.List; @EqualsAndHashCode(callSuper = true) @Data -public class QRCodeURL extends QRCodeModel { - private static final Logger logger = LoggerFactory.getLogger(QRCodeURL.class); +public class URLModel extends QRCodeModel { + private static final Logger logger = LoggerFactory.getLogger(URLModel.class); @JsonIgnore private final URLVerificationService urlVerificationService; - @JsonIgnore - private final URLRepository urlRepository; - QRCodeURLEntity details; - - public QRCodeURL(QRCodeEntity scannedQRCodeEntity, QRCodeTypeEntity qrCodeTypeEntity, URLVerificationService urlVerificationService, URLRepository urlRepository) { + URLEntity details; + @Autowired + public URLModel(QRCodeEntity scannedQRCodeEntity, QRCodeTypeEntity qrCodeTypeEntity, URLVerificationService urlVerificationService) { this.scannedQRCode = scannedQRCodeEntity; this.qrCode = qrCodeTypeEntity; this.urlVerificationService = urlVerificationService; - this.urlRepository = urlRepository; this.details = null; } @Override - public void insertDB() { + public void setDetails() { String url = scannedQRCode.getContents(); try { details = urlVerificationService.breakdownURL(url); @@ -45,7 +42,7 @@ public class QRCodeURL extends QRCodeModel { details.setRedirectChain(redirectChain); // Insert into URL table - urlRepository.save(details); + urlVerificationService.insertDB(details); } catch (IOException | URISyntaxException e) { logger.error("Error: ", e); diff --git a/src/main/java/com/safeqr/app/qrcode/model/WifiModel.java b/src/main/java/com/safeqr/app/qrcode/model/WifiModel.java new file mode 100644 index 0000000..2521510 --- /dev/null +++ b/src/main/java/com/safeqr/app/qrcode/model/WifiModel.java @@ -0,0 +1,36 @@ +package com.safeqr.app.qrcode.model; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.safeqr.app.qrcode.entity.QRCodeEntity; +import com.safeqr.app.qrcode.entity.WifiEntity; +import com.safeqr.app.qrcode.entity.QRCodeTypeEntity; +import com.safeqr.app.qrcode.service.WifiVerificationService; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +@EqualsAndHashCode(callSuper = true) +@Data +public class WifiModel extends QRCodeModel { + private static final Logger logger = LoggerFactory.getLogger(WifiModel.class); + + @JsonIgnore + private final WifiVerificationService wifiVerificationService; + + WifiEntity details; + + public WifiModel(QRCodeEntity scannedQRCodeEntity, QRCodeTypeEntity qrCodeTypeEntity, WifiVerificationService wifiVerificationService) { + this.scannedQRCode = scannedQRCodeEntity; + this.qrCode = qrCodeTypeEntity; + this.wifiVerificationService = wifiVerificationService; + this.details = null; + } + + @Override + public void setDetails() { + details = WifiEntity.builder().qrCodeId(scannedQRCode.getId()).build(); + // Insert into wifi table + wifiVerificationService.insertDB(details); + } +} \ No newline at end of file diff --git a/src/main/java/com/safeqr/app/qrcode/model/factory/EmailFactory.java b/src/main/java/com/safeqr/app/qrcode/model/factory/EmailFactory.java new file mode 100644 index 0000000..9f8e587 --- /dev/null +++ b/src/main/java/com/safeqr/app/qrcode/model/factory/EmailFactory.java @@ -0,0 +1,24 @@ +package com.safeqr.app.qrcode.model.factory; + +import com.safeqr.app.qrcode.entity.QRCodeEntity; +import com.safeqr.app.qrcode.entity.QRCodeTypeEntity; +import com.safeqr.app.qrcode.model.EmailModel; +import com.safeqr.app.qrcode.service.EmailVerificationService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +@Component +public class EmailFactory implements QRCodeFactory { + private final EmailVerificationService emailVerificationService; + + @Autowired + public EmailFactory(EmailVerificationService emailVerificationService) { + this.emailVerificationService = emailVerificationService; + } + + + @Override + public EmailModel create(QRCodeEntity scannedQRCodeEntity, QRCodeTypeEntity qrCodeTypeEntity) { + return new EmailModel(scannedQRCodeEntity, qrCodeTypeEntity, emailVerificationService); + } +} diff --git a/src/main/java/com/safeqr/app/qrcode/model/factory/PhoneFactory.java b/src/main/java/com/safeqr/app/qrcode/model/factory/PhoneFactory.java new file mode 100644 index 0000000..1646a66 --- /dev/null +++ b/src/main/java/com/safeqr/app/qrcode/model/factory/PhoneFactory.java @@ -0,0 +1,24 @@ +package com.safeqr.app.qrcode.model.factory; + +import com.safeqr.app.qrcode.entity.QRCodeEntity; +import com.safeqr.app.qrcode.entity.QRCodeTypeEntity; +import com.safeqr.app.qrcode.model.PhoneModel; +import com.safeqr.app.qrcode.service.PhoneVerificationService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +@Component +public class PhoneFactory implements QRCodeFactory { + private final PhoneVerificationService phoneVerificationService; + + @Autowired + public PhoneFactory(PhoneVerificationService phoneVerificationService) { + this.phoneVerificationService = phoneVerificationService; + } + + + @Override + public PhoneModel create(QRCodeEntity scannedQRCodeEntity, QRCodeTypeEntity qrCodeTypeEntity) { + return new PhoneModel(scannedQRCodeEntity, qrCodeTypeEntity, phoneVerificationService); + } +} diff --git a/src/main/java/com/safeqr/app/qrcode/model/factory/QRCodeFactoryProvider.java b/src/main/java/com/safeqr/app/qrcode/model/factory/QRCodeFactoryProvider.java index aea1783..496a652 100644 --- a/src/main/java/com/safeqr/app/qrcode/model/factory/QRCodeFactoryProvider.java +++ b/src/main/java/com/safeqr/app/qrcode/model/factory/QRCodeFactoryProvider.java @@ -9,17 +9,21 @@ import org.springframework.stereotype.Component; @Component public class QRCodeFactoryProvider { + private final ApplicationContext applicationContext; @Autowired - private ApplicationContext applicationContext; + public QRCodeFactoryProvider(ApplicationContext applicationContext) { + this.applicationContext = applicationContext; + } public QRCodeModel createQRCodeInstance(QRCodeEntity scannedQRCodeEntity, QRCodeTypeEntity qrCodeTypeEntity) { - switch (qrCodeTypeEntity.getType().toUpperCase()) { - case "URL": - return applicationContext.getBean(QRCodeURLFactory.class).create(scannedQRCodeEntity, qrCodeTypeEntity); - case "TEXT": - return applicationContext.getBean(QRCodeTextFactory.class).create(scannedQRCodeEntity, qrCodeTypeEntity); - default: - throw new IllegalArgumentException("Unsupported QR code type: " + qrCodeTypeEntity.getType()); - } + return switch (qrCodeTypeEntity.getType().toUpperCase()) { + case "URL" -> applicationContext.getBean(URLFactory.class).create(scannedQRCodeEntity, qrCodeTypeEntity); + case "PHONE" -> applicationContext.getBean(PhoneFactory.class).create(scannedQRCodeEntity, qrCodeTypeEntity); + case "SMS" -> applicationContext.getBean(SMSFactory.class).create(scannedQRCodeEntity, qrCodeTypeEntity); + case "EMAIL" -> applicationContext.getBean(EmailFactory.class).create(scannedQRCodeEntity, qrCodeTypeEntity); + case "WIFI" -> applicationContext.getBean(WifiFactory.class).create(scannedQRCodeEntity, qrCodeTypeEntity); + case "TEXT" -> applicationContext.getBean(TextFactory.class).create(scannedQRCodeEntity, qrCodeTypeEntity); + default -> throw new IllegalArgumentException("Unsupported QR code type: " + qrCodeTypeEntity.getType()); + }; } } diff --git a/src/main/java/com/safeqr/app/qrcode/model/factory/QRCodeTextFactory.java b/src/main/java/com/safeqr/app/qrcode/model/factory/QRCodeTextFactory.java deleted file mode 100644 index 180c167..0000000 --- a/src/main/java/com/safeqr/app/qrcode/model/factory/QRCodeTextFactory.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.safeqr.app.qrcode.model.factory; - -import com.safeqr.app.qrcode.entity.QRCodeEntity; -import com.safeqr.app.qrcode.entity.QRCodeTypeEntity; -import com.safeqr.app.qrcode.model.QRCodeText; -import com.safeqr.app.qrcode.repository.TextRepository; -import com.safeqr.app.qrcode.service.TextVerificationService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -@Component -public class QRCodeTextFactory implements QRCodeFactory { - @Autowired - private TextVerificationService textVerificationService; - - @Autowired - private TextRepository textRepository; - - @Override - public QRCodeText create(QRCodeEntity scannedQRCodeEntity, QRCodeTypeEntity qrCodeTypeEntity) { - return new QRCodeText(scannedQRCodeEntity, qrCodeTypeEntity, textVerificationService, textRepository); - } -} diff --git a/src/main/java/com/safeqr/app/qrcode/model/factory/QRCodeURLFactory.java b/src/main/java/com/safeqr/app/qrcode/model/factory/QRCodeURLFactory.java deleted file mode 100644 index c85428e..0000000 --- a/src/main/java/com/safeqr/app/qrcode/model/factory/QRCodeURLFactory.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.safeqr.app.qrcode.model.factory; - -import com.safeqr.app.qrcode.entity.QRCodeEntity; -import com.safeqr.app.qrcode.entity.QRCodeTypeEntity; -import com.safeqr.app.qrcode.model.QRCodeURL; -import com.safeqr.app.qrcode.repository.URLRepository; -import com.safeqr.app.qrcode.service.URLVerificationService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -@Component -public class QRCodeURLFactory implements QRCodeFactory { - @Autowired - private URLVerificationService urlVerificationService; - - @Autowired - private URLRepository urlRepository; - - @Override - public QRCodeURL create(QRCodeEntity scannedQRCodeEntity, QRCodeTypeEntity qrCodeTypeEntity) { - return new QRCodeURL(scannedQRCodeEntity, qrCodeTypeEntity, urlVerificationService, urlRepository); - } -} diff --git a/src/main/java/com/safeqr/app/qrcode/model/factory/SMSFactory.java b/src/main/java/com/safeqr/app/qrcode/model/factory/SMSFactory.java new file mode 100644 index 0000000..781e24a --- /dev/null +++ b/src/main/java/com/safeqr/app/qrcode/model/factory/SMSFactory.java @@ -0,0 +1,24 @@ +package com.safeqr.app.qrcode.model.factory; + +import com.safeqr.app.qrcode.entity.QRCodeEntity; +import com.safeqr.app.qrcode.entity.QRCodeTypeEntity; +import com.safeqr.app.qrcode.model.SMSModel; +import com.safeqr.app.qrcode.service.SMSVerificationService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +@Component +public class SMSFactory implements QRCodeFactory { + private final SMSVerificationService smsVerificationService; + + @Autowired + public SMSFactory(SMSVerificationService smsVerificationService) { + this.smsVerificationService = smsVerificationService; + } + + + @Override + public SMSModel create(QRCodeEntity scannedQRCodeEntity, QRCodeTypeEntity qrCodeTypeEntity) { + return new SMSModel(scannedQRCodeEntity, qrCodeTypeEntity, smsVerificationService); + } +} diff --git a/src/main/java/com/safeqr/app/qrcode/model/factory/TextFactory.java b/src/main/java/com/safeqr/app/qrcode/model/factory/TextFactory.java new file mode 100644 index 0000000..e69fdfc --- /dev/null +++ b/src/main/java/com/safeqr/app/qrcode/model/factory/TextFactory.java @@ -0,0 +1,24 @@ +package com.safeqr.app.qrcode.model.factory; + +import com.safeqr.app.qrcode.entity.QRCodeEntity; +import com.safeqr.app.qrcode.entity.QRCodeTypeEntity; +import com.safeqr.app.qrcode.model.TextModel; +import com.safeqr.app.qrcode.service.TextVerificationService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +@Component +public class TextFactory implements QRCodeFactory { + private final TextVerificationService textVerificationService; + + @Autowired + public TextFactory(TextVerificationService textVerificationService) { + this.textVerificationService = textVerificationService; + } + + + @Override + public TextModel create(QRCodeEntity scannedQRCodeEntity, QRCodeTypeEntity qrCodeTypeEntity) { + return new TextModel(scannedQRCodeEntity, qrCodeTypeEntity, textVerificationService); + } +} diff --git a/src/main/java/com/safeqr/app/qrcode/model/factory/URLFactory.java b/src/main/java/com/safeqr/app/qrcode/model/factory/URLFactory.java new file mode 100644 index 0000000..bf6ea5f --- /dev/null +++ b/src/main/java/com/safeqr/app/qrcode/model/factory/URLFactory.java @@ -0,0 +1,23 @@ +package com.safeqr.app.qrcode.model.factory; + +import com.safeqr.app.qrcode.entity.QRCodeEntity; +import com.safeqr.app.qrcode.entity.QRCodeTypeEntity; +import com.safeqr.app.qrcode.model.URLModel; +import com.safeqr.app.qrcode.service.URLVerificationService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +@Component +public class URLFactory implements QRCodeFactory { + private final URLVerificationService urlVerificationService; + + @Autowired + public URLFactory(URLVerificationService urlVerificationService) { + this.urlVerificationService = urlVerificationService; + } + + @Override + public URLModel create(QRCodeEntity scannedQRCodeEntity, QRCodeTypeEntity qrCodeTypeEntity) { + return new URLModel(scannedQRCodeEntity, qrCodeTypeEntity, urlVerificationService); + } +} diff --git a/src/main/java/com/safeqr/app/qrcode/model/factory/WifiFactory.java b/src/main/java/com/safeqr/app/qrcode/model/factory/WifiFactory.java new file mode 100644 index 0000000..5e10b47 --- /dev/null +++ b/src/main/java/com/safeqr/app/qrcode/model/factory/WifiFactory.java @@ -0,0 +1,24 @@ +package com.safeqr.app.qrcode.model.factory; + +import com.safeqr.app.qrcode.entity.QRCodeEntity; +import com.safeqr.app.qrcode.entity.QRCodeTypeEntity; +import com.safeqr.app.qrcode.model.WifiModel; +import com.safeqr.app.qrcode.service.WifiVerificationService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +@Component +public class WifiFactory implements QRCodeFactory { + private final WifiVerificationService wifiVerificationService; + + @Autowired + public WifiFactory(WifiVerificationService wifiVerificationService) { + this.wifiVerificationService = wifiVerificationService; + } + + + @Override + public WifiModel create(QRCodeEntity scannedQRCodeEntity, QRCodeTypeEntity qrCodeTypeEntity) { + return new WifiModel(scannedQRCodeEntity, qrCodeTypeEntity, wifiVerificationService); + } +} diff --git a/src/main/java/com/safeqr/app/qrcode/repository/EmailRepository.java b/src/main/java/com/safeqr/app/qrcode/repository/EmailRepository.java new file mode 100644 index 0000000..b11edcb --- /dev/null +++ b/src/main/java/com/safeqr/app/qrcode/repository/EmailRepository.java @@ -0,0 +1,8 @@ +package com.safeqr.app.qrcode.repository; + +import com.safeqr.app.qrcode.entity.EmailEntity; +import org.springframework.data.jpa.repository.JpaRepository; +import java.util.UUID; + +public interface EmailRepository extends JpaRepository { +} \ No newline at end of file diff --git a/src/main/java/com/safeqr/app/qrcode/repository/PhoneRepository.java b/src/main/java/com/safeqr/app/qrcode/repository/PhoneRepository.java new file mode 100644 index 0000000..00a876d --- /dev/null +++ b/src/main/java/com/safeqr/app/qrcode/repository/PhoneRepository.java @@ -0,0 +1,8 @@ +package com.safeqr.app.qrcode.repository; + +import com.safeqr.app.qrcode.entity.PhoneEntity; +import org.springframework.data.jpa.repository.JpaRepository; +import java.util.UUID; + +public interface PhoneRepository extends JpaRepository { +} \ No newline at end of file diff --git a/src/main/java/com/safeqr/app/qrcode/repository/SMSRepository.java b/src/main/java/com/safeqr/app/qrcode/repository/SMSRepository.java new file mode 100644 index 0000000..7ce211b --- /dev/null +++ b/src/main/java/com/safeqr/app/qrcode/repository/SMSRepository.java @@ -0,0 +1,8 @@ +package com.safeqr.app.qrcode.repository; + +import com.safeqr.app.qrcode.entity.SMSEntity; +import org.springframework.data.jpa.repository.JpaRepository; +import java.util.UUID; + +public interface SMSRepository extends JpaRepository { +} \ No newline at end of file diff --git a/src/main/java/com/safeqr/app/qrcode/repository/TextRepository.java b/src/main/java/com/safeqr/app/qrcode/repository/TextRepository.java index 8a65203..cd9cfcc 100644 --- a/src/main/java/com/safeqr/app/qrcode/repository/TextRepository.java +++ b/src/main/java/com/safeqr/app/qrcode/repository/TextRepository.java @@ -1,8 +1,8 @@ package com.safeqr.app.qrcode.repository; -import com.safeqr.app.qrcode.entity.QRCodeTextEntity; +import com.safeqr.app.qrcode.entity.TextEntity; import org.springframework.data.jpa.repository.JpaRepository; import java.util.UUID; -public interface TextRepository extends JpaRepository { +public interface TextRepository extends JpaRepository { } \ No newline at end of file diff --git a/src/main/java/com/safeqr/app/qrcode/repository/URLRepository.java b/src/main/java/com/safeqr/app/qrcode/repository/URLRepository.java index c2be291..392b7fe 100644 --- a/src/main/java/com/safeqr/app/qrcode/repository/URLRepository.java +++ b/src/main/java/com/safeqr/app/qrcode/repository/URLRepository.java @@ -1,8 +1,8 @@ package com.safeqr.app.qrcode.repository; -import com.safeqr.app.qrcode.entity.QRCodeURLEntity; +import com.safeqr.app.qrcode.entity.URLEntity; import org.springframework.data.jpa.repository.JpaRepository; import java.util.UUID; -public interface URLRepository extends JpaRepository { +public interface URLRepository extends JpaRepository { } \ No newline at end of file diff --git a/src/main/java/com/safeqr/app/qrcode/repository/WifiRepository.java b/src/main/java/com/safeqr/app/qrcode/repository/WifiRepository.java new file mode 100644 index 0000000..f64be0c --- /dev/null +++ b/src/main/java/com/safeqr/app/qrcode/repository/WifiRepository.java @@ -0,0 +1,8 @@ +package com.safeqr.app.qrcode.repository; + +import com.safeqr.app.qrcode.entity.WifiEntity; +import org.springframework.data.jpa.repository.JpaRepository; +import java.util.UUID; + +public interface WifiRepository extends JpaRepository { +} \ No newline at end of file diff --git a/src/main/java/com/safeqr/app/qrcode/service/EmailVerificationService.java b/src/main/java/com/safeqr/app/qrcode/service/EmailVerificationService.java new file mode 100644 index 0000000..649c9b0 --- /dev/null +++ b/src/main/java/com/safeqr/app/qrcode/service/EmailVerificationService.java @@ -0,0 +1,23 @@ +package com.safeqr.app.qrcode.service; + +import com.safeqr.app.qrcode.entity.EmailEntity; +import com.safeqr.app.qrcode.repository.EmailRepository; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service +public class EmailVerificationService { + private final EmailRepository emailRepository; + private static final Logger logger = LoggerFactory.getLogger(EmailVerificationService.class); + + @Autowired + public EmailVerificationService(EmailRepository emailRepository) { + this.emailRepository = emailRepository; + } + public void insertDB(EmailEntity EmailEntity) { + emailRepository.save(EmailEntity); + } + +} \ No newline at end of file diff --git a/src/main/java/com/safeqr/app/qrcode/service/PhoneVerificationService.java b/src/main/java/com/safeqr/app/qrcode/service/PhoneVerificationService.java new file mode 100644 index 0000000..47cc54c --- /dev/null +++ b/src/main/java/com/safeqr/app/qrcode/service/PhoneVerificationService.java @@ -0,0 +1,23 @@ +package com.safeqr.app.qrcode.service; + +import com.safeqr.app.qrcode.entity.PhoneEntity; +import com.safeqr.app.qrcode.repository.PhoneRepository; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service +public class PhoneVerificationService { + private final PhoneRepository phoneRepository; + private static final Logger logger = LoggerFactory.getLogger(PhoneVerificationService.class); + + @Autowired + public PhoneVerificationService(PhoneRepository phoneRepository) { + this.phoneRepository = phoneRepository; + } + public void insertDB(PhoneEntity PhoneEntity) { + phoneRepository.save(PhoneEntity); + } + +} \ No newline at end of file diff --git a/src/main/java/com/safeqr/app/qrcode/service/QRCodeTypeService.java b/src/main/java/com/safeqr/app/qrcode/service/QRCodeTypeService.java index 89dc33f..ac33221 100644 --- a/src/main/java/com/safeqr/app/qrcode/service/QRCodeTypeService.java +++ b/src/main/java/com/safeqr/app/qrcode/service/QRCodeTypeService.java @@ -28,24 +28,25 @@ public class QRCodeTypeService { private static final Logger logger = LoggerFactory.getLogger(QRCodeTypeService.class); private final QRCodeFactoryProvider qrCodeFactoryProvider; - + private final QRCodeTypeRepository qrCodeTypeRepository; + private final ScanHistoryRepository scanHistoryRepository; + private final QRCodeRepository qrCodeRepository; + private final SafeBrowsingService safeBrowsingService; @Autowired - public QRCodeTypeService(QRCodeFactoryProvider qrCodeFactoryProvider) { + public QRCodeTypeService(QRCodeFactoryProvider qrCodeFactoryProvider, + QRCodeTypeRepository qrCodeTypeRepository, + ScanHistoryRepository scanHistoryRepository, + QRCodeRepository qrCodeRepository, + SafeBrowsingService safeBrowsingService + ) { this.qrCodeFactoryProvider = qrCodeFactoryProvider; + this.qrCodeTypeRepository = qrCodeTypeRepository; + this.scanHistoryRepository = scanHistoryRepository; + this.qrCodeRepository = qrCodeRepository; + this.safeBrowsingService = safeBrowsingService; } - - @Autowired - private QRCodeTypeRepository qrCodeTypeRepository; - @Autowired - private ScanHistoryRepository scanHistoryRepository; - @Autowired - private QRCodeRepository qrCodeRepository; - - @Autowired - private SafeBrowsingService safeBrowsingService; - private List configs; private QRCodeTypeEntity defaultQRCodeTypeEntity; @@ -88,9 +89,9 @@ public class QRCodeTypeService { .scanStatus(ScanHistoryEntity.ScanStatus.ACTIVE) .build()); } - + // Create the QR Code Instance based on the QR Code Type & insert into the respective table QRCodeModel qrCodeModel = qrCodeFactoryProvider.createQRCodeInstance(scannedQR, qrType); - qrCodeModel.insertDB(); + qrCodeModel.setDetails(); return BaseScanResponse.builder().qrcode(qrCodeModel).build(); } @@ -101,29 +102,6 @@ public class QRCodeTypeService { .orElse(defaultQRCodeTypeEntity); } -// private BaseScanResponse insertIntoRespectiveTable(QRCodeEntity qrCodeEntity, QRCodeTypeEntity qrCodeTypeEntity) { -// String contents = qrCodeEntity.getContents(); -// try { -// QRCodeURLEntity urlObj = urlVerificationService.breakdownURL(contents); -// List redirectChain = urlVerificationService.countAndTrackRedirects(contents); -// urlObj.setQrCodeId(qrCodeEntity.getId()); -// urlObj.setRedirect(redirectChain.size() - 1); -// urlObj.setRedirectChain(redirectChain); -// -// // Insert into URL table -// urlRepository.save(urlObj); -// -// return URLResponse.builder().scannedQRCode(qrCodeEntity).qrCode(qrCodeTypeEntity).details(urlObj).build(); -// } catch (IOException | URISyntaxException e) { -// logger.error("Error: ", e); -// } -// -// return BaseScanResponse.builder() -// .scannedQRCode(qrCodeEntity) -// .qrCode(qrCodeTypeEntity) -// .build(); -// } - public Mono detectType(QRCodePayload payload) { String data = payload.getData(); diff --git a/src/main/java/com/safeqr/app/qrcode/service/SMSVerificationService.java b/src/main/java/com/safeqr/app/qrcode/service/SMSVerificationService.java new file mode 100644 index 0000000..c20bfc9 --- /dev/null +++ b/src/main/java/com/safeqr/app/qrcode/service/SMSVerificationService.java @@ -0,0 +1,23 @@ +package com.safeqr.app.qrcode.service; + +import com.safeqr.app.qrcode.entity.SMSEntity; +import com.safeqr.app.qrcode.repository.SMSRepository; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service +public class SMSVerificationService { + private final SMSRepository smsRepository; + private static final Logger logger = LoggerFactory.getLogger(SMSVerificationService.class); + + @Autowired + public SMSVerificationService(SMSRepository smsRepository) { + this.smsRepository = smsRepository; + } + public void insertDB(SMSEntity SMSEntity) { + smsRepository.save(SMSEntity); + } + +} \ No newline at end of file diff --git a/src/main/java/com/safeqr/app/qrcode/service/TextVerificationService.java b/src/main/java/com/safeqr/app/qrcode/service/TextVerificationService.java index 2acf632..1609046 100644 --- a/src/main/java/com/safeqr/app/qrcode/service/TextVerificationService.java +++ b/src/main/java/com/safeqr/app/qrcode/service/TextVerificationService.java @@ -1,10 +1,22 @@ package com.safeqr.app.qrcode.service; +import com.safeqr.app.qrcode.entity.TextEntity; +import com.safeqr.app.qrcode.repository.TextRepository; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class TextVerificationService { + private final TextRepository textRepository; + + @Autowired + public TextVerificationService(TextRepository textRepository) { + this.textRepository = textRepository; + } + public void insertDB(TextEntity textEntity) { + textRepository.save(textEntity); + } private static final Logger logger = LoggerFactory.getLogger(TextVerificationService.class); } \ No newline at end of file diff --git a/src/main/java/com/safeqr/app/qrcode/service/URLVerificationService.java b/src/main/java/com/safeqr/app/qrcode/service/URLVerificationService.java index e6f07de..14a8395 100644 --- a/src/main/java/com/safeqr/app/qrcode/service/URLVerificationService.java +++ b/src/main/java/com/safeqr/app/qrcode/service/URLVerificationService.java @@ -3,9 +3,11 @@ package com.safeqr.app.qrcode.service; import com.safeqr.app.constants.CommonConstants; import com.safeqr.app.qrcode.dto.QRCodePayload; import com.safeqr.app.qrcode.dto.URLVerificationResponse; -import com.safeqr.app.qrcode.entity.QRCodeURLEntity; +import com.safeqr.app.qrcode.entity.URLEntity; +import com.safeqr.app.qrcode.repository.URLRepository; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.io.IOException; @@ -18,12 +20,20 @@ import java.util.Map; @Service public class URLVerificationService { private static final Logger logger = LoggerFactory.getLogger(URLVerificationService.class); + private final URLRepository urlRepository; + @Autowired + public URLVerificationService(URLRepository urlRepository) { + this.urlRepository = urlRepository; + } + public void insertDB(URLEntity urlEntity) { + urlRepository.save(urlEntity); + } // Function to breakdown URL into subdomain, domain, topLevelDomain, query params, fragment - public QRCodeURLEntity breakdownURL(String urlString) throws MalformedURLException, URISyntaxException { + public URLEntity breakdownURL(String urlString) throws MalformedURLException, URISyntaxException { URI uri = new URI(urlString); URL url = uri.toURL(); - QRCodeURLEntity urlObj = new QRCodeURLEntity(); + URLEntity urlObj = new URLEntity(); String host = url.getHost(); // split host into subdomain, domain, topLevelDomain diff --git a/src/main/java/com/safeqr/app/qrcode/service/WifiVerificationService.java b/src/main/java/com/safeqr/app/qrcode/service/WifiVerificationService.java new file mode 100644 index 0000000..0482f58 --- /dev/null +++ b/src/main/java/com/safeqr/app/qrcode/service/WifiVerificationService.java @@ -0,0 +1,23 @@ +package com.safeqr.app.qrcode.service; + +import com.safeqr.app.qrcode.entity.WifiEntity; +import com.safeqr.app.qrcode.repository.WifiRepository; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service +public class WifiVerificationService { + private final WifiRepository wifiRepository; + private static final Logger logger = LoggerFactory.getLogger(WifiVerificationService.class); + + @Autowired + public WifiVerificationService(WifiRepository wifiRepository) { + this.wifiRepository = wifiRepository; + } + public void insertDB(WifiEntity WifiEntity) { + wifiRepository.save(WifiEntity); + } + +} \ No newline at end of file