/* * @file DBServiceAPI.cpp * @author Mateusz Piesta (mateusz.piesta@mudita.com) * @date 06.06.19 * @brief * @copyright Copyright (C) 2019 mudita.com * @details */ #include "DBServiceAPI.hpp" #include "../messages/DBMessage.hpp" #include "../ServiceDB.hpp" SettingsRecord DBServiceAPI::SettingsGet(sys::Service* serv) { std::shared_ptr msg = std::make_shared(MessageType::DBSettingsGet); auto ret = sys::Bus::SendUnicast(msg,ServiceDB::serviceName,serv,5000); if(ret.first == sys::ReturnCodes::Success){ auto respMsg = ret.second; DBSettingsResponseMessage* settingsResponse = reinterpret_cast(respMsg.get()); if(settingsResponse->retCode == true){ return settingsResponse->record; } else{ return SettingsRecord{}; } } else{ return SettingsRecord{}; } } bool DBServiceAPI::SettingsUpdate(sys::Service* serv,const SettingsRecord &rec) { std::shared_ptr msg = std::make_shared(MessageType::DBSettingsUpdate,rec); auto ret = sys::Bus::SendUnicast(msg,ServiceDB::serviceName,serv,5000); if(ret.first == sys::ReturnCodes::Success){ return true; } else{ return false; } } bool DBServiceAPI::SMSAdd(sys::Service *serv, const SMSRecord &rec) { std::shared_ptr msg = std::make_shared(MessageType::DBSMSAdd,rec); auto ret = sys::Bus::SendUnicast(msg,ServiceDB::serviceName,serv,5000); DBSMSResponseMessage* smsResponse = reinterpret_cast(ret.second.get()); if((ret.first == sys::ReturnCodes::Success) && (smsResponse->retCode == true)){ return true; } else{ return false; } } bool DBServiceAPI::SMSRemove(sys::Service *serv, uint32_t id) { std::shared_ptr msg = std::make_shared(MessageType::DBSMSRemove); msg->id = id; auto ret = sys::Bus::SendUnicast(msg,ServiceDB::serviceName,serv,5000); DBSMSResponseMessage* smsResponse = reinterpret_cast(ret.second.get()); if((ret.first == sys::ReturnCodes::Success) && (smsResponse->retCode == true)){ return true; } else{ return false; } } bool DBServiceAPI::SMSUpdate(sys::Service *serv, const SMSRecord &rec) { std::shared_ptr msg = std::make_shared(MessageType::DBSMSUpdate,rec); auto ret = sys::Bus::SendUnicast(msg,ServiceDB::serviceName,serv,5000); DBSMSResponseMessage* smsResponse = reinterpret_cast(ret.second.get()); if((ret.first == sys::ReturnCodes::Success) && (smsResponse->retCode == true)){ return true; } else{ return false; } } std::unique_ptr> DBServiceAPI::SMSGetLimitOffset(sys::Service *serv,uint32_t offset, uint32_t limit) { std::shared_ptr msg = std::make_shared(MessageType::DBSMSGetSMSLimitOffset); msg->offset = offset; msg->limit = limit; auto ret = sys::Bus::SendUnicast(msg,ServiceDB::serviceName,serv,5000); DBSMSResponseMessage* smsResponse = reinterpret_cast(ret.second.get()); if((ret.first == sys::ReturnCodes::Success) && (smsResponse->retCode == true)){ return std::move(smsResponse->records); } else{ return std::make_unique>(); } } std::unique_ptr> DBServiceAPI::SMSGetLimitOffsetByThreadID(sys::Service *serv, uint32_t offset, uint32_t limit, uint32_t id) { std::shared_ptr msg = std::make_shared(MessageType::DBSMSGetSMSLimitOffsetByThreadID); msg->offset = offset; msg->limit = limit; msg->id = id; auto ret = sys::Bus::SendUnicast(msg,ServiceDB::serviceName,serv,5000); DBSMSResponseMessage* smsResponse = reinterpret_cast(ret.second.get()); if((ret.first == sys::ReturnCodes::Success) && (smsResponse->retCode == true)){ return std::move(smsResponse->records); } else{ return std::make_unique>(); } } ThreadRecord DBServiceAPI::ThreadGet(sys::Service *serv,uint32_t id) { std::shared_ptr msg = std::make_shared(MessageType::DBThreadGet); msg->id = id; auto ret = sys::Bus::SendUnicast(msg,ServiceDB::serviceName,serv,5000); DBThreadResponseMessage* threadResponse = reinterpret_cast(ret.second.get()); if((ret.first == sys::ReturnCodes::Success) && (threadResponse->retCode == true)){ return std::move((*threadResponse->records)[0]); } else{ return ThreadRecord{}; } } bool DBServiceAPI::ThreadRemove(sys::Service *serv, uint32_t id) { std::shared_ptr msg = std::make_shared(MessageType::DBThreadRemove); msg->id = id; auto ret = sys::Bus::SendUnicast(msg,ServiceDB::serviceName,serv,5000); DBThreadResponseMessage* threadResponse = reinterpret_cast(ret.second.get()); if((ret.first == sys::ReturnCodes::Success) && (threadResponse->retCode == true)){ return true; } else{ return false; } } std::unique_ptr> DBServiceAPI::ThreadGetLimitOffset(sys::Service *serv, uint32_t offset, uint32_t limit) { std::shared_ptr msg = std::make_shared(MessageType::DBThreadGetLimitOffset); msg->offset = offset; msg->limit = limit; auto ret = sys::Bus::SendUnicast(msg,ServiceDB::serviceName,serv,5000); DBThreadResponseMessage* threadResponse = reinterpret_cast(ret.second.get()); if((ret.first == sys::ReturnCodes::Success) && (threadResponse->retCode == true)){ return std::move(threadResponse->records); } else{ return std::make_unique>(); } } bool DBServiceAPI::verifyContact( sys::Service* serv,const NotesRecord& rec, NotesRecord& errName, const NotesRecord& errPhone1, NotesRecord& errPhone2, NotesRecord& speedDial ) { // std::shared_ptr msg = std::make_shared(MessageType::DBContactVerify,rec); // msg->record.contactType = ContactType::USER; // // auto ret = sys::Bus::SendUnicast(msg,ServiceDB::serviceName,serv,5000); // DBContactResponseMessage* contactResponse = reinterpret_cast(ret.second.get()); // if((ret.first == sys::ReturnCodes::Success) && (contactResponse->retCode == true)){ // return true; // } // else{ // return false; // } return true; } bool DBServiceAPI::ContactAdd(sys::Service *serv, const ContactRecord &rec) { std::shared_ptr msg = std::make_shared(MessageType::DBContactAdd,rec); msg->record.contactType = ContactType::USER; auto ret = sys::Bus::SendUnicast(msg,ServiceDB::serviceName,serv,5000); DBContactResponseMessage* contactResponse = reinterpret_cast(ret.second.get()); if((ret.first == sys::ReturnCodes::Success) && (contactResponse->retCode == true)){ return true; } else{ return false; } } bool DBServiceAPI::ContactRemove(sys::Service *serv, uint32_t id) { std::shared_ptr msg = std::make_shared(MessageType::DBContactRemove); msg->id = id; auto ret = sys::Bus::SendUnicast(msg,ServiceDB::serviceName,serv,5000); DBContactResponseMessage* contactResponse = reinterpret_cast(ret.second.get()); if((ret.first == sys::ReturnCodes::Success) && (contactResponse->retCode == true)){ return true; } else{ return false; } } bool DBServiceAPI::ContactUpdate(sys::Service *serv, const ContactRecord &rec) { std::shared_ptr msg = std::make_shared(MessageType::DBContactUpdate,rec); auto ret = sys::Bus::SendUnicast(msg,ServiceDB::serviceName,serv,5000); DBContactResponseMessage* contactResponse = reinterpret_cast(ret.second.get()); if((ret.first == sys::ReturnCodes::Success) && (contactResponse->retCode == true)){ return true; } else{ return false; } } uint32_t DBServiceAPI::ContactGetCount(sys::Service *serv, bool favourites ) { std::shared_ptr msg = std::make_shared(MessageType::DBContactGetCount, ContactRecord{}, favourites); auto ret = sys::Bus::SendUnicast(msg,ServiceDB::serviceName,serv,5000); DBContactResponseMessage* contactResponse = reinterpret_cast(ret.second.get()); if((ret.first == sys::ReturnCodes::Success) && (contactResponse->retCode == true)){ return contactResponse->count; } else{ return false; } } //std::unique_ptr> DBServiceAPI::ContactGetLimitOffset(sys::Service *serv, uint32_t offset, bool DBServiceAPI::ContactGetLimitOffset(sys::Service *serv, uint32_t offset, uint32_t limit, bool favourites ) { std::shared_ptr msg = std::make_shared(MessageType::DBContactGetLimitOffset, ContactRecord{}, favourites); msg->offset = offset; msg->limit = limit; // auto ret = sys::Bus::SendUnicast(msg,ServiceDB::serviceName,serv,5000); // DBContactResponseMessage* contactResponse = reinterpret_cast(ret.second.get()); // contactResponse->offset = msg->offset; // contactResponse->limit = msg->limit; // contactResponse->favourite = favourites; // // if((ret.first == sys::ReturnCodes::Success) && (contactResponse->retCode == true)){ // return std::move(contactResponse->records); // } // else{ // return std::make_unique>(); // } sys::Bus::SendUnicast(msg,ServiceDB::serviceName,serv); return true; } bool DBServiceAPI::AlarmAdd(sys::Service *serv, const AlarmsRecord &rec) { std::shared_ptr msg = std::make_shared(MessageType::DBAlarmAdd,rec); auto ret = sys::Bus::SendUnicast(msg,ServiceDB::serviceName,serv,5000); DBAlarmResponseMessage* alarmResponse = reinterpret_cast(ret.second.get()); if((ret.first == sys::ReturnCodes::Success) && (alarmResponse->retCode == true)){ return true; } else{ return false; } } bool DBServiceAPI::AlarmRemove(sys::Service *serv, uint32_t id) { std::shared_ptr msg = std::make_shared(MessageType::DBAlarmRemove); msg->id = id; auto ret = sys::Bus::SendUnicast(msg,ServiceDB::serviceName,serv,5000); DBAlarmResponseMessage* alarmResponse = reinterpret_cast(ret.second.get()); if((ret.first == sys::ReturnCodes::Success) && (alarmResponse->retCode == true)){ return true; } else{ return false; } } bool DBServiceAPI::AlarmUpdate(sys::Service *serv, const AlarmsRecord &rec) { std::shared_ptr msg = std::make_shared(MessageType::DBAlarmUpdate,rec); auto ret = sys::Bus::SendUnicast(msg,ServiceDB::serviceName,serv,5000); DBAlarmResponseMessage* alarmResponse = reinterpret_cast(ret.second.get()); if((ret.first == sys::ReturnCodes::Success) && (alarmResponse->retCode == true)){ return true; } else{ return false; } } uint32_t DBServiceAPI::AlarmGetCount(sys::Service *serv) { std::shared_ptr msg = std::make_shared(MessageType::DBAlarmGetCount); auto ret = sys::Bus::SendUnicast(msg,ServiceDB::serviceName,serv,5000); DBAlarmResponseMessage* alarmResponse = reinterpret_cast(ret.second.get()); if((ret.first == sys::ReturnCodes::Success) && (alarmResponse->retCode == true)){ return alarmResponse->count; } else{ return false; } } std::unique_ptr> DBServiceAPI::AlarmGetLimitOffset(sys::Service *serv, uint32_t offset, uint32_t limit) { std::shared_ptr msg = std::make_shared(MessageType::DBAlarmGetLimitOffset); msg->offset = offset; msg->limit = limit; auto ret = sys::Bus::SendUnicast(msg,ServiceDB::serviceName,serv,5000); DBAlarmResponseMessage* alarmResponse = reinterpret_cast(ret.second.get()); if((ret.first == sys::ReturnCodes::Success) && (alarmResponse->retCode == true)){ return std::move(alarmResponse->records); } else{ return std::make_unique>(); } } AlarmsRecord DBServiceAPI::AlarmGetNext(sys::Service *serv, time_t time) { std::shared_ptr msg = std::make_shared(MessageType::DBAlarmGetNext); msg->time = time; auto ret = sys::Bus::SendUnicast(msg,ServiceDB::serviceName,serv,5000); DBAlarmResponseMessage* alarmResponse = reinterpret_cast(ret.second.get()); if((ret.first == sys::ReturnCodes::Success) && (alarmResponse->retCode == true)){ return std::move((*alarmResponse->records)[0]); } else{ return AlarmsRecord{}; } } bool DBServiceAPI::NotesAdd(sys::Service *serv, const NotesRecord &rec) { std::shared_ptr msg = std::make_shared(MessageType::DBNotesAdd,rec); auto ret = sys::Bus::SendUnicast(msg,ServiceDB::serviceName,serv,5000); DBNotesResponseMessage* notesResponse = reinterpret_cast(ret.second.get()); if((ret.first == sys::ReturnCodes::Success) && (notesResponse->retCode == true)){ return true; } else{ return false; } } bool DBServiceAPI::NotesRemove(sys::Service *serv, uint32_t id) { std::shared_ptr msg = std::make_shared(MessageType::DBNotesRemove); msg->id = id; auto ret = sys::Bus::SendUnicast(msg,ServiceDB::serviceName,serv,5000); DBNotesResponseMessage* notesResponse = reinterpret_cast(ret.second.get()); if((ret.first == sys::ReturnCodes::Success) && (notesResponse->retCode == true)){ return true; } else{ return false; } } bool DBServiceAPI::NotesUpdate(sys::Service *serv, const NotesRecord &rec) { std::shared_ptr msg = std::make_shared(MessageType::DBNotesUpdate,rec); auto ret = sys::Bus::SendUnicast(msg,ServiceDB::serviceName,serv,5000); DBNotesResponseMessage* notesResponse = reinterpret_cast(ret.second.get()); if((ret.first == sys::ReturnCodes::Success) && (notesResponse->retCode == true)){ return true; } else{ return false; } } uint32_t DBServiceAPI::NotesGetCount(sys::Service *serv) { std::shared_ptr msg = std::make_shared(MessageType::DBNotesGetCount); auto ret = sys::Bus::SendUnicast(msg,ServiceDB::serviceName,serv,5000); DBNotesResponseMessage* notesResponse = reinterpret_cast(ret.second.get()); if((ret.first == sys::ReturnCodes::Success) && (notesResponse->retCode == true)){ return notesResponse->count; } else{ return false; } } bool DBServiceAPI::NotesGetLimitOffset(sys::Service *serv, uint32_t offset, uint32_t limit) { std::shared_ptr msg = std::make_shared(MessageType::DBNotesGetLimitOffset); msg->offset = offset; msg->limit = limit; sys::Bus::SendUnicast(msg,ServiceDB::serviceName,serv); return true; }