From b065c82627d83d1b207985d78276eb80f0b7b266 Mon Sep 17 00:00:00 2001 From: Iru Cai Date: Fri, 29 Jun 2018 00:14:39 +0800 Subject: device --- Makefile | 2 +- api.c | 3 +++ device.c | 34 ++++++++++++++++++++++++++++++++++ device.h | 13 +++++++++++++ 4 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 device.c create mode 100644 device.h diff --git a/Makefile b/Makefile index 3cb03b9..514df2c 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ LDLIBS=-lcurl -ljson-c CFLAGS=-g -Wall -api: api.o session.o curl_util.o util.o +api: api.o session.o curl_util.o util.o device.o diff --git a/api.c b/api.c index 00b3e78..f5c0d81 100644 --- a/api.c +++ b/api.c @@ -6,6 +6,7 @@ #include "session.h" #include "curl_util.h" #include "util.h" +#include "device.h" /* logout: return 1 if success, 0 if failed */ int matrix_logout(matrix_session *sess) @@ -125,6 +126,8 @@ int main() json_object *joined_rooms = matrix_joined_rooms(sess); printf("%s\n", json_object_to_json_string(joined_rooms)); matrix_sync(sess); + puts("Diveces:"); + get_devices(sess); const char *roomid = matrix_resolv_alias(sess, "#hello:my.domain.name"); if (roomid == NULL) diff --git a/device.c b/device.c new file mode 100644 index 0000000..f5b9942 --- /dev/null +++ b/device.c @@ -0,0 +1,34 @@ +/* implements 11.9 Device Management + +GET /_matrix/client/r0/devices/{deviceId} +PUT /_matrix/client/r0/devices/{deviceId} +DELETE /_matrix/client/r0/devices/{deviceId} + +*/ + +#include +#include "session.h" +#include "util.h" +#include "curl_util.h" + +void get_devices(matrix_session *sess) +{ + /* GET /_matrix/client/r0/devices */ + const char *u[] = { sess->url, + "/_matrix/client/r0/devices?access_token=", sess->token , NULL }; + const char *requrl = alloc_build_string(u); + json_object *resp; + _curl_get(sess->curl, requrl, &resp); + if (resp) { + printf("%s\n", json_object_to_json_string(resp)); + /* + const char *roomid = json_gets(resp, "room_id"); + if (roomid) { + const char *r = copy_str(roomid); + json_object_put(resp); + return r; + } + */ + } + json_object_put(resp); +} diff --git a/device.h b/device.h new file mode 100644 index 0000000..d1234e7 --- /dev/null +++ b/device.h @@ -0,0 +1,13 @@ +#pragma once + +#include "session.h" + +#ifdef __cplusplus +extern "C" { +#endif /* } */ + +void get_devices(matrix_session *sess); + +#ifdef __cplusplus +} +#endif -- cgit v1.2.3