request_handler.c 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. /*
  2. * Copyright (C) 2019 Intel Corporation. All rights reserved.
  3. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
  4. */
  5. #include "wasm_app.h"
  6. #include "wa-inc/request.h"
  7. static void
  8. url1_request_handler(request_t *request)
  9. {
  10. response_t response[1];
  11. attr_container_t *payload;
  12. printf("[resp] ### user resource 1 handler called\n");
  13. if (request->payload != NULL && request->fmt == FMT_ATTR_CONTAINER)
  14. attr_container_dump((attr_container_t *)request->payload);
  15. payload = attr_container_create("wasm app response payload");
  16. if (payload == NULL)
  17. return;
  18. attr_container_set_string(&payload, "key1", "value1");
  19. attr_container_set_string(&payload, "key2", "value2");
  20. make_response_for_request(request, response);
  21. set_response(response, CONTENT_2_05, FMT_ATTR_CONTAINER, (void *)payload,
  22. attr_container_get_serialize_length(payload));
  23. api_response_send(response);
  24. attr_container_destroy(payload);
  25. }
  26. static void
  27. url2_request_handler(request_t *request)
  28. {
  29. response_t response[1];
  30. make_response_for_request(request, response);
  31. set_response(response, DELETED_2_02, 0, NULL, 0);
  32. api_response_send(response);
  33. printf("### user resource 2 handler called\n");
  34. }
  35. void
  36. on_init()
  37. {
  38. /* register resource uri */
  39. api_register_resource_handler("/url1", url1_request_handler);
  40. api_register_resource_handler("/url2", url2_request_handler);
  41. }
  42. void
  43. on_destroy()
  44. {
  45. /* real destroy work including killing timer and closing sensor is
  46. accomplished in wasm app library version of on_destroy() */
  47. }