CPS-1553 :REST endpoint to accept collection of cm handles for GET operation
[cps.git] / cps-ncmp-rest / src / main / java / org / onap / cps / ncmp / rest / controller / handlers / NcmpCachedResourceRequestHandler.java
1 /*
2  *  ============LICENSE_START=======================================================
3  *  Copyright (C) 2022-2023 Nordix Foundation
4  *  ================================================================================
5  *  Licensed under the Apache License, Version 2.0 (the "License");
6  *  you may not use this file except in compliance with the License.
7  *  You may obtain a copy of the License at
8  *
9  *        http://www.apache.org/licenses/LICENSE-2.0
10  *
11  *  Unless required by applicable law or agreed to in writing, software
12  *  distributed under the License is distributed on an "AS IS" BASIS,
13  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  *  See the License for the specific language governing permissions and
15  *  limitations under the License.
16  *
17  *  SPDX-License-Identifier: Apache-2.0
18  *  ============LICENSE_END=========================================================
19  */
20
21 package org.onap.cps.ncmp.rest.controller.handlers;
22
23 import java.util.function.Supplier;
24 import lombok.RequiredArgsConstructor;
25 import lombok.Setter;
26 import org.onap.cps.ncmp.api.NetworkCmProxyQueryService;
27 import org.onap.cps.spi.FetchDescendantsOption;
28 import org.springframework.stereotype.Component;
29
30 @RequiredArgsConstructor
31 @Component
32 public class NcmpCachedResourceRequestHandler extends NcmpDatastoreRequestHandler {
33
34     @Setter
35     private String dataStoreName;
36     private final NetworkCmProxyQueryService networkCmProxyQueryService;
37
38     @Override
39     public Supplier<Object> getTaskSupplierForGetRequest(final String cmHandleId,
40                                                          final String resourceIdentifier,
41                                                          final String optionsParamInQuery,
42                                                          final String topicParamInQuery,
43                                                          final String requestId,
44                                                          final boolean includeDescendants) {
45
46         final FetchDescendantsOption fetchDescendantsOption =
47                 TaskManagementDefaultHandler.getFetchDescendantsOption(includeDescendants);
48
49         return () -> networkCmProxyDataService.getResourceDataForCmHandle(dataStoreName, cmHandleId, resourceIdentifier,
50                 fetchDescendantsOption);
51     }
52
53     /**
54      * Gets ncmp datastore query handler.
55      * Note. Currently only ncmp-datastore:operational supports query operations
56      * @return a ncmp datastore query handler.
57      */
58     @Override
59     public Supplier<Object> getTaskSupplierForQueryRequest(final String cmHandleId,
60                                                            final String resourceIdentifier,
61                                                            final boolean includeDescendants) {
62
63         final FetchDescendantsOption fetchDescendantsOption =
64                 TaskManagementDefaultHandler.getFetchDescendantsOption(includeDescendants);
65
66         return () -> networkCmProxyQueryService.queryResourceDataOperational(cmHandleId, resourceIdentifier,
67                 fetchDescendantsOption);
68     }
69
70 }