37 lines
976 B
JavaScript
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;
|
|
})(); |