Coverage Report

Created: 2026-10-16 06:49

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/open5gs/lib/sbi/openapi/model/af_external.c
Line
Count
Source
1
2
#include <stdlib.h>
3
#include <string.h>
4
#include <stdio.h>
5
#include "af_external.h"
6
7
OpenAPI_af_external_t *OpenAPI_af_external_create(
8
    char *af_id,
9
    OpenAPI_list_t *allowed_geographic_area,
10
    OpenAPI_privacy_check_related_action_e privacy_check_related_action,
11
    OpenAPI_valid_time_period_t *valid_time_period
12
)
13
0
{
14
0
    OpenAPI_af_external_t *af_external_local_var = ogs_malloc(sizeof(OpenAPI_af_external_t));
15
0
    ogs_assert(af_external_local_var);
16
17
0
    af_external_local_var->af_id = af_id;
18
0
    af_external_local_var->allowed_geographic_area = allowed_geographic_area;
19
0
    af_external_local_var->privacy_check_related_action = privacy_check_related_action;
20
0
    af_external_local_var->valid_time_period = valid_time_period;
21
22
0
    return af_external_local_var;
23
0
}
24
25
void OpenAPI_af_external_free(OpenAPI_af_external_t *af_external)
26
0
{
27
0
    OpenAPI_lnode_t *node = NULL;
28
29
0
    if (NULL == af_external) {
30
0
        return;
31
0
    }
32
0
    if (af_external->af_id) {
33
0
        ogs_free(af_external->af_id);
34
0
        af_external->af_id = NULL;
35
0
    }
36
0
    if (af_external->allowed_geographic_area) {
37
0
        OpenAPI_list_for_each(af_external->allowed_geographic_area, node) {
38
0
            OpenAPI_geographic_area_free(node->data);
39
0
        }
40
0
        OpenAPI_list_free(af_external->allowed_geographic_area);
41
0
        af_external->allowed_geographic_area = NULL;
42
0
    }
43
0
    if (af_external->valid_time_period) {
44
0
        OpenAPI_valid_time_period_free(af_external->valid_time_period);
45
0
        af_external->valid_time_period = NULL;
46
0
    }
47
0
    ogs_free(af_external);
48
0
}
49
50
cJSON *OpenAPI_af_external_convertToJSON(OpenAPI_af_external_t *af_external)
51
0
{
52
0
    cJSON *item = NULL;
53
0
    OpenAPI_lnode_t *node = NULL;
54
55
0
    if (af_external == NULL) {
56
0
        ogs_error("OpenAPI_af_external_convertToJSON() failed [AfExternal]");
57
0
        return NULL;
58
0
    }
59
60
0
    item = cJSON_CreateObject();
61
0
    if (af_external->af_id) {
62
0
    if (cJSON_AddStringToObject(item, "afId", af_external->af_id) == NULL) {
63
0
        ogs_error("OpenAPI_af_external_convertToJSON() failed [af_id]");
64
0
        goto end;
65
0
    }
66
0
    }
67
68
0
    if (af_external->allowed_geographic_area) {
69
0
    cJSON *allowed_geographic_areaList = cJSON_AddArrayToObject(item, "allowedGeographicArea");
70
0
    if (allowed_geographic_areaList == NULL) {
71
0
        ogs_error("OpenAPI_af_external_convertToJSON() failed [allowed_geographic_area]");
72
0
        goto end;
73
0
    }
74
0
    OpenAPI_list_for_each(af_external->allowed_geographic_area, node) {
75
0
        cJSON *itemLocal = OpenAPI_geographic_area_convertToJSON(node->data);
76
0
        if (itemLocal == NULL) {
77
0
            ogs_error("OpenAPI_af_external_convertToJSON() failed [allowed_geographic_area]");
78
0
            goto end;
79
0
        }
80
0
        cJSON_AddItemToArray(allowed_geographic_areaList, itemLocal);
81
0
    }
82
0
    }
83
84
0
    if (af_external->privacy_check_related_action != OpenAPI_privacy_check_related_action_NULL) {
85
0
    if (cJSON_AddStringToObject(item, "privacyCheckRelatedAction", OpenAPI_privacy_check_related_action_ToString(af_external->privacy_check_related_action)) == NULL) {
86
0
        ogs_error("OpenAPI_af_external_convertToJSON() failed [privacy_check_related_action]");
87
0
        goto end;
88
0
    }
89
0
    }
90
91
0
    if (af_external->valid_time_period) {
92
0
    cJSON *valid_time_period_local_JSON = OpenAPI_valid_time_period_convertToJSON(af_external->valid_time_period);
93
0
    if (valid_time_period_local_JSON == NULL) {
94
0
        ogs_error("OpenAPI_af_external_convertToJSON() failed [valid_time_period]");
95
0
        goto end;
96
0
    }
97
0
    cJSON_AddItemToObject(item, "validTimePeriod", valid_time_period_local_JSON);
98
0
    if (item->child == NULL) {
99
0
        ogs_error("OpenAPI_af_external_convertToJSON() failed [valid_time_period]");
100
0
        goto end;
101
0
    }
102
0
    }
103
104
0
end:
105
0
    return item;
106
0
}
107
108
OpenAPI_af_external_t *OpenAPI_af_external_parseFromJSON(cJSON *af_externalJSON)
109
0
{
110
0
    OpenAPI_af_external_t *af_external_local_var = NULL;
111
0
    OpenAPI_lnode_t *node = NULL;
112
0
    cJSON *af_id = NULL;
113
0
    cJSON *allowed_geographic_area = NULL;
114
0
    OpenAPI_list_t *allowed_geographic_areaList = NULL;
115
0
    cJSON *privacy_check_related_action = NULL;
116
0
    OpenAPI_privacy_check_related_action_e privacy_check_related_actionVariable = 0;
117
0
    cJSON *valid_time_period = NULL;
118
0
    OpenAPI_valid_time_period_t *valid_time_period_local_nonprim = NULL;
119
0
    af_id = cJSON_GetObjectItemCaseSensitive(af_externalJSON, "afId");
120
0
    if (af_id) {
121
0
    if (!cJSON_IsString(af_id) && !cJSON_IsNull(af_id)) {
122
0
        ogs_error("OpenAPI_af_external_parseFromJSON() failed [af_id]");
123
0
        goto end;
124
0
    }
125
0
    }
126
127
0
    allowed_geographic_area = cJSON_GetObjectItemCaseSensitive(af_externalJSON, "allowedGeographicArea");
128
0
    if (allowed_geographic_area) {
129
0
        cJSON *allowed_geographic_area_local = NULL;
130
0
        if (!cJSON_IsArray(allowed_geographic_area)) {
131
0
            ogs_error("OpenAPI_af_external_parseFromJSON() failed [allowed_geographic_area]");
132
0
            goto end;
133
0
        }
134
135
0
        allowed_geographic_areaList = OpenAPI_list_create();
136
137
0
        cJSON_ArrayForEach(allowed_geographic_area_local, allowed_geographic_area) {
138
0
            if (!cJSON_IsObject(allowed_geographic_area_local)) {
139
0
                ogs_error("OpenAPI_af_external_parseFromJSON() failed [allowed_geographic_area]");
140
0
                goto end;
141
0
            }
142
0
            OpenAPI_geographic_area_t *allowed_geographic_areaItem = OpenAPI_geographic_area_parseFromJSON(allowed_geographic_area_local);
143
0
            if (!allowed_geographic_areaItem) {
144
0
                ogs_error("No allowed_geographic_areaItem");
145
0
                goto end;
146
0
            }
147
0
            OpenAPI_list_add(allowed_geographic_areaList, allowed_geographic_areaItem);
148
0
        }
149
0
    }
150
151
0
    privacy_check_related_action = cJSON_GetObjectItemCaseSensitive(af_externalJSON, "privacyCheckRelatedAction");
152
0
    if (privacy_check_related_action) {
153
0
    if (!cJSON_IsString(privacy_check_related_action)) {
154
0
        ogs_error("OpenAPI_af_external_parseFromJSON() failed [privacy_check_related_action]");
155
0
        goto end;
156
0
    }
157
0
    privacy_check_related_actionVariable = OpenAPI_privacy_check_related_action_FromString(privacy_check_related_action->valuestring);
158
0
    }
159
160
0
    valid_time_period = cJSON_GetObjectItemCaseSensitive(af_externalJSON, "validTimePeriod");
161
0
    if (valid_time_period) {
162
0
    valid_time_period_local_nonprim = OpenAPI_valid_time_period_parseFromJSON(valid_time_period);
163
0
    if (!valid_time_period_local_nonprim) {
164
0
        ogs_error("OpenAPI_valid_time_period_parseFromJSON failed [valid_time_period]");
165
0
        goto end;
166
0
    }
167
0
    }
168
169
0
    af_external_local_var = OpenAPI_af_external_create (
170
0
        af_id && !cJSON_IsNull(af_id) ? ogs_strdup(af_id->valuestring) : NULL,
171
0
        allowed_geographic_area ? allowed_geographic_areaList : NULL,
172
0
        privacy_check_related_action ? privacy_check_related_actionVariable : 0,
173
0
        valid_time_period ? valid_time_period_local_nonprim : NULL
174
0
    );
175
176
0
    return af_external_local_var;
177
0
end:
178
0
    if (allowed_geographic_areaList) {
179
0
        OpenAPI_list_for_each(allowed_geographic_areaList, node) {
180
0
            OpenAPI_geographic_area_free(node->data);
181
0
        }
182
0
        OpenAPI_list_free(allowed_geographic_areaList);
183
0
        allowed_geographic_areaList = NULL;
184
0
    }
185
0
    if (valid_time_period_local_nonprim) {
186
0
        OpenAPI_valid_time_period_free(valid_time_period_local_nonprim);
187
0
        valid_time_period_local_nonprim = NULL;
188
0
    }
189
0
    return NULL;
190
0
}
191
192
OpenAPI_af_external_t *OpenAPI_af_external_copy(OpenAPI_af_external_t *dst, OpenAPI_af_external_t *src)
193
0
{
194
0
    cJSON *item = NULL;
195
0
    char *content = NULL;
196
197
0
    ogs_assert(src);
198
0
    item = OpenAPI_af_external_convertToJSON(src);
199
0
    if (!item) {
200
0
        ogs_error("OpenAPI_af_external_convertToJSON() failed");
201
0
        return NULL;
202
0
    }
203
204
0
    content = cJSON_Print(item);
205
0
    cJSON_Delete(item);
206
207
0
    if (!content) {
208
0
        ogs_error("cJSON_Print() failed");
209
0
        return NULL;
210
0
    }
211
212
0
    item = cJSON_Parse(content);
213
0
    ogs_free(content);
214
0
    if (!item) {
215
0
        ogs_error("cJSON_Parse() failed");
216
0
        return NULL;
217
0
    }
218
219
0
    OpenAPI_af_external_free(dst);
220
0
    dst = OpenAPI_af_external_parseFromJSON(item);
221
0
    cJSON_Delete(item);
222
223
0
    return dst;
224
0
}
225