-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathwrapper.go
More file actions
114 lines (90 loc) · 3.86 KB
/
wrapper.go
File metadata and controls
114 lines (90 loc) · 3.86 KB
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
package foon
import (
"cloud.google.com/go/firestore"
"context"
"errors"
)
type FirestoreClient interface {
Get(dr *firestore.DocumentRef) (*firestore.DocumentSnapshot, error)
GetAll(drs []*firestore.DocumentRef) ([]*firestore.DocumentSnapshot, error)
Create(dr *firestore.DocumentRef, data interface{}) error
Set(dr *firestore.DocumentRef, data interface{}, opts ...firestore.SetOption) error
Delete(dr *firestore.DocumentRef, opts ...firestore.Precondition) error
Update(dr *firestore.DocumentRef, data []firestore.Update, opts ...firestore.Precondition) error
Documents(q firestore.Query) *firestore.DocumentIterator
Batch() (*firestore.WriteBatch, error)
RunTransaction(fn func(ctx context.Context, fs *firestore.Transaction) error, opts ...firestore.TransactionOption) error
Client() *firestore.Client
}
type FirestoreClientImpl struct {
ctx context.Context
client *firestore.Client
}
func (f *FirestoreClientImpl) Get(dr *firestore.DocumentRef) (*firestore.DocumentSnapshot, error) {
return dr.Get(f.ctx)
}
func (f *FirestoreClientImpl) GetAll(drs []*firestore.DocumentRef) ([]*firestore.DocumentSnapshot, error) {
return f.client.GetAll(f.ctx, drs)
}
func (f *FirestoreClientImpl) Create(dr *firestore.DocumentRef, data interface{}) error {
_, err := dr.Create(f.ctx, data)
return err
}
func (f *FirestoreClientImpl) Set(dr *firestore.DocumentRef, data interface{}, opts ...firestore.SetOption) error {
_ , err := dr.Set(f.ctx, data, opts...)
return err
}
func (f *FirestoreClientImpl) Delete(dr *firestore.DocumentRef, opts ...firestore.Precondition) error {
_ , err := dr.Delete(f.ctx, opts...)
return err
}
func (f *FirestoreClientImpl) Update(dr *firestore.DocumentRef, data []firestore.Update, opts ...firestore.Precondition) error {
_ , err := dr.Update(f.ctx, data , opts...)
return err
}
func (f *FirestoreClientImpl) Documents(q firestore.Query) *firestore.DocumentIterator {
return q.Documents(f.ctx)
}
func (f *FirestoreClientImpl) Batch() (*firestore.WriteBatch, error) {
return f.client.Batch(), nil
}
func (f *FirestoreClientImpl) Client() *firestore.Client {
return f.client
}
func (f *FirestoreClientImpl) RunTransaction(fn func(ctx context.Context, fs *firestore.Transaction) error, opts ...firestore.TransactionOption) error {
return f.client.RunTransaction(f.ctx, fn, opts...)
}
type FirestoreTransactionClient struct {
transaction *firestore.Transaction
client *firestore.Client
}
func (f *FirestoreTransactionClient) Get(dr *firestore.DocumentRef) (*firestore.DocumentSnapshot, error) {
return f.transaction.Get(dr)
}
func (f *FirestoreTransactionClient) GetAll(drs []*firestore.DocumentRef) ([]*firestore.DocumentSnapshot, error) {
return f.transaction.GetAll(drs)
}
func (f *FirestoreTransactionClient) Create(dr *firestore.DocumentRef, data interface{}) error {
return f.transaction.Create(dr, data)
}
func (f *FirestoreTransactionClient) Set(dr *firestore.DocumentRef, data interface{}, opts ...firestore.SetOption) error {
return f.transaction.Set(dr, data, opts...)
}
func (f *FirestoreTransactionClient) Delete(dr *firestore.DocumentRef, opts ...firestore.Precondition) error {
return f.transaction.Delete(dr, opts...)
}
func (f *FirestoreTransactionClient) Update(dr *firestore.DocumentRef, data []firestore.Update, opts ...firestore.Precondition) error {
return f.transaction.Update(dr, data, opts...)
}
func (f *FirestoreTransactionClient) Documents(q firestore.Query) *firestore.DocumentIterator {
return f.transaction.Documents(q)
}
func (f *FirestoreTransactionClient) Batch() (*firestore.WriteBatch, error) {
return nil, errors.New("not supported in transactions")
}
func (f *FirestoreTransactionClient) RunTransaction(fn func(ctx context.Context, fs *firestore.Transaction) error, opts ...firestore.TransactionOption) error {
return errors.New("not supported")
}
func (f *FirestoreTransactionClient) Client() *firestore.Client {
return f.client
}