Adding relations links to table

Change-Id: I5dd2d206a6da7fec163342f54f1143a7783f7758
diff --git a/src/app/datasources/helpers/store.helpers.spec.ts b/src/app/datasources/helpers/store.helpers.spec.ts
index 1793a7c..82a5e7a 100644
--- a/src/app/datasources/helpers/store.helpers.spec.ts
+++ b/src/app/datasources/helpers/store.helpers.spec.ts
@@ -39,6 +39,12 @@
     expect(service.updateCollection).toBeDefined();
   });
 
+
+  it('should convert a core model name in an URL', () => {
+    expect(service.urlFromCoreModel('Slice')).toBe('/core/slices');
+    expect(service.urlFromCoreModel('Xos')).toBe('/core/xosses');
+  });
+
   describe('when updating a collection', () => {
 
     beforeEach(() => {
diff --git a/src/app/datasources/helpers/store.helpers.ts b/src/app/datasources/helpers/store.helpers.ts
index 1458d81..aa18bd8 100644
--- a/src/app/datasources/helpers/store.helpers.ts
+++ b/src/app/datasources/helpers/store.helpers.ts
@@ -1,22 +1,26 @@
 import {BehaviorSubject} from 'rxjs';
 import * as _ from 'lodash';
+import * as pluralize from 'pluralize';
 import {IWSEvent} from '../websocket/global';
 import {IXosResourceService} from '../rest/model.rest';
-import {IXosConfigHelpersService} from '../../core/services/helpers/config.helpers';
 
 export interface IStoreHelpersService {
+  urlFromCoreModel(name: string): string;
   updateCollection(event: IWSEvent, subject: BehaviorSubject<any>): BehaviorSubject<any>;
 }
 
 export class StoreHelpers {
-  static $inject = ['ConfigHelpers', 'ModelRest'];
+  static $inject = ['ModelRest'];
 
   constructor (
-    private configHelpers: IXosConfigHelpersService,
     private modelRest: IXosResourceService
   ) {
   }
 
+  public urlFromCoreModel(name: string): string {
+    return `/core/${pluralize(name.toLowerCase())}`;
+  }
+
   public updateCollection(event: IWSEvent, subject: BehaviorSubject<any>): BehaviorSubject<any> {
     const collection: any[] = subject.value;
     const index: number = _.findIndex(collection, (i) => {
@@ -27,7 +31,7 @@
     const isDeleted: boolean = _.includes(event.msg.changed_fields, 'deleted');
 
     // generate a resource for the model
-    const endpoint = this.configHelpers.urlFromCoreModel(event.model);
+    const endpoint = this.urlFromCoreModel(event.model);
     const resource = this.modelRest.getResource(endpoint);
     const model = new resource(event.msg.object);
 
diff --git a/src/app/datasources/stores/model.store.ts b/src/app/datasources/stores/model.store.ts
index 21f42ac..fdcac63 100644
--- a/src/app/datasources/stores/model.store.ts
+++ b/src/app/datasources/stores/model.store.ts
@@ -4,25 +4,23 @@
 import {IWSEvent, IWSEventService} from '../websocket/global';
 import {IXosResourceService} from '../rest/model.rest';
 import {IStoreHelpersService} from '../helpers/store.helpers';
-import {IXosConfigHelpersService} from '../../core/services/helpers/config.helpers';
 
 export interface  IModelStoreService {
   query(model: string): Observable<any>;
 }
 
 export class ModelStore {
-  static $inject = ['WebSocket', 'StoreHelpers', 'ModelRest', 'ConfigHelpers'];
+  static $inject = ['WebSocket', 'StoreHelpers', 'ModelRest'];
   private _collections: any; // NOTE contains a map of {model: BehaviourSubject}
   constructor(
     private webSocket: IWSEventService,
     private storeHelpers: IStoreHelpersService,
     private ModelRest: IXosResourceService,
-    private ConfigHelpers: IXosConfigHelpersService
   ) {
     this._collections = {};
   }
 
-  query(model: string) {
+  public query(model: string) {
     // if there isn't already an observable for that item
     if (!this._collections[model]) {
       this._collections[model] = new BehaviorSubject([]); // NOTE maybe this can be created when we get response from the resource
@@ -41,9 +39,13 @@
     return this._collections[model].asObservable();
   }
 
+  public get(model: string, id: number) {
+    // TODO implement a get method
+  }
+
   private loadInitialData(model: string) {
     // NOTE check what is the correct pattern to pluralize this
-    const endpoint = this.ConfigHelpers.urlFromCoreModel(model);
+    const endpoint = this.storeHelpers.urlFromCoreModel(model);
     this.ModelRest.getResource(endpoint).query().$promise
       .then(
         res => {