11package db
22
33import (
4- "fmt"
54 "io/ioutil"
65 "strconv"
76 "strings"
87
9- "github.com/pkg/errors"
108 "gopkg.in/yaml.v2"
119)
1210
@@ -100,34 +98,31 @@ func (s *SQL) getArrayObject(k string, o interface{}) (interface{}, bool) {
10098
10199func (s * SQL ) getIndex (k string ) (int , error ) {
102100 if ! strings .HasPrefix (k , "[" ) || ! strings .HasSuffix (k , "]" ) {
103- return 0 , wrapErr (fmt . Errorf ( notAnIndex , k ), getFn () )
101+ return 0 , wrapErr (notAnIndex , k )
104102 }
105103
106104 intVar , err := strconv .Atoi (k [1 : len (k )- 1 ])
107105 if err != nil {
108- return 0 , wrapErr (err , getFn () )
106+ return 0 , wrapErr (err )
109107 }
110108 return intVar , nil
111109}
112110
113111func (s * SQL ) getFromIndex (k []string , o interface {}) (interface {}, error ) {
114112 if getObjectType (o ) != arrayObj {
115- return nil , wrapErr (errors . New ( notArrayObj ), getFn () )
113+ return nil , wrapErr (notArrayObj )
116114 }
117115
118116 i , err := s .getIndex (k [0 ])
119117 if err != nil {
120- return nil , wrapErr (err , getFn () )
118+ return nil , wrapErr (err )
121119 }
122120
123121 if i > len (o .([]interface {}))- 1 {
124122 return nil , wrapErr (
125- fmt .Errorf (
126- arrayOutOfRange ,
127- strconv .Itoa (i ),
128- strconv .Itoa (len (o .([]interface {}))- 1 ),
129- ),
130- getFn (),
123+ arrayOutOfRange ,
124+ strconv .Itoa (i ),
125+ strconv .Itoa (len (o .([]interface {}))- 1 ),
131126 )
132127 }
133128
@@ -140,7 +135,7 @@ func (s *SQL) getFromIndex(k []string, o interface{}) (interface{}, error) {
140135
141136func (s * SQL ) getPath (k []string , o interface {}) (interface {}, error ) {
142137 if err := checkKeyPath (k ); err != nil {
143- return nil , wrapErr (err , getFn () )
138+ return nil , wrapErr (err )
144139 }
145140
146141 obj , err := interfaceToMap (o )
@@ -149,7 +144,7 @@ func (s *SQL) getPath(k []string, o interface{}) (interface{}, error) {
149144 }
150145
151146 if len (k ) == 0 {
152- return nil , wrapErr (fmt . Errorf ( keyDoesNotExist , k [0 ]), getFn () )
147+ return nil , wrapErr (keyDoesNotExist , k [0 ])
153148 }
154149
155150 for thisKey , thisObj := range obj {
@@ -163,12 +158,12 @@ func (s *SQL) getPath(k []string, o interface{}) (interface{}, error) {
163158
164159 objFinal , err := s .getPath (k [1 :], thisObj )
165160 if err != nil {
166- return nil , wrapErr (err , getFn () )
161+ return nil , wrapErr (err )
167162 }
168163 return objFinal , nil
169164 }
170165
171- return nil , wrapErr (fmt . Errorf ( keyDoesNotExist , k [0 ]), getFn () )
166+ return nil , wrapErr (keyDoesNotExist , k [0 ])
172167}
173168
174169func (s * SQL ) deleteArrayItem (k string , o interface {}) bool {
@@ -202,29 +197,29 @@ func (s *SQL) deleteItem(k string, o interface{}) bool {
202197func (s * SQL ) delPath (k string , o interface {}) error {
203198 keys := strings .Split (k , "." )
204199 if err := checkKeyPath (keys ); err != nil {
205- return wrapErr (err , getFn () )
200+ return wrapErr (err )
206201 }
207202
208203 if len (keys ) == 0 {
209- return wrapErr (fmt . Errorf ( invalidKeyPath , k ), getFn () )
204+ return wrapErr (invalidKeyPath , k )
210205 }
211206
212207 if len (keys ) == 1 {
213208 if ! s .deleteItem (keys [0 ], o ) {
214- return wrapErr (fmt . Errorf ( keyDoesNotExist , k ), getFn () )
209+ return wrapErr (keyDoesNotExist , k )
215210 }
216211 return nil
217212 }
218213
219214 s .Cache .dropKeys ()
220215 obj , err := s .getPath (keys [:len (keys )- 1 ], o )
221216 if err != nil {
222- return wrapErr (err , getFn () )
217+ return wrapErr (err )
223218 }
224219
225220 s .Cache .dropKeys ()
226221 if ! s .deleteItem (keys [len (keys )- 1 ], obj ) {
227- return wrapErr (fmt . Errorf ( keyDoesNotExist , k ), getFn () )
222+ return wrapErr (keyDoesNotExist , k )
228223 }
229224
230225 return nil
@@ -237,7 +232,7 @@ func (s *SQL) get(k string, o interface{}) ([]string, error) {
237232 s .Clear ()
238233 s .Cache .V1 , err = copyMap (o )
239234 if err != nil {
240- return nil , wrapErr (err , getFn () )
235+ return nil , wrapErr (err )
241236 }
242237
243238 for {
@@ -249,7 +244,7 @@ func (s *SQL) get(k string, o interface{}) ([]string, error) {
249244 s .Query .KeysFound = append (s .Query .KeysFound , key )
250245
251246 if err := s .delPath (key , s .Cache .V1 ); err != nil {
252- return s .Query .KeysFound , wrapErr (err , getFn () )
247+ return s .Query .KeysFound , wrapErr (err )
253248 }
254249 s .Cache .dropKeys ()
255250 }
@@ -262,22 +257,22 @@ func (s *SQL) getFirst(k string, o interface{}) (interface{}, error) {
262257
263258 keys , err := s .get (k , o )
264259 if err != nil {
265- return nil , wrapErr (err , getFn () )
260+ return nil , wrapErr (err )
266261 }
267262
268263 if len (keys ) == 0 {
269- return nil , wrapErr (fmt . Errorf ( keyDoesNotExist , k ), getFn () )
264+ return nil , wrapErr (keyDoesNotExist , k )
270265 }
271266
272267 keySlice := strings .Split (keys [0 ], "." )
273268 if err := checkKeyPath (keySlice ); err != nil {
274- return nil , wrapErr (err , getFn () )
269+ return nil , wrapErr (err )
275270 }
276271
277272 s .Cache .C1 = len (keySlice )
278273 if len (keys ) == 1 {
279274 path , err := s .getPath (keySlice , o )
280- return path , wrapErr (err , getFn () )
275+ return path , wrapErr (err )
281276 }
282277
283278 for i , key := range keys [1 :] {
@@ -288,19 +283,19 @@ func (s *SQL) getFirst(k string, o interface{}) (interface{}, error) {
288283 }
289284
290285 path , err := s .getPath (strings .Split (keys [s .Cache .C2 ], "." ), o )
291- return path , wrapErr (err , getFn () )
286+ return path , wrapErr (err )
292287}
293288
294289func (s * SQL ) upsertRecursive (k []string , o , v interface {}) error {
295290 s .Clear ()
296291
297292 if err := checkKeyPath (k ); err != nil {
298- return wrapErr (err , getFn () )
293+ return wrapErr (err )
299294 }
300295
301296 obj , err := interfaceToMap (o )
302297 if err != nil {
303- return wrapErr (err , getFn () )
298+ return wrapErr (err )
304299 }
305300
306301 for thisKey , thisObj := range obj {
@@ -309,7 +304,7 @@ func (s *SQL) upsertRecursive(k []string, o, v interface{}) error {
309304 }
310305
311306 if len (k ) > 1 {
312- return wrapErr (s .upsertRecursive (k [1 :], thisObj , v ), getFn () )
307+ return wrapErr (s .upsertRecursive (k [1 :], thisObj , v ))
313308 }
314309
315310 switch getObjectType (thisObj ) {
@@ -325,7 +320,7 @@ func (s *SQL) upsertRecursive(k []string, o, v interface{}) error {
325320 obj [k [0 ]] = make (map [interface {}]interface {})
326321
327322 if len (k ) > 1 {
328- return wrapErr (s .upsertRecursive (k [1 :], obj [k [0 ]], v ), getFn () )
323+ return wrapErr (s .upsertRecursive (k [1 :], obj [k [0 ]], v ))
329324 }
330325
331326 obj [k [0 ]] = v
@@ -338,29 +333,29 @@ func (s *SQL) mergeDBs(path string, o interface{}) error {
338333
339334 ok , err := fileExists (path )
340335 if err != nil {
341- return wrapErr (err , getFn () )
336+ return wrapErr (err )
342337 }
343338
344339 if ! ok {
345- return wrapErr (fmt . Errorf ( fileNotExist , path ), getFn () )
340+ return wrapErr (fileNotExist , path )
346341 }
347342
348343 f , err := ioutil .ReadFile (path )
349344 if err != nil {
350- return wrapErr (err , getFn () )
345+ return wrapErr (err )
351346 }
352347
353348 yaml .Unmarshal (f , & dataNew )
354349
355350 obj , err := interfaceToMap (dataNew )
356351 if err != nil {
357- return wrapErr (err , getFn () )
352+ return wrapErr (err )
358353 }
359354
360355 for kn , vn := range obj {
361356 err = s .upsertRecursive (strings .Split (kn .(string ), "." ), o , vn )
362357 if err != nil {
363- return wrapErr (err , getFn () )
358+ return wrapErr (err )
364359 }
365360 }
366361 return nil
0 commit comments