2022-09-26 16:34:23 +00:00
|
|
|
import {Instantiable, FactoryProducer} from '../../../di'
|
2022-03-29 06:14:46 +00:00
|
|
|
import {RedemptionCodeRepository} from '../types'
|
|
|
|
import {CacheRedemptionCodeRepository} from './CacheRedemptionCodeRepository'
|
2022-09-26 16:34:23 +00:00
|
|
|
import {ConfiguredSingletonFactory} from '../../../di/factory/ConfiguredSingletonFactory'
|
2022-03-29 06:14:46 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* A dependency injection factory that matches the abstract RedemptionCodeRepository class
|
|
|
|
* and produces an instance of the configured repository driver implementation.
|
|
|
|
*/
|
|
|
|
@FactoryProducer()
|
2022-09-26 16:34:23 +00:00
|
|
|
export class RedemptionCodeRepositoryFactory extends ConfiguredSingletonFactory<RedemptionCodeRepository> {
|
|
|
|
protected getConfigKey(): string {
|
|
|
|
return 'oauth2.repository.client'
|
2022-03-29 06:14:46 +00:00
|
|
|
}
|
|
|
|
|
2022-09-26 16:34:23 +00:00
|
|
|
protected getDefaultImplementation(): Instantiable<RedemptionCodeRepository> {
|
|
|
|
return CacheRedemptionCodeRepository
|
2022-03-29 06:14:46 +00:00
|
|
|
}
|
|
|
|
|
2022-09-26 16:34:23 +00:00
|
|
|
protected getAbstractImplementation(): any {
|
|
|
|
return RedemptionCodeRepository
|
2022-03-29 06:14:46 +00:00
|
|
|
}
|
|
|
|
}
|