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();}
|
finally {rdr.Rls();}
|
||||||
}
|
}
|
||||||
public Xou_wiki_itm Select_by_key_or_null(String key) {
|
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();
|
Db_rdr rdr = conn.Stmt_select(tbl_name, flds, fld__wiki_domain).Crt_str(fld__wiki_domain, key).Exec_select__rls_auto();
|
||||||
try {
|
try {return rdr.Move_next() ? Make(rdr) : null;}
|
||||||
return rdr.Move_next()
|
|
||||||
? Make(rdr)
|
|
||||||
: null;
|
|
||||||
}
|
|
||||||
finally {rdr.Rls();}
|
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) {
|
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));
|
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();
|
Json_nde args = data.Get_kv(Msg__args).Val_as_nde();
|
||||||
switch (proc_id) {
|
switch (proc_id) {
|
||||||
case Proc__save: itm_mgr.Save(args); break;
|
case Proc__save: itm_mgr.Save(args); break;
|
||||||
|
case Proc__delete: itm_mgr.Delete(args); break;
|
||||||
default: throw Err_.new_unhandled_default(proc_id);
|
default: throw Err_.new_unhandled_default(proc_id);
|
||||||
}
|
}
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final byte[] Msg__proc = Bry_.new_a7("proc"), Msg__args = Bry_.new_a7("args");
|
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()
|
private static final Hash_adp_bry proc_hash = Hash_adp_bry.cs()
|
||||||
.Add_str_byte("save" , Proc__save)
|
.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");
|
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) {
|
public Xouw_itm_mgr(Xoa_app app) {
|
||||||
this.app = app;
|
this.app = app;
|
||||||
}
|
}
|
||||||
public void Save(Json_nde args) {
|
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"));}
|
||||||
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) {
|
public void Save(int id, String domain, String name, String dir_str) {
|
||||||
boolean itm_is_new = false;
|
boolean itm_is_new = false;
|
||||||
// get next id if none provided
|
// get next id if none provided
|
||||||
@ -45,4 +43,11 @@ class Xouw_itm_mgr {
|
|||||||
if (itm_is_new)
|
if (itm_is_new)
|
||||||
Xow_db_mkr.Create_wiki(new Xodb_wiki_data(domain, fil_url));
|
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