PoiService has mismatching annotation:
services.factory('PoiService', ['SETTINGS', require('./poiService')])
service definition and
module.exports = function ($http, SETTINGS) { ... }
function signature.
For this reason it may be not advisable to keep factory function and service definition in separate files. And even if there's a need to do this, it is preferable to use named function and $inject annotation instead of inline array annotation:
services.factory('PoiService', require('./poiService'))
...
poiService.$inject = ['$http', 'SETTINGS'];
function poiService($http, SETTINGS) { ... }
module.exports = poiService;