HUB Resource
[externalapi/nbi.git] / src / main / java / org / onap / nbi / apis / serviceorder / service / ServiceOrderService.java
1 /**
2  *     Copyright (c) 2018 Orange
3  *
4  *     Licensed under the Apache License, Version 2.0 (the "License");
5  *     you may not use this file except in compliance with the License.
6  *     You may obtain a copy of the License at
7  *
8  *         http://www.apache.org/licenses/LICENSE-2.0
9  *
10  *     Unless required by applicable law or agreed to in writing, software
11  *     distributed under the License is distributed on an "AS IS" BASIS,
12  *     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  *     See the License for the specific language governing permissions and
14  *     limitations under the License.
15  */
16 package org.onap.nbi.apis.serviceorder.service;
17
18 import org.onap.nbi.apis.serviceorder.model.ServiceOrder;
19 import org.onap.nbi.apis.serviceorder.model.ServiceOrderItem;
20 import org.onap.nbi.apis.serviceorder.model.StateType;
21 import org.onap.nbi.apis.serviceorder.repositories.ServiceOrderRepository;
22 import org.springframework.beans.factory.annotation.Autowired;
23 import org.springframework.stereotype.Service;
24
25 import java.util.Date;
26 import java.util.List;
27
28 @Service
29 public class ServiceOrderService {
30
31     @Autowired
32     ServiceOrderRepository serviceOrderRepository;
33
34     public ServiceOrder findServiceOrderById(String serviceOrderId){
35         return serviceOrderRepository.findOne(serviceOrderId);
36     }
37
38     public List<ServiceOrder> findServiceOrdersByState(StateType state){
39         return serviceOrderRepository.findByState(state);
40     }
41
42     public ServiceOrder updateOrderState(ServiceOrder serviceOrder,StateType state){
43         if(StateType.COMPLETED.equals(state) || StateType.REJECTED.equals(state)) {
44             serviceOrder.setCompletionDateTime(new Date());
45         }
46         serviceOrder.setState(state);
47         return serviceOrderRepository.save(serviceOrder);
48     }
49
50     public void updateOrderItemState(ServiceOrder serviceOrder,ServiceOrderItem serviceOrderItem, StateType state){
51         serviceOrderItem.setState(state);
52         serviceOrderRepository.save(serviceOrder);
53     }
54
55     public ServiceOrder createServiceOrder(ServiceOrder serviceOrder){
56         serviceOrder.setState(StateType.ACKNOWLEDGED);
57         serviceOrder.setOrderDate(new Date());
58         for (ServiceOrderItem serviceOrderItem : serviceOrder.getOrderItem()) {
59             serviceOrderItem.setState(StateType.ACKNOWLEDGED);
60         }
61         return serviceOrderRepository.save(serviceOrder);
62     }
63
64     public void updateOrderHref(ServiceOrder serviceOrder){
65         serviceOrder.setHref("serviceOrder/" + serviceOrder.getId());
66         serviceOrderRepository.save(serviceOrder);
67     }
68
69
70     public void deleteServiceOrder(String serviceOrderId){
71         serviceOrderRepository.delete(serviceOrderId);
72     }
73
74     public long countServiceOrder(){
75         return serviceOrderRepository.count();
76     }
77
78
79 }