/
crud.go
88 lines (66 loc) · 2.71 KB
/
crud.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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
package geopatials
import (
"os"
"github.com/Befous/BackendGin/helpers"
"github.com/Befous/BackendGin/models"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/mongo"
)
// ------------------------------------------------------------------ Set Connection ------------------------------------------------------------------
func SetConnection(mongoenv, dbname string) *mongo.Database {
var DBmongoinfo = DBInfo{
DBString: os.Getenv(mongoenv),
DBName: dbname,
}
return MongoConnect(DBmongoinfo)
}
func SetConnection2dsphere(mongoenv, dbname, collname string) *mongo.Database {
var DBmongoinfo = DBInfo{
DBString: os.Getenv(mongoenv),
DBName: dbname,
CollectionName: collname,
}
return Create2dsphere(DBmongoinfo)
}
// ---------------------------------------------------------------------- Geojson ----------------------------------------------------------------------
// Create
func PostPoint(mconn *mongo.Database, collection string, pointdata GeoJsonPoint) interface{} {
return InsertOneDoc(mconn, collection, pointdata)
}
func PostLinestring(mconn *mongo.Database, collection string, linestringdata GeoJsonLineString) interface{} {
return InsertOneDoc(mconn, collection, linestringdata)
}
func PostPolygon(mconn *mongo.Database, collection string, polygondata GeoJsonPolygon) interface{} {
return InsertOneDoc(mconn, collection, polygondata)
}
// Read
func GetAllBangunan(mconn *mongo.Database, collname string) []GeoJson {
return GetAllDoc[[]GeoJson](mconn, collname)
}
// Update
// Delete
func DeleteGeojson(mconn *mongo.Database, collname string, userdata User) interface{} {
filter := bson.M{"username": userdata.Username}
return DeleteOneDoc(mconn, collname, filter)
}
func GeoIntersects(mconn *mongo.Database, collname string, geospatial models.Geospatial) ([]FullGeoJson, error) {
return helpers.GetGeoIntersectsDoc[FullGeoJson](mconn, collname, "geometry", geospatial)
}
func GeoWithin(mconn *mongo.Database, collname string, coordinates Polygon) string {
return GetGeoWithinDoc(mconn, collname, coordinates)
}
func Near(mconn *mongo.Database, collname string, coordinates Point) string {
return GetNearDoc(mconn, collname, coordinates)
}
func NearSphere(mconn *mongo.Database, collname string, coordinates Point) string {
return GetNearSphereDoc(mconn, collname, coordinates)
}
func Box(mconn *mongo.Database, collname string, coordinates Polyline) string {
return GetBoxDoc(mconn, collname, coordinates)
}
func Center(mconn *mongo.Database, collname string, coordinates Point) string {
return GetCenterDoc(mconn, collname, coordinates)
}
func CenterSphere(mconn *mongo.Database, collname string, coordinates Point) string {
return GetCenterSphereDoc(mconn, collname, coordinates)
}