11/// <reference path="../../login-server/src/typings/tsd.d.ts"/>
22
33import sqlite3 = require( 'sqlite3' ) ;
4+ import debug = require( 'debug' ) ;
5+
6+ var log = debug ( 'sqlite-table' ) ;
7+ var logError = debug ( 'sqlite-table:error' ) ;
48
59class SQLiteTable {
610
@@ -10,7 +14,30 @@ class SQLiteTable {
1014
1115 }
1216
17+ public all ( next :( err ?:Error ) => void ) :void ;
18+ public all ( params ?:any , next ?:( err ?:Error ) => void ) :void {
19+ if ( typeof params === 'function' ) {
20+ next = params ;
21+ params = { } ;
22+ }
23+ log ( 'get all' , params ) ;
24+ var stmt :{ sql :string ; objVars :any } = this . getSQLSelectStmt ( params ) ;
25+ this . db . all ( stmt . sql , stmt . objVars , next ) ;
26+ }
27+
28+ public find ( params :string , next :( err ?:Error ) => void ) :void ;
29+ public find ( params :any , next :( err ?:Error ) => void ) :void {
30+ var typeofParams :string = typeof params ;
31+ if ( typeofParams === 'string' || typeofParams === 'number' ) {
32+ params = { id : params } ;
33+ }
34+ log ( 'find' , params ) ;
35+ var stmt :{ sql :string ; objVars :any } = this . getSQLSelectStmt ( params ) ;
36+ this . db . get ( stmt . sql , stmt . objVars , next ) ;
37+ }
38+
1339 public insert ( data :any , next :( err ?:Error ) => void ) :void {
40+ log ( 'insert' , data ) ;
1441 var keys :string [ ] = Object . keys ( data ) ;
1542 var keysVars :string [ ] = keys . map ( ( key :string ) :string => '$' + key ) ;
1643 var objVars :any = this . getObjVars ( data ) ;
@@ -22,18 +49,10 @@ class SQLiteTable {
2249 this . db . run ( sql , objVars , next ) ;
2350 }
2451
25- private getObjVars ( obj ) :any {
26- var objVars :any = { } ;
27-
28- Object . keys ( obj ) . forEach ( ( key :string ) :void => {
29- objVars [ '$' + key ] = obj [ key ] ;
30- } ) ;
31-
32- return objVars ;
33- }
34-
3552 public update ( data :any , next :( err ?:Error ) => void ) :void {
53+ log ( 'update' , data ) ;
3654 if ( ! data . id ) {
55+ logError ( 'id is not specified, can not update' ) ;
3756 next ( new Error ( 'id is not specified' ) ) ;
3857 return ;
3958 }
@@ -50,6 +69,16 @@ class SQLiteTable {
5069 this . db . run ( sql , objVars , next ) ;
5170 }
5271
72+ private getObjVars ( obj ) :any {
73+ var objVars :any = { } ;
74+
75+ Object . keys ( obj ) . forEach ( ( key :string ) :void => {
76+ objVars [ '$' + key ] = obj [ key ] ;
77+ } ) ;
78+
79+ return objVars ;
80+ }
81+
5382 private getSQLSelectStmt ( params :any ) :{ sql :string ; objVars :any } {
5483 var objVars :any = this . getObjVars ( params ) ;
5584 var whereStmts :string [ ] = Object . keys ( params )
@@ -61,25 +90,6 @@ class SQLiteTable {
6190 objVars : objVars
6291 } ;
6392 }
64- public all ( next :( err ?:Error ) => void ) :void ;
65- public all ( params ?:any , next ?:( err ?:Error ) => void ) :void {
66- if ( typeof params === 'function' ) {
67- next = params ;
68- params = { } ;
69- }
70- var stmt :{ sql :string ; objVars :any } = this . getSQLSelectStmt ( params ) ;
71- this . db . all ( stmt . sql , stmt . objVars , next ) ;
72- }
73-
74- public find ( params :string , next :( err ?:Error ) => void ) :void ;
75- public find ( params :any , next :( err ?:Error ) => void ) :void {
76- var typeofParams :string = typeof params ;
77- if ( typeofParams === 'string' || typeofParams === 'number' ) {
78- params = { id : params } ;
79- }
80- var stmt :{ sql :string ; objVars :any } = this . getSQLSelectStmt ( params ) ;
81- this . db . get ( stmt . sql , stmt . objVars , next ) ;
82- }
8393
8494 public get tableName ( ) :string {
8595 if ( ! this . _tableName ) {
0 commit comments