summaryrefslogtreecommitdiffstats
path: root/4a-hal/4a-hal-utilities/4a-hal-utilities-appfw-responses-handler.c
diff options
context:
space:
mode:
authorJonathan Aillet <jonathan.aillet@iot.bzh>2019-01-07 11:30:12 +0100
committerJonathan Aillet <jonathan.aillet@iot.bzh>2019-01-28 15:38:28 +0100
commit4f44ee8f17789ac27cd1e29a451ac450c7dbeb06 (patch)
treee27e4c05a417ef2d8a9ca12451af0f8e298cc1cb /4a-hal/4a-hal-utilities/4a-hal-utilities-appfw-responses-handler.c
parenta93c3566d181e82a39b32acffdb13a411ca4f5f5 (diff)
Turn '4a-hal-utilities' into an internal library
That way, includes will be cleaner and '4a-hal-utilities' functions will be usable in plugin. Change-Id: I8a2146bd4e5dd5ef449b9ba7f2b1eed4d59045d3 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
Diffstat (limited to '4a-hal/4a-hal-utilities/4a-hal-utilities-appfw-responses-handler.c')
-rw-r--r--4a-hal/4a-hal-utilities/4a-hal-utilities-appfw-responses-handler.c147
1 files changed, 0 insertions, 147 deletions
diff --git a/4a-hal/4a-hal-utilities/4a-hal-utilities-appfw-responses-handler.c b/4a-hal/4a-hal-utilities/4a-hal-utilities-appfw-responses-handler.c
deleted file mode 100644
index 40581ef..0000000
--- a/4a-hal/4a-hal-utilities/4a-hal-utilities-appfw-responses-handler.c
+++ /dev/null
@@ -1,147 +0,0 @@
-/*
- * Copyright (C) 2018 "IoT.bzh"
- * Author Jonathan Aillet <jonathan.aillet@iot.bzh>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#define _GNU_SOURCE
-
-#include <stdio.h>
-#include <string.h>
-
-#include "4a-hal-utilities-appfw-responses-handler.h"
-
-/*******************************************************************************
- * Handle application framework response function *
- ******************************************************************************/
-
-enum CallError HalUtlHandleAppFwCallError(AFB_ApiT apiHandle, char *apiCalled, char *verbCalled, json_object *callReturnJ, char **returnedStatus, char **returnedInfo)
-{
- json_object *returnedRequestJ, *returnedStatusJ, *returnedInfoJ;
-
- if(! apiHandle || ! apiCalled || ! verbCalled || ! callReturnJ)
- return CALL_ERROR_INVALID_ARGS;
-
- if(! json_object_object_get_ex(callReturnJ, "request", &returnedRequestJ)) {
- AFB_ApiWarning(apiHandle, "Couldn't get response request object");
- return CALL_ERROR_REQUEST_UNAVAILABLE;
- }
-
- if(! json_object_is_type(returnedRequestJ, json_type_object)) {
- AFB_ApiWarning(apiHandle, "Response request object is not valid");
- return CALL_ERROR_REQUEST_NOT_VALID;
- }
-
- if(! json_object_object_get_ex(returnedRequestJ, "status", &returnedStatusJ)) {
- AFB_ApiWarning(apiHandle, "Couldn't get response status object");
- return CALL_ERROR_REQUEST_STATUS_UNAVAILABLE;
- }
-
- if(! json_object_is_type(returnedStatusJ, json_type_string)) {
- AFB_ApiWarning(apiHandle, "Response status object is not valid");
- return CALL_ERROR_REQUEST_STATUS_NOT_VALID;
- }
-
- *returnedStatus = (char *) json_object_get_string(returnedStatusJ);
-
- if(! strcmp(*returnedStatus, "unknown-api")) {
- AFB_ApiWarning(apiHandle, "Api %s not found", apiCalled);
- return CALL_ERROR_API_UNAVAILABLE;
- }
-
- if(! strcmp(*returnedStatus, "unknown-verb")) {
- AFB_ApiWarning(apiHandle, "Verb %s of api %s not found", verbCalled, apiCalled);
- return CALL_ERROR_VERB_UNAVAILABLE;
- }
-
- if(! json_object_object_get_ex(returnedRequestJ, "info", &returnedInfoJ)) {
- AFB_ApiWarning(apiHandle, "Couldn't get response info object");
- return CALL_ERROR_REQUEST_INFO_UNAVAILABLE;
- }
-
- if(! json_object_is_type(returnedInfoJ, json_type_string)) {
- AFB_ApiWarning(apiHandle, "Response info object is not valid");
- return CALL_ERROR_REQUEST_INFO_NOT_VALID;
- }
-
- *returnedInfo = (char *) json_object_get_string(returnedInfoJ);
-
- AFB_ApiWarning(apiHandle,
- "Api %s and verb %s found, but this error was raised : '%s' with this info : '%s'",
- apiCalled,
- verbCalled,
- *returnedStatus,
- *returnedInfo);
-
- return CALL_ERROR_RETURNED;
-}
-
-void HalUtlHandleAppFwCallErrorInRequest(AFB_ReqT request, char *apiCalled, char *verbCalled, json_object *callReturnJ, char *errorStatusToSend)
-{
- char *returnedStatus = NULL, *returnedInfo = NULL;
-
- AFB_ApiT apiHandle;
-
- if(! request || ! apiCalled || ! verbCalled || ! callReturnJ) {
- AFB_ReqFailF(request, "invalid_args", "Invalid arguments");
- return;
- }
-
- apiHandle = (AFB_ApiT) AFB_ReqGetApi(request);
- if(! apiHandle) {
- AFB_ReqFailF(request, "api_handle", "Can't get hal manager api handle");
- return;
- }
-
- switch(HalUtlHandleAppFwCallError(apiHandle, apiCalled, verbCalled, callReturnJ, &returnedStatus, &returnedInfo)) {
- case CALL_ERROR_REQUEST_UNAVAILABLE:
- case CALL_ERROR_REQUEST_NOT_VALID:
- case CALL_ERROR_REQUEST_STATUS_UNAVAILABLE:
- case CALL_ERROR_REQUEST_STATUS_NOT_VALID:
- case CALL_ERROR_REQUEST_INFO_UNAVAILABLE:
- case CALL_ERROR_REQUEST_INFO_NOT_VALID:
- AFB_ReqFail(request, errorStatusToSend, "Error with response object");
- return;
-
- case CALL_ERROR_API_UNAVAILABLE:
- AFB_ReqFailF(request, errorStatusToSend, "Api %s not found", apiCalled);
- return;
-
- case CALL_ERROR_VERB_UNAVAILABLE:
- AFB_ReqFailF(request, errorStatusToSend, "Verb %s of api %s not found", verbCalled, apiCalled);
- return;
-
- case CALL_ERROR_RETURNED:
- AFB_ReqFailF(request,
- errorStatusToSend,
- "Api %s and verb %s found, but this error was raised : '%s' with this info : '%s'",
- apiCalled,
- verbCalled,
- returnedStatus ? returnedStatus : "not returned",
- returnedInfo ? returnedInfo : "not returned");
- return;
-
- case CALL_ERROR_INVALID_ARGS:
- AFB_ReqFailF(request,
- errorStatusToSend,
- "Api %s and verb %s found, but the arguments are invalid",
- apiCalled,
- verbCalled);
- return;
-
- default:
- AFB_ReqFailF(request, errorStatusToSend, "Unknown error happened during call to verb %s of api %s", verbCalled, apiCalled);
- return;
- }
-} \ No newline at end of file