delivery_api finished
This commit is contained in:
		
							
								
								
									
										11
									
								
								delivery/src/main/java/org/hso/ecommerce/supplier/App.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								delivery/src/main/java/org/hso/ecommerce/supplier/App.java
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,11 @@
 | 
			
		||||
package org.hso.ecommerce.supplier;
 | 
			
		||||
 | 
			
		||||
import org.springframework.boot.SpringApplication;
 | 
			
		||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
 | 
			
		||||
 | 
			
		||||
@SpringBootApplication
 | 
			
		||||
public class App {
 | 
			
		||||
    public static void main(String[] args) {
 | 
			
		||||
        SpringApplication.run(App.class, args);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,33 @@
 | 
			
		||||
package org.hso.ecommerce.supplier;
 | 
			
		||||
 | 
			
		||||
import com.fasterxml.jackson.core.JsonFactoryBuilder;
 | 
			
		||||
import netscape.javascript.JSObject;
 | 
			
		||||
import org.hso.ecommerce.supplier.data.Delivery;
 | 
			
		||||
import org.hso.ecommerce.supplier.data.DeliveryManager;
 | 
			
		||||
import org.json.JSONObject;
 | 
			
		||||
import org.springframework.web.bind.annotation.*;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
import javax.servlet.http.HttpServletRequest;
 | 
			
		||||
import javax.servlet.http.HttpServletResponse;
 | 
			
		||||
 | 
			
		||||
@RestController
 | 
			
		||||
public class RequestController {
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    @PostMapping("/newDelivery")
 | 
			
		||||
    public String supplier(HttpServletResponse response, HttpServletRequest request, @RequestBody Delivery delivery) {
 | 
			
		||||
        DeliveryManager.getInstance().add(delivery);
 | 
			
		||||
 | 
			
		||||
        return delivery.getUuid().toString();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @GetMapping("/status")
 | 
			
		||||
    public String searchArticles(@RequestParam(value = "trackingID") String trackingID, HttpServletRequest request, HttpServletResponse response) {
 | 
			
		||||
 | 
			
		||||
        Delivery delivery = DeliveryManager.getInstance().getDeliveryByeID(trackingID);
 | 
			
		||||
 | 
			
		||||
        return new JSONObject().put("status",delivery.getStatus()).put("estimatedArrival",delivery.getEstimatedArrival()).toString();
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,69 @@
 | 
			
		||||
package org.hso.ecommerce.supplier.data;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
import java.text.SimpleDateFormat;
 | 
			
		||||
import java.util.Calendar;
 | 
			
		||||
import java.util.Date;
 | 
			
		||||
import java.util.UUID;
 | 
			
		||||
 | 
			
		||||
public class Delivery {
 | 
			
		||||
 | 
			
		||||
    private String[] states = {"Bestellung eingegangen","Bestellung auf dem Weg","Lieferung erfolgreich"};
 | 
			
		||||
    private double[] timeBorder = {4,24};
 | 
			
		||||
 | 
			
		||||
    private String name;
 | 
			
		||||
    private String address;
 | 
			
		||||
    private String estimatedArrival;
 | 
			
		||||
    private Date creationTime;
 | 
			
		||||
    private UUID uuid;
 | 
			
		||||
 | 
			
		||||
    public Delivery(String name, String address)
 | 
			
		||||
    {
 | 
			
		||||
        this.name = name;
 | 
			
		||||
        this.address = address;
 | 
			
		||||
        this.uuid = UUID.randomUUID();
 | 
			
		||||
        this.creationTime = new Date();
 | 
			
		||||
        SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy");
 | 
			
		||||
        this.estimatedArrival = formatter.format(addDays((Date)this.creationTime.clone(),1));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    public String getStatus()
 | 
			
		||||
    {
 | 
			
		||||
        Date now = new Date();
 | 
			
		||||
        Long timeNow = now.getTime();
 | 
			
		||||
        Long creationTime = this.creationTime.getTime();
 | 
			
		||||
 | 
			
		||||
        Long diff = timeNow - creationTime;
 | 
			
		||||
        double hour = (((diff / 1000) / 3600));
 | 
			
		||||
 | 
			
		||||
        for (int i = 0; i <  timeBorder.length; i++) {
 | 
			
		||||
 | 
			
		||||
            if(hour < timeBorder[i])
 | 
			
		||||
                return states[i];
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return states[timeBorder.length];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public String getEstimatedArrival() {
 | 
			
		||||
 | 
			
		||||
        return estimatedArrival;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private Date addDays(Date date, int days)
 | 
			
		||||
    {
 | 
			
		||||
        Calendar cal = Calendar.getInstance();
 | 
			
		||||
        cal.setTime(date);
 | 
			
		||||
        cal.add(Calendar.DATE, days);
 | 
			
		||||
        return cal.getTime();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public UUID getUuid() {
 | 
			
		||||
        return uuid;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public String getName() {
 | 
			
		||||
        return name;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,34 @@
 | 
			
		||||
package org.hso.ecommerce.supplier.data;
 | 
			
		||||
 | 
			
		||||
import java.util.ArrayList;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import java.util.UUID;
 | 
			
		||||
 | 
			
		||||
public class DeliveryManager {
 | 
			
		||||
 | 
			
		||||
    private List<Delivery> deliveryList;
 | 
			
		||||
    private static DeliveryManager deliveryManager;
 | 
			
		||||
 | 
			
		||||
    private DeliveryManager()
 | 
			
		||||
    {
 | 
			
		||||
        deliveryList = new ArrayList<>();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static DeliveryManager getInstance () {
 | 
			
		||||
 | 
			
		||||
        if (DeliveryManager.deliveryManager == null) {
 | 
			
		||||
            DeliveryManager.deliveryManager = new DeliveryManager();
 | 
			
		||||
        }
 | 
			
		||||
        return DeliveryManager.deliveryManager;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public boolean add(Delivery delivery)
 | 
			
		||||
    {
 | 
			
		||||
       return deliveryList.add(delivery);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public Delivery getDeliveryByeID(String uuid)
 | 
			
		||||
    {
 | 
			
		||||
        return deliveryList.parallelStream().filter(d -> d.getUuid().equals(UUID.fromString(uuid))).findAny().get();
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										2
									
								
								delivery/src/main/resources/application.properties
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								delivery/src/main/resources/application.properties
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,2 @@
 | 
			
		||||
server.address=::1
 | 
			
		||||
server.port=8081
 | 
			
		||||
		Reference in New Issue
	
	Block a user