@@ -223,7 +223,7 @@ function generateWhereClause(condition_group) {
223223 return clause ;
224224}
225225
226- // Create
226+ // Create & Update
227227function generateInsertSQL ( req ) {
228228 let req_json = req . body ;
229229 if ( ! ( "values" in req_json ) ) {
@@ -251,22 +251,6 @@ function generateInsertSQL(req) {
251251 return [ sql , "" ] ;
252252}
253253
254- app . post ( "/:table" , async ( req , res ) => {
255- let [ sql , err_msg ] = generateInsertSQL ( req ) ;
256- if ( ! sql || sql === "" ) {
257- return handleGenerateSQLError ( err_msg , req , res ) ;
258- }
259-
260- try {
261- let result = await connection . awaitQuery ( sql ) ;
262- console . log ( result ) ;
263- res . status ( 200 ) . json ( initOkJson ( result ) ) ;
264- } catch ( err ) {
265- handleSQLError ( err , res ) ;
266- }
267- } ) ;
268-
269- // Update
270254function generateUpdateSQL ( req ) {
271255 let req_json = req . body ;
272256 if ( ! ( "values" in req_json ) ) {
@@ -303,8 +287,15 @@ function generateUpdateSQL(req) {
303287 return [ sql , "" ] ;
304288}
305289
306- app . put ( "/:table" , async ( req , res ) => {
307- let [ sql , err_msg ] = generateUpdateSQL ( req ) ;
290+ app . post ( "/:table" , async ( req , res ) => {
291+ let sql , err_msg ;
292+ if ( req . query . type === "create" ) {
293+ [ sql , err_msg ] = generateInsertSQL ( req ) ;
294+ } else if ( req . query . type === "update" ) {
295+ [ sql , err_msg ] = generateUpdateSQL ( req ) ;
296+ } else {
297+ return handleGenerateSQLError ( "req type invalid!" , req , res ) ;
298+ }
308299 if ( ! sql || sql === "" ) {
309300 return handleGenerateSQLError ( err_msg , req , res ) ;
310301 }
@@ -389,7 +380,47 @@ function generateSelectSQL(req) {
389380 return [ sql , "" ] ;
390381}
391382
392- app . get ( "/:table" , async ( req , res ) => {
383+ // Simple Query
384+ app . get ( "/:table" , async ( req , res ) => {
385+ let sql = `SELECT * from ${ req . params . table } ` ;
386+ let condition = "" ;
387+ for ( const [ col , val ] of Object . entries ( req . query ) ) {
388+ if ( condition === "" ) {
389+ condition += `${ col } ="${ val } "`
390+ } else {
391+ condition += ` AND ${ col } ="${ val } "`
392+ }
393+ }
394+ if ( condition !== "" ) {
395+ sql += ` WHERE ${ condition } ;` ;
396+ } else {
397+ sql += ';' ;
398+ }
399+ console . log ( `Generate SQL: ${ sql } ` ) ;
400+
401+ try {
402+ let result = await connection . awaitQuery ( sql ) ;
403+ // console.log(result);
404+ j = {
405+ status : 0 ,
406+ msg : "Success" ,
407+ data : {
408+ items : [ ] ,
409+ total : result . length
410+ }
411+ } ;
412+ result . forEach ( row => {
413+ j . data . items . push ( row ) ;
414+ } )
415+
416+ res . status ( 200 ) . json ( j ) ;
417+ } catch ( err ) {
418+ handleSQLError ( err , res ) ;
419+ }
420+ } ) ;
421+
422+ // Complex Query
423+ app . put ( "/:table" , async ( req , res ) => {
393424 let [ sql , err_msg ] = generateSelectSQL ( req ) ;
394425 if ( ! sql || sql === "" ) {
395426 return handleGenerateSQLError ( err_msg , req , res ) ;
0 commit comments