1 | 'use strict';
|
2 |
|
3 | var Q = require('q');
|
4 |
|
5 | function Finder(dbModel) {
|
6 | this.findCodeForNumber = function (number) {
|
7 | var defer = Q.defer();
|
8 | dbModel.findOne(_createQuery(), function (err, doc) {
|
9 | if (err) {
|
10 | defer.reject(err);
|
11 | } else {
|
12 | defer.resolve(doc ? doc.region.code : 'NULL');
|
13 | }
|
14 | });
|
15 |
|
16 | function _createQuery() {
|
17 | var codeChunk = number.slice(1, 4);
|
18 | var numberChunk = number.slice(4);
|
19 | return {
|
20 | code: codeChunk,
|
21 | begin: {
|
22 | $lte: numberChunk
|
23 | },
|
24 | end: {
|
25 | $gte: numberChunk
|
26 | }
|
27 | }
|
28 | }
|
29 |
|
30 | return defer.promise;
|
31 | }
|
32 | }
|
33 | module.exports = Finder; |
\ | No newline at end of file |