summaryrefslogtreecommitdiff
path: root/src/models
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2019-07-19 03:38:05 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2019-07-19 03:38:05 +0900
commitcd5b24d4eb494a4e9279348639e30b28bcdaa9f9 (patch)
treeabc65a9511b5affbcfd2ff063c8eda2c6251c637 /src/models
parentMerge branch 'develop' (diff)
parent11.26.0 (diff)
downloadsharkey-cd5b24d4eb494a4e9279348639e30b28bcdaa9f9.tar.gz
sharkey-cd5b24d4eb494a4e9279348639e30b28bcdaa9f9.tar.bz2
sharkey-cd5b24d4eb494a4e9279348639e30b28bcdaa9f9.zip
Merge branch 'develop'
Diffstat (limited to 'src/models')
-rw-r--r--src/models/entities/moderation-log.ts32
-rw-r--r--src/models/index.ts2
-rw-r--r--src/models/repositories/abuse-user-report.ts1
-rw-r--r--src/models/repositories/moderation-logs.ts31
-rw-r--r--src/models/repositories/user.ts1
5 files changed, 67 insertions, 0 deletions
diff --git a/src/models/entities/moderation-log.ts b/src/models/entities/moderation-log.ts
new file mode 100644
index 0000000000..33d3d683ae
--- /dev/null
+++ b/src/models/entities/moderation-log.ts
@@ -0,0 +1,32 @@
+import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
+import { User } from './user';
+import { id } from '../id';
+
+@Entity()
+export class ModerationLog {
+ @PrimaryColumn(id())
+ public id: string;
+
+ @Column('timestamp with time zone', {
+ comment: 'The created date of the ModerationLog.'
+ })
+ public createdAt: Date;
+
+ @Index()
+ @Column(id())
+ public userId: User['id'];
+
+ @ManyToOne(type => User, {
+ onDelete: 'CASCADE'
+ })
+ @JoinColumn()
+ public user: User | null;
+
+ @Column('varchar', {
+ length: 128,
+ })
+ public type: string;
+
+ @Column('jsonb')
+ public info: Record<string, any>;
+}
diff --git a/src/models/index.ts b/src/models/index.ts
index 888fd53f36..388bdc8f6f 100644
--- a/src/models/index.ts
+++ b/src/models/index.ts
@@ -42,6 +42,7 @@ import { UserSecurityKey } from './entities/user-security-key';
import { HashtagRepository } from './repositories/hashtag';
import { PageRepository } from './repositories/page';
import { PageLikeRepository } from './repositories/page-like';
+import { ModerationLogRepository } from './repositories/moderation-logs';
export const Apps = getCustomRepository(AppRepository);
export const Notes = getCustomRepository(NoteRepository);
@@ -86,3 +87,4 @@ export const ReversiMatchings = getCustomRepository(ReversiMatchingRepository);
export const Logs = getRepository(Log);
export const Pages = getCustomRepository(PageRepository);
export const PageLikes = getCustomRepository(PageLikeRepository);
+export const ModerationLogs = getCustomRepository(ModerationLogRepository);
diff --git a/src/models/repositories/abuse-user-report.ts b/src/models/repositories/abuse-user-report.ts
index 61d0d6e229..bff64c770c 100644
--- a/src/models/repositories/abuse-user-report.ts
+++ b/src/models/repositories/abuse-user-report.ts
@@ -14,6 +14,7 @@ export class AbuseUserReportRepository extends Repository<AbuseUserReport> {
return await awaitAll({
id: report.id,
createdAt: report.createdAt,
+ comment: report.comment,
reporterId: report.reporterId,
userId: report.userId,
reporter: Users.pack(report.reporter || report.reporterId, null, {
diff --git a/src/models/repositories/moderation-logs.ts b/src/models/repositories/moderation-logs.ts
new file mode 100644
index 0000000000..d6e04795bb
--- /dev/null
+++ b/src/models/repositories/moderation-logs.ts
@@ -0,0 +1,31 @@
+import { EntityRepository, Repository } from 'typeorm';
+import { Users } from '..';
+import { ModerationLog } from '../entities/moderation-log';
+import { ensure } from '../../prelude/ensure';
+import { awaitAll } from '../../prelude/await-all';
+
+@EntityRepository(ModerationLog)
+export class ModerationLogRepository extends Repository<ModerationLog> {
+ public async pack(
+ src: ModerationLog['id'] | ModerationLog,
+ ) {
+ const log = typeof src === 'object' ? src : await this.findOne(src).then(ensure);
+
+ return await awaitAll({
+ id: log.id,
+ createdAt: log.createdAt,
+ type: log.type,
+ info: log.info,
+ userId: log.userId,
+ user: Users.pack(log.user || log.userId, null, {
+ detail: true
+ }),
+ });
+ }
+
+ public packMany(
+ reports: any[],
+ ) {
+ return Promise.all(reports.map(x => this.pack(x)));
+ }
+}
diff --git a/src/models/repositories/user.ts b/src/models/repositories/user.ts
index 4e85fd7b93..a04b87f77c 100644
--- a/src/models/repositories/user.ts
+++ b/src/models/repositories/user.ts
@@ -148,6 +148,7 @@ export class UserRepository extends Repository<User> {
description: profile!.description,
location: profile!.location,
birthday: profile!.birthday,
+ fields: profile!.fields,
followersCount: user.followersCount,
followingCount: user.followingCount,
notesCount: user.notesCount,