mirror of
https://github.com/standardnotes/server
synced 2026-07-31 05:16:40 -04:00
feat(revisions): add persisting revisions from s3 dump
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import { MapperInterface, Uuid } from '@standardnotes/domain-core'
|
||||
import { Repository } from 'typeorm'
|
||||
import { Revision } from '../../Domain/Revision/Revision'
|
||||
|
||||
import { RevisionMetadata } from '../../Domain/Revision/RevisionMetadata'
|
||||
import { RevisionRepositoryInterface } from '../../Domain/Revision/RevisionRepositoryInterface'
|
||||
@@ -8,9 +9,18 @@ import { TypeORMRevision } from '../TypeORM/TypeORMRevision'
|
||||
export class MySQLRevisionRepository implements RevisionRepositoryInterface {
|
||||
constructor(
|
||||
private ormRepository: Repository<TypeORMRevision>,
|
||||
private revisionMapper: MapperInterface<RevisionMetadata, TypeORMRevision>,
|
||||
private revisionMetadataMapper: MapperInterface<RevisionMetadata, TypeORMRevision>,
|
||||
private revisionMapper: MapperInterface<Revision, TypeORMRevision>,
|
||||
) {}
|
||||
|
||||
async save(revision: Revision): Promise<Revision> {
|
||||
const typeormRevision = this.revisionMapper.toProjection(revision)
|
||||
|
||||
await this.ormRepository.save(typeormRevision)
|
||||
|
||||
return revision
|
||||
}
|
||||
|
||||
async findMetadataByItemId(itemUuid: Uuid): Promise<Array<RevisionMetadata>> {
|
||||
const queryBuilder = this.ormRepository
|
||||
.createQueryBuilder()
|
||||
@@ -27,7 +37,7 @@ export class MySQLRevisionRepository implements RevisionRepositoryInterface {
|
||||
|
||||
const metadata = []
|
||||
for (const simplifiedRevision of simplifiedRevisions) {
|
||||
metadata.push(this.revisionMapper.toDomain(simplifiedRevision))
|
||||
metadata.push(this.revisionMetadataMapper.toDomain(simplifiedRevision))
|
||||
}
|
||||
|
||||
return metadata
|
||||
|
||||
Reference in New Issue
Block a user