diff --git a/Guardfile b/Guardfile new file mode 100644 index 00000000..0b860b06 --- /dev/null +++ b/Guardfile @@ -0,0 +1,3 @@ +guard 'gotest' do + watch(%r{\.go$}) +end diff --git a/main.go b/main.go index 5e2b770f..1ebe104f 100644 --- a/main.go +++ b/main.go @@ -1,20 +1,23 @@ package gorm -import "database/sql" +import ( + "database/sql" + _ "github.com/lib/pq" +) type DB struct { Db *sql.DB } -func Open(driver, source string) (db *DB, err error) { +func Open(driver, source string) (db DB, err error) { db.Db, err = sql.Open(driver, source) // SetMaxIdleConns pools return } -func (s *DB) buildORM() (orm *Orm) { - orm.Db = s.Db - return +func (s *DB) buildORM() *Orm { + orm := &Orm{db: s.Db} + return orm } func (s *DB) Where(querystring interface{}, args ...interface{}) (orm *Orm) { diff --git a/orm.go b/orm.go index 89aa5bee..1d9a0de5 100644 --- a/orm.go +++ b/orm.go @@ -3,17 +3,19 @@ package gorm import "database/sql" type Orm struct { - Db *sql.DB TableName string - WhereStr string - OrderStr string PrimaryKey string - OffsetInt int64 - LimitInt int64 Error bool + + db *sql.DB + whereClause []interface{} + orderStr string + offsetInt int64 + limitInt int64 } func (s *Orm) Where(querystring interface{}, args ...interface{}) *Orm { + s.whereClause = append(s.whereClause, map[string]interface{}{"query": querystring, "args": args}) return s } diff --git a/orm_test.go b/orm_test.go new file mode 100644 index 00000000..b8d0375d --- /dev/null +++ b/orm_test.go @@ -0,0 +1,17 @@ +package gorm + +import ( + "fmt" + + "testing" +) + +func TestWhere(t *testing.T) { + db, err := Open("postgres", "user=gorm dbname=gorm") + + if err != err { + t.Errorf("Error should be nil") + } + orm := db.Where("id = $1", 1).Where("name = $1", "jinzhu") + fmt.Println(orm.whereClause) +}