RoutesMaker/Public/ecma/Managers/RoutesManager.ecma.js

37 lines
976 B
JavaScript

"use strict";
import {RouteModel} from "../Models/RouteModel.ecma.js";
export const RoutesManager = (function(){
const RoutesManager = function(routes_maker){
const routes = {};
this.get = key => routes[key = RouteModel.to_key(key)] ? routes[key] : null;
this.add = (name, key = null) => {
let route = null;
(key || (key = RouteModel.to_key(name))) &&
!routes[key] &&
(route = routes[key] = new RouteModel(routes_maker, name, key));
return route;
};
this.remove = key => {
if(routes[key = RouteModel.to_key(key)])
delete routes[key];
};
this.get_data = () => Object.keys(routes).reduce((dictionary, key) => {
dictionary[key] = [routes[key].name, routes[key].dots.map(dot => [dot.longitude, dot.latitude])];
return dictionary;
}, {});
};
return RoutesManager;
})();