Commit e02dec72bfa98ea75dbab3e27662848f5afa13e4
1 parent
dcaff5c8
adapt the generator according to hk_table_controller from hayamiki_lib.
This is means generate the name of columns; select_fields and json extractor
Showing
6 changed files
with
33 additions
and
63 deletions
Show diff stats
calexium_lib @ 8b1c73d0a94
hayamiki_lib @ 67283d2acf3
src/generation/SQL_get_all.anubis
| ... | ... | @@ -110,34 +110,21 @@ public define Maybe(One) |
| 110 | 110 | " success(cursor) then _get_all_"+name+"(cursor, [])\n"+ |
| 111 | 111 | " }\n"+ |
| 112 | 112 | ".\n"+ |
| 113 | -// "public define List(JsonValue)\n"+ | |
| 114 | -// " _get_all_"+name+"_to_json\n"+ | |
| 115 | -// " (\n"+ | |
| 116 | -// " SQLite3DataBase db,\n"+ | |
| 117 | -// " One -> SQLite3Row table_cursor,\n"+ | |
| 118 | -// " List(JsonValue) so_far\n"+ | |
| 119 | -// " ) =\n"+ | |
| 120 | -// " if extract_"+name+"_cursor_to_json(db, table_cursor) is\n"+ | |
| 121 | -// " {\n"+ | |
| 122 | -// " failure then reverse(so_far),\n"+ | |
| 123 | -// " success(data) then _get_all_"+name+"_to_json(db, table_cursor, [data . so_far])\n"+ | |
| 124 | -// " }\n"+ | |
| 125 | -// ".\n"+ | |
| 126 | 113 | |
| 127 | -"public define List(JsonValue)\n"+ | |
| 128 | -" _get_all_"+name+"_to_json\n"+ | |
| 129 | -" (\n"+ | |
| 130 | -" SQLite3DataBase db,\n"+ | |
| 131 | -" List(((Int -> SQLite3Datum) -> JsonMember)) extractors,\n"+ | |
| 132 | -" One -> SQLite3Row table_cursor,\n"+ | |
| 133 | -" List(JsonValue) so_far\n"+ | |
| 134 | -" ) =\n"+ | |
| 135 | -" if extract_"+name+"_cursor_to_json(db, extractors, table_cursor) is\n"+ | |
| 136 | -" {\n"+ | |
| 137 | -" failure then reverse(so_far),\n"+ | |
| 138 | -" success(data) then _get_all_"+name+"_to_json(db, extractors, table_cursor, [data . so_far])\n"+ | |
| 139 | -" }\n"+ | |
| 140 | -".\n"+ | |
| 114 | +//"public define List(JsonValue)\n"+ | |
| 115 | +//" _get_all_"+name+"_to_json\n"+ | |
| 116 | +//" (\n"+ | |
| 117 | +//" SQLite3DataBase db,\n"+ | |
| 118 | +//" List(((Int -> SQLite3Datum) -> JsonMember)) extractors,\n"+ | |
| 119 | +//" One -> SQLite3Row table_cursor,\n"+ | |
| 120 | +//" List(JsonValue) so_far\n"+ | |
| 121 | +//" ) =\n"+ | |
| 122 | +//" if extract_"+name+"_cursor_to_json(db, extractors, table_cursor) is\n"+ | |
| 123 | +//" {\n"+ | |
| 124 | +//" failure then reverse(so_far),\n"+ | |
| 125 | +//" success(data) then _get_all_"+name+"_to_json(db, extractors, table_cursor, [data . so_far])\n"+ | |
| 126 | +//" }\n"+ | |
| 127 | +//".\n"+ | |
| 141 | 128 | |
| 142 | 129 | "public define JsonValue\n"+ |
| 143 | 130 | " get_all_"+name+"_by_clause_to_json\n"+ |
| ... | ... | @@ -157,10 +144,8 @@ public define Maybe(One) |
| 157 | 144 | " failure then json_array([]),\n"+ |
| 158 | 145 | " success(cursor) then\n"+ |
| 159 | 146 | " json_array(\n"+ |
| 160 | -//" if length(columns) = 0 then\n"+ | |
| 161 | -//" _get_all_"+name+"_to_json(db, cursor, [])\n"+ | |
| 162 | -//" else\n"+ | |
| 163 | -" _get_all_"+name+"_to_json(db, make_json_extractor(db, final_columns, resolve_fk), cursor, [])\n"+ | |
| 147 | +//" _get_all_"+name+"_to_json(db, make_"+name+"_json_extractor(db, final_columns, resolve_fk), cursor, [])\n"+ | |
| 148 | +" get_all_to_json(db, make_"+name+"_json_extractor(db, final_columns, resolve_fk), cursor, [])\n"+ | |
| 164 | 149 | " )\n"+ |
| 165 | 150 | " }\n"+ |
| 166 | 151 | ".\n" | ... | ... |
src/generation/extractor.anubis
| ... | ... | @@ -177,10 +177,12 @@ public define Maybe(One) |
| 177 | 177 | //generate the type of the table that contain all components |
| 178 | 178 | if write_string(stream, |
| 179 | 179 | "\n\n"+ |
| 180 | + | |
| 180 | 181 | // "public define Maybe(JsonValue)\n"+ |
| 181 | 182 | // " extract_"+name+"_cursor_to_json\n"+ |
| 182 | 183 | // " (\n"+ |
| 183 | 184 | // " SQLite3DataBase db,\n"+ |
| 185 | +// " List(((Int -> SQLite3Datum) -> JsonMember)) extractors,\n"+ | |
| 184 | 186 | // " One -> SQLite3Row table_cursor\n"+ |
| 185 | 187 | // " ) =\n"+ |
| 186 | 188 | // " if table_cursor(unique) is\n"+ |
| ... | ... | @@ -188,26 +190,11 @@ public define Maybe(One) |
| 188 | 190 | // " error(sql_error) then println(db_error(sql_error, \"extract_"+name+"\")); failure,\n"+ |
| 189 | 191 | // " no_more_row then failure,\n"+ |
| 190 | 192 | // " row(cursor) then\n"+ |
| 191 | -// " success("+generate_json_object_from_cursor(name, "cursor", columns, " ")+")\n"+ //generate type construction with values got from web arg | |
| 192 | -// " }\n.\n"+ | |
| 193 | -// "\n\n"+ | |
| 194 | - "public define Maybe(JsonValue)\n"+ | |
| 195 | - " extract_"+name+"_cursor_to_json\n"+ | |
| 196 | - " (\n"+ | |
| 197 | - " SQLite3DataBase db,\n"+ | |
| 198 | - " List(((Int -> SQLite3Datum) -> JsonMember)) extractors,\n"+ | |
| 199 | - " One -> SQLite3Row table_cursor\n"+ | |
| 200 | - " ) =\n"+ | |
| 201 | - " if table_cursor(unique) is\n"+ | |
| 202 | - " {\n"+ | |
| 203 | - " error(sql_error) then println(db_error(sql_error, \"extract_"+name+"\")); failure,\n"+ | |
| 204 | - " no_more_row then failure,\n"+ | |
| 205 | - " row(cursor) then\n"+ | |
| 206 | - " success(\n"+ | |
| 207 | - " json_object(\n"+ | |
| 208 | - " map(((Int -> SQLite3Datum) -> JsonMember extractor) |-> extractor(cursor) , extractors)\n"+ | |
| 209 | - " ))\n"+ | |
| 210 | - " }\n.\n\n"+ | |
| 193 | +// " success(\n"+ | |
| 194 | +// " json_object(\n"+ | |
| 195 | +// " map(((Int -> SQLite3Datum) -> JsonMember extractor) |-> extractor(cursor) , extractors)\n"+ | |
| 196 | +// " ))\n"+ | |
| 197 | +// " }\n.\n\n"+ | |
| 211 | 198 | |
| 212 | 199 | "public define String get_"+name+"_show_string(SQLite3DataBase db, DB_id _idx).\n\n"+ |
| 213 | 200 | "define (Int -> SQLite3Datum) -> JsonMember\n"+ |
| ... | ... | @@ -219,8 +206,8 @@ public define Maybe(One) |
| 219 | 206 | " )=\n"+generate_json_extractor(name, "cursor", columns, " ")+ |
| 220 | 207 | "\n.\n\n"+ |
| 221 | 208 | |
| 222 | -"define List(((Int -> SQLite3Datum) -> JsonMember))\n"+ | |
| 223 | -" make_json_extractor\n"+ | |
| 209 | +"public define List(((Int -> SQLite3Datum) -> JsonMember))\n"+ | |
| 210 | +" make_"+name+"_json_extractor\n"+ | |
| 224 | 211 | " (\n"+ |
| 225 | 212 | " SQLite3DataBase db,\n"+ |
| 226 | 213 | " List(String) columns,\n"+ | ... | ... |
src/generation/files.anubis
| ... | ... | @@ -208,11 +208,15 @@ define One |
| 208 | 208 | // with delete = "tm_delete(\""+name+"\", delete_"+name+")", |
| 209 | 209 | with controller = |
| 210 | 210 | "hk_table_controller(\""+name+"\", |
| 211 | + //Column's name | |
| 212 | + "+name+"_columns, | |
| 213 | + "+name+"_select_fields, | |
| 211 | 214 | //Create |
| 212 | 215 | update_"+name+"_from_type, |
| 213 | 216 | update_"+name+"_from_fields, |
| 214 | 217 | //Read |
| 215 | 218 | (SQLite3DataBase db, String clause) |-> get_count_by_clause(db, \""+name+"\", clause), |
| 219 | + make_"+name+"_json_extractor, | |
| 216 | 220 | get_one_"+name+"_to_json, |
| 217 | 221 | get_all_"+name+"_by_clause_to_json, |
| 218 | 222 | //Delete | ... | ... |
src/generation/types.anubis
| ... | ... | @@ -231,14 +231,8 @@ public define Maybe(One) |
| 231 | 231 | " {\n"+ |
| 232 | 232 | " failure then error,\n"+ |
| 233 | 233 | " success(cursor) then\n"+ |
| 234 | -//" if length(columns) = 0 then\n"+ | |
| 235 | -//" if extract_"+name+"_cursor_to_json(db, cursor) is\n"+ | |
| 236 | -//" {\n"+ | |
| 237 | -//" failure then error,\n"+ | |
| 238 | -//" success(result) then result\n"+ | |
| 239 | -//" }\n"+ | |
| 240 | -//" else\n"+ | |
| 241 | -" if extract_"+name+"_cursor_to_json(db, make_json_extractor(db, final_columns, resolve_fk), cursor) is\n"+ | |
| 234 | +//" if extract_"+name+"_cursor_to_json(db, make_"+name+"_json_extractor(db, final_columns, resolve_fk), cursor) is\n"+ | |
| 235 | +" if extract_cursor_to_json(db, make_"+name+"_json_extractor(db, final_columns, resolve_fk), cursor) is\n"+ | |
| 242 | 236 | " {\n"+ |
| 243 | 237 | " failure then error,\n"+ |
| 244 | 238 | " success(result) then result\n"+ | ... | ... |