summaryrefslogtreecommitdiff
path: root/data.c
diff options
context:
space:
mode:
authorGravatar default2023-04-30 06:49:51 +0200
committerGravatar default2023-04-30 06:49:51 +0200
commite31c4810a83c42c0298d4832fb4f2291dec0e84d (patch)
tree7a0157f312846467a394bd7a6be69bf30080d055 /data.c
parentSome instance timeline work. (diff)
downloadsnac2-e31c4810a83c42c0298d4832fb4f2291dec0e84d.tar.gz
snac2-e31c4810a83c42c0298d4832fb4f2291dec0e84d.tar.xz
snac2-e31c4810a83c42c0298d4832fb4f2291dec0e84d.zip
actor_get() returns an actor message for local users.
Diffstat (limited to 'data.c')
-rw-r--r--data.c26
1 files changed, 21 insertions, 5 deletions
diff --git a/data.c b/data.c
index 60c4b26..187d9b9 100644
--- a/data.c
+++ b/data.c
@@ -1287,27 +1287,43 @@ int is_hidden(snac *snac, const char *id)
1287} 1287}
1288 1288
1289 1289
1290int actor_add(snac *snac, const char *actor, d_char *msg) 1290int actor_add(snac *snac, const char *actor, xs_dict *msg)
1291/* adds an actor */ 1291/* adds an actor */
1292{ 1292{
1293 return object_add_ow(actor, msg); 1293 return object_add_ow(actor, msg);
1294} 1294}
1295 1295
1296 1296
1297int actor_get(snac *snac, const char *actor, d_char **data) 1297int actor_get(snac *snac1, const char *actor, xs_dict **data)
1298/* returns an already downloaded actor */ 1298/* returns an already downloaded actor */
1299{ 1299{
1300 int status = 200; 1300 int status = 200;
1301 d_char *d; 1301 xs_dict *d;
1302 1302
1303 if (strcmp(actor, snac->actor) == 0) { 1303 if (strcmp(actor, snac1->actor) == 0) {
1304 /* this actor */ 1304 /* this actor */
1305 if (data) 1305 if (data)
1306 *data = msg_actor(snac); 1306 *data = msg_actor(snac1);
1307 1307
1308 return status; 1308 return status;
1309 } 1309 }
1310 1310
1311 if (xs_startswith(actor, srv_baseurl)) {
1312 /* it's a (possible) local user */
1313 xs *l = xs_split(actor, "/");
1314 const char *uid = xs_list_get(l, -1);
1315 snac user;
1316
1317 if (!xs_is_null(uid) && user_open(&user, uid)) {
1318 if (data)
1319 *data = msg_actor(&user);
1320
1321 user_free(&user);
1322 }
1323 else
1324 return 404;
1325 }
1326
1311 /* read the object */ 1327 /* read the object */
1312 if (!valid_status(status = object_get(actor, &d))) 1328 if (!valid_status(status = object_get(actor, &d)))
1313 return status; 1329 return status;