RIC-641 Fixing client/server model definitions and adding client and server API
[ric-plt/xapp-frame-cpp.git] / src / model / SubscriptionResponse.cpp
1 /*
2 # ==================================================================================
3 # Copyright (c) 2020 HCL Technologies Limited.
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 */
18 #include"SubscriptionResponse.h"
19 namespace xapp {
20         namespace model {
21                 void from_json(const  nlohmann::json& j, SubscriptionResponse& ref) {
22
23                         std::cout << __PRETTY_FUNCTION__ << std::endl;
24                         ref.validate_json(j);
25
26                         j.at("SubscriptionId").get_to(ref.SubscriptionId);
27                         j.at("SubscriptionInstances").get_to(ref.SubInst);
28                 }
29
30                 void to_json(nlohmann::json& j, const SubscriptionResponse& ref) {
31
32                         //j = nlohmann::json{
33                         //      {"SubscriptionId",ref.SubscriptionId},
34                         //      {"SubscriptionInstances", ref.SubInst}
35                         //};
36                         j = nlohmann::json{
37                                 {"SubscriptionId",ref.SubscriptionId}
38                         };
39                         for (int i = 0; i < ref.SubInst.size(); i++)
40                         {
41                                 j["SubscriptionInstances"] += nlohmann::json{
42                                 {"XappEventInstanceId", ref.SubInst[i].XappEventInstanceId},
43                                 {"E2EventInstanceId", ref.SubInst[i].E2EventInstanceId},
44                                 {"ErrorCause", ref.SubInst[i].ErrorCause},
45                                 {"ErrorSource", ref.SubInst[i].ErrorSource},
46                                 {"TimeoutType", ref.SubInst[i].TimeoutType}
47                                 };
48                         }
49
50                 }
51         }
52 }