apim-developer-portal2
Version:
API management developer portal
30 lines (23 loc) • 1.31 kB
text/typescript
import { ViewModelBinder } from "@paperbits/common/widgets";
import { ResetPasswordViewModel } from "./resetPasswordViewModel";
import { ResetPasswordModel } from "../resetPasswordModel";
import { Bag } from "@paperbits/common";
import { ISettingsProvider } from "@paperbits/common/configuration/ISettingsProvider";
export class ResetPasswordViewModelBinder implements ViewModelBinder<ResetPasswordModel, ResetPasswordViewModel> {
constructor(private readonly settingsProvider: ISettingsProvider) {}
public async modelToViewModel(model: ResetPasswordModel, viewModel?: ResetPasswordViewModel, bindingContext?: Bag<any>): Promise<ResetPasswordViewModel> {
if (!viewModel) {
viewModel = new ResetPasswordViewModel();
viewModel["widgetBinding"] = {
displayName: "Password: reset form",
model: model
};
}
const useHipCaptcha = await this.settingsProvider.getSetting<boolean>("useHipCaptcha");
viewModel.runtimeConfig(JSON.stringify({ requireHipCaptcha: useHipCaptcha === undefined ? true : useHipCaptcha }));
return viewModel;
}
public canHandleModel(model: ResetPasswordModel): boolean {
return model instanceof ResetPasswordModel;
}
}