ruby_ptv_api 0.1.0

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.
Files changed (149) hide show
  1. checksums.yaml +7 -0
  2. data/.directory +11 -0
  3. data/.gitignore +14 -0
  4. data/.rspec +2 -0
  5. data/.travis.yml +4 -0
  6. data/Gemfile +4 -0
  7. data/Guardfile +36 -0
  8. data/README.md +46 -0
  9. data/Rakefile +11 -0
  10. data/bin/console +14 -0
  11. data/bin/setup +8 -0
  12. data/console_initializer.rb +5 -0
  13. data/lib/ruby_ptv_api/base.rb +105 -0
  14. data/lib/ruby_ptv_api/constant.rb +107 -0
  15. data/lib/ruby_ptv_api/id_manager.rb +17 -0
  16. data/lib/ruby_ptv_api/model/base.rb +12 -0
  17. data/lib/ruby_ptv_api/model/plain_point.rb +21 -0
  18. data/lib/ruby_ptv_api/model/point.rb +9 -0
  19. data/lib/ruby_ptv_api/model/x_locate/additional_field.rb +14 -0
  20. data/lib/ruby_ptv_api/model/x_locate/address.rb +24 -0
  21. data/lib/ruby_ptv_api/model/x_locate/address_response.rb +13 -0
  22. data/lib/ruby_ptv_api/model/x_locate/combined_transport_location.rb +13 -0
  23. data/lib/ruby_ptv_api/model/x_locate/combined_transport_response.rb +13 -0
  24. data/lib/ruby_ptv_api/model/x_locate/location.rb +11 -0
  25. data/lib/ruby_ptv_api/model/x_locate/result_address.rb +27 -0
  26. data/lib/ruby_ptv_api/model/x_locate/result_combined_transport.rb +30 -0
  27. data/lib/ruby_ptv_api/model/x_locate/sort_option.rb +14 -0
  28. data/lib/ruby_ptv_api/model/x_locate/suggestion.rb +12 -0
  29. data/lib/ruby_ptv_api/model/x_locate/suggestion_response.rb +13 -0
  30. data/lib/ruby_ptv_api/model/x_route/bounding_rectangle.rb +13 -0
  31. data/lib/ruby_ptv_api/model/x_route/brunnel_manoeuvre.rb +11 -0
  32. data/lib/ruby_ptv_api/model/x_route/cen_emission_configuration.rb +14 -0
  33. data/lib/ruby_ptv_api/model/x_route/cen_emission_conversion_factors.rb +11 -0
  34. data/lib/ruby_ptv_api/model/x_route/cen_emission_scenarios.rb +21 -0
  35. data/lib/ruby_ptv_api/model/x_route/cen_emissions.rb +8 -0
  36. data/lib/ruby_ptv_api/model/x_route/commuter_travel_trend.rb +10 -0
  37. data/lib/ruby_ptv_api/model/x_route/detail_description_option.rb +12 -0
  38. data/lib/ruby_ptv_api/model/x_route/dynamic_info.rb +12 -0
  39. data/lib/ruby_ptv_api/model/x_route/emission_type.rb +11 -0
  40. data/lib/ruby_ptv_api/model/x_route/emissions.rb +23 -0
  41. data/lib/ruby_ptv_api/model/x_route/encoded_geometry.rb +13 -0
  42. data/lib/ruby_ptv_api/model/x_route/exception_path.rb +17 -0
  43. data/lib/ruby_ptv_api/model/x_route/expansion_description.rb +12 -0
  44. data/lib/ruby_ptv_api/model/x_route/feauture_description.rb +11 -0
  45. data/lib/ruby_ptv_api/model/x_route/hbefa_type.rb +11 -0
  46. data/lib/ruby_ptv_api/model/x_route/klm.rb +10 -0
  47. data/lib/ruby_ptv_api/model/x_route/line_string.rb +11 -0
  48. data/lib/ruby_ptv_api/model/x_route/manoeuvre_attr.rb +17 -0
  49. data/lib/ruby_ptv_api/model/x_route/manoeuvre_group.rb +16 -0
  50. data/lib/ruby_ptv_api/model/x_route/norm_speed.rb +12 -0
  51. data/lib/ruby_ptv_api/model/x_route/plain_geometry_base.rb +8 -0
  52. data/lib/ruby_ptv_api/model/x_route/plain_line_string.rb +11 -0
  53. data/lib/ruby_ptv_api/model/x_route/reach.rb +12 -0
  54. data/lib/ruby_ptv_api/model/x_route/reach_info.rb +14 -0
  55. data/lib/ruby_ptv_api/model/x_route/result_list_options.rb +46 -0
  56. data/lib/ruby_ptv_api/model/x_route/route.rb +38 -0
  57. data/lib/ruby_ptv_api/model/x_route/route_info.rb +15 -0
  58. data/lib/ruby_ptv_api/model/x_route/route_list_segment.rb +39 -0
  59. data/lib/ruby_ptv_api/model/x_route/route_manoeuvre.rb +44 -0
  60. data/lib/ruby_ptv_api/model/x_route/routing_option.rb +12 -0
  61. data/lib/ruby_ptv_api/model/x_route/segment_attributes.rb +27 -0
  62. data/lib/ruby_ptv_api/model/x_route/speed_limit.rb +10 -0
  63. data/lib/ruby_ptv_api/model/x_route/speed_limits.rb +10 -0
  64. data/lib/ruby_ptv_api/model/x_route/template +16 -0
  65. data/lib/ruby_ptv_api/model/x_route/unique_geo_id.rb +13 -0
  66. data/lib/ruby_ptv_api/model/x_route/urban_manoeuvre.rb +10 -0
  67. data/lib/ruby_ptv_api/model/x_route/vehicle_option.rb +11 -0
  68. data/lib/ruby_ptv_api/model/x_route/via_type.rb +11 -0
  69. data/lib/ruby_ptv_api/model/x_route/way_point.rb +30 -0
  70. data/lib/ruby_ptv_api/model/x_route/waypoint_desc.rb +28 -0
  71. data/lib/ruby_ptv_api/model/x_tour/abstract_costs.rb +10 -0
  72. data/lib/ruby_ptv_api/model/x_tour/abstract_tour.rb +10 -0
  73. data/lib/ruby_ptv_api/model/x_tour/abstract_tour_point.rb +16 -0
  74. data/lib/ruby_ptv_api/model/x_tour/abstract_tour_result.rb +38 -0
  75. data/lib/ruby_ptv_api/model/x_tour/abstract_transport_order.rb +11 -0
  76. data/lib/ruby_ptv_api/model/x_tour/abstract_vehicle.rb +14 -0
  77. data/lib/ruby_ptv_api/model/x_tour/base_vehicle.rb +30 -0
  78. data/lib/ruby_ptv_api/model/x_tour/capacities.rb +11 -0
  79. data/lib/ruby_ptv_api/model/x_tour/chain.rb +14 -0
  80. data/lib/ruby_ptv_api/model/x_tour/chain_result.rb +20 -0
  81. data/lib/ruby_ptv_api/model/x_tour/costs.rb +10 -0
  82. data/lib/ruby_ptv_api/model/x_tour/depot.rb +8 -0
  83. data/lib/ruby_ptv_api/model/x_tour/distance_matrix_by_road.rb +12 -0
  84. data/lib/ruby_ptv_api/model/x_tour/distance_matrix_calculation.rb +9 -0
  85. data/lib/ruby_ptv_api/model/x_tour/driver_settings.rb +17 -0
  86. data/lib/ruby_ptv_api/model/x_tour/fleet.rb +15 -0
  87. data/lib/ruby_ptv_api/model/x_tour/goal_importance.rb +44 -0
  88. data/lib/ruby_ptv_api/model/x_tour/interval.rb +15 -0
  89. data/lib/ruby_ptv_api/model/x_tour/loading_area.rb +13 -0
  90. data/lib/ruby_ptv_api/model/x_tour/loading_function.rb +16 -0
  91. data/lib/ruby_ptv_api/model/x_tour/logistic_point.rb +19 -0
  92. data/lib/ruby_ptv_api/model/x_tour/maximum_tour_period_restriction.rb +10 -0
  93. data/lib/ruby_ptv_api/model/x_tour/plan.rb +13 -0
  94. data/lib/ruby_ptv_api/model/x_tour/plan_result.rb +21 -0
  95. data/lib/ruby_ptv_api/model/x_tour/planning_params.rb +23 -0
  96. data/lib/ruby_ptv_api/model/x_tour/product_incompatibility.rb +11 -0
  97. data/lib/ruby_ptv_api/model/x_tour/quantities.rb +9 -0
  98. data/lib/ruby_ptv_api/model/x_tour/quantity_dependent_periods.rb +9 -0
  99. data/lib/ruby_ptv_api/model/x_tour/regulations_base.rb +9 -0
  100. data/lib/ruby_ptv_api/model/x_tour/restrictions.rb +13 -0
  101. data/lib/ruby_ptv_api/model/x_tour/seconds_per_quantity_unit.rb +9 -0
  102. data/lib/ruby_ptv_api/model/x_tour/sequencing_params.rb +12 -0
  103. data/lib/ruby_ptv_api/model/x_tour/sequencing_plan.rb +13 -0
  104. data/lib/ruby_ptv_api/model/x_tour/sequencing_plan_result.rb +16 -0
  105. data/lib/ruby_ptv_api/model/x_tour/sequencing_tour.rb +13 -0
  106. data/lib/ruby_ptv_api/model/x_tour/sequencing_tour_point.rb +16 -0
  107. data/lib/ruby_ptv_api/model/x_tour/sequencing_tour_result.rb +38 -0
  108. data/lib/ruby_ptv_api/model/x_tour/sequencing_transport_depot.rb +19 -0
  109. data/lib/ruby_ptv_api/model/x_tour/sequencing_transport_order.rb +9 -0
  110. data/lib/ruby_ptv_api/model/x_tour/sequencing_vehicle.rb +8 -0
  111. data/lib/ruby_ptv_api/model/x_tour/standard_params.rb +22 -0
  112. data/lib/ruby_ptv_api/model/x_tour/total_costs.rb +10 -0
  113. data/lib/ruby_ptv_api/model/x_tour/tour.rb +26 -0
  114. data/lib/ruby_ptv_api/model/x_tour/tour_event.rb +14 -0
  115. data/lib/ruby_ptv_api/model/x_tour/tour_point.rb +10 -0
  116. data/lib/ruby_ptv_api/model/x_tour/tour_point_result.rb +28 -0
  117. data/lib/ruby_ptv_api/model/x_tour/tour_restrictions.rb +13 -0
  118. data/lib/ruby_ptv_api/model/x_tour/tour_result.rb +17 -0
  119. data/lib/ruby_ptv_api/model/x_tour/tour_violations.rb +10 -0
  120. data/lib/ruby_ptv_api/model/x_tour/trailer.rb +10 -0
  121. data/lib/ruby_ptv_api/model/x_tour/train.rb +26 -0
  122. data/lib/ruby_ptv_api/model/x_tour/transport_depot.rb +20 -0
  123. data/lib/ruby_ptv_api/model/x_tour/transport_order.rb +19 -0
  124. data/lib/ruby_ptv_api/model/x_tour/transport_point.rb +17 -0
  125. data/lib/ruby_ptv_api/model/x_tour/unscheduled_order_analysis_result.rb +15 -0
  126. data/lib/ruby_ptv_api/model/x_tour/vehicle.rb +27 -0
  127. data/lib/ruby_ptv_api/model/x_tour/vehicle_costs.rb +9 -0
  128. data/lib/ruby_ptv_api/model/x_tour/vehicle_restrictions.rb +11 -0
  129. data/lib/ruby_ptv_api/model/x_tour/vehicle_violations.rb +12 -0
  130. data/lib/ruby_ptv_api/operation/x_locate/base.rb +68 -0
  131. data/lib/ruby_ptv_api/operation/x_locate/find_address.rb +26 -0
  132. data/lib/ruby_ptv_api/operation/x_locate/find_address_by_text.rb +28 -0
  133. data/lib/ruby_ptv_api/operation/x_locate/find_addresses.rb +27 -0
  134. data/lib/ruby_ptv_api/operation/x_locate/find_combined_transport_by_location.rb +31 -0
  135. data/lib/ruby_ptv_api/operation/x_locate/find_location.rb +26 -0
  136. data/lib/ruby_ptv_api/operation/x_locate/find_locations.rb +27 -0
  137. data/lib/ruby_ptv_api/operation/x_locate/find_suggestion.rb +36 -0
  138. data/lib/ruby_ptv_api/operation/x_route/base.rb +25 -0
  139. data/lib/ruby_ptv_api/operation/x_route/calculate_reachable_objects.rb +38 -0
  140. data/lib/ruby_ptv_api/operation/x_route/calculate_route.rb +35 -0
  141. data/lib/ruby_ptv_api/operation/x_route/calculate_route_info.rb +33 -0
  142. data/lib/ruby_ptv_api/operation/x_tour/base.rb +24 -0
  143. data/lib/ruby_ptv_api/operation/x_tour/plan_basic_tours.rb +48 -0
  144. data/lib/ruby_ptv_api/operation/x_tour/plan_sequence.rb +52 -0
  145. data/lib/ruby_ptv_api/version.rb +3 -0
  146. data/lib/ruby_ptv_api/x_tour.rb +94 -0
  147. data/lib/ruby_ptv_api.rb +202 -0
  148. data/ruby_ptv_api.gemspec +32 -0
  149. metadata +331 -0
