mirror of
https://github.com/standardnotes/server
synced 2026-07-14 09:01:33 -04:00
37 lines
1.3 KiB
TypeScript
37 lines
1.3 KiB
TypeScript
import { inject, injectable } from 'inversify'
|
|
import { Repository } from 'typeorm'
|
|
|
|
import TYPES from '../../Bootstrap/Types'
|
|
import { OfflineSetting } from '../../Domain/Setting/OfflineSetting'
|
|
import { OfflineSettingName } from '../../Domain/Setting/OfflineSettingName'
|
|
import { OfflineSettingRepositoryInterface } from '../../Domain/Setting/OfflineSettingRepositoryInterface'
|
|
|
|
@injectable()
|
|
export class MySQLOfflineSettingRepository implements OfflineSettingRepositoryInterface {
|
|
constructor(@inject(TYPES.ORMOfflineSettingRepository) private ormRepository: Repository<OfflineSetting>) {}
|
|
|
|
async save(offlineSetting: OfflineSetting): Promise<OfflineSetting> {
|
|
return this.ormRepository.save(offlineSetting)
|
|
}
|
|
|
|
async findOneByNameAndValue(name: OfflineSettingName, value: string): Promise<OfflineSetting | null> {
|
|
return this.ormRepository
|
|
.createQueryBuilder('offline_setting')
|
|
.where('offline_setting.name = :name AND offline_setting.value = :value', {
|
|
name,
|
|
value,
|
|
})
|
|
.getOne()
|
|
}
|
|
|
|
async findOneByNameAndEmail(name: OfflineSettingName, email: string): Promise<OfflineSetting | null> {
|
|
return this.ormRepository
|
|
.createQueryBuilder('offline_setting')
|
|
.where('offline_setting.name = :name AND offline_setting.email = :email', {
|
|
name,
|
|
email,
|
|
})
|
|
.getOne()
|
|
}
|
|
}
|