freight_kit 0.1.15 → 0.1.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile.lock +96 -43
- data/README.md +28 -6
- data/VERSION +1 -1
- data/configuration/carriers/abfs.yml +124 -0
- data/configuration/carriers/btvp.yml +84 -0
- data/configuration/carriers/ccyq.yml +121 -0
- data/configuration/carriers/clni.yml +113 -0
- data/configuration/carriers/cnwy.yml +113 -0
- data/configuration/carriers/ctbv.yml +117 -0
- data/configuration/carriers/dcha.yml +105 -0
- data/configuration/carriers/dlds.yml +111 -0
- data/configuration/carriers/dphe.yml +130 -0
- data/configuration/carriers/drrq.yml +131 -0
- data/configuration/carriers/fcsy.yml +102 -0
- data/configuration/carriers/fwda.yml +137 -0
- data/configuration/carriers/jfj_transportation.yml +2 -0
- data/configuration/carriers/mtvl.yml +12 -0
- data/configuration/carriers/numk.yml +14 -0
- data/configuration/carriers/otcl.yml +124 -0
- data/configuration/carriers/pens.yml +22 -0
- data/configuration/carriers/rdfs.yml +142 -0
- data/configuration/carriers/saia.yml +129 -0
- data/configuration/carriers/sefl.yml +115 -0
- data/configuration/carriers/totl.yml +111 -0
- data/configuration/carriers/tqyl.yml +28 -0
- data/configuration/carriers/wrds.yml +20 -0
- data/configuration/platforms/carrier_logistics.yml +25 -0
- data/configuration/platforms/next.yml +12 -0
- data/configuration/platforms/the_great_information_factory.yml +122 -0
- data/freight_kit.gemspec +9 -7
- data/lib/freight_kit/api_clients/soap_client.rb +70 -0
- data/lib/freight_kit/api_clients.rb +3 -0
- data/lib/freight_kit/carriers/abfs.rb +421 -0
- data/lib/freight_kit/carriers/btvp.rb +29 -0
- data/lib/freight_kit/carriers/ccyq.rb +317 -0
- data/lib/freight_kit/carriers/clni.rb +396 -0
- data/lib/freight_kit/carriers/cnwy.rb +327 -0
- data/lib/freight_kit/carriers/ctbv.rb +53 -0
- data/lib/freight_kit/carriers/dcha.rb +76 -0
- data/lib/freight_kit/carriers/dlds.rb +49 -0
- data/lib/freight_kit/carriers/dphe.rb +474 -0
- data/lib/freight_kit/carriers/drrq.rb +580 -0
- data/lib/freight_kit/carriers/fcsy.rb +57 -0
- data/lib/freight_kit/carriers/fwda.rb +744 -0
- data/lib/freight_kit/carriers/jfj_transportation.rb +13 -0
- data/lib/freight_kit/carriers/mtvl.rb +34 -0
- data/lib/freight_kit/carriers/numk.rb +58 -0
- data/lib/freight_kit/carriers/otcl.rb +528 -0
- data/lib/freight_kit/carriers/pens.rb +204 -0
- data/lib/freight_kit/carriers/rdfs.rb +521 -0
- data/lib/freight_kit/carriers/saia.rb +438 -0
- data/lib/freight_kit/carriers/sefl.rb +342 -0
- data/lib/freight_kit/carriers/totl.rb +172 -0
- data/lib/freight_kit/carriers/tqyl.rb +339 -0
- data/lib/freight_kit/carriers/wrds.rb +246 -0
- data/lib/freight_kit/carriers.rb +26 -0
- data/lib/freight_kit/helpers/documentable.rb +13 -0
- data/lib/freight_kit/helpers/pickupable.rb +39 -0
- data/lib/freight_kit/helpers/rateable.rb +28 -0
- data/lib/freight_kit/helpers/trackable.rb +25 -0
- data/lib/freight_kit/helpers.rb +6 -0
- data/lib/freight_kit/platforms/carrier_logistics.rb +450 -0
- data/lib/freight_kit/platforms/next.rb +101 -0
- data/lib/freight_kit/platforms/the_great_information_factory.rb +528 -0
- data/lib/freight_kit/platforms.rb +5 -0
- data/lib/freight_kit.rb +20 -1
- metadata +94 -14
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
:accessorials:
|
|
2
|
+
:mappable:
|
|
3
|
+
:airport_delivery: LimitedAccessLocation
|
|
4
|
+
:airport_pickup: LimitedAccessLocationPU
|
|
5
|
+
:amusement_park_delivery: LimitedAccessLocation
|
|
6
|
+
:amusement_park_pickup: LimitedAccessLocationPU
|
|
7
|
+
:appointment_delivery: ArrivalNotice/Appointment
|
|
8
|
+
:cemetery_delivery: LimitedAccessLocation
|
|
9
|
+
:cemetery_pickup: LimitedAccessLocationPU
|
|
10
|
+
:church_delivery: LimitedAccessLocation
|
|
11
|
+
:church_pickup: LimitedAccessLocationPU
|
|
12
|
+
:construction_delivery: LimitedAccessLocation
|
|
13
|
+
:construction_pickup: LimitedAccessLocationPU
|
|
14
|
+
:convention_delivery: TradeShowDelivery
|
|
15
|
+
:convention_pickup: TradeShowPickup
|
|
16
|
+
:driver_assist: WhiteGlove
|
|
17
|
+
:fair_delivery: LimitedAccessLocation
|
|
18
|
+
:fair_pickup: LimitedAccessLocationPU
|
|
19
|
+
:government_delivery: LimitedAccessLocation
|
|
20
|
+
:government_pickup: LimitedAccessLocationPU
|
|
21
|
+
:inside_delivery: InsideDelivery
|
|
22
|
+
:inside_pickup: InsidePickup
|
|
23
|
+
:jobsite_delivery: LimitedAccessLocation
|
|
24
|
+
:jobsite_pickup: LimitedAccessLocationPU
|
|
25
|
+
:liftgate_delivery: LiftgateService
|
|
26
|
+
:liftgate_pickup: LiftgateServicePU
|
|
27
|
+
:marina_delivery: LimitedAccessLocation
|
|
28
|
+
:marina_pickup: LimitedAccessLocationPU
|
|
29
|
+
:military_site_delivery: LimitedAccessLocation
|
|
30
|
+
:military_site_pickup: LimitedAccessLocationPU
|
|
31
|
+
:mine_site_delivery: LimitedAccessLocation
|
|
32
|
+
:mine_site_pickup: LimitedAccessLocationPU
|
|
33
|
+
:prison_delivery: LimitedAccessLocation
|
|
34
|
+
:prison_pickup: LimitedAccessLocationPU
|
|
35
|
+
:residential_delivery: ResidentialDelivery
|
|
36
|
+
:residential_pickup: ResidentialPickup
|
|
37
|
+
:school_delivery: LimitedAccessLocation
|
|
38
|
+
:school_pickup: LimitedAccessLocationPU
|
|
39
|
+
:steel_mill_delivery: LimitedAccessLocation
|
|
40
|
+
:steel_mill_pickup: LimitedAccessLocationPU
|
|
41
|
+
:storage_facility_delivery: LimitedAccessLocation
|
|
42
|
+
:storage_facility_pickup: LimitedAccessLocationPU
|
|
43
|
+
:university_delivery: LimitedAccessLocation
|
|
44
|
+
:university_pickup: LimitedAccessLocationPU
|
|
45
|
+
:utility_site_delivery: LimitedAccessLocation
|
|
46
|
+
:utility_site_pickup: LimitedAccessLocationPU
|
|
47
|
+
# May be inaccurate
|
|
48
|
+
:unquotable:
|
|
49
|
+
- :athletic_facility_delivery
|
|
50
|
+
- :athletic_facility_pickup
|
|
51
|
+
- :brewery_delivery
|
|
52
|
+
- :brewery_pickup
|
|
53
|
+
- :dock_dropoff
|
|
54
|
+
- :dock_pickup
|
|
55
|
+
- :farm_delivery
|
|
56
|
+
- :farm_pickup
|
|
57
|
+
- :fitness_center_delivery
|
|
58
|
+
- :fitness_center_pickup
|
|
59
|
+
- :golf_course_delivery
|
|
60
|
+
- :golf_course_pickup
|
|
61
|
+
- :grocery_store_delivery
|
|
62
|
+
- :grocery_store_pickup
|
|
63
|
+
- :grocery_warehouse_delivery
|
|
64
|
+
- :grocery_warehouse_pickup
|
|
65
|
+
- :hospital_delivery
|
|
66
|
+
- :hospital_pickup
|
|
67
|
+
- :hotel_delivery
|
|
68
|
+
- :hotel_pickup
|
|
69
|
+
- :inspection_site_delivery
|
|
70
|
+
- :inspection_site_pickup
|
|
71
|
+
- :mall_delivery
|
|
72
|
+
- :mall_pickup
|
|
73
|
+
- :motel_delivery
|
|
74
|
+
- :motel_pickup
|
|
75
|
+
- :nursing_home_delivery
|
|
76
|
+
- :nursing_home_pickup
|
|
77
|
+
- :park_delivery
|
|
78
|
+
- :park_pickup
|
|
79
|
+
- :ranch_delivery
|
|
80
|
+
- :ranch_pickup
|
|
81
|
+
- :reservation_delivery
|
|
82
|
+
- :reservation_pickup
|
|
83
|
+
- :resort_delivery
|
|
84
|
+
- :resort_pickup
|
|
85
|
+
- :restaurant_delivery
|
|
86
|
+
- :restaurant_pickup
|
|
87
|
+
- :winery_delivery
|
|
88
|
+
- :winery_pickup
|
|
89
|
+
# May be inaccurate
|
|
90
|
+
:unserviceable:
|
|
91
|
+
- :afterhours_delivery
|
|
92
|
+
- :afterhours_pickup
|
|
93
|
+
- :appointment_pickup
|
|
94
|
+
- :customs_brokerage
|
|
95
|
+
- :early_morning_delivery
|
|
96
|
+
- :early_morning_pickup
|
|
97
|
+
- :flatbed_delivery
|
|
98
|
+
- :flatbed_pickup
|
|
99
|
+
- :guaranteed_delivery
|
|
100
|
+
- :guaranteed_delivery_am
|
|
101
|
+
- :guaranteed_delivery_pm
|
|
102
|
+
:api:
|
|
103
|
+
:actions:
|
|
104
|
+
:rates: :create
|
|
105
|
+
:track: :get_by_pro_number
|
|
106
|
+
:domain: www.saiasecure.com
|
|
107
|
+
:endpoints:
|
|
108
|
+
:rates: /webservice/ratequote/soap.asmx?wsdl
|
|
109
|
+
:track: /webservice/shipment/soap.asmx?wsdl
|
|
110
|
+
:use_ssl: true
|
|
111
|
+
:attributes:
|
|
112
|
+
:rates:
|
|
113
|
+
:with_excessive_length_fees: true
|
|
114
|
+
:events:
|
|
115
|
+
:types:
|
|
116
|
+
:arrived_at_terminal: arrived
|
|
117
|
+
:delivered: delivered
|
|
118
|
+
:departed: departed from terminal
|
|
119
|
+
:located: arrived at breakbulk terminal
|
|
120
|
+
:out_for_delivery: dispatched for delivery
|
|
121
|
+
:picked_up: pickup from customer
|
|
122
|
+
:trailer_unloaded: unload trailer # must be before :trailer_closed
|
|
123
|
+
:trailer_closed: load trailer
|
|
124
|
+
:services:
|
|
125
|
+
:types:
|
|
126
|
+
- :standard
|
|
127
|
+
- :guaranteed_delivery
|
|
128
|
+
- :guaranteed_delivery_am
|
|
129
|
+
- :guaranteed_delivery_pm
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
:accessorials:
|
|
2
|
+
:mappable:
|
|
3
|
+
:airport_delivery: chkAPD
|
|
4
|
+
:airport_pickup: chkAPU
|
|
5
|
+
:amusement_park_delivery: chkLAD
|
|
6
|
+
:amusement_park_pickup: chkLAP
|
|
7
|
+
:appointment_delivery: chkAN
|
|
8
|
+
:athletic_facility_delivery: chkLAD
|
|
9
|
+
:athletic_facility_pickup: chkLAP
|
|
10
|
+
:cemetery_delivery: chkLAD
|
|
11
|
+
:cemetery_pickup: chkLAP
|
|
12
|
+
:church_delivery: chkLAD
|
|
13
|
+
:church_pickup: chkLAP
|
|
14
|
+
:construction_delivery: chkLAD
|
|
15
|
+
:construction_pickup: chkLAP
|
|
16
|
+
:convention_delivery: chkLAD
|
|
17
|
+
:convention_pickup: chkLAP
|
|
18
|
+
:dock_dropoff: chkSHC
|
|
19
|
+
:fair_delivery: chkLAD
|
|
20
|
+
:fair_pickup: chkLAP
|
|
21
|
+
:farm_delivery: chkLAD
|
|
22
|
+
:farm_pickup: chkLAP
|
|
23
|
+
:fitness_center_delivery: chkLAD
|
|
24
|
+
:fitness_center_pickup: chkLAP
|
|
25
|
+
:golf_course_delivery: chkLAD
|
|
26
|
+
:golf_course_pickup: chkLAP
|
|
27
|
+
:government_delivery: chkLAD
|
|
28
|
+
:government_pickup: chkLAP
|
|
29
|
+
:grocery_store_delivery: chkLAD
|
|
30
|
+
:grocery_store_pickup: chkLAP
|
|
31
|
+
:guaranteed_delivery: chkDG
|
|
32
|
+
:guaranteed_delivery_am: chkNG
|
|
33
|
+
:guaranteed_delivery_pm: chkDG
|
|
34
|
+
:hospital_delivery: chkLAD
|
|
35
|
+
:hospital_pickup: chkLAP
|
|
36
|
+
:hotel_delivery: chkLAD
|
|
37
|
+
:hotel_pickup: chkLAP
|
|
38
|
+
:inside_delivery: chkID
|
|
39
|
+
:inside_pickup: chkIP
|
|
40
|
+
:inspection_site_delivery: chkLAD
|
|
41
|
+
:inspection_site_pickup: chkLAP
|
|
42
|
+
:jobsite_delivery: chkLAD
|
|
43
|
+
:jobsite_pickup: chkLAP
|
|
44
|
+
:liftgate_delivery: chkLGD
|
|
45
|
+
:liftgate_pickup: chkLGP
|
|
46
|
+
:mall_delivery: chkLAD
|
|
47
|
+
:mall_pickup: chkLAP
|
|
48
|
+
:marina_delivery: chkLAD
|
|
49
|
+
:marina_pickup: chkLAP
|
|
50
|
+
:military_site_delivery: chkLAD
|
|
51
|
+
:military_site_pickup: chkLAP
|
|
52
|
+
:mine_site_delivery: chkLAD
|
|
53
|
+
:mine_site_pickup: chkLAP
|
|
54
|
+
:motel_delivery: chkLAD
|
|
55
|
+
:motel_pickup: chkLAP
|
|
56
|
+
:nursing_home_delivery: chkLAD
|
|
57
|
+
:nursing_home_pickup: chkLAP
|
|
58
|
+
:park_delivery: chkLAD
|
|
59
|
+
:park_pickup: chkLAP
|
|
60
|
+
:prison_delivery: chkLAD
|
|
61
|
+
:prison_pickup: chkLAP
|
|
62
|
+
:ranch_delivery: chkLAD
|
|
63
|
+
:ranch_pickup: chkLAP
|
|
64
|
+
:reservation_delivery: chkLAD
|
|
65
|
+
:reservation_pickup: chkLAP
|
|
66
|
+
:residential_delivery: chkPR
|
|
67
|
+
:residential_pickup: chkPR
|
|
68
|
+
:resort_delivery: chkLAD
|
|
69
|
+
:resort_pickup: chkLAP
|
|
70
|
+
:restaurant_delivery: chkLAD
|
|
71
|
+
:restaurant_pickup: chkLAP
|
|
72
|
+
:school_delivery: chkLAD
|
|
73
|
+
:school_pickup: chkLAP
|
|
74
|
+
:steel_mill_delivery: chkLAD
|
|
75
|
+
:steel_mill_pickup: chkLAP
|
|
76
|
+
:storage_facility_delivery: chkLAD
|
|
77
|
+
:storage_facility_pickup: chkLAP
|
|
78
|
+
:university_delivery: chkLAD
|
|
79
|
+
:university_pickup: chkLAP
|
|
80
|
+
:utility_site_delivery: chkLAD
|
|
81
|
+
:utility_site_pickup: chkLAP
|
|
82
|
+
# May be inaccurate
|
|
83
|
+
:unquotable:
|
|
84
|
+
- :dock_pickup
|
|
85
|
+
# May be inaccurate
|
|
86
|
+
:unserviceable:
|
|
87
|
+
- :afterhours_delivery
|
|
88
|
+
- :afterhours_pickup
|
|
89
|
+
- :appointment_pickup
|
|
90
|
+
- :brewery_delivery
|
|
91
|
+
- :brewery_pickup
|
|
92
|
+
- :customs_brokerage
|
|
93
|
+
- :driver_assist
|
|
94
|
+
- :early_morning_delivery
|
|
95
|
+
- :early_morning_pickup
|
|
96
|
+
- :flatbed_delivery
|
|
97
|
+
- :flatbed_pickup
|
|
98
|
+
- :grocery_warehouse_delivery
|
|
99
|
+
- :grocery_warehouse_pickup
|
|
100
|
+
- :winery_delivery
|
|
101
|
+
- :winery_pickup
|
|
102
|
+
:api:
|
|
103
|
+
:domain: www.sefl.com
|
|
104
|
+
:endpoints:
|
|
105
|
+
:rates: /webconnect/ratequotes/rest/submitQuote
|
|
106
|
+
:methods:
|
|
107
|
+
:get_rate: :get
|
|
108
|
+
:rates: :post
|
|
109
|
+
:use_ssl: false
|
|
110
|
+
:attributes:
|
|
111
|
+
:rates:
|
|
112
|
+
:with_excessive_length_fees: true
|
|
113
|
+
:services:
|
|
114
|
+
:types:
|
|
115
|
+
- :standard
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
:accessorials:
|
|
2
|
+
:mappable:
|
|
3
|
+
:appointment_delivery: 'APPT'
|
|
4
|
+
:inside_delivery: 'IDL'
|
|
5
|
+
:inside_pickup: 'IDL'
|
|
6
|
+
:liftgate_delivery: 'LIFT'
|
|
7
|
+
:liftgate_pickup: 'LIFTP'
|
|
8
|
+
:residential_delivery: 'RESI'
|
|
9
|
+
:residential_pickup: 'RESP'
|
|
10
|
+
:restaurant_delivery:
|
|
11
|
+
- 'IDL'
|
|
12
|
+
- 'LIFT'
|
|
13
|
+
:restaurant_pickup:
|
|
14
|
+
- 'IDL'
|
|
15
|
+
- 'LIFTP'
|
|
16
|
+
# May be inaccurate
|
|
17
|
+
:unquotable:
|
|
18
|
+
- :amusement_park_delivery
|
|
19
|
+
- :amusement_park_pickup
|
|
20
|
+
- :athletic_facility_delivery
|
|
21
|
+
- :athletic_facility_delivery
|
|
22
|
+
- :athletic_facility_pickup
|
|
23
|
+
- :cemetery_delivery
|
|
24
|
+
- :cemetery_pickup
|
|
25
|
+
- :church_delivery
|
|
26
|
+
- :church_pickup
|
|
27
|
+
- :construction_delivery
|
|
28
|
+
- :construction_pickup
|
|
29
|
+
- :dock_dropoff
|
|
30
|
+
- :dock_pickup
|
|
31
|
+
- :farm_delivery
|
|
32
|
+
- :farm_pickup
|
|
33
|
+
- :fitness_center_delivery
|
|
34
|
+
- :fitness_center_pickup
|
|
35
|
+
- :golf_course_delivery
|
|
36
|
+
- :golf_course_pickup
|
|
37
|
+
- :government_delivery
|
|
38
|
+
- :government_pickup
|
|
39
|
+
- :grocery_store_delivery
|
|
40
|
+
- :grocery_store_pickup
|
|
41
|
+
- :hospital_delivery
|
|
42
|
+
- :hospital_pickup
|
|
43
|
+
- :hotel_delivery
|
|
44
|
+
- :hotel_pickup
|
|
45
|
+
- :inspection_site_delivery
|
|
46
|
+
- :inspection_site_pickup
|
|
47
|
+
- :jobsite_delivery
|
|
48
|
+
- :jobsite_pickup
|
|
49
|
+
- :mall_delivery
|
|
50
|
+
- :mall_pickup
|
|
51
|
+
- :marina_delivery
|
|
52
|
+
- :marina_pickup
|
|
53
|
+
- :mine_site_delivery
|
|
54
|
+
- :mine_site_pickup
|
|
55
|
+
- :motel_delivery
|
|
56
|
+
- :motel_pickup
|
|
57
|
+
- :nursing_home_delivery
|
|
58
|
+
- :nursing_home_pickup
|
|
59
|
+
- :park_delivery
|
|
60
|
+
- :park_pickup
|
|
61
|
+
- :prison_delivery
|
|
62
|
+
- :prison_pickup
|
|
63
|
+
- :ranch_delivery
|
|
64
|
+
- :ranch_pickup
|
|
65
|
+
- :reservation_delivery
|
|
66
|
+
- :reservation_pickup
|
|
67
|
+
- :resort_delivery
|
|
68
|
+
- :resort_pickup
|
|
69
|
+
- :school_delivery
|
|
70
|
+
- :school_pickup
|
|
71
|
+
- :steel_mill_delivery
|
|
72
|
+
- :steel_mill_pickup
|
|
73
|
+
- :storage_facility_delivery
|
|
74
|
+
- :storage_facility_pickup
|
|
75
|
+
- :university_delivery
|
|
76
|
+
- :university_pickup
|
|
77
|
+
- :utility_site_delivery
|
|
78
|
+
- :utility_site_pickup
|
|
79
|
+
# May be inaccurate
|
|
80
|
+
:unserviceable:
|
|
81
|
+
- :airport_delivery
|
|
82
|
+
- :airport_pickup
|
|
83
|
+
- :appointment_pickup
|
|
84
|
+
- :brewery_delivery
|
|
85
|
+
- :brewery_pickup
|
|
86
|
+
- :convention_delivery
|
|
87
|
+
- :convention_pickup
|
|
88
|
+
- :customs_brokerage
|
|
89
|
+
- :driver_assist
|
|
90
|
+
- :early_morning_delivery
|
|
91
|
+
- :fair_delivery
|
|
92
|
+
- :fair_pickup
|
|
93
|
+
- :flatbed_delivery
|
|
94
|
+
- :flatbed_pickup
|
|
95
|
+
- :grocery_warehouse_delivery
|
|
96
|
+
- :grocery_warehouse_pickup
|
|
97
|
+
- :guaranteed_delivery
|
|
98
|
+
- :guaranteed_delivery_am
|
|
99
|
+
- :guaranteed_delivery_pm
|
|
100
|
+
- :military_site_delivery
|
|
101
|
+
- :military_site_pickup
|
|
102
|
+
- :winery_delivery
|
|
103
|
+
- :winery_pickup
|
|
104
|
+
:api:
|
|
105
|
+
:carrier_code: tot
|
|
106
|
+
:attributes:
|
|
107
|
+
:rates:
|
|
108
|
+
:with_excessive_length_fees: true
|
|
109
|
+
:services:
|
|
110
|
+
:types:
|
|
111
|
+
- :standard
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
:api:
|
|
2
|
+
:domain: public.api.tql.com
|
|
3
|
+
:endpoints:
|
|
4
|
+
:rates: /ltl/quotes
|
|
5
|
+
:track: /tracking/%TRACKING_NUMBER%
|
|
6
|
+
:pickup: /ltl/loads/tender
|
|
7
|
+
:auth: /identity/token
|
|
8
|
+
:methods:
|
|
9
|
+
:rates: :post
|
|
10
|
+
:track: :get
|
|
11
|
+
:pickup: :post
|
|
12
|
+
:auth: :post
|
|
13
|
+
:attributes:
|
|
14
|
+
:rates:
|
|
15
|
+
:with_excessive_length_fees: true
|
|
16
|
+
# Per carrier at 2023-02-13
|
|
17
|
+
:accessorials:
|
|
18
|
+
:mappable:
|
|
19
|
+
:appointment_delivery: APPTDEL
|
|
20
|
+
:inside_delivery: INPU
|
|
21
|
+
:inside_pickup: INDEL
|
|
22
|
+
:liftgate_delivery: LGDEL
|
|
23
|
+
:liftgate_pickup: LGPU
|
|
24
|
+
:events:
|
|
25
|
+
:types:
|
|
26
|
+
:picked_up: Tendered
|
|
27
|
+
:delivered: Delivered
|
|
28
|
+
:out_for_delivery: In Transit
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
:api:
|
|
2
|
+
:domain: tracking.wrds.com
|
|
3
|
+
:endpoints:
|
|
4
|
+
:pod: /zLogin.aspx
|
|
5
|
+
:track: /zTrack2.aspx
|
|
6
|
+
:methods:
|
|
7
|
+
:track: :post
|
|
8
|
+
:use_ssl:
|
|
9
|
+
:bol: false
|
|
10
|
+
:pod: false
|
|
11
|
+
:track: true
|
|
12
|
+
:events:
|
|
13
|
+
:types:
|
|
14
|
+
:arrived_at_terminal: arrived
|
|
15
|
+
:delivered: delivered
|
|
16
|
+
:delivery_appointment_scheduled: delivery appt made
|
|
17
|
+
:departed: departed
|
|
18
|
+
:services:
|
|
19
|
+
:types:
|
|
20
|
+
- :standard
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
:api:
|
|
2
|
+
:domain: tracking.carrierlogistics.com
|
|
3
|
+
:endpoints:
|
|
4
|
+
:bol: /scripts/@CARRIER_CODE@.pol/web-login.htm?
|
|
5
|
+
:pod: /scripts/@CARRIER_CODE@.pol/web-login.htm?
|
|
6
|
+
:rates: /scripts/@CARRIER_CODE@.pol/ratequote.xml?
|
|
7
|
+
:track: /scripts/@CARRIER_CODE@.pol/protracexml.htm?
|
|
8
|
+
:use_ssl:
|
|
9
|
+
:bol: true
|
|
10
|
+
:pod: true
|
|
11
|
+
:rates: true
|
|
12
|
+
:track: true
|
|
13
|
+
:attributes:
|
|
14
|
+
:rates:
|
|
15
|
+
:with_excessive_length_fees: false
|
|
16
|
+
:events:
|
|
17
|
+
:types:
|
|
18
|
+
:arrived_at_terminal: trailer arrived
|
|
19
|
+
:delivered: delivered
|
|
20
|
+
:departed: trailer departed
|
|
21
|
+
:out_for_delivery: out for delivery
|
|
22
|
+
:picked_up: picked up
|
|
23
|
+
:pickup_scheduled: pickup request received
|
|
24
|
+
:trailer_closed: loaded on trailer
|
|
25
|
+
:trailer_unloaded: undisp
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
:accessorials:
|
|
2
|
+
:mappable:
|
|
3
|
+
:appointment_delivery: NOTFEE
|
|
4
|
+
:inside_delivery: INSDEL
|
|
5
|
+
:liftgate_delivery: LIFDEL
|
|
6
|
+
:liftgate_pickup: LIFPIC
|
|
7
|
+
:mall_delivery: INSDEL
|
|
8
|
+
:residential_delivery: RESDEL
|
|
9
|
+
:residential_pickup: RESPIC
|
|
10
|
+
:restaurant_delivery: INSDEL
|
|
11
|
+
# May be inaccurate
|
|
12
|
+
:unquotable:
|
|
13
|
+
- :athletic_facility_delivery
|
|
14
|
+
- :athletic_facility_pickup
|
|
15
|
+
- :cemetery_delivery
|
|
16
|
+
- :cemetery_pickup
|
|
17
|
+
- :church_delivery
|
|
18
|
+
- :church_pickup
|
|
19
|
+
- :construction_delivery
|
|
20
|
+
- :construction_pickup
|
|
21
|
+
- :dock_dropoff
|
|
22
|
+
- :dock_pickup
|
|
23
|
+
- :farm_delivery
|
|
24
|
+
- :farm_pickup
|
|
25
|
+
- :fitness_center_delivery
|
|
26
|
+
- :fitness_center_pickup
|
|
27
|
+
- :flatbed_delivery
|
|
28
|
+
- :flatbed_pickup
|
|
29
|
+
- :golf_course_delivery
|
|
30
|
+
- :golf_course_pickup
|
|
31
|
+
- :government_delivery
|
|
32
|
+
- :government_pickup
|
|
33
|
+
- :grocery_store_delivery
|
|
34
|
+
- :grocery_store_pickup
|
|
35
|
+
- :holiday_delivery
|
|
36
|
+
- :holiday_pickup
|
|
37
|
+
- :hospital_delivery
|
|
38
|
+
- :hospital_pickup
|
|
39
|
+
- :hotel_delivery
|
|
40
|
+
- :hotel_pickup
|
|
41
|
+
- :inspection_site_delivery
|
|
42
|
+
- :inspection_site_pickup
|
|
43
|
+
- :jobsite_delivery
|
|
44
|
+
- :jobsite_pickup
|
|
45
|
+
- :military_site_delivery
|
|
46
|
+
- :military_site_pickup
|
|
47
|
+
- :mine_site_delivery
|
|
48
|
+
- :mine_site_pickup
|
|
49
|
+
- :motel_delivery
|
|
50
|
+
- :motel_pickup
|
|
51
|
+
- :nursing_home_delivery
|
|
52
|
+
- :nursing_home_pickup
|
|
53
|
+
- :park_delivery
|
|
54
|
+
- :park_pickup
|
|
55
|
+
- :prison_delivery
|
|
56
|
+
- :prison_pickup
|
|
57
|
+
- :ranch_delivery
|
|
58
|
+
- :ranch_pickup
|
|
59
|
+
- :reservation_delivery
|
|
60
|
+
- :reservation_pickup
|
|
61
|
+
- :resort_delivery
|
|
62
|
+
- :resort_pickup
|
|
63
|
+
- :restaurant_pickup
|
|
64
|
+
- :school_delivery
|
|
65
|
+
- :school_pickup
|
|
66
|
+
- :steel_mill_delivery
|
|
67
|
+
- :steel_mill_pickup
|
|
68
|
+
- :storage_facility_delivery
|
|
69
|
+
- :storage_facility_pickup
|
|
70
|
+
- :university_delivery
|
|
71
|
+
- :university_pickup
|
|
72
|
+
- :utility_site_delivery
|
|
73
|
+
- :utility_site_pickup
|
|
74
|
+
# May be inaccurate
|
|
75
|
+
:unserviceable:
|
|
76
|
+
- :afterhours_delivery
|
|
77
|
+
- :airport_delivery
|
|
78
|
+
- :airport_pickup
|
|
79
|
+
- :amusement_park_delivery
|
|
80
|
+
- :amusement_park_pickup
|
|
81
|
+
- :appointment_pickup
|
|
82
|
+
- :brewery_delivery
|
|
83
|
+
- :brewery_pickup
|
|
84
|
+
- :convention_delivery
|
|
85
|
+
- :convention_pickup
|
|
86
|
+
- :customs_brokerage
|
|
87
|
+
- :driver_assist
|
|
88
|
+
- :early_morning_delivery
|
|
89
|
+
- :fair_delivery
|
|
90
|
+
- :fair_pickup
|
|
91
|
+
- :grocery_warehouse_delivery
|
|
92
|
+
- :grocery_warehouse_pickup
|
|
93
|
+
- :guaranteed_delivery
|
|
94
|
+
- :guaranteed_delivery_am
|
|
95
|
+
- :guaranteed_delivery_pm
|
|
96
|
+
- :inside_pickup
|
|
97
|
+
- :marina_delivery
|
|
98
|
+
- :marina_pickup
|
|
99
|
+
- :saturday_delivery
|
|
100
|
+
- :saturday_pickup
|
|
101
|
+
- :sunday_delivery
|
|
102
|
+
- :sunday_pickup
|
|
103
|
+
- :winery_delivery
|
|
104
|
+
- :winery_pickup
|
|
105
|
+
:api:
|
|
106
|
+
:actions:
|
|
107
|
+
:rates: :getquote
|
|
108
|
+
:track: :tracktrace
|
|
109
|
+
:pickup: :requestpickup
|
|
110
|
+
:use_ssl:
|
|
111
|
+
:rates: false
|
|
112
|
+
:track: false
|
|
113
|
+
:events:
|
|
114
|
+
:types:
|
|
115
|
+
:arrived_at_terminal: arrived
|
|
116
|
+
:delivered: delivered
|
|
117
|
+
:departed: departed
|
|
118
|
+
:out_for_delivery: out for delvry
|
|
119
|
+
:pickup_information_sent_to_carrier: p/u dispatched
|
|
120
|
+
:services:
|
|
121
|
+
:types:
|
|
122
|
+
- :standard
|
data/freight_kit.gemspec
CHANGED
|
@@ -23,8 +23,9 @@ Gem::Specification.new do |spec|
|
|
|
23
23
|
spec.homepage = 'https://github.com/next-tms/freight_kit'
|
|
24
24
|
spec.summary = spec.description
|
|
25
25
|
|
|
26
|
-
spec.files = Dir['
|
|
27
|
-
Dir['
|
|
26
|
+
spec.files = Dir['[A-Z]*'] +
|
|
27
|
+
Dir['configuration/*/*.yml'] +
|
|
28
|
+
Dir['lib/**/*'] +
|
|
28
29
|
Dir['test/**/*']
|
|
29
30
|
spec.require_paths = ['lib']
|
|
30
31
|
|
|
@@ -35,8 +36,8 @@ Gem::Specification.new do |spec|
|
|
|
35
36
|
spec.add_development_dependency('rubocop-next', '~> 1.0.7')
|
|
36
37
|
spec.add_development_dependency('yard', '~> 0.9.28')
|
|
37
38
|
|
|
38
|
-
spec.add_dependency('activemodel', '>=
|
|
39
|
-
spec.add_dependency('activesupport', '>=
|
|
39
|
+
spec.add_dependency('activemodel', '>= 7.1', '< 8.1.4')
|
|
40
|
+
spec.add_dependency('activesupport', '>= 7.1', '< 8.1.4')
|
|
40
41
|
spec.add_dependency('active_utils', '>= 3.3.1', '< 3.7.0')
|
|
41
42
|
spec.add_dependency('benchmark', '~> 0.5.0')
|
|
42
43
|
spec.add_dependency('business_time', '~> 0.13.0')
|
|
@@ -44,11 +45,12 @@ Gem::Specification.new do |spec|
|
|
|
44
45
|
spec.add_dependency('measured', '>= 2.0', '< 3.2.2')
|
|
45
46
|
spec.add_dependency('mimemagic', '~> 0.4.3')
|
|
46
47
|
spec.add_dependency('nokogiri', '>= 1.6', '< 1.20')
|
|
47
|
-
spec.add_dependency('place_kit', '~> 0.0.
|
|
48
|
-
spec.add_dependency('
|
|
48
|
+
spec.add_dependency('place_kit', '~> 0.0.6')
|
|
49
|
+
spec.add_dependency('rmagick', '>= 4.2.5', '< 7.1.0')
|
|
50
|
+
spec.add_dependency('savon', '>= 2.17', '< 2.18')
|
|
49
51
|
spec.add_dependency('tzinfo-data', '~> 1.2023', '>= 1.2023.3')
|
|
50
52
|
spec.add_dependency('watir', '>= 7.0', '< 7.4')
|
|
51
|
-
spec.add_dependency('zeitwerk', '>= 2.6.0', '< 2.
|
|
53
|
+
spec.add_dependency('zeitwerk', '>= 2.6.0', '< 2.8.3')
|
|
52
54
|
|
|
53
55
|
spec.required_ruby_version = '>= 3.2.0'
|
|
54
56
|
end
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module FreightKit
|
|
4
|
+
class SoapClient
|
|
5
|
+
API_EXCEPTIONS = [
|
|
6
|
+
Savon::HTTPError,
|
|
7
|
+
Net::ReadTimeout,
|
|
8
|
+
Net::OpenTimeout,
|
|
9
|
+
Errno::ECONNREFUSED,
|
|
10
|
+
Errno::ECONNRESET,
|
|
11
|
+
Errno::EHOSTUNREACH,
|
|
12
|
+
]
|
|
13
|
+
|
|
14
|
+
def initialize(carrier:, action:, client_args:, call_args:, soap_operation:)
|
|
15
|
+
@carrier = carrier
|
|
16
|
+
@action = action
|
|
17
|
+
@client_args = client_args || {}
|
|
18
|
+
@call_args = call_args
|
|
19
|
+
@soap_operation = soap_operation
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def call(handle_soap_fault_error: true)
|
|
23
|
+
# http = OpenStruct.new(code: 500, body: {})
|
|
24
|
+
# raise Savon::HTTPError, http
|
|
25
|
+
|
|
26
|
+
api_exceptions = API_EXCEPTIONS
|
|
27
|
+
|
|
28
|
+
# For testing and debugging
|
|
29
|
+
# client_args.merge!(log: true, pretty_print_xml: true)
|
|
30
|
+
|
|
31
|
+
Savon.client(**client_args).call(soap_operation, **call_args).body
|
|
32
|
+
rescue *api_exceptions => e
|
|
33
|
+
response = build_response_class(action:)
|
|
34
|
+
response.error = ResponseError.new("Network Error: #{e}")
|
|
35
|
+
|
|
36
|
+
response
|
|
37
|
+
rescue Savon::InvalidResponseError
|
|
38
|
+
response = build_response_class(action:)
|
|
39
|
+
response.error = ResponseError.new('API Error: Invalid response')
|
|
40
|
+
|
|
41
|
+
response
|
|
42
|
+
rescue Savon::SOAPFault => e
|
|
43
|
+
raise unless handle_soap_fault_error
|
|
44
|
+
|
|
45
|
+
response = build_response_class(action:)
|
|
46
|
+
response.error = ResponseError.new("API Error: #{e}")
|
|
47
|
+
|
|
48
|
+
response
|
|
49
|
+
rescue StandardError => e
|
|
50
|
+
response = build_response_class(action:)
|
|
51
|
+
response.error = ResponseError.new("API Error: #{e}")
|
|
52
|
+
|
|
53
|
+
response
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
private
|
|
57
|
+
|
|
58
|
+
attr_reader :carrier, :action, :client_args, :call_args, :soap_operation
|
|
59
|
+
|
|
60
|
+
def build_response_class(action:)
|
|
61
|
+
request = call_args[:message]
|
|
62
|
+
|
|
63
|
+
case action
|
|
64
|
+
when :rates then RateResponse.new(request:, response: nil)
|
|
65
|
+
when :track then TrackingResponse.new(carrier:, request:, response: nil)
|
|
66
|
+
when :pickup then PickupResponse.new(request:, response: nil)
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
end
|