/
connection.go
73 lines (61 loc) · 2.05 KB
/
connection.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
package PasetoBackend
import (
"context"
"fmt"
"os"
"github.com/aiteung/atdb"
"github.com/whatsauth/watoken"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/mongo"
)
func SetConnection(MONGOCONNSTRINGENV, dbname string) *mongo.Database {
var DBmongoinfo = atdb.DBInfo{
DBString: os.Getenv(MONGOCONNSTRINGENV),
DBName: dbname,
}
return atdb.MongoConnect(DBmongoinfo)
}
func InsertAdmindata(MongoConn *mongo.Database, email, role, password string) (InsertedID interface{}) {
req := new(Admin)
req.Email = email
req.Password = password
req.Role = role
return InsertOneDoc(MongoConn, "admin", req)
}
func DeleteAdmin(mongoconn *mongo.Database, collection string, admindata Admin) interface{} {
filter := bson.M{"email": admindata.Email}
return atdb.DeleteOneDoc(mongoconn, collection, filter)
}
func FindAdmin(mongoconn *mongo.Database, collection string, admindata Admin) Admin {
filter := bson.M{"email": admindata.Email}
return atdb.GetOneDoc[Admin](mongoconn, collection, filter)
}
func IsExist(Tokenstr, PublicKey string) bool {
id := watoken.DecodeGetId(PublicKey, Tokenstr)
return id != ""
}
func IsPasswordValid(mongoconn *mongo.Database, collection string, admindata Admin) bool {
filter := bson.M{"email": admindata.Email}
res := atdb.GetOneDoc[Admin](mongoconn, collection, filter)
return CompareHashPass(admindata.Password, res.Password)
}
func MongoCreateConnection(MongoString, dbname string) *mongo.Database {
MongoInfo := atdb.DBInfo{
DBString: os.Getenv(MongoString),
DBName: dbname,
}
conn := atdb.MongoConnect(MongoInfo)
return conn
}
func InsertOneDoc(db *mongo.Database, collection string, doc interface{}) (insertedID interface{}) {
insertResult, err := db.Collection(collection).InsertOne(context.TODO(), doc)
if err != nil {
fmt.Printf("InsertOneDoc: %v\n", err)
}
return insertResult.InsertedID
}
func GetOneAdmin(MongoConn *mongo.Database, colname string, admindata Admin) Admin {
filter := bson.M{"email": admindata.Email}
data := atdb.GetOneDoc[Admin](MongoConn, colname, filter)
return data
}