mirror of
https://github.com/System-End/theseus.git
synced 2026-04-19 16:38:18 +00:00
38 lines
1.3 KiB
Ruby
38 lines
1.3 KiB
Ruby
class Tracking
|
|
class << self
|
|
TRACKING_URL_FORMATS = {
|
|
asendia: "https://a1.asendiausa.com/tracking/?trackingnumber=%s",
|
|
usps: "https://tools.usps.com/go/TrackConfirmAction_input?strOrigTrackNum=%s",
|
|
ups: "https://www.ups.com/track?loc=en_US&tracknum=%s&requester=ST/trackdetails",
|
|
fedex: "https://www.fedex.com/fedextrack/?trknbr=%s",
|
|
generic: "https://parcelsapp.com/en/tracking/%s"
|
|
}.freeze
|
|
|
|
def tracking_url_for(format, trknum)
|
|
return nil if !trknum || trknum.empty? # no tracking link for FCM(I) :-P
|
|
|
|
TRACKING_URL_FORMATS[format] % trknum
|
|
end
|
|
|
|
def get_format_by_zenv_info(carrier:, service:)
|
|
case carrier # figure out provider
|
|
when "Asendia"
|
|
:asendia
|
|
when "UPS", "UPS by ShipStation" # whyyyy
|
|
:ups
|
|
when /^Stamps\.com( \(Zenventory USPS\))?$/
|
|
case service
|
|
when /GlobalPost .* Intl/
|
|
:generic # these have better tracking than parcels at epgshipping.com but i can't figure out how to generate a URL to their portal
|
|
else
|
|
:usps # i think USPS is the only other carrier zenv uses SDC for?
|
|
end
|
|
when "FedEx"
|
|
:fedex
|
|
else
|
|
Rails.logger.warn("missing tracking format for carrier #{carrier}")
|
|
:generic # not a huge parcels fan but it'll catch everything else
|
|
end
|
|
end
|
|
end
|
|
end
|