summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIru Cai <mytbk920423@gmail.com>2018-06-29 00:14:39 +0800
committerIru Cai <mytbk920423@gmail.com>2018-06-29 00:14:39 +0800
commitb065c82627d83d1b207985d78276eb80f0b7b266 (patch)
tree9b86751008a4dc875e917a9cb9f143991296ea7c
parent1dd9eb4d4d22c5559646ee0bf4d243107bf4154a (diff)
downloadmatrix-curl-b065c82627d83d1b207985d78276eb80f0b7b266.tar.xz
device
-rw-r--r--Makefile2
-rw-r--r--api.c3
-rw-r--r--device.c34
-rw-r--r--device.h13
4 files changed, 51 insertions, 1 deletions
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 <stdio.h>
+#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