Class OrderControllerImpl

java.lang.Object
de.dlr.proseo.ordermgr.rest.OrderControllerImpl
All Implemented Interfaces:
OrderController

@Component public class OrderControllerImpl extends Object implements OrderController
Spring MVC controller for the prosEO Order Manager; implements the services required to manage processing orders
Author:
Ranjitha Vignesh
  • Constructor Details

    • OrderControllerImpl

      public OrderControllerImpl()
  • Method Details

    • createOrder

      public org.springframework.http.ResponseEntity<RestOrder> createOrder(RestOrder restOrder)
      Create an order from the given JSON object
      Specified by:
      createOrder in interface OrderController
      Parameters:
      restOrder - the JSON object to create the order from
      Returns:
      HTTP status "CREATED" and a response containing a JSON object corresponding to the order after persistence (with ID and version for all contained objects) or HTTP status "FORBIDDEN" and an error message, if a cross-mission data access was attempted, or HTTP status "BAD_REQUEST", if any of the input data was invalid
    • getOrders

      public org.springframework.http.ResponseEntity<List<RestOrder>> getOrders(String mission, String identifier, String[] productClasses, String startTimeFrom, String startTimeTo, String executionTimeFrom, String executionTimeTo)
      List of all orders filtered by mission, identifier, productClasses, starttime range
      Specified by:
      getOrders in interface OrderController
      Parameters:
      mission - the mission code
      identifier - the unique order identifier string
      productClasses - an array of product types
      startTimeFrom - earliest sensing start time
      startTimeTo - latest sensing start time
      executionTimeFrom - earliest order execution time
      executionTimeTo - latest order execution time
      Returns:
      HTTP status "OK" and a list of products or HTTP status "NOT_FOUND" and an error message, if no products matching the search criteria were found, or HTTP status "FORBIDDEN" and an error message, if a cross-mission data access was attempted
    • getAndSelectOrders

      public org.springframework.http.ResponseEntity<List<RestOrder>> getAndSelectOrders(String mission, String identifier, String[] state, String[] productClass, String startTimeFrom, String startTimeTo, Long recordFrom, Long recordTo, String[] orderBy)
      Retrieve a list of orders satisfying the selection parameters
      Specified by:
      getAndSelectOrders in interface OrderController
      Parameters:
      mission - the mission code
      identifier - the unique order identifier string
      state - an array of order states
      productClass - an array of product types
      startTimeFrom - earliest sensing start time
      startTimeTo - latest sensing start time
      recordFrom - first record of filtered and ordered result to return
      recordTo - last record of filtered and ordered result to return
      orderBy - an array of strings containing a column name and an optional sort direction (ASC/DESC), separated by white space
      Returns:
      the result list
    • countSelectOrders

      public org.springframework.http.ResponseEntity<String> countSelectOrders(String mission, String identifier, String[] state, String[] productClass, String startTimeFrom, String startTimeTo, Long recordFrom, Long recordTo, String[] orderBy)
      Calculate the amount of orders satisfying the selection parameters. Mission code is mandatory.
      Specified by:
      countSelectOrders in interface OrderController
      Parameters:
      mission - the mission code
      identifier - the unique order identifier string
      state - an array of order states
      productClass - an array of product types
      startTimeFrom - earliest sensing start time
      startTimeTo - latest sensing start time
      recordFrom - first record of filtered and ordered result to return
      recordTo - last record of filtered and ordered result to return
      orderBy - an array of strings containing a column name and an optional sort direction (ASC/DESC),separated by white space
      Returns:
      The order count
    • getOrderById

      public org.springframework.http.ResponseEntity<RestOrder> getOrderById(Long id)
      Find the order with the given ID
      Specified by:
      getOrderById in interface OrderController
      Parameters:
      id - the ID to look for
      Returns:
      HTTP status "OK" and a JSON object corresponding to the found order or HTTP status "FORBIDDEN" and an error message, if a cross-mission data access was attempted, or HTTP status "NOT_FOUND", if no orbit with the given ID exists
    • deleteOrderById

      public org.springframework.http.ResponseEntity<?> deleteOrderById(Long id)
      Delete an order by ID
      Specified by:
      deleteOrderById in interface OrderController
      Parameters:
      id - the ID of the order to delete
      Returns:
      a response entity with HTTP status "NO_CONTENT", if the deletion was successful, or HTTP status "NOT_FOUND" and an error message, if the orbit did not exist, or HTTP status "FORBIDDEN" and an error message, if a cross-mission data access was attempted, or HTTP status "NOT_MODIFIED" and an error message, if the deletion was unsuccessful
    • modifyOrder

      public org.springframework.http.ResponseEntity<RestOrder> modifyOrder(Long id, @Valid @Valid RestOrder restOrder)
      Update the order with the given ID with the attribute values of the given JSON object.
      Specified by:
      modifyOrder in interface OrderController
      Parameters:
      id - the ID of the order to update
      restOrder - a JSON object containing the modified (and unmodified) attributes
      Returns:
      a response containing HTTP status "OK" and a JSON object corresponding to the order after modification (with ID and version for all contained objects) or HTTP status "NOT_MODIFIED" and the unchanged order, if no attributes were actually changed, or HTTP status "NOT_FOUND" and an error message, if no order with the given ID exists, or HTTP status "FORBIDDEN" and an error message, if a cross-mission data access was attempted
    • countOrders

      @Transactional(isolation=REPEATABLE_READ, readOnly=true) public org.springframework.http.ResponseEntity<String> countOrders(String mission, String identifier, Long nid)
      Count orders filtered by mission, identifier and id not equal nid.
      Specified by:
      countOrders in interface OrderController
      Parameters:
      mission - The mission code
      identifier - The unique order identifier string
      nid - The ids of orbit(s) found has to be unequal to nid
      Returns:
      The number of orders found