apim-developer-portal1
Version:
API management developer portal
36 lines (26 loc) • 1.03 kB
text/typescript
import { Contract } from "@paperbits/common";
import { IModelBinder } from "@paperbits/common/editing";
import { SignupModel } from "./signupModel";
import { SignupContract } from "./signupContract";
const nodeType = "signup";
const oldNodeType = "user-signup";
export class SignupModelBinder implements IModelBinder<SignupModel> {
public canHandleContract(contract: Contract): boolean {
return contract.type === nodeType || contract.type === oldNodeType;
}
public canHandleModel(model: Object): boolean {
return model instanceof SignupModel;
}
public async contractToModel(contract: SignupContract): Promise<SignupModel> {
const model = new SignupModel();
model.requireHipCaptcha = contract.requireHipCaptcha;
return model;
}
public modelToContract(model: SignupModel): Contract {
const contract: SignupContract = {
type: nodeType,
requireHipCaptcha: model.requireHipCaptcha
};
return contract;
}
}