6
6
7
7
"cloud.google.com/go/storage"
8
8
"github.com/padok-team/burrito/internal/burrito/config"
9
+ errors "github.com/padok-team/burrito/internal/datastore/storage/error"
9
10
"google.golang.org/api/iterator"
10
11
)
11
12
@@ -33,14 +34,26 @@ func (a *GCS) Get(key string) ([]byte, error) {
33
34
bucket := a .Client .Bucket (a .Config .Bucket )
34
35
obj := bucket .Object (key )
35
36
reader , err := obj .NewReader (ctx )
37
+ if err == storage .ErrObjectNotExist {
38
+ return make ([]byte , 0 ), & errors.StorageError {
39
+ Err : err ,
40
+ Nil : true ,
41
+ }
42
+ }
36
43
if err != nil {
37
- return nil , err
44
+ return make ([]byte , 0 ), & errors.StorageError {
45
+ Err : err ,
46
+ Nil : false ,
47
+ }
38
48
}
39
49
defer reader .Close ()
40
50
41
51
data , err := io .ReadAll (reader )
42
52
if err != nil {
43
- return nil , err
53
+ return make ([]byte , 0 ), & errors.StorageError {
54
+ Err : err ,
55
+ Nil : false ,
56
+ }
44
57
}
45
58
46
59
return data , nil
@@ -55,7 +68,10 @@ func (a *GCS) Set(key string, data []byte, ttl int) error {
55
68
56
69
_ , err := writer .Write (data )
57
70
if err != nil {
58
- return err
71
+ return & errors.StorageError {
72
+ Err : err ,
73
+ Nil : false ,
74
+ }
59
75
}
60
76
61
77
return nil
@@ -66,8 +82,17 @@ func (a *GCS) Check(key string) ([]byte, error) {
66
82
bucket := a .Client .Bucket (a .Config .Bucket )
67
83
obj := bucket .Object (key )
68
84
metadata , err := obj .Attrs (ctx )
85
+ if err == storage .ErrObjectNotExist {
86
+ return make ([]byte , 0 ), & errors.StorageError {
87
+ Err : err ,
88
+ Nil : true ,
89
+ }
90
+ }
69
91
if err != nil {
70
- return nil , err
92
+ return make ([]byte , 0 ), & errors.StorageError {
93
+ Err : err ,
94
+ Nil : false ,
95
+ }
71
96
}
72
97
return metadata .MD5 , nil
73
98
}
@@ -77,6 +102,12 @@ func (a *GCS) Delete(key string) error {
77
102
bucket := a .Client .Bucket (a .Config .Bucket )
78
103
obj := bucket .Object (key )
79
104
err := obj .Delete (ctx )
105
+ if err == storage .ErrObjectNotExist {
106
+ return & errors.StorageError {
107
+ Err : err ,
108
+ Nil : true ,
109
+ }
110
+ }
80
111
if err != nil {
81
112
return err
82
113
}
0 commit comments