feat: follow/unfollow logic and receipt

This commit is contained in:
Julian Lam
2023-06-28 14:59:39 -04:00
parent e6753ce5db
commit c02271c7af
7 changed files with 153 additions and 15 deletions

View File

@@ -3,9 +3,11 @@
const request = require('request-promise-native');
const { generateKeyPairSync } = require('crypto');
const winston = require('winston');
const nconf = require('nconf');
const db = require('../database');
const ttl = require('../cache/ttl');
const user = require('../user');
const webfingerCache = ttl({ ttl: 1000 * 60 * 60 * 24 }); // 24 hours
@@ -65,3 +67,13 @@ Helpers.generateKeys = async (uid) => {
await db.setObject(`uid:${uid}:keys`, { publicKey, privateKey });
return { publicKey, privateKey };
};
Helpers.resolveLocalUid = async (id) => {
const [slug, host] = id.split('@');
if (id.indexOf('@') === -1 || host !== nconf.get('url_parsed').host) {
throw new Error('[[activitypub:invalid-id]]');
}
return await user.getUidByUserslug(slug);
};