#include #include #include #include #include #include #include #include char * ASSend(const ParseeConfig *conf, char *id, char *user, char *type, HashMap *c) { HttpClientContext *ctx = NULL; char *path; char *txn, *ret; HashMap *reply; if (!conf || !id || !type || !user || !c) { JsonFree(c); return NULL; } txn = StrRandom(16); path = StrConcat(9, "/_matrix/client/v3/rooms/", id, "/send/", type, "/", txn, "?", "user_id=", user ); Free(txn); ctx = ParseeCreateRequest(conf, HTTP_PUT, path); Free(path); ASAuthenticateRequest(conf, ctx); ParseeSetRequestJSON(ctx, c); reply = JsonDecode(HttpClientStream(ctx)); ret = StrDuplicate(JsonValueAsString(HashMapGet(reply, "event_id"))); JsonFree(reply); HttpClientContextFree(ctx); JsonFree(c); return ret; }