mirror of
https://forge.fsky.io/lda/Parsee.git
synced 2026-03-13 18:25:10 +00:00
48 lines
1,012 B
C
48 lines
1,012 B
C
#include <AS.h>
|
|
|
|
#include <Cytoplasm/Memory.h>
|
|
#include <Cytoplasm/Str.h>
|
|
#include <Cytoplasm/Log.h>
|
|
#include <Cytoplasm/Uri.h>
|
|
|
|
#include <string.h>
|
|
#include <stdlib.h>
|
|
|
|
#include <Matrix.h>
|
|
|
|
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;
|
|
}
|
|
|