src/app/components/db/db.service.mock.js
'use strict';
(function (angular) {
var deliveryRounds = [
{
id: 'round1',
key: ['State1', '2015-01-01'],
value: {
roundCode: 'RC1',
endDate: new Date('2015-01-13'),
id: 'round1',
state: 'State1',
startDate: new Date('2015-01-01')
}
},
{
id: 'round2',
key: ['State2', '2015-01-01'],
value: {
roundCode: 'RC1',
endDate: new Date('2015-01-13'),
id: 'round1',
state: 'State1',
startDate: new Date('2015-01-01')
}
}
]
var reportByRoundMock = [
{
id: '1b03d0925529656b4c83caed460aa54e',
key: [
'BA-008-2015',
'1970-01-01'
],
value: {
status: 'Canceled: Staff availability',
zone: 'Nassarawa',
onTime: 1,
billable: 0,
workingCCE: 1,
delivered: 0,
howMuchLate: 'UNKNOWN',
lag: 2
}
},
{
id: '1b03d0925529656b4c83caed460e055b',
key: [
'BA-1-2015',
'1970-01-01'
],
value: {
status: 'Upcoming: 1st Attempt',
zone: 'Nassarawa',
onTime: 1,
billable: 0,
workingCCE: 1,
delivered: 0,
howMuchLate: 'UNKNOWN',
lag: 1
}
},
{
id: '5228bb1535f9cad3d3f6a6133ed9157f',
key: [
'BA-1-2015',
'2015-08-03'
],
value: {
status: 'Success: 1st Attempt',
zone: 'Southern',
onTime: 1,
billable: 1,
workingCCE: 1,
delivered: 1,
howMuchLate: -15943664,
lag: 0
}
}
]
var dailyDeliveries = [
{
id: 'delivery1',
key: ['round1', 'driver1@example.com', '2015-01-01', 1],
value: {
id: 'delivery1',
drop: 1,
date: new Date('2015-01-01'),
driverID: 'driver1@example.com',
status: 'Success: 1st Attempt',
window: '9AM-11AM',
signature: {
dataUrl: 'signature1',
signedAt: '2015-01-01T08:42:38.708Z'
},
facility: {
id: 'facility1',
name: 'Facility 1',
ward: 'Ward 1',
lga: 'LGA 1',
zone: 'Zone 1',
contact: 'Facility 1 Contact',
phoneNo: '123456789'
}
}
},
{
id: 'delivery2',
key: ['round1', 'driver1@example.com', '2015-01-01', 2],
value: {
drop: 2,
date: new Date('2015-01-01'),
id: 'delivery2',
driverID: 'driver1@example.com',
status: 'Failed: Staff availability',
window: '11AM-1PM',
facility: {
id: 'facility2',
name: 'Facility 2',
ward: 'Ward 2',
lga: 'LGA 1',
zone: 'Zone 1',
contact: 'Facility 2 Contact',
phoneNo: '234567891'
}
}
}
]
var byRoundMock = [
{
'id': 'id1',
'key': ['round1', 'ZONEID'],
'value': {
'status': 'success',
'date': '2016-01-29',
'zone': 'Zone 1',
'lga': 'LGA 1',
'ward': 'Kuki',
'deliveryRoundID': 'round1',
'count': 1,
driverID: 'driver.name@domain.com'
}
},
{
'id': 'id2',
'key': ['round1', 'ZONEID'],
'value': {
'status': 'success',
'date': '2016-01-29',
'zone': 'Zone 1',
'lga': 'LGA 1',
'ward': 'Ward 1',
'deliveryRoundID': 'round1',
'count': 1,
driverID: 'driver.name@domain.com'
}
},
{
'id': 'id3',
'key': ['round2', 'ZONEID'],
'value': {
'status': 'success',
'date': '2016-01-29',
'zone': 'Zone 2',
'lga': 'LGA 2',
'ward': 'Ward 2',
'deliveryRoundID': 'round2',
'count': 1,
driverID: 'driver.name@domain.com'
}
}
]
var byDateMock = [
{
'id': 'id1',
'key': ['2015-04-27', 'round1', 'ZONEID'],
value: byRoundMock[0].value
},
{
'id': 'id2',
'key': ['2015-04-27', 'round1', 'ZONEID'],
value: byRoundMock[1].value
},
{
'id': 'id3',
'key': ['2015-04-27', 'round1', 'ZONEID'],
value: byRoundMock[2].value
}
]
var locationMock = [
{
'id': 'ZONEID-STATEID',
'key': ['3', 'State1'],
'value': null,
'doc': {
'_id': 'ZONEID-STATEID',
'doc_type': 'location',
'level': '3',
'name': 'Zone 1',
'ancestors': ['COUNTRYID', 'ZONEID', 'STATEID']
}
}
]
var returnRouteMock = [
{
'_id': 'rr-1',
'deliveryRoundID': 'KN-21-2015',
'driverID': 'abdullahi@example.com',
'deliveryDate': '2015-05-21',
'store': {
'_id': 'NASSARAWA-ZONAL-STORE',
'name': 'Nassarawa Zonal Store'
},
'estimatedDistance': 90,
'actualDistance': 85,
'doc_type': 'return-route'
},
{
'_id': 'rr-2',
'deliveryRoundID': 'KN-21-2015',
'driverID': 'abdullahi@example.com',
'deliveryDate': '2015-05-08',
'store': {
'_id': 'NASSARAWA-ZONAL-STORE',
'name': 'Nassarawa Zonal Store'
},
'estimatedDistance': 115,
'actualDistance': 120,
'doc_type': 'return-route'
},
{
'_id': 'rr-3',
doc: {
'deliveryRoundID': 'KN-21-2015',
'driverID': 'bashir@example.com',
'deliveryDate': '2015-05-21',
'store': {
'_id': 'NASSARAWA-ZONAL-STORE',
'name': 'Nassarawa Zonal Store'
},
'estimatedDistance': 120,
'actualDistance': 150,
'doc_type': 'return-route'
}
}
]
var facilityCCEStatusMock = [
{
'id': 'id1',
'key': ['2015-01-01', 'round1'],
'value': {
'status': 'upcoming',
'reason': '1st attempt',
'workingCCE': true,
'name': 'Facility 1',
'zone': 'Zone 1',
'lga': 'LGA 1',
'ward': 'Ward 1'
}
},
{
'id': 'id2',
'key': ['2015-01-01', 'round1'],
'value': {
'status': 'success',
'reason': '1st attempt',
'workingCCE': false,
'name': 'Facility 2',
'zone': 'Zone 2',
'lga': 'LGA 1',
'ward': 'Ward 2'
}
},
{
'id': 'id3',
'key': ['2015-01-01', 'round2'],
'value': {
'status': 'failed',
'reason': '1st attempt',
'workingCCE': true,
'name': 'Facility 1',
'zone': 'Zone 1',
'lga': 'LGA 1',
'ward': 'Ward 1'
}
}
]
var deliveryRoundCount = [
{
id: 'State1',
key: null,
value: deliveryRounds.length
}
]
var dailyDeliveryCount = [
{
id: 'round1',
key: null,
value: dailyDeliveries.length
}
]
var emailReceiversMock = [
{
id: '7ab9f02f1d61f74666517af7aa001d94',
key: 'all',
value: {
_id: '7ab9f02f1d61f74666517af7aa001d94',
_rev: '10-0ab1fd86f9ecebbf362add6aef19cb44',
active: true,
doc_type: 'alert-receiver',
phones: [ ],
emails: [
'adam@ehealthafrica.org'
],
name: 'Adam Thompson',
locations: [
'all'
]
}
},
{
id: '4cd167a74113b70dced1395b6a000185',
key: 'BA',
value: {
_id: '4cd167a74113b70dced1395b6a000185',
_rev: '2-931aa691f68b6bcc0d255e0628bed74c',
active: true,
doc_type: 'alert-receiver',
phones: [ ],
emails: [
'usman.inuwa@ehealthnigeria.org'
],
name: 'Usman Inuwa',
locations: [
'KN',
'BA'
]
}
},
{
id: '4cd167a74113b70dced1395b6a000185',
key: 'KN',
value: {
_id: '4cd167a74113b70dced1395b6a000185',
_rev: '2-931aa691f68b6bcc0d255e0628bed74c',
active: true,
doc_type: 'alert-receiver',
phones: [ ],
emails: [
'usman.inuwa@ehealthnigeria.org'
],
name: 'Usman Inuwa',
locations: [
'KN',
'BA'
]
}
}
]
var packingReportMock = [
{
'id': 'id1',
'key': ['2015-01-01', 'round1'],
'value': {
'zone': 'Zone 1',
'lga': 'LGA 1',
'ward': 'Ward 1',
'name': 'Name 1',
'id': 'round1',
'contact': 'Sani Umar',
'phoneNo': 8065076683,
'productID': 'product1',
'expectedQty': 132,
'baseUOM': 'Units',
'presentation': 1,
'storageID': 'product-storage/dry',
'returnedQty': 0,
'onHandQty': 132,
'deliveredQty': 0
}
},
{
'id': 'id2',
'key': ['2015-01-01', 'round1'],
'value': {
'zone': 'Zone 1',
'lga': 'LGA 1',
'ward': 'Ward 1',
'name': 'Name 1',
'id': 'round1',
'contact': 'Sani Umar',
'phoneNo': 8065076683,
'productID': 'product2',
'expectedQty': 132,
'baseUOM': 'Units',
'presentation': 1,
'storageID': 'product-storage/dry',
'returnedQty': 0,
'onHandQty': 132,
'deliveredQty': 0
}
}
]
var productsMock = [
{
'id': 'product1',
'key': 'product1',
'value': null,
'doc': {
'_id': 'product1',
'doc_type': 'product',
'name': 'Product 1',
'code': 'product1',
'description': '1',
'baseUOM': 'Units',
'storageID': 'product-storage/dry'
}
},
{
'id': 'product2',
'key': 'product2',
'value': null,
'doc': {
'_id': 'product2',
'doc_type': 'product',
'name': 'Product 2',
'code': 'product2',
'description': '1',
'baseUOM': 'Units',
'storageID': 'product-storage/dry'
}
}
]
angular.module('dbServiceMock', [])
.constant('dailyDeliveries', dailyDeliveries)
.constant('deliveryRounds', deliveryRounds)
.constant('dailyDeliveriesByDate', byDateMock)
.constant('dailyDeliveriesByRound', byRoundMock)
.factory('dbService', function ($q) {
return {
getView: function (view) {
var response = null
if (['reports/delivery-rounds', 'dashboard-delivery-rounds/by-state-and-end-date', 'delivery-rounds/by-state-code'].indexOf(view) !== -1) {
response = {
rows: deliveryRounds
}
} else if (['dashboard-delivery-rounds/report-by-date'].indexOf(view) !== -1) {
response = {
rows: byDateMock
}
} else if (['dashboard-delivery-rounds/report-by-round'].indexOf(view) !== -1) {
response = {
rows: reportByRoundMock
}
} else if (['reports/by-rounds'].indexOf(view) !== -1) {
response = {
rows: byRoundMock
}
} else if (['location/by-level', 'location/by-level-and-id', 'location/by-level-and-ancestors-id'].indexOf(view) !== -1
) {
response = {
rows: locationMock
}
} else if (['dashboard-delivery-rounds/alert-receivers'].indexOf(view) !== -1) {
response = {
rows: emailReceiversMock,
docs: emailReceiversMock
}
} else if (view === 'dashboard-delivery-rounds/report-by-date') {
response = {
rows: byDateMock
}
} else if (view === 'facilities/cce-status-by-date') {
response = {
rows: facilityCCEStatusMock
}
} else if (view === 'reports/delivery-rounds-count') {
response = {
rows: deliveryRoundCount
}
} else if (view === 'reports/daily-deliveries-count') {
response = {
rows: dailyDeliveryCount
}
} else if (view === 'reports/daily-deliveries') {
response = {
rows: dailyDeliveries
}
} else if (['reports/packing-by-date', 'reports/packing-by-round'].indexOf(view) !== -1) {
response = {
rows: packingReportMock
}
} else if (view === 'products/products') {
response = {
rows: productsMock
}
} else if (['return-route/daily-deliveries-by-round-id', 'return-route/by-round-id'].indexOf(view) !== -1) {
response = {
rows: returnRouteMock
}
}
var deferred = $q.defer()
deferred.resolve(response)
return deferred.promise
},
get: function (id) {
var deferred = $q.defer()
deferred.resolve({
_id: id
})
return deferred.promise
},
save: function (doc) {
var deferred = $q.defer()
deferred.resolve(angular.extend(doc, {
_rev: '1-01'
}))
return deferred.promise
},
insertWithId: function (doc, id) {
doc._id = id
var deferred = $q.defer()
deferred.resolve(angular.extend(doc, {
_rev: '1-01'
}))
return deferred.promise
},
update: function (doc) {
var deferred = $q.defer()
deferred.resolve(angular.extend(doc, {
_rev: '1-01'
}))
return deferred.promise
},
saveDocs: function (docs) {
var deferred = $q.defer()
deferred.resolve(docs)
return deferred.promise
},
insert: function (doc) {
var deferred = $q.defer()
deferred.resolve(doc)
return deferred.promise
}
}
})
angular.module('localForageMock', [])
.service('$localForage', function ($q) {
var localStorage = {}
this.localStorage = localStorage
this.getItem = function (key) {
return $q.when(localStorage[key])
}
this.setItem = function (key, value) {
localStorage[key] = value
return $q.when(localStorage)
}
this.removeItem = function (listOrString) {
function remove (key) {
delete localStorage[key]
}
if (angular.isArray(listOrString)) {
var i = listOrString.length
while (i--) {
remove(listOrString[i])
}
}
if (angular.isString(listOrString)) {
remove(listOrString)
}
return $q.when(true)
}
})
angular.module('localForageMock', [])
.service('$localForage', function ($q) {
var localStorage = {}
this.localStorage = localStorage
this.getItem = function (key) {
return $q.when(localStorage[key])
}
this.setItem = function (key, value) {
localStorage[key] = value
return $q.when(localStorage)
}
this.removeItem = function (listOrString) {
function remove (key) {
delete localStorage[key]
}
if (angular.isArray(listOrString)) {
var i = listOrString.length
while (i--) {
remove(listOrString[i])
}
}
if (angular.isString(listOrString)) {
remove(listOrString)
}
return $q.when(true)
}
})
angular.module('localForageMock', [])
.service('$localForage', function ($q) {
var localStorage = {}
this.localStorage = localStorage
this.getItem = function (key) {
return $q.when(localStorage[key])
}
this.setItem = function (key, value) {
localStorage[key] = value
return $q.when(localStorage)
}
this.removeItem = function (listOrString) {
function remove (key) {
delete localStorage[key]
}
if (angular.isArray(listOrString)) {
var i = listOrString.length
while (i--) {
remove(listOrString[i])
}
}
if (angular.isString(listOrString)) {
remove(listOrString)
}
return $q.when(true)
}
})
}(angular))