@@ -0,0 +1,38 @@
1
+ module RubyPtvApi
2
+ module Model
3
+ module XTour
4
+ class SequencingTourResult < RubyPtvApi::Model::Base
5
+ property 'period'
6
+ property 'drivingPeriod'
7
+ property 'distance'
8
+ property 'distanceFromFirstToLastTransportPoint'
9
+ property 'maxDistanceBetweenTransportPoints'
10
+ property 'servicePeriod'
11
+ property 'restPeriod'
12
+ property 'breakPeriod'
13
+ property 'earliness'
14
+ property 'waitingPeriod'
15
+ property 'transportPointCount'
16
+ property 'startTime'
17
+ property 'startTimeLatest'
18
+ property 'coDriverRequired'
19
+ property 'totalCosts'
20
+ property 'pickupQuantities'
21
+ property 'deliveryQuantities'
22
+ property 'maxQuantities'
23
+ property 'depotUploadingPeriod'
24
+ property 'depotUnloadingPeriod'
25
+ property 'depotAvailabilityForDeliveries'
26
+ property 'depotAvailabilityForPickups'
27
+ property 'tourChanged'
28
+ property 'violations'
29
+ property 'remainingPeriods'
30
+
31
+ coerce_key :totalCosts, TotalCosts
32
+ coerce_key :pickupQuantities, Quantities
33
+ coerce_key :deliveryQuantities, Quantities
34
+ coerce_key :maxQuantities, Quantities
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,19 @@
1
+ module RubyPtvApi
2
+ module Model
3
+ module XTour
4
+ class SequencingTransportDepot < SequencingTransportOrder
5
+ property 'transportPoint'
6
+ property 'pickupQuantities'
7
+ property 'deliveryQuantities'
8
+ property 'maxTransportPeriodForDeliveries'
9
+ property 'maxTransportPeriodForPickups'
10
+ property 'depotAvailabilityForDeliveries'
11
+ property 'depotAvailabilityForPickups'
12
+
13
+ coerce_key :transportPoint, TransportPoint
14
+ coerce_key :pickupQuantities, Quantities
15
+ coerce_key :deliveryQuantities, Quantities
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,9 @@
1
+ module RubyPtvApi
2
+ module Model
3
+ module XTour
4
+ class SequencingTransportOrder < AbstractTransportOrder
5
+
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,8 @@
1
+ module RubyPtvApi
2
+ module Model
3
+ module XTour
4
+ class SequencingVehicle < BaseVehicle
5
+ end
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,22 @@
1
+ module RubyPtvApi
2
+ module Model
3
+ module XTour
4
+ class StandardParams < PlanningParams
5
+ property 'startSequencingStep'
6
+ property 'constructionStep'
7
+ property 'middleSequencingStep'
8
+ property 'tourReductionStep'
9
+ property 'improvementStep'
10
+ property 'endSequencingStep'
11
+ property 'availableMachineTime'
12
+ property 'maximumNumberOfUnscheduledOrdersToBeAnalyzed'
13
+ property 'goalImportance'
14
+ property 'basicConstructionMethod'
15
+ property 'improvementMethod'
16
+ property 'sequencingMethod'
17
+
18
+ coerce_key :goalImportance, GoalImportance
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,10 @@
1
+ module RubyPtvApi
2
+ module Model
3
+ module XTour
4
+ class TotalCosts < AbstractCosts
5
+ property 'costsPerHour'
6
+ property 'totalCosts'
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,26 @@
1
+ module RubyPtvApi
2
+ module Model
3
+ module XTour
4
+ class Tour < AbstractTour
5
+ property 'id'
6
+ property 'description'
7
+ property 'trailerId'
8
+ property 'trainId'
9
+ property 'tourPointFixation', transform_with: ->(value) do
10
+ RubyPtvApi::Constant.validate(RubyPtvApi::Constant::TOUR_POINT_FIXATION, value)
11
+ end
12
+ property 'vehicleFixed'
13
+ property 'trailerFixed'
14
+ property 'areaNumber'
15
+ property 'ignoreIntermediatePeriodOfPreviousTour'
16
+ property 'restrictions'
17
+ property 'tourPoints'
18
+ property 'result'
19
+
20
+ coerce_key :restrictions, TourRestrictions
21
+ coerce_key :tourPoints, Array[TourPoint]
22
+ coerce_key :result, TourResult
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,14 @@
1
+ module RubyPtvApi
2
+ module Model
3
+ module XTour
4
+ class TourEvent < RubyPtvApi::Model::Base
5
+ property 'logisticPointId'
6
+ property 'startTime'
7
+ property 'period'
8
+ property 'descriptions'
9
+ property 'violations'
10
+ property 'tourIndex'
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,10 @@
1
+ module RubyPtvApi
2
+ module Model
3
+ module XTour
4
+ class TourPoint < AbstractTourPoint
5
+ property 'tourFixed'
6
+ property 'remainPlanned'
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,28 @@
1
+ module RubyPtvApi
2
+ module Model
3
+ module XTour
4
+ class TourPointResult < RubyPtvApi::Model::Base
5
+ property 'orderId'
6
+ property 'arrivalTime'
7
+ property 'startServiceTime'
8
+ property 'endServiceTime'
9
+ property 'departureTime'
10
+ property 'drivingPeriod'
11
+ property 'waitingPeriod'
12
+ property 'servicePeriod'
13
+ property 'breakPeriodOnRoad'
14
+ property 'breakPeriodAtTourPoint'
15
+ property 'restPeriodOnRoad'
16
+ property 'restPeriodAtTourPoint'
17
+ property 'earliness'
18
+ property 'delay'
19
+ property 'startDistance'
20
+ property 'drivingDistance'
21
+ property 'currentQuantities'
22
+ property 'tourPointViolations'
23
+
24
+ coerce_key :currentQuantities, Quantities
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,13 @@
1
+ module RubyPtvApi
2
+ module Model
3
+ module XTour
4
+ class TourRestrictions < RubyPtvApi::Model::Base
5
+ property 'maxPeriod'
6
+ property 'maxDrivingPeriod'
7
+ property 'maxDistance'
8
+ property 'maxDistanceFromFirstToLastTransportPoint'
9
+ property 'maxDistanceBetweenTransportPoints'
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,17 @@
1
+ module RubyPtvApi
2
+ module Model
3
+ module XTour
4
+ class TourResult < AbstractTourResult
5
+ property 'vehicleRequirements'
6
+ property 'vehicleExclusions'
7
+ property 'trainDescription'
8
+ property 'trailerDescription'
9
+ property 'maxLoadingArea'
10
+ property 'minLoadingArea'
11
+
12
+ coerce_key :maxLoadingArea, LoadingArea
13
+ coerce_key :minLoadingArea, LoadingArea
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,10 @@
1
+ module RubyPtvApi
2
+ module Model
3
+ module XTour
4
+ class TourViolations < RubyPtvApi::Model::Base
5
+ property 'tourId'
6
+ property 'violations'
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ module RubyPtvApi
2
+ module Model
3
+ module XTour
4
+ class Trailer < RubyPtvApi::Model::Base
5
+ property 'id'
6
+ property 'description'
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,26 @@
1
+ module RubyPtvApi
2
+ module Model
3
+ module XTour
4
+ class Train < RubyPtvApi::Model::Base
5
+ property 'id'
6
+ property 'description'
7
+ property 'vehicleIds'
8
+ property 'trailerIds'
9
+ property 'capacities'
10
+ property 'costs'
11
+ property 'dimaId'
12
+ property 'minLoadingArea'
13
+ property 'maxLoadingArea'
14
+ property 'category'
15
+ property 'drivingPeriodFactor'
16
+ property 'transportEquipments'
17
+ property 'maxTransportPointCountPerTour'
18
+
19
+ coerce_key :capacities, Capacities
20
+ coerce_key :costs, Costs
21
+ coerce_key :minLoadingArea, LoadingArea
22
+ coerce_key :maxLoadingArea, LoadingArea
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,20 @@
1
+ module RubyPtvApi
2
+ module Model
3
+ module XTour
4
+ class TransportDepot < TransportOrder
5
+ property 'depotIds'
6
+ property 'transportPoint'
7
+ property 'pickupQuantities'
8
+ property 'deliveryQuantities'
9
+ property 'maxTransportPeriodForDeliveries'
10
+ property 'maxTransportPeriodForPickups'
11
+ property 'depotAvailabilityForDeliveries'
12
+ property 'depotAvailabilityForPickups'
13
+
14
+ coerce_key :transportPoint , TransportPoint
15
+ coerce_key :pickupQuantities , Quantities
16
+ coerce_key :deliveryQuantities, Quantities
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,19 @@
1
+ module RubyPtvApi
2
+ module Model
3
+ module XTour
4
+ class TransportOrder < AbstractTransportOrder
5
+ property 'vehicleId'
6
+ property 'vehicleCategories'
7
+ property 'vehicleRequirements'
8
+ property 'vehicleExclusions'
9
+ property 'areaNumber'
10
+ property 'minLoadingArea'
11
+ property 'maxLoadingArea'
12
+ property 'trailerLoadingForbidden'
13
+
14
+ coerce_key :minLoadingArea, LoadingArea
15
+ coerce_key :maxLoadingArea, LoadingArea
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,17 @@
1
+ module RubyPtvApi
2
+ module Model
3
+ module XTour
4
+ class TransportPoint < LogisticPoint
5
+ property 'tourSection', default: 0
6
+ property 'servicePeriod', default: 0
7
+ property 'useServicePeriodForRecreation', default: false
8
+ property 'allowServiceSplit', default: false
9
+ property 'openingIntervalConstraint', default: :START_OF_SERVICE, transform_with: ->(value) do
10
+ RubyPtvApi::Constant.validate(RubyPtvApi::Constant::OPENING_INTERVAL_CONTRAINT, value)
11
+ end
12
+ property 'areaNumberPosition'
13
+ property 'coDriverRequired', default: false
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,15 @@
1
+ module RubyPtvApi
2
+ module Model
3
+ module XTour
4
+ class UnscheduledOrderAnalysisResult < RubyPtvApi::Model::Base
5
+ property 'orderId'
6
+ property 'status'
7
+ property 'vehicleViolations'
8
+ property 'tourViolations'
9
+
10
+ coerce_key :vehicleViolations, Array[VehicleViolations]
11
+ coerce_key :tourViolations, Array[TourViolations]
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,27 @@
1
+ module RubyPtvApi
2
+ module Model
3
+ module XTour
4
+ class Vehicle < BaseVehicle
5
+ property 'id'
6
+ property 'description'
7
+ property 'category'
8
+ property 'transportEquipments'
9
+ property 'areaNumbers'
10
+ property 'intermediatePeriod'
11
+ property 'startLocation'
12
+ property 'endLocation'
13
+ property 'restrictions'
14
+ property 'minLoadingArea'
15
+ property 'maxLoadingArea'
16
+ property 'ignoreIntermediatePeriodBeforeFirstTour'
17
+
18
+ coerce_key :startLocation , RubyPtvApi::Model::Point
19
+ coerce_key :endLocation , RubyPtvApi::Model::Point
20
+ coerce_key :restrictions , VehicleRestrictions
21
+ coerce_key :minLoadingArea, LoadingArea
22
+ coerce_key :maxLoadingArea, LoadingArea
23
+
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,9 @@
1
+ module RubyPtvApi
2
+ module Model
3
+ module XTour
4
+ class VehicleCosts < RubyPtvApi::Model::Base
5
+ property 'costsPerChain'
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,11 @@
1
+ module RubyPtvApi
2
+ module Model
3
+ module XTour
4
+ class VehicleRestrictions < RubyPtvApi::Model::Base
5
+ property 'maxTransportPointCountPerTour'
6
+ property 'maxDrivingPeriodPerChain'
7
+ property 'maxTourCountPerChain'
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,12 @@
1
+ module RubyPtvApi
2
+ module Model
3
+ module XTour
4
+ class VehicleViolations < RubyPtvApi::Model::Base
5
+ property 'vehicleId'
6
+ property 'trailerId'
7
+ property 'trainId'
8
+ property 'violations'
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,68 @@
1
+ module RubyPtvApi
2
+ module Operation
3
+ module XLocate
4
+ class Base < RubyPtvApi::Base
5
+ attr_reader :search_option_base_array, :sort_option_array, :result_field_array
6
+
7
+ def ptv_path
8
+ 'xlocate/rs/XLocate'
9
+ end
10
+
11
+ def call(options: nil, sorting: nil, additional_fields: nil)
12
+ extra_params(options, sorting, additional_fields)
13
+ response = post(params)
14
+ parse_response(response)
15
+ end
16
+
17
+ def options=(opts)
18
+ raise 'Not implemented'
19
+ @search_option_base_array = opts
20
+ end
21
+
22
+ def options
23
+ @search_option_base_array || []
24
+ end
25
+
26
+ def sorting=(array)
27
+ raise "Required SortOption Model class" unless array.map{|k| k.is_a?(RubyPtvApi::Model::XLocate::SortOption)}.inject(:&)
28
+ @sort_option_array = array
29
+ end
30
+
31
+ def sorting
32
+ @sort_option_array || []
33
+ end
34
+
35
+ def additional_fields=(array)
36
+ check_additional_fields(array)
37
+ @result_field_array = array
38
+ end
39
+
40
+ def additional_fields
41
+ @result_field_array || []
42
+ end
43
+
44
+ def extra_params(opts, sort, fields)
45
+ self.options = opts if opts
46
+ self.sorting = sort if sort
47
+ self.additional_fields = fields if fields
48
+ end
49
+
50
+ protected
51
+
52
+ def response_class
53
+ RubyPtvApi::Model::XLocate::AddressResponse
54
+ end
55
+
56
+ private
57
+
58
+ def check_additional_fields(values)
59
+ values.each do |value|
60
+ unless RubyPtvApi::Constant::RESULT_FIELD.include?(value.to_sym)
61
+ raise WrongParameterFormat.new("Value #{value} is not a additional fields accepted value #{RubyPtvApi::Constant::RESULT_FIELD}")
62
+ end
63
+ end
64
+ end
65
+ end
66
+ end
67
+ end
68
+ end
@@ -0,0 +1,26 @@
1
+ module RubyPtvApi
2
+ module Operation
3
+ module XLocate
4
+ class FindAddress < RubyPtvApi::Operation::XLocate::Base
5
+ attr_reader :address
6
+
7
+ def initialize(address)
8
+ @address = address
9
+ end
10
+
11
+ def ptv_function
12
+ 'findAddress'
13
+ end
14
+
15
+ def params
16
+ {
17
+ addr: address,
18
+ options: options,
19
+ sorting: sorting,
20
+ additionalFields: additional_fields
21
+ }
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,28 @@
1
+ module RubyPtvApi
2
+ module Operation
3
+ module XLocate
4
+ class FindAddressByText < RubyPtvApi::Operation::XLocate::Base
5
+ attr_reader :text, :country
6
+
7
+ def initialize(text, country)
8
+ @text = text
9
+ @country = country
10
+ end
11
+
12
+ def ptv_function
13
+ 'findAddressByText'
14
+ end
15
+
16
+ def params
17
+ {
18
+ address: text,
19
+ country: country,
20
+ options: options,
21
+ sorting: sorting,
22
+ additionalFields: additional_fields
23
+ }
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,27 @@
1
+ module RubyPtvApi
2
+ module Operation
3
+ module XLocate
4
+ class FindAddresses < RubyPtvApi::Operation::XLocate::Base
5
+ attr_reader :addresses
6
+
7
+ def initialize(addresses)
8
+ raise 'Use FindAddress for single address' unless addresses.is_a? Array
9
+ @addresses = addresses
10
+ end
11
+
12
+ def ptv_function
13
+ 'findAddresses'
14
+ end
15
+
16
+ def params
17
+ {
18
+ addrs: addresses,
19
+ options: options,
20
+ sorting: sorting,
21
+ additionalFields: additional_fields
22
+ }
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,31 @@
1
+ module RubyPtvApi
2
+ module Operation
3
+ module XLocate
4
+ class FindCombinedTransportByLocation < RubyPtvApi::Operation::XLocate::Base
5
+ attr_reader :location
6
+
7
+ def initialize(location)
8
+ @location = location
9
+ end
10
+
11
+ def ptv_function
12
+ 'findCombinedTransportByLocation'
13
+ end
14
+
15
+ def params
16
+ {
17
+ location: location,
18
+ options: options,
19
+ additionalFields: additional_fields
20
+ }
21
+ end
22
+
23
+ protected
24
+
25
+ def response_class
26
+ RubyPtvApi::Model::XLocate::CombinedTransportResponse
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,26 @@
1
+ module RubyPtvApi
2
+ module Operation
3
+ module XLocate
4
+ class FindLocation < RubyPtvApi::Operation::XLocate::Base
5
+ attr_reader :location
6
+
7
+ def initialize(location)
8
+ @location = location
9
+ end
10
+
11
+ def ptv_function
12
+ 'findLocation'
13
+ end
14
+
15
+ def params
16
+ {
17
+ location: location,
18
+ options: options,
19
+ sorting: sorting,
20
+ additionalFields: additional_fields
21
+ }
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,27 @@
1
+ module RubyPtvApi
2
+ module Operation
3
+ module XLocate
4
+ class FindLocations < RubyPtvApi::Operation::XLocate::Base
5
+ attr_reader :locations
6
+
7
+ def initialize(locations)
8
+ raise 'Use FindLocation for single address' unless locations.is_a? Array
9
+ @locations = locations
10
+ end
11
+
12
+ def ptv_function
13
+ 'findLocations'
14
+ end
15
+
16
+ def params
17
+ {
18
+ location: locations,
19
+ options: options,
20
+ sorting: sorting,
21
+ additionalFields: additional_fields
22
+ }
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end