/* * @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::ContactAdd(sys::Service *serv, const ContactRecord &rec) { std::shared_ptr msg = std::make_shared(MessageType::DBContactAdd,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; } } 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) { std::shared_ptr msg = std::make_shared(MessageType::DBContactGetCount); 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, uint32_t limit) { std::shared_ptr msg = std::make_shared(MessageType::DBContactGetLimitOffset); msg->offset = offset; msg->limit = limit; 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 std::move(contactResponse->records); } else{ return std::make_unique>(); } }