delivery-tracker
Advanced tools
Comparing version 0.8.0 to 0.8.1
@@ -8,3 +8,3 @@ #! /usr/bin/env node | ||
.arguments('<tracecode>') | ||
.option('-c, --courier <courier>', 'Courier Namespace', /^(KOREAPOST|ECARGO|FEDEX|PANTOS|RINCOS|ROYALMAIL)$/i) | ||
.option('-c, --courier <courier>', 'Courier Namespace', /^(KOREAPOST|ECARGO|FEDEX|PANTOS|RINCOS|AUSPOST|ROYALMAIL)$/i) | ||
.action(function (tracecode) { | ||
@@ -19,3 +19,3 @@ if (!tracker.COURIER[program.courier]) { | ||
var courier = tracker.courier(program.courier) | ||
var courier = tracker.courier(tracker.COURIER[program.courier].CODE) | ||
courier.trace(tracecode, function (err, result) { | ||
@@ -22,0 +22,0 @@ if (err) { |
@@ -6,2 +6,3 @@ 'use strict' | ||
var parseString = require('xml2js').parseString | ||
var moment = require('moment') | ||
@@ -70,3 +71,2 @@ var tracker = require('../') | ||
if (podNatnCd === 'GB') { | ||
// @TODO | ||
externalCourier = tracker.COURIER.ROYALMAIL // http://www.royalmail.com/portal/rm/track?trackNumber= | ||
@@ -99,2 +99,5 @@ } else if (podNatnCd === 'AU') { | ||
} | ||
if (!externalCourier && externalNumber) { | ||
throw new Error('shipment does not support.') | ||
} | ||
return { | ||
@@ -134,3 +137,5 @@ courier: externalCourier, | ||
var previousTime = null | ||
for (var i = 0, len = data.actEvntLoclYmd.length; i < len; i++) { | ||
var time = moment([data.actEvntLoclYmd[i], data.actEvntLoclHm[i]].join('T'), 'YYYY-MM-DDTHH:mm') | ||
var checkpoint = { | ||
@@ -141,3 +146,4 @@ courier: PANTOS_COURIER, | ||
status: tracker.STATUS.IN_TRANSIT, | ||
time: [data.actEvntLoclYmd[i], data.actEvntLoclHm[i]].join('T') | ||
time: time.isValid() ? time.format('YYYY-MM-DDTHH:mm') : '', | ||
estimateTime: time.isValid() ? time.format('YYYY-MM-DDTHH:mm') : previousTime | ||
} | ||
@@ -149,2 +155,7 @@ | ||
checkpoints.push(checkpoint) | ||
// time 값이 올바르지 않는 경우 처리. | ||
if (time.isValid()) { | ||
previousTime = time.format('YYYY-MM-DDTHH:mm') | ||
} | ||
} | ||
@@ -184,3 +195,3 @@ | ||
result.number = summary.number | ||
if (summary.external) { | ||
if (summary.external && summary.external.number) { | ||
return trackingExternalCheckpoint(summary.external, function (err, checkpoints) { | ||
@@ -190,3 +201,2 @@ if (err) { | ||
} | ||
result.checkpoints = checkpoints | ||
@@ -215,3 +225,3 @@ cb() | ||
result.checkpoints.sort(function (a, b) { | ||
return (+new Date(b.time)) - (+new Date(a.time)) | ||
return (+new Date(b.time ? b.estimateTime : b.time)) - (+new Date(a.time ? a.estimateTime : a.time)) | ||
}) | ||
@@ -218,0 +228,0 @@ } else { |
@@ -46,3 +46,3 @@ 'use strict' | ||
status: tracker.STATUS.IN_TRANSIT, | ||
time: moment(cols.eq(0).text().trim() + cols.eq(1).text().trim(), 'DD-MM-YYHH:mm').format('YYYY-MM-DDTHH:mm:ss') | ||
time: moment(cols.eq(0).text().trim() + cols.eq(1).text().trim(), 'DD-MMM-YYYYHH:mm').format('YYYY-MM-DDTHH:mm:ss') | ||
} | ||
@@ -49,0 +49,0 @@ |
'use strict' | ||
var moment = require('moment') | ||
var _ = require('lodash') | ||
@@ -94,7 +95,11 @@ // cache | ||
var status = STATUS.PENDING | ||
if (checkpoints.length > 0) { | ||
status = checkpoints[0].status | ||
var latestCheckpoint = _.first(_.filter(checkpoints, function (o) { | ||
return o.time | ||
})) | ||
if (latestCheckpoint) { | ||
status = latestCheckpoint.status | ||
if ([STATUS.IN_TRANSIT, STATUS.FAIL_ATTEMPT].indexOf(status) !== -1) { | ||
if ((moment().unix() - moment(checkpoints[0].time).unix()) > 259200) { | ||
if ((moment().unix() - moment(latestCheckpoint.time).unix()) > 259200) { | ||
status = STATUS.EXCEPTION | ||
@@ -101,0 +106,0 @@ } |
{ | ||
"name": "delivery-tracker", | ||
"version": "0.8.0", | ||
"version": "0.8.1", | ||
"author": { | ||
@@ -5,0 +5,0 @@ "name": "egg", |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
34993
871