Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package au.com.telstra.simcardactivator;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;

@Component
public class ActuateServiceApplication {

@PostConstruct
public void startActuateService(){
System.out.println("ActuateService started on port 8444 inside SimCardActivator process.");
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
package au.com.telstra.simcardactivator;

import org.apache.catalina.connector.Connector;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.Bean;

@SpringBootApplication
public class SimCardActivator {
Expand All @@ -10,4 +14,24 @@ public static void main(String[] args) {
SpringApplication.run(SimCardActivator.class, args);
}

// public static void main(String[] args){
// ConfigurableApplicationContext simContext = SpringApplication.run(SimCardActivator.class, "--spring.config.name=application-simcardactivator");
//
//// ConfigurableApplicationContext actuateContext = SpringApplication.run(ActuateServiceApplication.class, "--spring.config.name=application-actuate");


@Bean
public TomcatServletWebServerFactory servletContainer(){
TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory();

// Main application runs on port 8080

// Add second connector for ActuateService on port 8444
Connector connector = new Connector(TomcatServletWebServerFactory.DEFAULT_PROTOCOL);
connector.setPort(8444);
factory.addAdditionalTomcatConnectors(connector);

return factory;
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package au.com.telstra.simcardactivator.component;

import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.Map;

@RestController
@RequestMapping("/actuate")
public class ActuateController {
@PostMapping
public ResponseEntity<Map<String, Boolean>> handleActuateRequest(@RequestBody Map<String, String> iccidData) {
String iccid = iccidData.get("iccid");

boolean success = iccid != null && !iccid.isEmpty();
HttpStatus status = success ? HttpStatus.OK : HttpStatus.BAD_REQUEST;

System.out.println("hope the code got in here");
return new ResponseEntity<>(Map.of("success", success), status);


}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package au.com.telstra.simcardactivator.component;

import au.com.telstra.simcardactivator.foundation.ActuationResult;
import au.com.telstra.simcardactivator.foundation.SimCard;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class SimCardActivationRestController {
private final SimCardActuationHandler simCardActuationHandler;

public SimCardActivationRestController(SimCardActuationHandler simCardActuationHandler) {
this.simCardActuationHandler = simCardActuationHandler;
}


// @PostMapping(value = "/activate")
// public void handleActivationRequest(@RequestBody SimCard simCard){
// var actuationResult = simCardActuationHandler.actuate(simCard);
// System.out.println(actuationResult.getSuccess());
// System.out.println("Approved");
// }
@PostMapping("/activate")
public ActuationResult handleActivationRequest(@RequestBody SimCard simCard){
var actuationResult = simCardActuationHandler.actuate(simCard);
return actuationResult;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package au.com.telstra.simcardactivator.component;

import au.com.telstra.simcardactivator.foundation.ActuationResult;
import au.com.telstra.simcardactivator.foundation.SimCard;
import org.springframework.boot.web.client.RestTemplateBuilder;
import org.springframework.stereotype.Component;
import org.springframework.web.client.RestTemplate;

@Component
public class SimCardActuationHandler {
private final RestTemplate restTemplate;
private final String incentiveApiUrl;

public SimCardActuationHandler(RestTemplateBuilder builder) {
this.restTemplate = builder.build();
System.out.println("hello sumit inside simcardactuationhandler");
this.incentiveApiUrl = "http://localhost:8444/actuate";
}


public ActuationResult actuate(SimCard simCard){
System.out.println("inside actuationresult result");
return restTemplate.postForObject(incentiveApiUrl, simCard, ActuationResult.class);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package au.com.telstra.simcardactivator.foundation;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

@JsonIgnoreProperties(ignoreUnknown = true)
public class ActuationResult {
private boolean success;

public ActuationResult() {
}

public ActuationResult(boolean success) {
this.success = success;
}

public boolean getSuccess() {
return success;
}

public void setSuccess(boolean success) {
this.success = success;
}

@Override
public String toString() {
return "ActuationResult{" +
"success=" + success +
'}';
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
package au.com.telstra.simcardactivator.foundation;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity
@JsonIgnoreProperties(ignoreUnknown = true)
public class SimCard {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
private String iccid;
private String customerEmail;
private boolean active;

public SimCard() {
}

public SimCard(long id, String iccid, String customerEmail, boolean active) {
this.id = id;
this.iccid = iccid;
this.customerEmail = customerEmail;
this.active = active;
}

public long getId() {
return id;
}

public void setId(long id) {
this.id = id;
}

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;
}

public boolean isActive() {
return active;
}

public void setActive(boolean active) {
this.active = active;
}

@Override
public String toString() {
return "SimCard{" +
"iccid='" + iccid + '\'' +
", customerEmail='" + customerEmail + '\'' +
", active=" + active +
'}';
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
server.port = 8444
spring.application.name = SimCardActivator

# Additional Server for ActuateService
server.additional-port=8444
spring.application-application.name=ActuateService