@rr0/data
Version:
RR0 data model
20 lines (19 loc) • 661 B
JavaScript
import { Organization } from "./Organization.js";
import { TypedDataFactory } from "../TypedDataFactory.js";
export class OrganizationFactory extends TypedDataFactory {
constructor(eventFactory) {
super(eventFactory, "org", ["index"]);
}
parse(orgJson) {
const base = super.parse(orgJson);
const id = base.id || orgJson.dirName.replaceAll("/", "-");
const org = this.create(id, orgJson);
org.title = base.title;
org.dirName = base.dirName;
org.parent = base.parent;
return org;
}
create(id, orgJson) {
return new Organization(id, orgJson.places, orgJson.kind);
}
}