mongo2rethink/rethink.go

76 lines
1.3 KiB
Go
Raw Permalink Normal View History

2016-11-17 10:15:59 +01:00
package main
2016-11-10 17:26:17 +01:00
import (
"fmt"
"log"
// "strings"
rt "gopkg.in/dancannon/gorethink.v2"
)
type Rethink struct {
2016-11-17 10:09:23 +01:00
DB string
Table string
rtdb *rt.Session
2016-11-10 17:26:17 +01:00
}
2016-11-17 10:09:23 +01:00
func NewRethinkDB(cluster []string, db string, table string) (*Rethink, error) {
2016-11-10 17:26:17 +01:00
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{
2016-11-17 10:09:23 +01:00
rtdb: session,
DB: db,
Table: table,
2016-11-10 17:26:17 +01:00
}, nil
}
func (r *Rethink) Insert(login MongoLogin) (rt.WriteResponse, error) {
2016-11-17 10:09:23 +01:00
resp, err := rt.DB(r.DB).Table(r.Table).Insert(login).RunWrite(r.rtdb)
2016-11-10 17:26:17 +01:00
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) {
2016-11-17 10:09:23 +01:00
resp, err := rt.DB(r.DB).Table(r.Table).Insert(logins).RunWrite(r.rtdb)
2016-11-10 17:26:17 +01:00
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()
}