forked from FoundKeyGang/FoundKey
backend: use named exports for services/note
This commit is contained in:
parent
3da7221eec
commit
d83c1c3851
18 changed files with 27 additions and 27 deletions
|
@ -1,5 +1,5 @@
|
||||||
import { CacheableRemoteUser } from '@/models/entities/user.js';
|
import { CacheableRemoteUser } from '@/models/entities/user.js';
|
||||||
import create from '@/services/note/reaction/create.js';
|
import { createReaction } from '@/services/note/reaction/create.js';
|
||||||
import { ILike, getApId } from '../type.js';
|
import { ILike, getApId } from '../type.js';
|
||||||
import { fetchNote, extractEmojis } from '../models/note.js';
|
import { fetchNote, extractEmojis } from '../models/note.js';
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@ export default async (actor: CacheableRemoteUser, activity: ILike) => {
|
||||||
|
|
||||||
await extractEmojis(activity.tag || [], actor.host).catch(() => null);
|
await extractEmojis(activity.tag || [], actor.host).catch(() => null);
|
||||||
|
|
||||||
return await create(actor, note, activity._misskey_reaction || activity.content || activity.name).catch(e => {
|
return await createReaction(actor, note, activity._misskey_reaction || activity.content || activity.name).catch(e => {
|
||||||
if (e.id === '51c42bb4-931a-456b-bff7-e5a8a70dd298') {
|
if (e.id === '51c42bb4-931a-456b-bff7-e5a8a70dd298') {
|
||||||
return 'skip: already reacted';
|
return 'skip: already reacted';
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import { CacheableRemoteUser } from '@/models/entities/user.js';
|
import { CacheableRemoteUser } from '@/models/entities/user.js';
|
||||||
import deleteReaction from '@/services/note/reaction/delete.js';
|
import { deleteReaction } from '@/services/note/reaction/delete.js';
|
||||||
import { ILike, getApId } from '@/remote/activitypub/type.js';
|
import { ILike, getApId } from '@/remote/activitypub/type.js';
|
||||||
import { fetchNote } from '@/remote/activitypub/models/note.js';
|
import { fetchNote } from '@/remote/activitypub/models/note.js';
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@ import config from '@/config/index.js';
|
||||||
import post from '@/services/note/create.js';
|
import post from '@/services/note/create.js';
|
||||||
import { CacheableRemoteUser } from '@/models/entities/user.js';
|
import { CacheableRemoteUser } from '@/models/entities/user.js';
|
||||||
import { unique, toArray, toSingle } from '@/prelude/array.js';
|
import { unique, toArray, toSingle } from '@/prelude/array.js';
|
||||||
import vote from '@/services/note/polls/vote.js';
|
import { vote } from '@/services/note/polls/vote.js';
|
||||||
import { DriveFile } from '@/models/entities/drive-file.js';
|
import { DriveFile } from '@/models/entities/drive-file.js';
|
||||||
import { deliverQuestionUpdate } from '@/services/note/polls/update.js';
|
import { deliverQuestionUpdate } from '@/services/note/polls/update.js';
|
||||||
import { extractDbHost, toPuny } from '@/misc/convert-host.js';
|
import { extractDbHost, toPuny } from '@/misc/convert-host.js';
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import readNote from '@/services/note/read.js';
|
import { readNote } from '@/services/note/read.js';
|
||||||
import { Antennas, Notes, AntennaNotes } from '@/models/index.js';
|
import { Antennas, Notes, AntennaNotes } from '@/models/index.js';
|
||||||
import { makePaginationQuery } from '../../common/make-pagination-query.js';
|
import { makePaginationQuery } from '../../common/make-pagination-query.js';
|
||||||
import { generateVisibilityQuery } from '../../common/generate-visibility-query.js';
|
import { generateVisibilityQuery } from '../../common/generate-visibility-query.js';
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import { Brackets } from 'typeorm';
|
import { Brackets } from 'typeorm';
|
||||||
import { notificationTypes } from 'foundkey-js';
|
import { notificationTypes } from 'foundkey-js';
|
||||||
import { Notifications, Followings, Mutings, Users, UserProfiles } from '@/models/index.js';
|
import { Notifications, Followings, Mutings, Users, UserProfiles } from '@/models/index.js';
|
||||||
import read from '@/services/note/read.js';
|
import { readNote } from '@/services/note/read.js';
|
||||||
import { readNotification } from '../../common/read-notification.js';
|
import { readNotification } from '../../common/read-notification.js';
|
||||||
import define from '../../define.js';
|
import define from '../../define.js';
|
||||||
import { makePaginationQuery } from '../../common/make-pagination-query.js';
|
import { makePaginationQuery } from '../../common/make-pagination-query.js';
|
||||||
|
@ -137,7 +137,7 @@ export default define(meta, paramDef, async (ps, user) => {
|
||||||
const notes = notifications.filter(notification => ['mention', 'reply', 'quote'].includes(notification.type)).map(notification => notification.note!);
|
const notes = notifications.filter(notification => ['mention', 'reply', 'quote'].includes(notification.type)).map(notification => notification.note!);
|
||||||
|
|
||||||
if (notes.length > 0) {
|
if (notes.length > 0) {
|
||||||
read(user.id, notes);
|
readNote(user.id, notes);
|
||||||
}
|
}
|
||||||
|
|
||||||
return await Notifications.packMany(notifications, user.id);
|
return await Notifications.packMany(notifications, user.id);
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import { Brackets } from 'typeorm';
|
import { Brackets } from 'typeorm';
|
||||||
import { noteVisibilities } from 'foundkey-js';
|
import { noteVisibilities } from 'foundkey-js';
|
||||||
import read from '@/services/note/read.js';
|
import { readNote } from '@/services/note/read.js';
|
||||||
import { Notes, Followings } from '@/models/index.js';
|
import { Notes, Followings } from '@/models/index.js';
|
||||||
import define from '../../define.js';
|
import define from '../../define.js';
|
||||||
import { generateVisibilityQuery } from '../../common/generate-visibility-query.js';
|
import { generateVisibilityQuery } from '../../common/generate-visibility-query.js';
|
||||||
|
@ -79,7 +79,7 @@ export default define(meta, paramDef, async (ps, user) => {
|
||||||
|
|
||||||
const mentions = await query.take(ps.limit).getMany();
|
const mentions = await query.take(ps.limit).getMany();
|
||||||
|
|
||||||
read(user.id, mentions);
|
readNote(user.id, mentions);
|
||||||
|
|
||||||
return await Notes.packMany(mentions, user);
|
return await Notes.packMany(mentions, user);
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import createReaction from '@/services/note/reaction/create.js';
|
import { createReaction } from '@/services/note/reaction/create.js';
|
||||||
import define from '../../../define.js';
|
import define from '../../../define.js';
|
||||||
import { getNote } from '../../../common/getters.js';
|
import { getNote } from '../../../common/getters.js';
|
||||||
import { ApiError } from '../../../error.js';
|
import { ApiError } from '../../../error.js';
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import deleteReaction from '@/services/note/reaction/delete.js';
|
import { deleteReaction } from '@/services/note/reaction/delete.js';
|
||||||
import { SECOND, HOUR } from '@/const.js';
|
import { SECOND, HOUR } from '@/const.js';
|
||||||
import define from '../../../define.js';
|
import define from '../../../define.js';
|
||||||
import { getNote } from '../../../common/getters.js';
|
import { getNote } from '../../../common/getters.js';
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import { noteNotificationTypes } from 'foundkey-js';
|
import { noteNotificationTypes } from 'foundkey-js';
|
||||||
import { Notes, NoteThreadMutings, NoteWatchings } from '@/models/index.js';
|
import { Notes, NoteThreadMutings, NoteWatchings } from '@/models/index.js';
|
||||||
import { genId } from '@/misc/gen-id.js';
|
import { genId } from '@/misc/gen-id.js';
|
||||||
import readNote from '@/services/note/read.js';
|
import { readNote } from '@/services/note/read.js';
|
||||||
import define from '../../../define.js';
|
import define from '../../../define.js';
|
||||||
import { getNote } from '../../../common/getters.js';
|
import { getNote } from '../../../common/getters.js';
|
||||||
import { ApiError } from '../../../error.js';
|
import { ApiError } from '../../../error.js';
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import watch from '@/services/note/watch.js';
|
import { watch } from '@/services/note/watch.js';
|
||||||
import define from '../../../define.js';
|
import define from '../../../define.js';
|
||||||
import { getNote } from '../../../common/getters.js';
|
import { getNote } from '../../../common/getters.js';
|
||||||
import { ApiError } from '../../../error.js';
|
import { ApiError } from '../../../error.js';
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import unwatch from '@/services/note/unwatch.js';
|
import { unwatch } from '@/services/note/unwatch.js';
|
||||||
import define from '../../../define.js';
|
import define from '../../../define.js';
|
||||||
import { getNote } from '../../../common/getters.js';
|
import { getNote } from '../../../common/getters.js';
|
||||||
import { ApiError } from '../../../error.js';
|
import { ApiError } from '../../../error.js';
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import { EventEmitter } from 'events';
|
import { EventEmitter } from 'events';
|
||||||
import * as websocket from 'websocket';
|
import * as websocket from 'websocket';
|
||||||
import readNote from '@/services/note/read.js';
|
import { readNote } from '@/services/note/read.js';
|
||||||
import { User } from '@/models/entities/user.js';
|
import { User } from '@/models/entities/user.js';
|
||||||
import { Channel as ChannelModel } from '@/models/entities/channel.js';
|
import { Channel as ChannelModel } from '@/models/entities/channel.js';
|
||||||
import { Followings, Mutings, RenoteMutings, UserProfiles, ChannelFollowings, Blockings } from '@/models/index.js';
|
import { Followings, Mutings, RenoteMutings, UserProfiles, ChannelFollowings, Blockings } from '@/models/index.js';
|
||||||
|
|
|
@ -6,7 +6,7 @@ import { PollVotes, NoteWatchings, Polls, Blockings, NoteThreadMutings } from '@
|
||||||
import { genId } from '@/misc/gen-id.js';
|
import { genId } from '@/misc/gen-id.js';
|
||||||
import { createNotification } from '@/services/create-notification.js';
|
import { createNotification } from '@/services/create-notification.js';
|
||||||
|
|
||||||
export default async function(user: CacheableUser, note: Note, choice: number) {
|
export async function vote(user: CacheableUser, note: Note, choice: number): Promise<void> {
|
||||||
const poll = await Polls.findOneBy({ noteId: note.id });
|
const poll = await Polls.findOneBy({ noteId: note.id });
|
||||||
|
|
||||||
if (poll == null) throw new Error('poll not found');
|
if (poll == null) throw new Error('poll not found');
|
||||||
|
|
|
@ -13,9 +13,9 @@ import { isDuplicateKeyValueError } from '@/misc/is-duplicate-key-value-error.js
|
||||||
import { NoteReaction } from '@/models/entities/note-reaction.js';
|
import { NoteReaction } from '@/models/entities/note-reaction.js';
|
||||||
import { IdentifiableError } from '@/misc/identifiable-error.js';
|
import { IdentifiableError } from '@/misc/identifiable-error.js';
|
||||||
import { createNotification } from '@/services/create-notification.js';
|
import { createNotification } from '@/services/create-notification.js';
|
||||||
import deleteReaction from './delete.js';
|
import { deleteReaction } from './delete.js';
|
||||||
|
|
||||||
export default async (user: { id: User['id']; host: User['host']; }, note: Note, reaction?: string) => {
|
export async function createReaction(user: { id: User['id']; host: User['host']; }, note: Note, reaction?: string): Promise<void> {
|
||||||
// Check blocking
|
// Check blocking
|
||||||
if (note.userId !== user.id) {
|
if (note.userId !== user.id) {
|
||||||
const block = await Blockings.findOneBy({
|
const block = await Blockings.findOneBy({
|
||||||
|
@ -148,4 +148,4 @@ export default async (user: { id: User['id']; host: User['host']; }, note: Note,
|
||||||
dm.execute();
|
dm.execute();
|
||||||
}
|
}
|
||||||
//#endregion
|
//#endregion
|
||||||
};
|
}
|
||||||
|
|
|
@ -9,7 +9,7 @@ import { Note } from '@/models/entities/note.js';
|
||||||
import { NoteReactions, Users, Notes } from '@/models/index.js';
|
import { NoteReactions, Users, Notes } from '@/models/index.js';
|
||||||
import { decodeReaction } from '@/misc/reaction-lib.js';
|
import { decodeReaction } from '@/misc/reaction-lib.js';
|
||||||
|
|
||||||
export default async (user: { id: User['id']; host: User['host']; }, note: Note) => {
|
export async function deleteReaction(user: { id: User['id']; host: User['host']; }, note: Note): Promise<void> {
|
||||||
// if already unreacted
|
// if already unreacted
|
||||||
const exist = await NoteReactions.findOneBy({
|
const exist = await NoteReactions.findOneBy({
|
||||||
noteId: note.id,
|
noteId: note.id,
|
||||||
|
@ -55,4 +55,4 @@ export default async (user: { id: User['id']; host: User['host']; }, note: Note)
|
||||||
dm.execute();
|
dm.execute();
|
||||||
}
|
}
|
||||||
//#endregion
|
//#endregion
|
||||||
};
|
}
|
||||||
|
|
|
@ -12,14 +12,14 @@ import { Packed } from '@/misc/schema.js';
|
||||||
/**
|
/**
|
||||||
* Mark notes as read
|
* Mark notes as read
|
||||||
*/
|
*/
|
||||||
export default async function(
|
export async function readNote(
|
||||||
userId: User['id'],
|
userId: User['id'],
|
||||||
notes: (Note | Packed<'Note'>)[],
|
notes: (Note | Packed<'Note'>)[],
|
||||||
info?: {
|
info?: {
|
||||||
following: Set<User['id']>;
|
following: Set<User['id']>;
|
||||||
followingChannels: Set<Channel['id']>;
|
followingChannels: Set<Channel['id']>;
|
||||||
},
|
},
|
||||||
) {
|
): Promise<void> {
|
||||||
const following = info?.following ? info.following : new Set<string>((await Followings.find({
|
const following = info?.following ? info.following : new Set<string>((await Followings.find({
|
||||||
where: {
|
where: {
|
||||||
followerId: userId,
|
followerId: userId,
|
||||||
|
|
|
@ -2,9 +2,9 @@ import { User } from '@/models/entities/user.js';
|
||||||
import { NoteWatchings } from '@/models/index.js';
|
import { NoteWatchings } from '@/models/index.js';
|
||||||
import { Note } from '@/models/entities/note.js';
|
import { Note } from '@/models/entities/note.js';
|
||||||
|
|
||||||
export default async (me: User['id'], note: Note) => {
|
export async function unwatch(me: User['id'], note: Note): Promise<void> {
|
||||||
await NoteWatchings.delete({
|
await NoteWatchings.delete({
|
||||||
noteId: note.id,
|
noteId: note.id,
|
||||||
userId: me,
|
userId: me,
|
||||||
});
|
});
|
||||||
};
|
}
|
||||||
|
|
|
@ -4,7 +4,7 @@ import { NoteWatchings } from '@/models/index.js';
|
||||||
import { genId } from '@/misc/gen-id.js';
|
import { genId } from '@/misc/gen-id.js';
|
||||||
import { NoteWatching } from '@/models/entities/note-watching.js';
|
import { NoteWatching } from '@/models/entities/note-watching.js';
|
||||||
|
|
||||||
export default async (me: User['id'], note: Note) => {
|
export async function watch(me: User['id'], note: Note): Promise<void> {
|
||||||
// 自分の投稿はwatchできない
|
// 自分の投稿はwatchできない
|
||||||
if (me === note.userId) {
|
if (me === note.userId) {
|
||||||
return;
|
return;
|
||||||
|
@ -17,4 +17,4 @@ export default async (me: User['id'], note: Note) => {
|
||||||
userId: me,
|
userId: me,
|
||||||
noteUserId: note.userId,
|
noteUserId: note.userId,
|
||||||
} as NoteWatching);
|
} as NoteWatching);
|
||||||
};
|
}
|
||||||
|
|
Loading…
Reference in a new issue