@@ -21,8 +21,8 @@ type Client interface {
2121 Rollback () error
2222 Commit () error
2323 HasTable (value interface {}) bool
24- AddUniqueIndex (indexName string , columns ... string ) ( Client , error )
25- RemoveIndex (indexName string ) ( Client , error )
24+ AddUniqueIndex (indexName string , columns ... string ) error
25+ RemoveIndex (indexName string ) error
2626 Model (value interface {}) Client
2727 Exec (query string , args ... interface {}) int64
2828 Rows (tableName string ) (* sql.Rows , error )
@@ -37,25 +37,21 @@ func NewGormClient(db *gorm.DB) Client {
3737 return & gormClient {db : db }
3838}
3939func (c * gormClient ) DropColumn (name string ) error {
40- return c .DropColumn (name ). Error ()
40+ return c .DropColumn (name )
4141}
4242func (c * gormClient ) Close () error {
43- return c .db . Close ()
43+ return c .Close ()
4444}
45- func (c * gormClient ) AddUniqueIndex (indexName string , columns ... string ) (Client , error ) {
46- var newClient gormClient
47- newClient .db , err := c .AddUniqueIndex (indexName , columns ... )
48- if err != nil {
49-
50- }
51-
52- return & newClient , newClient .db .Error
45+ func (c * gormClient ) AddUniqueIndex (indexName string , columns ... string ) error {
46+ //TODO Add the interface abstraction layer
47+ var value interface {}
48+ return c .db .Migrator ().CreateIndex (value , indexName )
5349}
5450
55- func (c * gormClient ) RemoveIndex (indexName string ) ( Client , error ) {
56- var newClient gormClient
57- newClient . db = c . db . RemoveIndex ( indexName )
58- return & newClient , newClient .db .Error
51+ func (c * gormClient ) RemoveIndex (indexName string ) error {
52+ //TODO Add the interface abstraction layer
53+ var value interface {}
54+ return c .db .Migrator (). DropIndex ( value , indexName )
5955}
6056
6157func (c * gormClient ) Model (value interface {}) Client {
@@ -85,6 +81,7 @@ func (c *gormClient) Save(value interface{}) (int64, error) {
8581}
8682
8783func (c * gormClient ) Update (attrs ... interface {}) (int64 , error ) {
84+ //TODO Adapt the functionality
8885 newDb := c .db .Update (attrs ... )
8986 return newDb .RowsAffected , newDb .Error
9087}
@@ -98,7 +95,7 @@ func (c *gormClient) Find(out interface{}, where ...interface{}) error {
9895}
9996
10097func (c * gormClient ) AutoMigrate (values ... interface {}) error {
101- return c .db .AutoMigrate (values ... ). Error
98+ return c .db .AutoMigrate (values ... )
10299}
103100
104101func (c * gormClient ) Begin () Client {
@@ -116,7 +113,7 @@ func (c *gormClient) Commit() error {
116113}
117114
118115func (c * gormClient ) HasTable (value interface {}) bool {
119- return c .db .HasTable (value )
116+ return c .db .Migrator (). HasTable (value )
120117}
121118
122119func (c * gormClient ) Exec (query string , args ... interface {}) int64 {
0 commit comments