RevisionService: Implement getNoteRevisionMetadatas

Signed-off-by: David Mehren <git@herrmehren.de>
This commit is contained in:
David Mehren 2020-09-22 21:09:14 +02:00
parent 3d4e9a9b92
commit 05a62b31ee
No known key found for this signature in database
GPG key ID: 185982BA4C42B7C3
4 changed files with 31 additions and 15 deletions

View file

@ -1,6 +1,7 @@
import { Injectable, Logger } from '@nestjs/common';
import { Inject, Injectable, Logger } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { Repository } from 'typeorm';
import { NotesService } from '../notes/notes.service';
import { RevisionMetadataDto } from './revision-metadata.dto';
import { RevisionDto } from './revision.dto';
import { Revision } from './revision.entity';
@ -10,17 +11,19 @@ export class RevisionsService {
constructor(
@InjectRepository(Revision)
private revisionRepository: Repository<Revision>,
@Inject(NotesService) private notesService: NotesService,
) {}
private readonly logger = new Logger(RevisionsService.name);
getNoteRevisionMetadatas(noteIdOrAlias: string): RevisionMetadataDto[] {
this.logger.warn('Using hardcoded data!');
return [
{
id: 42,
updatedAt: new Date(),
length: 42,
async getNoteRevisionMetadatas(
noteIdOrAlias: string,
): Promise<RevisionMetadataDto[]> {
const note = await this.notesService.getNoteByIdOrAlias(noteIdOrAlias);
const revisions = await this.revisionRepository.find({
where: {
note: note.id,
},
];
});
return revisions.map(revision => this.toMetadataDto(revision));
}
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) {
// TODO: Add previous revision
// TODO: Calculate patch