mirror of
https://github.com/gnosygnu/xowa.git
synced 2024-10-27 20:34:16 +00:00
User_wiki: Add delete wiki
This commit is contained in:
parent
ff869ecfc3
commit
a5bdc07406
@ -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));
|
||||
}
|
||||
|
@ -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");
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user