@@ -13,7 +13,7 @@ FleetApiClient::FleetApiClient(
1313 companyName_ (facConfig.companyName),
1414 carName_ (facConfig.carName)
1515{
16- auto apiConfigPtr = std::make_shared<api::ApiConfiguration>();
16+ const auto apiConfigPtr = std::make_shared<api::ApiConfiguration>();
1717 apiConfigPtr->setBaseUrl (facConfig.apiUrl );
1818 apiConfigPtr->setApiKey (settings::Constants::API_KEY_HEADER_KEY, facConfig.apiKey );
1919 apiClientPtr_ = std::make_shared<api::ApiClient>();
@@ -28,7 +28,7 @@ FleetApiClient::FleetApiClient(
2828 payloadPtr_ = std::make_shared<model::Payload>();
2929 payloadDataPtr_ = std::make_shared<model::Payload_data>();
3030
31- setDeviceIdentification (fleet_protocol:: cxx::DeviceID (0 , 0 , 0 ,
31+ setDeviceIdentification (cxx::DeviceID (0 , 0 , 0 ,
3232 settings::Constants::DEFAULT_DEVICE_ROLE, settings::Constants::DEFAULT_DEVICE_NAME
3333 ));
3434
@@ -42,77 +42,85 @@ FleetApiClient::FleetApiClient(
4242}
4343
4444
45- void FleetApiClient::setDeviceIdentification (const fleet_protocol:: cxx::DeviceID &deviceId) {
45+ void FleetApiClient::setDeviceIdentification (const cxx::DeviceID &deviceId) const {
4646 auto deviceIdentification = deviceId.getDeviceId ();
4747 deviceIdPtr_->setModuleId (deviceIdentification.module );
4848 deviceIdPtr_->setType (deviceIdentification.device_type );
4949 deviceIdPtr_->setRole (std::string (static_cast <char *>(deviceIdentification.device_role .data )));
5050 deviceIdPtr_->setName (std::string (static_cast <char *>(deviceIdentification.device_name .data )));
5151}
5252
53-
54- std::vector<std::shared_ptr<model::Car>> FleetApiClient::getCars (std::optional<int64_t > since, std::optional<bool > wait) {
55- auto carsRequest = carApi_->availableCars (wait.value_or (false ), since.value_or (0 ));
53+ std::pair<std::vector<std::shared_ptr<model::Car>>, FleetApiClient::ReturnCode> FleetApiClient::getCars (
54+ const std::optional<int64_t > since, const std::optional<bool > wait) const
55+ {
56+ const auto carsRequest = carApi_->availableCars (wait.value_or (false ), since.value_or (0 ));
5657 std::vector<std::shared_ptr<model::Car>> cars {};
58+ auto rc = ReturnCode::OK;
5759
5860 try {
5961 cars = carsRequest.get ();
60- } catch (std::exception &e ) {
62+ } catch (std::exception &) {
6163 }
6264
63- if (wait) {
64- requestFrequencyGuard_-> handleDelays () ;
65+ if (wait && requestFrequencyGuard_-> handleDelays () ) {
66+ rc = ReturnCode::DELAYED ;
6567 }
66- return cars;
68+ return { cars, rc} ;
6769}
6870
6971
70- std::vector<std::shared_ptr<model::Message>> FleetApiClient::getCommands (std::optional<int64_t > since, std::optional<bool > wait) {
71- auto commandsRequest = deviceApi_->listCommands (companyName_, carName_, since.value_or (0 ), wait.value_or (false ));
72+ std::pair<std::vector<std::shared_ptr<model::Message>>, FleetApiClient::ReturnCode> FleetApiClient::getCommands (
73+ const std::optional<int64_t > since, const std::optional<bool > wait) const
74+ {
75+ const auto commandsRequest = deviceApi_->listCommands (companyName_, carName_, since.value_or (0 ), wait.value_or (false ));
7276 std::vector<std::shared_ptr<model::Message>> commands {};
77+ auto rc = ReturnCode::OK;
7378
7479 try {
7580 commands = commandsRequest.get ();
76- } catch (std::exception &e ) {
81+ } catch (std::exception &) {
7782 }
7883
79- if (wait) {
80- requestFrequencyGuard_-> handleDelays () ;
84+ if (wait && requestFrequencyGuard_-> handleDelays () ) {
85+ rc = ReturnCode::DELAYED ;
8186 }
82- return commands;
87+ return { commands, rc} ;
8388}
8489
8590
86- std::vector<std::shared_ptr<model::Message>> FleetApiClient::getStatuses (std::optional<int64_t > since, std::optional<bool > wait) {
87- auto statusesRequest = deviceApi_->listStatuses (companyName_, carName_, since.value_or (0 ), wait.value_or (false ));
91+ std::pair<std::vector<std::shared_ptr<model::Message>>, FleetApiClient::ReturnCode> FleetApiClient::getStatuses (
92+ const std::optional<int64_t > since, const std::optional<bool >& wait) const
93+ {
94+ const auto statusesRequest = deviceApi_->listStatuses (companyName_, carName_, since.value_or (0 ), wait.value_or (false ));
8895 std::vector<std::shared_ptr<model::Message>> statuses {};
96+ auto rc = ReturnCode::OK;
8997
9098 try {
9199 statuses = statusesRequest.get ();
92- } catch (std::exception &e ) {
100+ } catch (std::exception &) {
93101 }
94102
95- if (wait) {
96- requestFrequencyGuard_-> handleDelays () ;
103+ if (wait && requestFrequencyGuard_-> handleDelays () ) {
104+ rc = ReturnCode::DELAYED ;
97105 }
98- return statuses;
106+ return { statuses, rc} ;
99107}
100108
101109
102- void FleetApiClient::sendCommand (const std::string &commandJson) {
110+ void FleetApiClient::sendCommand (const std::string &commandJson) const {
103111 payloadPtr_->setMessageType (settings::Constants::COMMAND_MESSAGE_TYPE);
104112 payloadDataPtr_->setJson (web::json::value::parse (commandJson));
105113 messagePtr_->setTimestamp (utility::datetime::utc_timestamp ());
106114
107115 std::vector<std::shared_ptr<model::Message>> commands;
108116 commands.push_back (messagePtr_);
109117
110- auto commandsRequest = deviceApi_->sendCommands (companyName_, carName_, commands);
118+ const auto commandsRequest = deviceApi_->sendCommands (companyName_, carName_, commands);
111119 commandsRequest.wait ();
112120}
113121
114122
115- void FleetApiClient::sendStatus (const std::string &statusJson, StatusType statusType) {
123+ void FleetApiClient::sendStatus (const std::string &statusJson, const StatusType statusType) const {
116124 switch (statusType) {
117125 case StatusType::STATUS:
118126 payloadPtr_->setMessageType (settings::Constants::STATUS_MESSAGE_TYPE);
@@ -129,18 +137,18 @@ void FleetApiClient::sendStatus(const std::string &statusJson, StatusType status
129137 std::vector<std::shared_ptr<model::Message>> statuses;
130138 statuses.push_back (messagePtr_);
131139
132- auto statusesRequest = deviceApi_->sendStatuses (companyName_, carName_, statuses);
140+ const auto statusesRequest = deviceApi_->sendStatuses (companyName_, carName_, statuses);
133141 statusesRequest.wait ();
134142}
135143
136144
137- std::shared_ptr<model::AvailableDevices> FleetApiClient::getAvailableDevices (std::optional<int32_t > moduleId) {
145+ std::shared_ptr<model::AvailableDevices> FleetApiClient::getAvailableDevices (std::optional<int32_t > moduleId) const {
138146 boost::optional<int32_t > moduleIdBoost = boost::none;
139147 if (moduleId.has_value ()) {
140148 moduleIdBoost = moduleId.value ();
141149 }
142150
143- auto availableDevicesRequest = moduleApi_->availableDevices (companyName_, carName_, moduleIdBoost);
151+ const auto availableDevicesRequest = moduleApi_->availableDevices (companyName_, carName_, moduleIdBoost);
144152 return availableDevicesRequest.get ();
145153}
146154
0 commit comments