Skip to content

Commit

Permalink
Fix url type of AP object
Browse files Browse the repository at this point in the history
  • Loading branch information
mei23 committed Apr 11, 2020
1 parent 6599903 commit 9bddc38
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 6 deletions.
4 changes: 2 additions & 2 deletions src/remote/activitypub/models/note.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import config from '../../../config';
import Resolver from '../resolver';
import Note, { INote } from '../../../models/note';
import post from '../../../services/note/create';
import { IPost, IObject, getOneApId, getApId, isPost, isEmoji } from '../type';
import { IPost, IObject, getOneApId, getApId, getOneApHrefNullable, isPost, isEmoji } from '../type';
import { resolvePerson, updatePerson } from './person';
import { resolveImage } from './image';
import { IRemoteUser } from '../../../models/user';
Expand Down Expand Up @@ -278,7 +278,7 @@ export async function createNote(value: string | IObject, resolver?: Resolver, s
apEmojis,
poll,
uri: note.id,
url: note.url,
url: getOneApHrefNullable(note.url),
}, silent);
}

Expand Down
6 changes: 3 additions & 3 deletions src/remote/activitypub/models/person.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import config from '../../../config';
import User, { validateUsername, IUser, IRemoteUser, isRemoteUser } from '../../../models/user';
import Resolver from '../resolver';
import { resolveImage } from './image';
import { isCollectionOrOrderedCollection, isCollection, isOrderedCollection, IObject, isActor, IApPerson, isPropertyValue, IApPropertyValue, ApObject, getApIds, isOrderedCollectionPage, isCreate, isPost } from '../type';
import { isCollectionOrOrderedCollection, isCollection, isOrderedCollection, IObject, isActor, IApPerson, isPropertyValue, IApPropertyValue, ApObject, getApIds, getOneApHrefNullable, isOrderedCollectionPage, isCreate, isPost } from '../type';
import { IDriveFile } from '../../../models/drive-file';
import Meta from '../../../models/meta';
import { fromHtml } from '../../../mfm/fromHtml';
Expand Down Expand Up @@ -171,7 +171,7 @@ export async function createPerson(uri: string, resolver?: Resolver): Promise<IU
uri: person.id,
movedToUserId,
alsoKnownAsUserIds,
url: person.url,
url: getOneApHrefNullable(person.url),
fields,
...services,
tags,
Expand Down Expand Up @@ -359,7 +359,7 @@ export async function updatePerson(uri: string, resolver?: Resolver, hint?: IApP
name: person.name,
movedToUserId,
alsoKnownAsUserIds,
url: person.url,
url: getOneApHrefNullable(person.url),
endpoints: person.endpoints,
fields,
...services,
Expand Down
13 changes: 12 additions & 1 deletion src/remote/activitypub/type.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ export interface IObject {
endTime?: Date;
icon?: IApImage | IApImage[];
image?: IApImage | IApImage[];
url?: string;
url?: ApObject;
tag?: IObject | IObject[];
sensitive?: boolean;
movedTo?: ApObject;
Expand Down Expand Up @@ -56,6 +56,17 @@ export function getApId(value: string | IObject): string {
throw new Error(`cannot detemine id`);
}

export function getOneApHrefNullable(value: ApObject | undefined): string | undefined {
const firstOne = Array.isArray(value) ? value[0] : value;
return getApHrefNullable(firstOne);
}

export function getApHrefNullable(value: string | IObject | undefined): string | undefined {
if (typeof value === 'string') return value;
if (typeof value?.href === 'string') return value.href;
return undefined;
}

export interface IActivity extends IObject {
//type: 'Activity';
actor: IObject | string;
Expand Down

0 comments on commit 9bddc38

Please sign in to comment.