+ if (serial == null || "".equals(serial)) {
+ return null;
+ }
+ // TODO caching?
+ try {
+ String concat = "string_agg(concat('/', `name`, '=', REPLACE(REPLACE(value, '\\\\', '\\\\\\\\'), '/', '\\\\/')), '')";
+ GigiPreparedStatement ps = DatabaseConnection.getInstance().prepare("SELECT certs.id, " + concat + " as `subject`, `md`, `csr_name`, `crt_name`,`memid`, `profile`, `certs`.`serial` FROM `certs` LEFT JOIN `certAvas` ON `certAvas`.`certid`=`certs`.`id` WHERE `serial`=? GROUP BY `certs`.`id`");
+ ps.setString(1, serial);
+ GigiResultSet rs = ps.executeQuery();
+ return new Certificate(rs);
+ } catch (IllegalArgumentException e) {
+
+ }
+ return null;
+ }
+
+ public static Certificate getById(int id) {
+