Commit Graph

15 Commits

Author SHA1 Message Date
Jinzhu c54d23473c Add IsRecordNotFoundError method 2018-02-12 09:38:16 +08:00
Teppei Fukuda 6e456250f7 Erros skip nil in Add function () 2017-09-04 22:25:57 +08:00
Caleb Thompson c063624c91
Make gorm.Errors available for use outside gorm
gorm.Errors, which usefully implements `error` for an `[]error` as
returned by `DB.GetError()` was already exported, but because it used a
private field `errors`, it was not able to be created due to the
compile-time error:

    implicit assignment of unexported field 'errors' in gorm.Errors literal

The trivial solution would be to export the `errors` field on
`gorm.Errors`, but this led to the issue that the common pattern of
checking `err != nil` failed because a struct{error: nil} != nil.

We can take advantage of type aliasing here to make Errors an []error,
which can in fact be nil and would pass `err != nil` on the happy path.

* Remove `(Errors) GetErrors()`, as it's less useful when Errors is an
  []error which can be iterated over. While this is technically a
  breaking change, we never expose an Errors and its difficult to build
  one (it can be done with the existing `(Errors) Add(error)`), but
  awkwardly. This removal can be reverted without issue and we can make
  it an identity method, but it seemed an opportune time to reduce API
  surface area on something that likely isn't used.
* Remove errorsInterface, as it's not useful without `(Errors)
  GetErrors()`
* Change `(*Errors) Add(error)` => `(Errors) Add(error...) Errors`
  because we can't modify even a *Errors when it's a type alias. This is
  more idiomatic as it follows the pattern of `slice = append(slice,
  element)` Go developers are familiar with.
2016-10-25 11:22:50 -05:00
Jinzhu 9fd05d1bad Print warning message when using unaddressable value with Update 2016-04-04 21:33:11 +08:00
Jinzhu 88184a989e Update godoc 2016-03-07 21:09:05 +08:00
Jinzhu ec110657da Refactor based on golint 2016-03-07 17:49:55 +08:00
Jinzhu d9229c5a7b Extract method Scan from rows 2016-01-13 16:53:11 +08:00
Jinzhu 81c00fdc8f Don't add duplicated error 2015-08-18 11:09:03 +08:00
Jinzhu dd0d4d931f Add errorsInterface 2015-08-14 14:53:26 +08:00
Jinzhu 0996ddb604 Rename Errors to GetErrors 2015-08-14 12:29:53 +08:00
Jinzhu 309740983e Add Errors 2015-08-14 11:04:05 +08:00
Jinzhu 73b6f0eace Linting according to golint 2015-02-17 08:34:01 +08:00
Jinzhu 0ad707b410 Yay, all tests passed 2013-11-16 18:42:47 +08:00
Jinzhu 3cfa19b761 Move all chain method to main.go 2013-11-16 11:36:30 +08:00
Jinzhu 52fd87c57b Define some error codes 2013-11-15 18:36:39 +08:00