package m2r import ( "fmt" "log" // "strings" rt "gopkg.in/dancannon/gorethink.v2" ) type Rethink struct { rtdb *rt.Session } func NewRethinkDB(cluster []string) (*Rethink, error) { var ( err error session *rt.Session ) if len(cluster) > 1 { session, err = rt.Connect(rt.ConnectOpts{ Addresses: cluster, InitialCap: 10, MaxOpen: 10, }) } else { session, err = rt.Connect(rt.ConnectOpts{ Address: cluster[0], InitialCap: 10, MaxOpen: 10, }) } if err != nil { log.Printf("RethinkDB ERROR: %+v\n", err.Error()) return nil, err } return &Rethink{ rtdb: session, }, nil } func (r *Rethink) Insert(login MongoLogin) (rt.WriteResponse, error) { resp, err := rt.DB("tiscali").Table("lastlogin").Insert(login).RunWrite(r.rtdb) if opts.Debug { fmt.Printf("RTinsert: %+v\n", resp) } if err != nil { return resp, err } return resp, nil } func (r *Rethink) MultiInsert(logins []MongoLogin) (rt.WriteResponse, error) { resp, err := rt.DB("tiscali").Table("lastlogin").Insert(logins).RunWrite(r.rtdb) if opts.Debug { fmt.Printf("RTMulti: %+v\n", resp) } if err != nil { return resp, err } return resp, nil } func (r *Rethink) Close() { r.rtdb.Close() }