feat: チャンネルに色を設定できるように

This commit is contained in:
syuilo
2023-05-02 09:36:40 +09:00
parent 0cbdbf24f1
commit d535ec21a2
11 changed files with 61 additions and 1 deletions

View File

@@ -74,6 +74,7 @@ export class ChannelEntityService {
userId: channel.userId,
bannerUrl: banner ? this.driveFileEntityService.getPublicUrl(banner) : null,
pinnedNoteIds: channel.pinnedNoteIds,
color: channel.color,
usersCount: channel.usersCount,
notesCount: channel.notesCount,

View File

@@ -335,6 +335,7 @@ export class NoteEntityService implements OnModuleInit {
channel: channel ? {
id: channel.id,
name: channel.name,
color: channel.color,
} : undefined,
mentions: note.mentions.length > 0 ? note.mentions : undefined,
uri: note.uri ?? undefined,

View File

@@ -64,6 +64,12 @@ export class Channel {
})
public pinnedNoteIds: string[];
@Column('varchar', {
length: 16,
default: '#86b300',
})
public color: string;
@Index()
@Column('integer', {
default: 0,

View File

@@ -59,5 +59,9 @@ export const packedChannelSchema = {
format: 'id',
},
},
color: {
type: 'string',
optional: false, nullable: false,
},
},
} as const;

View File

@@ -43,6 +43,7 @@ export const paramDef = {
name: { type: 'string', minLength: 1, maxLength: 128 },
description: { type: 'string', nullable: true, minLength: 1, maxLength: 2048 },
bannerId: { type: 'string', format: 'misskey:id', nullable: true },
color: { type: 'string', minLength: 1, maxLength: 16 },
},
required: ['name'],
} as const;
@@ -80,6 +81,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
name: ps.name,
description: ps.description ?? null,
bannerId: banner ? banner.id : null,
...(ps.color !== undefined ? { color: ps.color } : {}),
} as Channel).then(x => this.channelsRepository.findOneByOrFail(x.identifiers[0]));
return await this.channelEntityService.pack(channel, me);

View File

@@ -53,6 +53,7 @@ export const paramDef = {
type: 'string', format: 'misskey:id',
},
},
color: { type: 'string', minLength: 1, maxLength: 16 },
},
required: ['channelId'],
} as const;
@@ -104,6 +105,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
...(ps.name !== undefined ? { name: ps.name } : {}),
...(ps.description !== undefined ? { description: ps.description } : {}),
...(ps.pinnedNoteIds !== undefined ? { pinnedNoteIds: ps.pinnedNoteIds } : {}),
...(ps.color !== undefined ? { color: ps.color } : {}),
...(banner ? { bannerId: banner.id } : {}),
});