forked from FoundKeyGang/FoundKey
server: add hints to createPerson & resolvePerson
This commit is contained in:
parent
90756dfdfc
commit
1f7f978bbd
|
@ -134,14 +134,14 @@ export async function fetchPerson(uri: string, resolver?: Resolver): Promise<Cac
|
|||
/**
|
||||
* Personを作成します。
|
||||
*/
|
||||
export async function createPerson(uri: string, resolver?: Resolver = new Resolver()): Promise<User> {
|
||||
export async function createPerson(uri: string, resolver?: Resolver = new Resolver(), hint?: IObject): Promise<User> {
|
||||
if (typeof uri !== 'string') throw new Error('uri is not string');
|
||||
|
||||
if (uri.startsWith(config.url)) {
|
||||
throw new StatusError('cannot resolve local user', 400, 'cannot resolve local user');
|
||||
}
|
||||
|
||||
const object = await resolver.resolve(uri) as any;
|
||||
const object = hint ?? await resolver.resolve(uri) as any;
|
||||
|
||||
const person = validateActor(object, uri);
|
||||
|
||||
|
@ -389,7 +389,7 @@ export async function updatePerson(uri: string, resolver?: Resolver = new Resolv
|
|||
* If the target Person is registered in FoundKey, return it; otherwise, fetch it from a remote server and return it.
|
||||
* Fetch the person from the remote server, register it in FoundKey, and return it.
|
||||
*/
|
||||
export async function resolvePerson(uri: string, resolver?: Resolver): Promise<CacheableUser> {
|
||||
export async function resolvePerson(uri: string, resolver?: Resolver, hint?: IObject): Promise<CacheableUser> {
|
||||
if (typeof uri !== 'string') throw new Error('uri is not string');
|
||||
|
||||
//#region このサーバーに既に登録されていたらそれを返す
|
||||
|
@ -401,7 +401,7 @@ export async function resolvePerson(uri: string, resolver?: Resolver): Promise<C
|
|||
//#endregion
|
||||
|
||||
// リモートサーバーからフェッチしてきて登録
|
||||
return await createPerson(uri, resolver ?? new Resolver());
|
||||
return await createPerson(uri, resolver ?? new Resolver(), hint);
|
||||
}
|
||||
|
||||
const services: {
|
||||
|
|
Loading…
Reference in a new issue