angular.module('fbMocks') .factory('journalService', ['$q', function ( $q: ng.IQService): fb.IMockJournalService { var mockBase: fb.MockBase = new fb.MockBase($q); function resolve(type: fb.RequestType, identifier: string, returnValue: any): void { mockBase.resolve(mockBase.requestIdentifier(type, identifier), returnValue); }; function reject(type: fb.RequestType, identifier: string, returnValue: any): void { mockBase.reject(mockBase.requestIdentifier(type, identifier), returnValue); }; function getPendingRequests(): string[] { return mockBase.getPendingRequests(); }; function getJournal(maeklarObjektId: number): fb.Journal { var res = { $promise: mockBase.createRequest(mockBase.requestIdentifier(fb.RequestType.GET, '' + maeklarObjektId)) }; return new fb.Journal(res); } function startaOmJournal(maeklarObjektId: number): fb.Journal { var res = { $promise: mockBase.createRequest(mockBase.requestIdentifier(fb.RequestType.GET, '' + maeklarObjektId)) }; return new fb.Journal(res); } function getTotalProgress(maeklarObjektId: number): fb.JournalTotalProgress { var res = { $promise: mockBase.createRequest(mockBase.requestIdentifier(fb.RequestType.GET, 'progress/' + maeklarObjektId)) }; return new fb.JournalTotalProgress(res); } function getJournalPunkt(journalPunktDataId: number): fb.JournalPunkt { var res = { $promise: mockBase.createRequest(mockBase.requestIdentifier(fb.RequestType.GET, 'punkt/' + journalPunktDataId)) }; return new fb.JournalPunkt(res); } function addJournalPunkt(p: fb.JournalPunkt): fb.JournalPunkt { var res = { $promise: mockBase.createRequest(mockBase.requestIdentifier(fb.RequestType.ADD, 'punkt/')) }; return new fb.JournalPunkt(res); } function saveJournalPunkt(p: fb.JournalPunkt): fb.JournalPunkt { var res = { $promise: mockBase.createRequest(mockBase.requestIdentifier(fb.RequestType.SAVE, 'punkt/')) }; return new fb.JournalPunkt(res); } function removeJournalPunkt(journalPunktDataId: number): fb.ResourceBase { return { $promise: mockBase.createRequest(mockBase.requestIdentifier(fb.RequestType.REMOVE, 'punkt/' + journalPunktDataId)) }; } return { getJournal: getJournal, startaOmJournal: startaOmJournal, getTotalProgress: getTotalProgress, getJournalPunkt: getJournalPunkt, addJournalPunkt: addJournalPunkt, saveJournalPunkt: saveJournalPunkt, removeJournalPunkt: removeJournalPunkt, resolve: resolve, reject: reject, getPendingRequests: getPendingRequests }; }]);