diff --git a/src/main/java/au/com/telstra/controller/SimCardActivateController.java b/src/main/java/au/com/telstra/controller/SimCardActivateController.java new file mode 100644 index 0000000..3e62c47 --- /dev/null +++ b/src/main/java/au/com/telstra/controller/SimCardActivateController.java @@ -0,0 +1,41 @@ +package au.com.telstra.controller; + +import au.com.telstra.model.SIMCard; +import au.com.telstra.pojo.SimCardResponseDTO; +import au.com.telstra.service.SimCardService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.*; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.client.RestTemplate; + +@RestController +public class SimCardActivateController { + + private static final String ACTIVATE_SIM_API = "http://localhost:8444/actuate"; + + RestTemplate restTemplate = new RestTemplate(); + @Autowired + private SimCardService simCardService; + + @PostMapping("/activatesimcard") + public void addUser(@RequestBody SIMCard newSimCard) { + System.out.println(callActivateSimCard(newSimCard)); + simCardService.addSimCard(newSimCard); + } + + public String callActivateSimCard(SIMCard newSimCard) { + ResponseEntity response = restTemplate.postForEntity(ACTIVATE_SIM_API, newSimCard, Object.class); + return response.getBody().toString(); + } + + @GetMapping("/{simCardId}") + public SimCardResponseDTO getSimCardByID(@PathVariable long simCardId) { + SIMCard sim = simCardService.getSimCardById(simCardId); + return new SimCardResponseDTO(sim.getIccid(), + sim.getCustomerEmail(), + true + ); + } + + +} diff --git a/src/main/java/au/com/telstra/model/SIMCard.java b/src/main/java/au/com/telstra/model/SIMCard.java new file mode 100644 index 0000000..ed71d70 --- /dev/null +++ b/src/main/java/au/com/telstra/model/SIMCard.java @@ -0,0 +1,22 @@ +package au.com.telstra.model; + +public class SIMCard { + private String iccid; + private String customerEmail; + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public String getCustomerEmail() { + return customerEmail; + } + + public void setCustomerEmail(String customerEmail) { + this.customerEmail = customerEmail; + } +} diff --git a/src/main/java/au/com/telstra/pojo/SimCardEntity.java b/src/main/java/au/com/telstra/pojo/SimCardEntity.java new file mode 100644 index 0000000..f10df2e --- /dev/null +++ b/src/main/java/au/com/telstra/pojo/SimCardEntity.java @@ -0,0 +1,31 @@ +package au.com.telstra.pojo; + +import com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; + +@Entity +public class SimCardEntity { + public SimCardEntity(String iccid, String customerEmail, boolean active) { + this.iccid = iccid; + this.customerEmail = customerEmail; + this.active = active; + } + + @Id + @GeneratedValue + private long id; + private String iccid; + private String customerEmail; + private boolean active; + + public void setId(Long id) { + this.id = id; + } + + public Long getId() { + return id; + } +} diff --git a/src/main/java/au/com/telstra/pojo/SimCardResponseDTO.java b/src/main/java/au/com/telstra/pojo/SimCardResponseDTO.java new file mode 100644 index 0000000..8896756 --- /dev/null +++ b/src/main/java/au/com/telstra/pojo/SimCardResponseDTO.java @@ -0,0 +1,37 @@ +package au.com.telstra.pojo; + +public class SimCardResponseDTO { + public SimCardResponseDTO(String iccid, String customerEmail, boolean active) { + this.iccid = iccid; + this.customerEmail = customerEmail; + this.active = active; + } + + private String iccid; + private String customerEmail; + private boolean active; + + public String getIccid() { + return iccid; + } + + public void setIccid(String iccid) { + this.iccid = iccid; + } + + public boolean isActive() { + return active; + } + + public void setActive(boolean active) { + this.active = active; + } + + public String getCustomerEmail() { + return customerEmail; + } + + public void setCustomerEmail(String customerEmail) { + this.customerEmail = customerEmail; + } +} diff --git a/src/main/java/au/com/telstra/repository/SimRepository.java b/src/main/java/au/com/telstra/repository/SimRepository.java new file mode 100644 index 0000000..38cfd25 --- /dev/null +++ b/src/main/java/au/com/telstra/repository/SimRepository.java @@ -0,0 +1,16 @@ +package au.com.telstra.repository; + +import au.com.telstra.model.SIMCard; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +import java.util.Optional; + +@Repository +public interface SimRepository extends JpaRepository { + @Override + S save(S entity); + + @Override + Optional findById(Long aLong); +} diff --git a/src/main/java/au/com/telstra/service/SimCardService.java b/src/main/java/au/com/telstra/service/SimCardService.java new file mode 100644 index 0000000..db44b4e --- /dev/null +++ b/src/main/java/au/com/telstra/service/SimCardService.java @@ -0,0 +1,23 @@ +package au.com.telstra.service; + +import au.com.telstra.model.SIMCard; +import au.com.telstra.repository.SimRepository; +import org.springframework.stereotype.Service; + +import java.util.Optional; + +@Service +public class SimCardService { + private SimRepository simRepository; + + public SIMCard addSimCard(SIMCard simCard){ + return simRepository.save(simCard); + } + + public SIMCard getSimCardById(long simCardId){ + return simRepository.findById(simCardId).isPresent() + ? simRepository.findById(simCardId).get() + : null; + } + +}