#include "common/database/abstract_db_handler.hh"
#include "common/database/pkg_set_db_handler.hh"
#include "common/parcel/appinfo_parcelable.hh"
+#include "common/parcel/certinfo_parcelable.hh"
#include "common/parcel/depinfo_parcelable.hh"
#include "common/parcel/filter_parcelable.hh"
#include "common/parcel/pkginfo_parcelable.hh"
return 0;
}
+extern "C" EXPORT_API int _pkginfo_insert_certinfo(const char* pkgid,
+ pkgmgr_certinfo_x* cert, uid_t uid)
+{
+ std::shared_ptr<pkgmgr_common::parcel::AbstractParcelable> parcelable(
+ new pkgmgr_common::parcel::CertInfoParcelable(uid, cert));
+
+ pkgmgr_client::PkgInfoClient client(parcelable, uid,
+ pkgmgr_common::ReqType::GET_CERT_INFO);
+ 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;
+}
+
extern "C" EXPORT_API int _pkginfo_delete_certinfo(const char *pkgid)
{
char* query = sqlite3_mprintf("UPDATE package_cert_info SET "
_LOGE("invalid parameter");
return PMINFO_R_EINVAL;
}
-
- // TODO: database should be created?
- //_check_create_cert_db();
-
- // TODO: use pkginfo-client APIs
-
- return PMINFO_R_OK;
+ pkgmgr_certinfo_x *certinfo = (pkgmgr_certinfo_x *)handle;
+ return _pkginfo_insert_certinfo(pkgid, certinfo, uid);
}
API int pkgmgrinfo_destroy_certinfo_set_handle(