0721d1d5694b166de96a02971ddc81c964c5c7ac
[cps.git] /
1 /*
2  *  ============LICENSE_START=======================================================
3  *  Copyright (C) 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.api.impl.utils;
22
23 import com.fasterxml.jackson.databind.ObjectMapper;
24 import io.cloudevents.CloudEvent;
25 import io.cloudevents.core.CloudEventUtils;
26 import io.cloudevents.core.data.PojoCloudEventData;
27 import io.cloudevents.jackson.PojoCloudEventDataMapper;
28 import lombok.RequiredArgsConstructor;
29 import lombok.extern.slf4j.Slf4j;
30 import org.onap.cps.ncmp.events.cmsubscription1_0_0.dmi_to_ncmp.CmSubscriptionDmiOutEvent;
31 import org.springframework.stereotype.Component;
32
33 @Slf4j
34 @Component
35 @RequiredArgsConstructor
36 public class SubscriptionEventResponseCloudMapper {
37
38     private final ObjectMapper objectMapper;
39
40     /**
41      * Maps CloudEvent object to CmSubscriptionDmiOutEvent.
42      *
43      * @param cloudEvent object
44      * @return CmSubscriptionDmiOutEvent deserialized
45      */
46     public CmSubscriptionDmiOutEvent toCmSubscriptionDmiOutEvent(final CloudEvent cloudEvent) {
47         final PojoCloudEventData<CmSubscriptionDmiOutEvent> deserializedCloudEvent = CloudEventUtils
48                 .mapData(cloudEvent, PojoCloudEventDataMapper.from(objectMapper, CmSubscriptionDmiOutEvent.class));
49         if (deserializedCloudEvent == null) {
50             log.debug("No data found in the consumed subscription response event");
51             return null;
52         } else {
53             final CmSubscriptionDmiOutEvent cmSubscriptionDmiOutEvent = deserializedCloudEvent.getValue();
54             log.debug("Consuming subscription response event {}", cmSubscriptionDmiOutEvent);
55             return cmSubscriptionDmiOutEvent;
56         }
57     }
58 }