feat(revisions): add persisting revisions from s3 dump

This commit is contained in:
Karol Sójko
2022-11-21 12:56:17 +01:00
parent b0406dd8aa
commit 822ee890af
14 changed files with 283 additions and 31 deletions
@@ -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