package com.restbucks.ordering.activities;

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

public class RemoveOrderActivity {
    public OrderRepresentation delete(String id) {
        // id = id of the order that has been canceled
        
        Identifier identifier = new Identifier(id);
        // System.out.println("RemoveOrderActivity: deleting id = " + identifier);
        OrderRepository orderRepository = OrderRepository.current();

        if (orderRepository.orderNotPlaced(identifier)) {
            throw new NoSuchOrderException();
        }

        Order order = orderRepository.get(identifier);

        orderRepository.remove(identifier);

        return new OrderRepresentation(order, id);
    }

}
