Development of NETCONF RPCs for tr-069 adapter to
[oam/tr069-adapter.git] / mapper / src / main / java / org / commscope / tr069adapter / mapper / ves / impl / VesRequestHandlerImpl.java
1 /*
2  * ============LICENSE_START========================================================================
3  * ONAP : tr-069-adapter
4  * =================================================================================================
5  * Copyright (C) 2020 CommScope Inc Intellectual Property.
6  * =================================================================================================
7  * This tr-069-adapter software file is distributed by CommScope Inc under the Apache License,
8  * Version 2.0 (the "License"); you may not use this file except in compliance with the License. You
9  * may obtain a copy of the License at
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
14  * either express or implied. See the License for the specific language governing permissions and
15  * limitations under the License.
16  * ===============LICENSE_END=======================================================================
17  */
18
19 package org.commscope.tr069adapter.mapper.ves.impl;
20
21 import org.commscope.tr069adapter.acs.common.DeviceRPCRequest;
22 import org.commscope.tr069adapter.acs.common.DeviceRPCResponse;
23 import org.commscope.tr069adapter.acs.common.OperationResponse;
24 import org.commscope.tr069adapter.mapper.MapperConfigProperties;
25 import org.commscope.tr069adapter.mapper.model.ErrorCodeDetails;
26 import org.commscope.tr069adapter.mapper.sync.SynchronizedRequestHandler;
27 import org.commscope.tr069adapter.mapper.util.ErrorCodeUtil;
28 import org.commscope.tr069adapter.mapper.util.MapperConstants;
29 import org.commscope.tr069adapter.mapper.ves.VesRequestHandler;
30 import org.springframework.beans.factory.annotation.Autowired;
31 import org.springframework.stereotype.Component;
32
33 @Component
34 public class VesRequestHandlerImpl implements VesRequestHandler {
35
36
37   @Autowired
38   SynchronizedRequestHandler syncHandler;
39
40   @Autowired
41   MapperConfigProperties config;
42
43   @Autowired
44   private ErrorCodeUtil errorCodeUtil;
45
46
47   @Override
48   public DeviceRPCResponse handleDeviceConnectivityRequest(DeviceRPCRequest deviceRPCRequest) {
49     DeviceRPCResponse deviceRPCResponse = syncHandler.performDeviceOperation(deviceRPCRequest);
50     if (null == deviceRPCResponse) {
51       return getTimeOutResponse(deviceRPCRequest);
52     }
53
54     return deviceRPCResponse;
55   }
56
57   private DeviceRPCResponse getTimeOutResponse(DeviceRPCRequest deviceRPCRequest) {
58     DeviceRPCResponse timeOutErrorResponse = new DeviceRPCResponse();
59
60     timeOutErrorResponse.setDeviceDetails(deviceRPCRequest.getDeviceDetails());
61
62     OperationResponse operationResponse = new OperationResponse();
63     operationResponse.setStatus(MapperConstants.DEVICE_REACHABILITY_OP_FAILURE_CODE);// device
64                                                                                      // reachable...change
65                                                                                      // value 1 to
66                                                                                      // some
67                                                                                      // constant or
68                                                                                      // enum
69     operationResponse.setOperationCode(deviceRPCRequest.getOpDetails().getOpCode());
70
71     timeOutErrorResponse.setOperationResponse(operationResponse);
72     timeOutErrorResponse.setFaultKey(MapperConstants.DEVICE_TIMEOUT_STATUS_CODE);
73     ErrorCodeDetails errorCodeDetails =
74         errorCodeUtil.getErrorCodeMetaData(MapperConstants.DEVICE_TIMEOUT_STATUS_CODE);
75     if (null != errorCodeDetails) {
76       timeOutErrorResponse.setFaultString(errorCodeDetails.getErrorMessage());
77     } else {
78       timeOutErrorResponse.setFaultString(MapperConstants.DEFAULT_OP_TIMEOUT_MSG);
79     }
80     return timeOutErrorResponse;
81   }
82 }