Commit 190a0eb4f8777737be201428d816c7d700a4c3df
1 parent
00507ef8
split the update function into 2 function one with the complete Type to update …
…and the second one with update fields from web args, which can construct the INSERT or UPDATE query with given fields only
Showing
3 changed files
with
40 additions
and
3 deletions
Show diff stats
hayamiki_lib @ 6ad846b4dc7
src/generation/files.anubis
| @@ -188,7 +188,7 @@ define One | @@ -188,7 +188,7 @@ define One | ||
| 188 | with transmit = "transmit "+name+".anubis", | 188 | with transmit = "transmit "+name+".anubis", |
| 189 | with view = "vtm_view(\""+name+"\", get_viewable_"+name+")", | 189 | with view = "vtm_view(\""+name+"\", get_viewable_"+name+")", |
| 190 | with edit = "vtm_edit(\""+name+"\", get_editable_"+name+")", | 190 | with edit = "vtm_edit(\""+name+"\", get_editable_"+name+")", |
| 191 | - with writer = "tm_writer(\""+name+"\", update_"+name+")", | 191 | + with writer = "tm_writer(\""+name+"\", update_"+name+"_from_type, update_"+name+"_from_fields)", |
| 192 | with delete = "tm_delete(\""+name+"\", delete_"+name+")", | 192 | with delete = "tm_delete(\""+name+"\", delete_"+name+")", |
| 193 | _make_vtm(apps, t, [transmit . so_far_transmit], [view . so_far_view], [edit . so_far_edit], [writer . so_far_writer], [delete . so_far_delete], dest_dir) | 193 | _make_vtm(apps, t, [transmit . so_far_transmit], [view . so_far_view], [edit . so_far_edit], [writer . so_far_writer], [delete . so_far_delete], dest_dir) |
| 194 | }. | 194 | }. |
src/generation/types.anubis
| @@ -326,9 +326,37 @@ public define Maybe(One) | @@ -326,9 +326,37 @@ public define Maybe(One) | ||
| 326 | " error(sql_error)\n"+ | 326 | " error(sql_error)\n"+ |
| 327 | " then logError(debug_log, db_error(sql_error, \"update_"+name+"\")), ok(_, _, _) then unique }\n"+ | 327 | " then logError(debug_log, db_error(sql_error, \"update_"+name+"\")), ok(_, _, _) then unique }\n"+ |
| 328 | " }.\n\n"+ | 328 | " }.\n\n"+ |
| 329 | + | ||
| 329 | "public define Maybe(One)\n"+ | 330 | "public define Maybe(One)\n"+ |
| 330 | " update_"+name+"\n"+ | 331 | " update_"+name+"\n"+ |
| 331 | " (\n"+ | 332 | " (\n"+ |
| 333 | + " SQLite3DataBase db,\n"+ | ||
| 334 | + " DB_id db_id,\n"+ | ||
| 335 | + " List(SQLite3_update_field) fields\n"+ | ||
| 336 | + " )=\n"+ | ||
| 337 | + " if db_id is\n"+ | ||
| 338 | + " {\n"+ | ||
| 339 | + //INSERT SQL query | ||
| 340 | + " none then\n"+ | ||
| 341 | + " since make_insert_clause_and_binds(fields) is (binds, insert_columns, insert_values),\n"+ | ||
| 342 | + " if sql_query_timeout(db, \"INSERT INTO "+name+" \"+insert_columns+\" VALUES \"+insert_values+\";\", binds, \"update_"+name+" (INSERT)\") is\n"+ | ||
| 343 | + " {\n"+ | ||
| 344 | + " error(sql_error) then logError(debug_log, db_error(sql_error, \"update_"+name+"\"));failure,\n"+ | ||
| 345 | + " ok(_, _, _) then success(unique)\n"+ | ||
| 346 | + " },\n"+ | ||
| 347 | + //UPDATE SQL query | ||
| 348 | + " db_id(idx) then\n"+ | ||
| 349 | + " since make_update_clause_and_binds(fields) is (binds, set_string),\n"+ | ||
| 350 | + " if sql_query_timeout(db, \"UPDATE "+name+" SET \"+set_string +\" WHERE id = \"+idx+\";\", binds, \"update_"+name+" (UPDATE)\") is\n"+ | ||
| 351 | + " {\n"+ | ||
| 352 | + " error(sql_error) then logError(debug_log, db_error(sql_error, \"update_"+name+"\"));failure,\n"+ | ||
| 353 | + " ok(_, _, _) then success(unique)\n"+ | ||
| 354 | + " }\n"+ | ||
| 355 | + " }.\n\n"+ | ||
| 356 | + | ||
| 357 | + "public define Maybe(One)\n"+ | ||
| 358 | + " update_"+name+"_from_type\n"+ | ||
| 359 | + " (\n"+ | ||
| 332 | " SQLite3DataBase db,\n"+ | 360 | " SQLite3DataBase db,\n"+ |
| 333 | " List(Web_arg) lwa\n"+ | 361 | " List(Web_arg) lwa\n"+ |
| 334 | " )=\n"+ | 362 | " )=\n"+ |
| @@ -336,7 +364,16 @@ public define Maybe(One) | @@ -336,7 +364,16 @@ public define Maybe(One) | ||
| 336 | " {\n"+ | 364 | " {\n"+ |
| 337 | " failure then logError(debug_log, \"update_"+name+" extract_"+type_name+"_from_web_arg is failure\"); failure,\n"+ | 365 | " failure then logError(debug_log, \"update_"+name+" extract_"+type_name+"_from_web_arg is failure\"); failure,\n"+ |
| 338 | " success("+name+") then success(update_"+name+"(db, "+name+"))\n"+ | 366 | " success("+name+") then success(update_"+name+"(db, "+name+"))\n"+ |
| 339 | - " }.\n\n" | 367 | + " }.\n\n"+ |
| 368 | + | ||
| 369 | + "public define Maybe(One)\n"+ | ||
| 370 | + " update_"+name+"_from_fields\n"+ | ||
| 371 | + " (\n"+ | ||
| 372 | + " SQLite3DataBase db,\n"+ | ||
| 373 | + " List(Web_arg) lwa\n"+ | ||
| 374 | + " )=\n"+ | ||
| 375 | + " update_"+name+"(db, get_DB_id(lwa, \"id\"),extract_"+type_name+"_update_fields_from_web_arg(lwa, \"\"))\n"+ | ||
| 376 | + ".\n\n" | ||
| 340 | 377 | ||
| 341 | ) is //end of the function | 378 | ) is //end of the function |
| 342 | { | 379 | { |