Coverage Report

Created: 2026-11-06 06:15

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/open5gs/lib/sbi/openapi/model/nwdaf_data.c
Line
Count
Source
1
2
#include <stdlib.h>
3
#include <string.h>
4
#include <stdio.h>
5
#include "nwdaf_data.h"
6
7
OpenAPI_nwdaf_data_t *OpenAPI_nwdaf_data_create(
8
    char *nwdaf_instance_id,
9
    OpenAPI_list_t *nwdaf_events
10
)
11
0
{
12
0
    OpenAPI_nwdaf_data_t *nwdaf_data_local_var = ogs_malloc(sizeof(OpenAPI_nwdaf_data_t));
13
0
    ogs_assert(nwdaf_data_local_var);
14
15
0
    nwdaf_data_local_var->nwdaf_instance_id = nwdaf_instance_id;
16
0
    nwdaf_data_local_var->nwdaf_events = nwdaf_events;
17
18
0
    return nwdaf_data_local_var;
19
0
}
20
21
void OpenAPI_nwdaf_data_free(OpenAPI_nwdaf_data_t *nwdaf_data)
22
0
{
23
0
    OpenAPI_lnode_t *node = NULL;
24
25
0
    if (NULL == nwdaf_data) {
26
0
        return;
27
0
    }
28
0
    if (nwdaf_data->nwdaf_instance_id) {
29
0
        ogs_free(nwdaf_data->nwdaf_instance_id);
30
0
        nwdaf_data->nwdaf_instance_id = NULL;
31
0
    }
32
0
    if (nwdaf_data->nwdaf_events) {
33
0
        OpenAPI_list_free(nwdaf_data->nwdaf_events);
34
0
        nwdaf_data->nwdaf_events = NULL;
35
0
    }
36
0
    ogs_free(nwdaf_data);
37
0
}
38
39
cJSON *OpenAPI_nwdaf_data_convertToJSON(OpenAPI_nwdaf_data_t *nwdaf_data)
40
0
{
41
0
    cJSON *item = NULL;
42
0
    OpenAPI_lnode_t *node = NULL;
43
44
0
    if (nwdaf_data == NULL) {
45
0
        ogs_error("OpenAPI_nwdaf_data_convertToJSON() failed [NwdafData]");
46
0
        return NULL;
47
0
    }
48
49
0
    item = cJSON_CreateObject();
50
0
    if (!nwdaf_data->nwdaf_instance_id) {
51
0
        ogs_error("OpenAPI_nwdaf_data_convertToJSON() failed [nwdaf_instance_id]");
52
0
        return NULL;
53
0
    }
54
0
    if (cJSON_AddStringToObject(item, "nwdafInstanceId", nwdaf_data->nwdaf_instance_id) == NULL) {
55
0
        ogs_error("OpenAPI_nwdaf_data_convertToJSON() failed [nwdaf_instance_id]");
56
0
        goto end;
57
0
    }
58
59
0
    if (nwdaf_data->nwdaf_events != OpenAPI_nwdaf_event_NULL) {
60
0
    cJSON *nwdaf_eventsList = cJSON_AddArrayToObject(item, "nwdafEvents");
61
0
    if (nwdaf_eventsList == NULL) {
62
0
        ogs_error("OpenAPI_nwdaf_data_convertToJSON() failed [nwdaf_events]");
63
0
        goto end;
64
0
    }
65
0
    OpenAPI_list_for_each(nwdaf_data->nwdaf_events, node) {
66
0
        if (cJSON_AddStringToObject(nwdaf_eventsList, "", OpenAPI_nwdaf_event_ToString((intptr_t)node->data)) == NULL) {
67
0
            ogs_error("OpenAPI_nwdaf_data_convertToJSON() failed [nwdaf_events]");
68
0
            goto end;
69
0
        }
70
0
    }
71
0
    }
72
73
0
end:
74
0
    return item;
75
0
}
76
77
OpenAPI_nwdaf_data_t *OpenAPI_nwdaf_data_parseFromJSON(cJSON *nwdaf_dataJSON)
78
0
{
79
0
    OpenAPI_nwdaf_data_t *nwdaf_data_local_var = NULL;
80
0
    OpenAPI_lnode_t *node = NULL;
81
0
    cJSON *nwdaf_instance_id = NULL;
82
0
    cJSON *nwdaf_events = NULL;
83
0
    OpenAPI_list_t *nwdaf_eventsList = NULL;
84
0
    nwdaf_instance_id = cJSON_GetObjectItemCaseSensitive(nwdaf_dataJSON, "nwdafInstanceId");
85
0
    if (!nwdaf_instance_id) {
86
0
        ogs_error("OpenAPI_nwdaf_data_parseFromJSON() failed [nwdaf_instance_id]");
87
0
        goto end;
88
0
    }
89
0
    if (!cJSON_IsString(nwdaf_instance_id)) {
90
0
        ogs_error("OpenAPI_nwdaf_data_parseFromJSON() failed [nwdaf_instance_id]");
91
0
        goto end;
92
0
    }
93
94
0
    nwdaf_events = cJSON_GetObjectItemCaseSensitive(nwdaf_dataJSON, "nwdafEvents");
95
0
    if (nwdaf_events) {
96
0
        cJSON *nwdaf_events_local = NULL;
97
0
        if (!cJSON_IsArray(nwdaf_events)) {
98
0
            ogs_error("OpenAPI_nwdaf_data_parseFromJSON() failed [nwdaf_events]");
99
0
            goto end;
100
0
        }
101
102
0
        nwdaf_eventsList = OpenAPI_list_create();
103
104
0
        cJSON_ArrayForEach(nwdaf_events_local, nwdaf_events) {
105
0
            OpenAPI_nwdaf_event_e localEnum = OpenAPI_nwdaf_event_NULL;
106
0
            if (!cJSON_IsString(nwdaf_events_local)) {
107
0
                ogs_error("OpenAPI_nwdaf_data_parseFromJSON() failed [nwdaf_events]");
108
0
                goto end;
109
0
            }
110
0
            localEnum = OpenAPI_nwdaf_event_FromString(nwdaf_events_local->valuestring);
111
0
            if (!localEnum) {
112
0
                ogs_info("Enum value \"%s\" for field \"nwdaf_events\" is not supported. Ignoring it ...",
113
0
                         nwdaf_events_local->valuestring);
114
0
            } else {
115
0
                OpenAPI_list_add(nwdaf_eventsList, (void *)localEnum);
116
0
            }
117
0
        }
118
0
        if (nwdaf_eventsList->count == 0) {
119
0
            ogs_error("OpenAPI_nwdaf_data_parseFromJSON() failed: Expected nwdaf_eventsList to not be empty (after ignoring unsupported enum values).");
120
0
            goto end;
121
0
        }
122
0
    }
123
124
0
    nwdaf_data_local_var = OpenAPI_nwdaf_data_create (
125
0
        ogs_strdup(nwdaf_instance_id->valuestring),
126
0
        nwdaf_events ? nwdaf_eventsList : NULL
127
0
    );
128
129
0
    return nwdaf_data_local_var;
130
0
end:
131
0
    if (nwdaf_eventsList) {
132
0
        OpenAPI_list_free(nwdaf_eventsList);
133
0
        nwdaf_eventsList = NULL;
134
0
    }
135
0
    return NULL;
136
0
}
137
138
OpenAPI_nwdaf_data_t *OpenAPI_nwdaf_data_copy(OpenAPI_nwdaf_data_t *dst, OpenAPI_nwdaf_data_t *src)
139
0
{
140
0
    cJSON *item = NULL;
141
0
    char *content = NULL;
142
143
0
    ogs_assert(src);
144
0
    item = OpenAPI_nwdaf_data_convertToJSON(src);
145
0
    if (!item) {
146
0
        ogs_error("OpenAPI_nwdaf_data_convertToJSON() failed");
147
0
        return NULL;
148
0
    }
149
150
0
    content = cJSON_Print(item);
151
0
    cJSON_Delete(item);
152
153
0
    if (!content) {
154
0
        ogs_error("cJSON_Print() failed");
155
0
        return NULL;
156
0
    }
157
158
0
    item = cJSON_Parse(content);
159
0
    ogs_free(content);
160
0
    if (!item) {
161
0
        ogs_error("cJSON_Parse() failed");
162
0
        return NULL;
163
0
    }
164
165
0
    OpenAPI_nwdaf_data_free(dst);
166
0
    dst = OpenAPI_nwdaf_data_parseFromJSON(item);
167
0
    cJSON_Delete(item);
168
169
0
    return dst;
170
0
}
171