mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2025-05-14 07:04:45 -04:00
NotesService: Get more note metadata from the database
Some previously hardcoded metadata-values are now retrieved from the database. Signed-off-by: David Mehren <git@herrmehren.de>
This commit is contained in:
parent
30a0b25094
commit
9cae7e34dc
2 changed files with 39 additions and 21 deletions
|
@ -1,11 +1,17 @@
|
||||||
import { Module } from '@nestjs/common';
|
import { Module } from '@nestjs/common';
|
||||||
import { TypeOrmModule } from '@nestjs/typeorm';
|
import { TypeOrmModule } from '@nestjs/typeorm';
|
||||||
|
import { RevisionsModule } from '../revisions/revisions.module';
|
||||||
|
import { UsersModule } from '../users/users.module';
|
||||||
import { AuthorColor } from './author-color.entity';
|
import { AuthorColor } from './author-color.entity';
|
||||||
import { Note } from './note.entity';
|
import { Note } from './note.entity';
|
||||||
import { NotesService } from './notes.service';
|
import { NotesService } from './notes.service';
|
||||||
|
|
||||||
@Module({
|
@Module({
|
||||||
imports: [TypeOrmModule.forFeature([Note, AuthorColor])],
|
imports: [
|
||||||
|
TypeOrmModule.forFeature([Note, AuthorColor]),
|
||||||
|
RevisionsModule,
|
||||||
|
UsersModule,
|
||||||
|
],
|
||||||
controllers: [],
|
controllers: [],
|
||||||
providers: [NotesService],
|
providers: [NotesService],
|
||||||
exports: [NotesService],
|
exports: [NotesService],
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
import { Injectable, Logger } from '@nestjs/common';
|
import { Inject, Injectable, Logger } from '@nestjs/common';
|
||||||
import { InjectRepository } from '@nestjs/typeorm';
|
import { InjectRepository } from '@nestjs/typeorm';
|
||||||
import { Repository } from 'typeorm';
|
import { Repository } from 'typeorm';
|
||||||
import { Revision } from '../revisions/revision.entity';
|
import { Revision } from '../revisions/revision.entity';
|
||||||
import { User } from '../users/user.entity';
|
import { User } from '../users/user.entity';
|
||||||
|
import { UsersService } from '../users/users.service';
|
||||||
import { NoteMetadataDto } from './note-metadata.dto';
|
import { NoteMetadataDto } from './note-metadata.dto';
|
||||||
import {
|
import {
|
||||||
NotePermissionsDto,
|
NotePermissionsDto,
|
||||||
|
@ -10,6 +11,7 @@ import {
|
||||||
} from './note-permissions.dto';
|
} from './note-permissions.dto';
|
||||||
import { NoteDto } from './note.dto';
|
import { NoteDto } from './note.dto';
|
||||||
import { Note } from './note.entity';
|
import { Note } from './note.entity';
|
||||||
|
import { NoteUtils } from './note.utils';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class NotesService {
|
export class NotesService {
|
||||||
|
@ -17,6 +19,7 @@ export class NotesService {
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
@InjectRepository(Note) private noteRepository: Repository<Note>,
|
@InjectRepository(Note) private noteRepository: Repository<Note>,
|
||||||
|
@Inject(UsersService) private usersService: UsersService,
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
getUserNotes(username: string): NoteMetadataDto[] {
|
getUserNotes(username: string): NoteMetadataDto[] {
|
||||||
|
@ -75,32 +78,41 @@ export class NotesService {
|
||||||
}
|
}
|
||||||
|
|
||||||
getCurrentContent(note: Note) {
|
getCurrentContent(note: Note) {
|
||||||
return note.revisions[note.revisions.length - 1].content;
|
return this.getLastRevision(note).content;
|
||||||
}
|
}
|
||||||
|
|
||||||
getMetadata(note: Note) {
|
getLastRevision(note: Note) {
|
||||||
|
return note.revisions[note.revisions.length - 1];
|
||||||
|
}
|
||||||
|
|
||||||
|
getMetadata(note: Note): NoteMetadataDto {
|
||||||
return {
|
return {
|
||||||
alias: note.alias,
|
// TODO: Convert DB UUID to base64
|
||||||
createTime: new Date(),
|
|
||||||
description: 'Very descriptive text.',
|
|
||||||
editedBy: [],
|
|
||||||
id: note.id,
|
id: note.id,
|
||||||
|
alias: note.alias,
|
||||||
|
title: NoteUtils.parseTitle(note),
|
||||||
|
// TODO: Get actual createTime
|
||||||
|
createTime: new Date(),
|
||||||
|
description: NoteUtils.parseDescription(note),
|
||||||
|
editedBy: note.authorColors.map(authorColor => authorColor.user.userName),
|
||||||
|
// TODO: Extract into method
|
||||||
permission: {
|
permission: {
|
||||||
owner: {
|
owner: this.usersService.toUserDto(note.owner),
|
||||||
displayName: 'foo',
|
sharedToUsers: note.userPermissions.map(noteUserPermission => ({
|
||||||
userName: 'fooUser',
|
user: this.usersService.toUserDto(noteUserPermission.user),
|
||||||
email: 'foo@example.com',
|
canEdit: noteUserPermission.canEdit,
|
||||||
photo: '',
|
})),
|
||||||
},
|
sharedToGroups: note.groupPermissions.map(noteGroupPermission => ({
|
||||||
sharedToUsers: [],
|
group: noteGroupPermission.group,
|
||||||
sharedToGroups: [],
|
canEdit: noteGroupPermission.canEdit,
|
||||||
|
})),
|
||||||
},
|
},
|
||||||
tags: [],
|
tags: NoteUtils.parseTags(note),
|
||||||
title: 'Title!',
|
updateTime: this.getLastRevision(note).createdAt,
|
||||||
updateTime: new Date(),
|
// TODO: Get actual updateUser
|
||||||
updateUser: {
|
updateUser: {
|
||||||
displayName: 'foo',
|
displayName: 'Hardcoded User',
|
||||||
userName: 'fooUser',
|
userName: 'hardcoded',
|
||||||
email: 'foo@example.com',
|
email: 'foo@example.com',
|
||||||
photo: '',
|
photo: '',
|
||||||
},
|
},
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue