feat: follow requests

This commit is contained in:
mae taylor 2025-07-14 18:45:38 +01:00
parent 563541d0e6
commit e3586f4eec
Signed by: mae
GPG key ID: 3C80D76BA7A3B9BD
4 changed files with 179 additions and 3 deletions

View file

@ -202,6 +202,40 @@ export async function getFollowRequests(host, token, since_id, max_id, limit) {
return data;
}
/**
* POST /api/v1/follow_requests/:account_id/authorize
* @param {string} host - The domain of the target server.
* @param {string} token - The application token.
* @param {string} account_id - The account ID of the follow request to accept
*/
export async function acceptFollowRequest(host, token, account_id) {
let url = `https://${host}/api/v1/follow_requests/${account_id}/authorize`;
const data = await fetch(url, {
method: 'POST',
headers: { "Authorization": "Bearer " + token }
}).then(res => res.json());
return data;
}
/**
* POST /api/v1/follow_requests/:account_id/reject
* @param {string} host - The domain of the target server.
* @param {string} token - The application token.
* @param {string} account_id - The account ID of the follow request to reject
*/
export async function rejectFollowRequest(host, token, account_id) {
let url = `https://${host}/api/v1/follow_requests/${account_id}/reject`;
const data = await fetch(url, {
method: 'POST',
headers: { "Authorization": "Bearer " + token }
}).then(res => res.json());
return data;
}
/**
* GET /api/v1/timelines/{timeline}
* @param {string} host - The domain of the target server.

View file

@ -3,6 +3,7 @@ import { writable } from "svelte/store";
import * as api from "./api.js";
import { app } from './client/app.js';
import { get } from 'svelte/store';
import { parseAccount } from './account.js';
// Cache for all requests
export let followRequests = writable();
@ -20,5 +21,8 @@ export async function fetchFollowRequests(force) {
get(app).token
);
// parse accounts
newReqs = newReqs.map((r) => parseAccount(r));
followRequests.set(newReqs);
}