8f9cff1d14a97c5a8c1b955d1a8d54d2f917878a
[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 java.util.Date;
19 import java.util.List;
20 import org.onap.nbi.apis.serviceorder.model.ServiceOrder;
21 import org.onap.nbi.apis.serviceorder.model.ServiceOrderItem;
22 import org.onap.nbi.apis.serviceorder.model.StateType;
23 import org.onap.nbi.apis.serviceorder.repositories.ServiceOrderRepository;
24 import org.springframework.beans.factory.annotation.Autowired;
25 import org.springframework.stereotype.Service;
26
27 @Service
28 public class ServiceOrderService {
29
30     @Autowired
31     ServiceOrderRepository serviceOrderRepository;
32
33     public ServiceOrder findServiceOrderById(String serviceOrderId){
34         return serviceOrderRepository.findOne(serviceOrderId);
35     }
36
37     public List<ServiceOrder> findServiceOrdersByState(StateType state){
38         return serviceOrderRepository.findByState(state);
39     }
40
41     public void updateOrderState(ServiceOrder serviceOrder,StateType state){
42         serviceOrder.setState(state);
43         serviceOrderRepository.save(serviceOrder);
44     }
45
46     public void updateOrderFinalState(ServiceOrder serviceOrder,StateType state){
47         serviceOrder.setState(state);
48         serviceOrder.setCompletionDateTime(new Date());
49         serviceOrderRepository.save(serviceOrder);
50     }
51
52     public void updateOrderItemState(ServiceOrder serviceOrder,ServiceOrderItem serviceOrderItem, StateType state){
53         serviceOrderItem.setState(state);
54         serviceOrderRepository.save(serviceOrder);
55     }
56
57     public ServiceOrder updateOrderAndItemStateToAcknowledged(ServiceOrder serviceOrder){
58         serviceOrder.setState(StateType.ACKNOWLEDGED);
59         serviceOrder.setOrderDate(new Date());
60         for (ServiceOrderItem serviceOrderItem : serviceOrder.getOrderItem()) {
61             serviceOrderItem.setState(StateType.ACKNOWLEDGED);
62         }
63         return serviceOrderRepository.save(serviceOrder);
64     }
65
66     public void updateOrderHref(ServiceOrder serviceOrder){
67         serviceOrder.setHref("serviceOrder/" + serviceOrder.getId());
68         serviceOrderRepository.save(serviceOrder);
69     }
70
71
72     public void deleteServiceOrder(String serviceOrderId){
73         serviceOrderRepository.delete(serviceOrderId);
74     }
75
76     public long countServiceOrder(){
77         return serviceOrderRepository.count();
78     }
79
80
81 }