open5gs/lib/sbi/openapi/model/access_token_err.c

182 lines
5.8 KiB
C

#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include "access_token_err.h"
char *OpenAPI_erroraccess_token_err_ToString(OpenAPI_access_token_err_error_e error)
{
const char *errorArray[] = { "NULL", "invalid_request", "invalid_client", "invalid_grant", "unauthorized_client", "unsupported_grant_type", "invalid_scope" };
size_t sizeofArray = sizeof(errorArray) / sizeof(errorArray[0]);
if (error < sizeofArray)
return (char *)errorArray[error];
else
return (char *)"Unknown";
}
OpenAPI_access_token_err_error_e OpenAPI_erroraccess_token_err_FromString(char* error)
{
int stringToReturn = 0;
const char *errorArray[] = { "NULL", "invalid_request", "invalid_client", "invalid_grant", "unauthorized_client", "unsupported_grant_type", "invalid_scope" };
size_t sizeofArray = sizeof(errorArray) / sizeof(errorArray[0]);
while (stringToReturn < sizeofArray) {
if (strcmp(error, errorArray[stringToReturn]) == 0) {
return stringToReturn;
}
stringToReturn++;
}
return 0;
}
OpenAPI_access_token_err_t *OpenAPI_access_token_err_create(
OpenAPI_access_token_err_error_e error,
char *error_description,
char *error_uri
)
{
OpenAPI_access_token_err_t *access_token_err_local_var = ogs_malloc(sizeof(OpenAPI_access_token_err_t));
ogs_assert(access_token_err_local_var);
access_token_err_local_var->error = error;
access_token_err_local_var->error_description = error_description;
access_token_err_local_var->error_uri = error_uri;
return access_token_err_local_var;
}
void OpenAPI_access_token_err_free(OpenAPI_access_token_err_t *access_token_err)
{
OpenAPI_lnode_t *node = NULL;
if (NULL == access_token_err) {
return;
}
if (access_token_err->error_description) {
ogs_free(access_token_err->error_description);
access_token_err->error_description = NULL;
}
if (access_token_err->error_uri) {
ogs_free(access_token_err->error_uri);
access_token_err->error_uri = NULL;
}
ogs_free(access_token_err);
}
cJSON *OpenAPI_access_token_err_convertToJSON(OpenAPI_access_token_err_t *access_token_err)
{
cJSON *item = NULL;
OpenAPI_lnode_t *node = NULL;
if (access_token_err == NULL) {
ogs_error("OpenAPI_access_token_err_convertToJSON() failed [AccessTokenErr]");
return NULL;
}
item = cJSON_CreateObject();
if (access_token_err->error == OpenAPI_access_token_err_ERROR_NULL) {
ogs_error("OpenAPI_access_token_err_convertToJSON() failed [error]");
return NULL;
}
if (cJSON_AddStringToObject(item, "error", OpenAPI_erroraccess_token_err_ToString(access_token_err->error)) == NULL) {
ogs_error("OpenAPI_access_token_err_convertToJSON() failed [error]");
goto end;
}
if (access_token_err->error_description) {
if (cJSON_AddStringToObject(item, "error_description", access_token_err->error_description) == NULL) {
ogs_error("OpenAPI_access_token_err_convertToJSON() failed [error_description]");
goto end;
}
}
if (access_token_err->error_uri) {
if (cJSON_AddStringToObject(item, "error_uri", access_token_err->error_uri) == NULL) {
ogs_error("OpenAPI_access_token_err_convertToJSON() failed [error_uri]");
goto end;
}
}
end:
return item;
}
OpenAPI_access_token_err_t *OpenAPI_access_token_err_parseFromJSON(cJSON *access_token_errJSON)
{
OpenAPI_access_token_err_t *access_token_err_local_var = NULL;
OpenAPI_lnode_t *node = NULL;
cJSON *error = NULL;
OpenAPI_access_token_err_error_e errorVariable = 0;
cJSON *error_description = NULL;
cJSON *error_uri = NULL;
error = cJSON_GetObjectItemCaseSensitive(access_token_errJSON, "error");
if (!error) {
ogs_error("OpenAPI_access_token_err_parseFromJSON() failed [error]");
goto end;
}
if (!cJSON_IsString(error)) {
ogs_error("OpenAPI_access_token_err_parseFromJSON() failed [error]");
goto end;
}
errorVariable = OpenAPI_erroraccess_token_err_FromString(error->valuestring);
error_description = cJSON_GetObjectItemCaseSensitive(access_token_errJSON, "error_description");
if (error_description) {
if (!cJSON_IsString(error_description) && !cJSON_IsNull(error_description)) {
ogs_error("OpenAPI_access_token_err_parseFromJSON() failed [error_description]");
goto end;
}
}
error_uri = cJSON_GetObjectItemCaseSensitive(access_token_errJSON, "error_uri");
if (error_uri) {
if (!cJSON_IsString(error_uri) && !cJSON_IsNull(error_uri)) {
ogs_error("OpenAPI_access_token_err_parseFromJSON() failed [error_uri]");
goto end;
}
}
access_token_err_local_var = OpenAPI_access_token_err_create (
errorVariable,
error_description && !cJSON_IsNull(error_description) ? ogs_strdup(error_description->valuestring) : NULL,
error_uri && !cJSON_IsNull(error_uri) ? ogs_strdup(error_uri->valuestring) : NULL
);
return access_token_err_local_var;
end:
return NULL;
}
OpenAPI_access_token_err_t *OpenAPI_access_token_err_copy(OpenAPI_access_token_err_t *dst, OpenAPI_access_token_err_t *src)
{
cJSON *item = NULL;
char *content = NULL;
ogs_assert(src);
item = OpenAPI_access_token_err_convertToJSON(src);
if (!item) {
ogs_error("OpenAPI_access_token_err_convertToJSON() failed");
return NULL;
}
content = cJSON_Print(item);
cJSON_Delete(item);
if (!content) {
ogs_error("cJSON_Print() failed");
return NULL;
}
item = cJSON_Parse(content);
ogs_free(content);
if (!item) {
ogs_error("cJSON_Parse() failed");
return NULL;
}
OpenAPI_access_token_err_free(dst);
dst = OpenAPI_access_token_err_parseFromJSON(item);
cJSON_Delete(item);
return dst;
}