package com.restbucks.ordering.activities;

import com.restbucks.ordering.domain.Identifier;
import com.restbucks.ordering.domain.Order;
import com.restbucks.ordering.domain.OrderStatus;
import com.restbucks.ordering.repositories.OrderRepository;
import com.restbucks.ordering.representations.OrderRepresentation;

public class CreateOrderActivity {
    public OrderRepresentation create(OrderRepresentation orderRep) {
        String idFromIncomingOrder = orderRep.getId();
        // System.out.println("in CreateOrderActivity");
        // if order's id is there already, fail
        if (idFromIncomingOrder != null) {
        	// System.out.println("CreateOrderActivity: saw incoming order with id = " + idFromIncomingOrder + 
        	// ", so throwing InvalidOrderException");
        	throw new InvalidOrderException(); 
        }
        Order order = orderRep.getOrder();
        order.setStatus(OrderStatus.PREPARING);
                
        Identifier identifier = OrderRepository.current().store(order);
        // System.out.println("in CreateOrderActivity");
        // make sure id is right in returned object
        return new OrderRepresentation(order, identifier.toString());
    }
}
