From a5bdc0740617801597e22dda66a007fa03473dae Mon Sep 17 00:00:00 2001 From: gnosygnu Date: Wed, 2 Nov 2016 09:57:17 -0400 Subject: [PATCH] User_wiki: Add delete wiki --- .../users/wikis/regys/dbs/Xou_wiki_tbl.java | 16 ++++++++++------ .../regys/specials/itms/Xouw_itm_bridge.java | 4 +++- .../wikis/regys/specials/itms/Xouw_itm_mgr.java | 11 ++++++++--- 3 files changed, 21 insertions(+), 10 deletions(-) diff --git a/400_xowa/src/gplx/xowa/addons/users/wikis/regys/dbs/Xou_wiki_tbl.java b/400_xowa/src/gplx/xowa/addons/users/wikis/regys/dbs/Xou_wiki_tbl.java index 1c52fa427..51da85aed 100644 --- a/400_xowa/src/gplx/xowa/addons/users/wikis/regys/dbs/Xou_wiki_tbl.java +++ b/400_xowa/src/gplx/xowa/addons/users/wikis/regys/dbs/Xou_wiki_tbl.java @@ -57,14 +57,18 @@ public class Xou_wiki_tbl implements Db_tbl { finally {rdr.Rls();} } public Xou_wiki_itm Select_by_key_or_null(String key) { - Db_rdr rdr = conn.Stmt_select(tbl_name, flds, fld__wiki_domain).Clear().Crt_str(fld__wiki_domain, key).Exec_select__rls_auto(); - try { - return rdr.Move_next() - ? Make(rdr) - : null; - } + Db_rdr rdr = conn.Stmt_select(tbl_name, flds, fld__wiki_domain).Crt_str(fld__wiki_domain, key).Exec_select__rls_auto(); + try {return rdr.Move_next() ? Make(rdr) : null;} finally {rdr.Rls();} } + public Xou_wiki_itm Select_by_id_or_null(int id) { + Db_rdr rdr = conn.Stmt_select(tbl_name, flds, fld__wiki_id).Crt_int(fld__wiki_id, id).Exec_select__rls_auto(); + try {return rdr.Move_next() ? Make(rdr) : null;} + finally {rdr.Rls();} + } + public void Delete_by_id(int id) { + conn.Stmt_delete(tbl_name, fld__wiki_id).Crt_int(fld__wiki_id, id).Exec_delete(); + } private Xou_wiki_itm Make(Db_rdr rdr) { return new Xou_wiki_itm(rdr.Read_int(fld__wiki_id), rdr.Read_str(fld__wiki_domain), rdr.Read_str(fld__wiki_name), Io_url_.new_fil_(rdr.Read_str(fld__wiki_core_url)), rdr.Read_str(fld__wiki_data)); } diff --git a/400_xowa/src/gplx/xowa/addons/users/wikis/regys/specials/itms/Xouw_itm_bridge.java b/400_xowa/src/gplx/xowa/addons/users/wikis/regys/specials/itms/Xouw_itm_bridge.java index db89c8107..6c7414f65 100644 --- a/400_xowa/src/gplx/xowa/addons/users/wikis/regys/specials/itms/Xouw_itm_bridge.java +++ b/400_xowa/src/gplx/xowa/addons/users/wikis/regys/specials/itms/Xouw_itm_bridge.java @@ -29,15 +29,17 @@ public class Xouw_itm_bridge implements gplx.xowa.htmls.bridges.Bridge_cmd_itm { Json_nde args = data.Get_kv(Msg__args).Val_as_nde(); switch (proc_id) { case Proc__save: itm_mgr.Save(args); break; + case Proc__delete: itm_mgr.Delete(args); break; default: throw Err_.new_unhandled_default(proc_id); } return ""; } private static final byte[] Msg__proc = Bry_.new_a7("proc"), Msg__args = Bry_.new_a7("args"); - private static final byte Proc__save = 0; + private static final byte Proc__save = 0, Proc__delete = 1; private static final Hash_adp_bry proc_hash = Hash_adp_bry.cs() .Add_str_byte("save" , Proc__save) + .Add_str_byte("delete" , Proc__delete) ; public byte[] Key() {return BRIDGE_KEY;} public static final byte[] BRIDGE_KEY = Bry_.new_a7("user.wiki.itm.exec"); diff --git a/400_xowa/src/gplx/xowa/addons/users/wikis/regys/specials/itms/Xouw_itm_mgr.java b/400_xowa/src/gplx/xowa/addons/users/wikis/regys/specials/itms/Xouw_itm_mgr.java index 29cdce454..1949a9cbc 100644 --- a/400_xowa/src/gplx/xowa/addons/users/wikis/regys/specials/itms/Xouw_itm_mgr.java +++ b/400_xowa/src/gplx/xowa/addons/users/wikis/regys/specials/itms/Xouw_itm_mgr.java @@ -25,9 +25,7 @@ class Xouw_itm_mgr { public Xouw_itm_mgr(Xoa_app app) { this.app = app; } - public void Save(Json_nde args) { - Save(args.Get_as_int("id"), args.Get_as_str("domain"), args.Get_as_str("name"), args.Get_as_str("dir")); - } + public void Save(Json_nde args) {Save(args.Get_as_int("id"), args.Get_as_str("domain"), args.Get_as_str("name"), args.Get_as_str("dir"));} public void Save(int id, String domain, String name, String dir_str) { boolean itm_is_new = false; // get next id if none provided @@ -45,4 +43,11 @@ class Xouw_itm_mgr { if (itm_is_new) Xow_db_mkr.Create_wiki(new Xodb_wiki_data(domain, fil_url)); } + public void Delete(Json_nde args) {Delete(args.Get_as_int("id"));} + public void Delete(int id) { + Xouw_db_mgr db_mgr = new Xouw_db_mgr(app.User().User_db_mgr().Conn()); + Xou_wiki_itm itm = db_mgr.Tbl__wiki().Select_by_id_or_null(id); + if (itm == null) throw Err_.new_wo_type("wiki does not exist", "id", id); + db_mgr.Tbl__wiki().Delete_by_id(id); + } }