mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2025-05-13 14:44:43 -04:00
RevisionService: Implement getNoteRevisionMetadatas
Signed-off-by: David Mehren <git@herrmehren.de>
This commit is contained in:
parent
3d4e9a9b92
commit
05a62b31ee
4 changed files with 31 additions and 15 deletions
|
@ -1,4 +1,4 @@
|
||||||
import { Module } from '@nestjs/common';
|
import { forwardRef, Module } from '@nestjs/common';
|
||||||
import { TypeOrmModule } from '@nestjs/typeorm';
|
import { TypeOrmModule } from '@nestjs/typeorm';
|
||||||
import { RevisionsModule } from '../revisions/revisions.module';
|
import { RevisionsModule } from '../revisions/revisions.module';
|
||||||
import { UsersModule } from '../users/users.module';
|
import { UsersModule } from '../users/users.module';
|
||||||
|
@ -9,7 +9,7 @@ import { NotesService } from './notes.service';
|
||||||
@Module({
|
@Module({
|
||||||
imports: [
|
imports: [
|
||||||
TypeOrmModule.forFeature([Note, AuthorColor]),
|
TypeOrmModule.forFeature([Note, AuthorColor]),
|
||||||
RevisionsModule,
|
forwardRef(() => RevisionsModule),
|
||||||
UsersModule,
|
UsersModule,
|
||||||
],
|
],
|
||||||
controllers: [],
|
controllers: [],
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import { Inject, Injectable, Logger } from '@nestjs/common';
|
import { forwardRef, 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';
|
||||||
|
@ -21,7 +21,8 @@ export class NotesService {
|
||||||
constructor(
|
constructor(
|
||||||
@InjectRepository(Note) private noteRepository: Repository<Note>,
|
@InjectRepository(Note) private noteRepository: Repository<Note>,
|
||||||
@Inject(UsersService) private usersService: UsersService,
|
@Inject(UsersService) private usersService: UsersService,
|
||||||
@Inject(RevisionsService) private revisionsService: RevisionsService,
|
@Inject(forwardRef(() => RevisionsService))
|
||||||
|
private revisionsService: RevisionsService,
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
getUserNotes(username: string): NoteMetadataDto[] {
|
getUserNotes(username: string): NoteMetadataDto[] {
|
||||||
|
|
|
@ -1,11 +1,15 @@
|
||||||
import { Module } from '@nestjs/common';
|
import { forwardRef, Module } from '@nestjs/common';
|
||||||
import { TypeOrmModule } from '@nestjs/typeorm';
|
import { TypeOrmModule } from '@nestjs/typeorm';
|
||||||
|
import { NotesModule } from '../notes/notes.module';
|
||||||
import { Authorship } from './authorship.entity';
|
import { Authorship } from './authorship.entity';
|
||||||
import { Revision } from './revision.entity';
|
import { Revision } from './revision.entity';
|
||||||
import { RevisionsService } from './revisions.service';
|
import { RevisionsService } from './revisions.service';
|
||||||
|
|
||||||
@Module({
|
@Module({
|
||||||
imports: [TypeOrmModule.forFeature([Revision, Authorship])],
|
imports: [
|
||||||
|
TypeOrmModule.forFeature([Revision, Authorship]),
|
||||||
|
forwardRef(() => NotesModule),
|
||||||
|
],
|
||||||
providers: [RevisionsService],
|
providers: [RevisionsService],
|
||||||
exports: [RevisionsService],
|
exports: [RevisionsService],
|
||||||
})
|
})
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
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 { NotesService } from '../notes/notes.service';
|
||||||
import { RevisionMetadataDto } from './revision-metadata.dto';
|
import { RevisionMetadataDto } from './revision-metadata.dto';
|
||||||
import { RevisionDto } from './revision.dto';
|
import { RevisionDto } from './revision.dto';
|
||||||
import { Revision } from './revision.entity';
|
import { Revision } from './revision.entity';
|
||||||
|
@ -10,17 +11,19 @@ export class RevisionsService {
|
||||||
constructor(
|
constructor(
|
||||||
@InjectRepository(Revision)
|
@InjectRepository(Revision)
|
||||||
private revisionRepository: Repository<Revision>,
|
private revisionRepository: Repository<Revision>,
|
||||||
|
@Inject(NotesService) private notesService: NotesService,
|
||||||
) {}
|
) {}
|
||||||
private readonly logger = new Logger(RevisionsService.name);
|
private readonly logger = new Logger(RevisionsService.name);
|
||||||
getNoteRevisionMetadatas(noteIdOrAlias: string): RevisionMetadataDto[] {
|
async getNoteRevisionMetadatas(
|
||||||
this.logger.warn('Using hardcoded data!');
|
noteIdOrAlias: string,
|
||||||
return [
|
): Promise<RevisionMetadataDto[]> {
|
||||||
{
|
const note = await this.notesService.getNoteByIdOrAlias(noteIdOrAlias);
|
||||||
id: 42,
|
const revisions = await this.revisionRepository.find({
|
||||||
updatedAt: new Date(),
|
where: {
|
||||||
length: 42,
|
note: note.id,
|
||||||
},
|
},
|
||||||
];
|
});
|
||||||
|
return revisions.map(revision => this.toMetadataDto(revision));
|
||||||
}
|
}
|
||||||
|
|
||||||
getNoteRevision(noteIdOrAlias: string, revisionId: number): RevisionDto {
|
getNoteRevision(noteIdOrAlias: string, revisionId: number): RevisionDto {
|
||||||
|
@ -44,6 +47,14 @@ export class RevisionsService {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
toMetadataDto(revision: Revision): RevisionMetadataDto {
|
||||||
|
return {
|
||||||
|
id: revision.id,
|
||||||
|
length: revision.length,
|
||||||
|
createdAt: revision.createdAt,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
createRevision(content: string) {
|
createRevision(content: string) {
|
||||||
// TODO: Add previous revision
|
// TODO: Add previous revision
|
||||||
// TODO: Calculate patch
|
// TODO: Calculate patch
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue