return 0;
}
+
+extern "C" EXPORT_API int _pkginfo_delete_certinfo(const char *pkgid)
+{
+ char* query = sqlite3_mprintf("UPDATE package_cert_info SET "
+ "package_count = package_count - 1 WHERE package=%Q", pkgid);
+ if (query == nullptr) {
+ LOG(ERROR) << "Out of memory";
+ return PMINFO_R_ERROR;
+ }
+
+ std::vector<std::string> queries;
+ queries.emplace_back(query);
+ sqlite3_free(query);
+
+ std::shared_ptr<pkgmgr_common::parcel::AbstractParcelable> parcelable(
+ new pkgmgr_common::parcel::QueryParcelable(0, queries,
+ pkgmgr_common::database::AbstractDBHandler::DBType::DB_TYPE_FILE_CERTDB,
+ pkgmgr_common::database::AbstractDBHandler::OperationType::OPERATION_TYPE_WRITE));
+
+ pkgmgr_client::PkgInfoClient client(parcelable, 0,
+ pkgmgr_common::ReqType::QUERY);
+ if (!client.SendRequest()) {
+ return PMINFO_R_ERROR;
+ }
+
+ std::shared_ptr<pkgmgr_common::parcel::ResultParcelable> return_parcel(
+ std::static_pointer_cast<pkgmgr_common::parcel::ResultParcelable>(
+ client.GetResultParcel()));
+
+ auto result_list = return_parcel->GetResult();
+ if (result_list.size() != 1) {
+ LOG(ERROR) << "Invalid result";
+ return PMINFO_R_ERROR;
+ }
+
+ if (result_list[0].size() != 1) {
+ LOG(ERROR) << "Invalid result";
+ return PMINFO_R_ERROR;
+ }
+
+ LOG(ERROR) << "result : " << result_list[0][0];
+ if (result_list[0][0] != "SUCCESS")
+ return PMINFO_R_ERROR;
+
+ return PMINFO_R_OK;
+}
#include <sqlite3.h>
#include <glib.h>
+#include "manager/pkginfo_manager.h"
#include "pkgmgr-info.h"
#include "pkgmgrinfo_debug.h"
#include "pkgmgrinfo_internal.h"
return PMINFO_R_EINVAL;
}
- // TODO: use pkginfo-client APIs
-
- return PMINFO_R_OK;
+ return _pkginfo_delete_certinfo(pkgid);
}
API int pkgmgrinfo_delete_certinfo(const char *pkgid) {