Total Complexity | 1 |
Complexity/F | 1 |
Lines of Code | 32 |
Function Count | 1 |
Duplicated Lines | 0 |
Ratio | 0 % |
Changes | 0 |
1 | import {IObserver} from '../Observer/Observer'; |
||
2 | import Manager from './Manager'; |
||
3 | import Translator from './Translator'; |
||
4 | |||
5 | interface IRequest { |
||
6 | languageCode: string; |
||
7 | } |
||
8 | |||
9 | interface IResponse { |
||
10 | } |
||
11 | |||
12 | export interface ILanguageSetup { |
||
13 | languageCode: string |
||
14 | translator: Translator |
||
15 | } |
||
16 | |||
17 | export default class ChangeLanguageSetup { |
||
18 | protected setupObserver: IObserver<ILanguageSetup>; |
||
19 | protected manager: Manager; |
||
20 | |||
21 | constructor(setupObserver: IObserver<ILanguageSetup>, manager: Manager) { |
||
22 | this.setupObserver = setupObserver; |
||
23 | this.manager = manager; |
||
24 | } |
||
25 | |||
26 | async interact(request: IRequest, response: IResponse): Promise<void> { |
||
27 | const languageCode: string = request.languageCode; |
||
28 | const translator: Translator = await this.manager.getTranslator(languageCode); |
||
29 | |||
30 | this.setupObserver.value = {languageCode: languageCode, translator: translator}; |
||
31 | } |
||
32 | } |