Parse sync response from server

This commit is contained in:
2024-09-28 16:35:05 +02:00
parent 5704f2b57f
commit 58abf4ec9b
10 changed files with 205 additions and 23 deletions

View File

@ -148,16 +148,16 @@ int secure_api_enroll_device()
free(csr);
char *body = cJSON_PrintUnformatted(obj);
cJSON_Delete(obj);
if (!body)
{
ESP_LOGE(TAG, "Failed to generate JSON body!");
cJSON_Delete(obj);
return 1;
}
char *res = process_secure_request("/devices_api/mgmt/enroll", body);
cJSON_Delete(obj);
free(body);
if (res == NULL)
@ -195,7 +195,7 @@ char *secure_api_get_dev_certificate()
return res;
}
void *secure_api_sync_device()
sync_response *secure_api_sync_device()
{
cJSON *obj = cJSON_CreateObject();
if (!obj)
@ -215,10 +215,53 @@ void *secure_api_sync_device()
return NULL;
}
printf("JWT: %s\n", encoded_req);
// Prepare request body
cJSON *json_body = cJSON_CreateObject();
if (!json_body)
{
ESP_LOGE(TAG, "Failed to allocated memory to store sync request body!");
free(encoded_req);
return NULL;
}
cJSON_AddStringToObject(json_body, "payload", encoded_req);
free(encoded_req);
// TODO : replace
printf("here implement sync device logic\n");
return NULL;
char *body = cJSON_PrintUnformatted(json_body);
cJSON_Delete(json_body);
if (!body)
{
ESP_LOGE(TAG, "Failed to allocated memory to store encoded sync request body!");
return NULL;
}
// Send request
char *res = process_secure_request("/devices_api/mgmt/sync", body);
if (res == NULL)
{
ESP_LOGE(TAG, "Sync request failed!");
return NULL;
}
// Parse response
cJSON *states = cJSON_Parse(res);
free(res);
if (!states)
{
ESP_LOGE(TAG, "Failed to decode sync response from server!");
return NULL;
}
sync_response *sync_res = sync_response_parse(states);
cJSON_Delete(states);
if (!sync_res)
{
ESP_LOGE(TAG, "Failed to parse sync response from server!");
return NULL;
}
return sync_res;
}