diff --git a/.github/workflows/ci_golangci-lint.yml b/.github/workflows/ci_golangci-lint.yml index 1aed2c8c5..75f8b6d87 100644 --- a/.github/workflows/ci_golangci-lint.yml +++ b/.github/workflows/ci_golangci-lint.yml @@ -23,6 +23,11 @@ jobs: name: lint runs-on: ${{ matrix.os }} steps: + - name: Set up Go 1.19 + uses: actions/setup-go@v1 + with: + go-version: 1.19 + id: go - uses: actions/checkout@v3 - name: golangci-lint uses: golangci/golangci-lint-action@v3 diff --git a/go.mod b/go.mod index b8770ce94..db57aa40f 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module github.com/crowdsecurity/crowdsec go 1.19 require ( - entgo.io/ent v0.10.1 + entgo.io/ent v0.11.3 github.com/AlecAivazis/survey/v2 v2.2.7 github.com/Microsoft/go-winio v0.5.2 // indirect github.com/crowdsecurity/dlog v0.0.0-20170105205344-4fb5f8204f26 @@ -15,7 +15,7 @@ require ( github.com/c-robinson/iplib v1.0.3 github.com/confluentinc/bincover v0.2.0 github.com/coreos/go-systemd v0.0.0-20191104093116-d3cd4ed1dbcf - github.com/crowdsecurity/grokky v0.0.0-20220120093523-d5b3478363fa + github.com/crowdsecurity/grokky v0.1.0 github.com/crowdsecurity/machineid v1.0.2 github.com/davecgh/go-spew v1.1.1 github.com/dghubble/sling v1.3.0 @@ -25,7 +25,7 @@ require ( github.com/fatih/color v1.13.0 github.com/fsnotify/fsnotify v1.5.1 github.com/gin-gonic/gin v1.7.7 - github.com/go-co-op/gocron v1.9.0 + github.com/go-co-op/gocron v1.17.0 github.com/go-openapi/errors v0.20.1 github.com/go-openapi/strfmt v0.19.11 github.com/go-openapi/swag v0.19.12 @@ -40,8 +40,8 @@ require ( github.com/jackc/pgx/v4 v4.14.1 github.com/jarcoal/httpmock v1.1.0 github.com/jszwec/csvutil v1.5.1 - github.com/lib/pq v1.10.4 - github.com/mattn/go-sqlite3 v1.14.10 + github.com/lib/pq v1.10.7 + github.com/mattn/go-sqlite3 v1.14.15 github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 github.com/nxadm/tail v1.4.6 github.com/olekukonko/tablewriter v0.0.5 @@ -56,7 +56,7 @@ require ( github.com/spf13/cobra v1.5.0 github.com/stretchr/testify v1.8.0 golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d - golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3 + golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 google.golang.org/grpc v1.45.0 google.golang.org/protobuf v1.28.0 gopkg.in/natefinch/lumberjack.v2 v2.0.0 @@ -73,11 +73,11 @@ require ( github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 github.com/segmentio/kafka-go v0.4.34 github.com/texttheater/golang-levenshtein/levenshtein v0.0.0-20200805054039-cae8b0eaed6c - golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a + golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f ) require ( - ariga.io/atlas v0.3.7-0.20220303204946-787354f533c3 // indirect + ariga.io/atlas v0.7.2-0.20220927111110-867ee0cca56a // indirect github.com/Masterminds/goutils v1.1.1 // indirect github.com/Masterminds/semver/v3 v3.1.1 // indirect github.com/PuerkitoBio/purell v1.1.1 // indirect @@ -111,7 +111,7 @@ require ( github.com/golang/protobuf v1.5.2 // indirect github.com/google/go-cmp v0.5.7 // indirect github.com/gorilla/mux v1.7.3 // indirect - github.com/hashicorp/hcl/v2 v2.11.1 // indirect + github.com/hashicorp/hcl/v2 v2.13.0 // indirect github.com/hashicorp/yamux v0.0.0-20180604194846-3520598351bb // indirect github.com/huandu/xstrings v1.3.2 // indirect github.com/imdario/mergo v0.3.12 // indirect @@ -138,7 +138,7 @@ require ( github.com/mitchellh/copystructure v1.2.0 // indirect github.com/mitchellh/go-testing-interface v1.0.0 // indirect github.com/mitchellh/go-wordwrap v1.0.1 // indirect - github.com/mitchellh/mapstructure v1.4.3 // indirect + github.com/mitchellh/mapstructure v1.5.0 // indirect github.com/mitchellh/reflectwalk v1.0.2 // indirect github.com/moby/term v0.0.0-20201216013528-df9cb8a40635 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect @@ -164,7 +164,7 @@ require ( github.com/zclconf/go-cty v1.10.0 // indirect go.mongodb.org/mongo-driver v1.9.0 // indirect golang.org/x/net v0.0.0-20220706163947-c90051bbdb60 // indirect - golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect + golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4 // indirect golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 // indirect golang.org/x/text v0.3.7 // indirect google.golang.org/appengine v1.6.7 // indirect diff --git a/go.sum b/go.sum index 6da74ffef..446ac16de 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,7 @@ ariga.io/atlas v0.3.7-0.20220303204946-787354f533c3 h1:fjG4oFCQEfGrRi0QoxWcH2OO28CE6VYa6DkIr3yDySU= ariga.io/atlas v0.3.7-0.20220303204946-787354f533c3/go.mod h1:yWGf4VPiD4SW83+kAqzD624txN9VKoJC+bpVXr2pKJA= +ariga.io/atlas v0.7.2-0.20220927111110-867ee0cca56a h1:6/nt4DODfgxzHTTg3tYy7YkVzruGQGZ/kRvXpA45KUo= +ariga.io/atlas v0.7.2-0.20220927111110-867ee0cca56a/go.mod h1:ft47uSh5hWGDCmQC9DsztZg6Xk+KagM5Ts/mZYKb9JE= bitbucket.org/creachadair/stringset v0.0.9 h1:L4vld9nzPt90UZNrXjNelTshD74ps4P5NGs3Iq6yN3o= bitbucket.org/creachadair/stringset v0.0.9/go.mod h1:t+4WcQ4+PXTa8aQdNKe40ZP6iwesoMFWAxPGd3UGjyY= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= @@ -37,6 +39,8 @@ cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9 dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= entgo.io/ent v0.10.1 h1:dM5h4Zk6yHGIgw4dCqVzGw3nWgpGYJiV4/kyHEF6PFo= entgo.io/ent v0.10.1/go.mod h1:YPgxeLnoQ/YdpVORRtqjBF+wCy9NX9IR7veTv3Bffus= +entgo.io/ent v0.11.3 h1:F5FBGAWiDCGder7YT+lqMnyzXl6d0xU3xMBM/SO3CMc= +entgo.io/ent v0.11.3/go.mod h1:mvDhvynOzAsOe7anH7ynPPtMjA/eeXP96kAfweevyxc= github.com/AlecAivazis/survey/v2 v2.2.7 h1:5NbxkF4RSKmpywYdcRgUmos1o+roJY8duCLZXbVjoig= github.com/AlecAivazis/survey/v2 v2.2.7/go.mod h1:9DYvHgXtiXm6nCn+jXnOXLKbH+Yo9u8fAS/SduGdoPk= github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78 h1:w+iIsaOQNcT7OZ575w+acHgRric5iCyQh+xv+KJ4HB8= @@ -138,6 +142,8 @@ github.com/creack/pty v1.1.11 h1:07n33Z8lZxZ2qwegKbObQohDhXDQxiMMz1NOUGYlesw= github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/crowdsecurity/grokky v0.0.0-20220120093523-d5b3478363fa h1:pcHZgbBbIkNDO1cAgipEgaGeFJ0se+FOPvq6A4d/g9c= github.com/crowdsecurity/grokky v0.0.0-20220120093523-d5b3478363fa/go.mod h1:fx5UYUYAFIrOUNAkFCUOM2wJcsp9EWSQE9R0/9kaFJg= +github.com/crowdsecurity/grokky v0.1.0 h1:jLUzZd3vKxYrM4hQ8n5HWLfvs5ag4UP08eT9OTekI4U= +github.com/crowdsecurity/grokky v0.1.0/go.mod h1:fx5UYUYAFIrOUNAkFCUOM2wJcsp9EWSQE9R0/9kaFJg= github.com/crowdsecurity/machineid v1.0.2 h1:wpkpsUghJF8Khtmn/tg6GxgdhLA1Xflerh5lirI+bdc= github.com/crowdsecurity/machineid v1.0.2/go.mod h1:XWUSlnS0R0+u/JK5ulidwlbceNT3ZOCKteoVQEn6Luo= github.com/davecgh/go-spew v0.0.0-20161028175848-04cdfd42973b/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -180,6 +186,8 @@ github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0 github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= github.com/go-co-op/gocron v1.9.0 h1:+V+DDenw3ryB7B+tK1bAIC5p0ruw4oX9IqAsdRnGIf0= github.com/go-co-op/gocron v1.9.0/go.mod h1:DbJm9kdgr1sEvWpHCA7dFFs/PGHPMil9/97EXCRPr4k= +github.com/go-co-op/gocron v1.17.0 h1:IixLXsti+Qo0wMvmn6Kmjp2csk2ykpkcL+EmHmST18w= +github.com/go-co-op/gocron v1.17.0/go.mod h1:IpDBSaJOVfFw7hXZuTag3SCSkqazXBBUkbQ1m1aesBs= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= @@ -410,6 +418,8 @@ github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/hcl/v2 v2.11.1 h1:yTyWcXcm9XB0TEkyU/JCRU6rYy4K+mgLtzn2wlrJbcc= github.com/hashicorp/hcl/v2 v2.11.1/go.mod h1:FwWsfWEjyV/CMj8s/gqAuiviY72rJ1/oayI9WftqcKg= +github.com/hashicorp/hcl/v2 v2.13.0 h1:0Apadu1w6M11dyGFxWnmhhcMjkbAiKCv7G1r/2QgCNc= +github.com/hashicorp/hcl/v2 v2.13.0/go.mod h1:e4z5nxYlWNPdDSNYX+ph14EvWYMFm3eP0zIUqPc2jr0= github.com/hashicorp/yamux v0.0.0-20180604194846-3520598351bb h1:b5rjCoWHc7eqmAS4/qyk21ZsHyb6Mxv/jykxvNTkU4M= github.com/hashicorp/yamux v0.0.0-20180604194846-3520598351bb/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM= github.com/hinshun/vt10x v0.0.0-20180616224451-1954e6464174 h1:WlZsjVhE8Af9IcZDGgJGQpNflI3+MJSBhsgT5PCtzBQ= @@ -533,6 +543,8 @@ github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.10.2/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/lib/pq v1.10.4 h1:SO9z7FRPzA03QhHKJrH5BXA6HU1rS4V2nIVrrNC1iYk= github.com/lib/pq v1.10.4/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= +github.com/lib/pq v1.10.7 h1:p7ZhMD+KsSRozJr34udlUrhboJwWAgCg34+/ZZNvZZw= +github.com/lib/pq v1.10.7/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/lucasb-eyer/go-colorful v1.0.2/go.mod h1:0MS4r+7BZKSJ5mw4/S5MPN+qHFF1fYclkSPilDOKW0s= github.com/lucasb-eyer/go-colorful v1.0.3/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= @@ -565,6 +577,8 @@ github.com/mattn/go-runewidth v0.0.13 h1:lTGmDsbAYt5DmK6OnoV7EuIF1wEIFAcxld6ypU4 github.com/mattn/go-runewidth v0.0.13/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/mattn/go-sqlite3 v1.14.10 h1:MLn+5bFRlWMGoSRmJour3CL1w/qL96mvipqpwQW/Sfk= github.com/mattn/go-sqlite3 v1.14.10/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= +github.com/mattn/go-sqlite3 v1.14.15 h1:vfoHhTN1af61xCRSWzFIWzx2YskyMTwHLrExkBOjvxI= +github.com/mattn/go-sqlite3 v1.14.15/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 h1:I0XW9+e1XWDxdcEniV4rQAIOPUGDq67JSCiRCgGCZLI= github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= @@ -586,6 +600,8 @@ github.com/mitchellh/mapstructure v1.3.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RR github.com/mitchellh/mapstructure v1.4.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/mapstructure v1.4.3 h1:OVowDSCllw/YjdLkam3/sm7wEtOy59d8ndGgCcyj8cs= github.com/mitchellh/mapstructure v1.4.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= +github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zxSIeXaQ= github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= @@ -844,6 +860,8 @@ golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3 h1:kQgndtyPBW/JIYERgdxfwMYh3AVStj88WQTlNDi2a+o= golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 h1:6zppjxzCulZykYSLyVDYbneBfbaBIQPYMevg0bEwv2s= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/net v0.0.0-20180530234432-1e491301e022/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180811021610-c39426892332/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -908,6 +926,8 @@ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4 h1:uVc8UZUe6tr40fFVnUP5Oj+veunVezqYl9z7DYw9xzw= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -971,6 +991,8 @@ golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a h1:dGzPydgVsqGcTRVwiLJ1jVbufYwmzD3LfVPLKsKg+0k= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f h1:v4INt8xihDGvnrfjMDVXGxw9wrfxYyCjk0KbXjhR55s= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 h1:JGgROgKl9N8DuW20oFS5gxc+lE67/N3FcwmBPMe7ArY= @@ -1045,6 +1067,7 @@ golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.1.13-0.20220804200503-81c7dc4e4efa h1:uKcci2q7Qtp6nMTC/AAvfNUAldFtJuHWV9/5QWiypts= golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/pkg/database/ent/alert.go b/pkg/database/ent/alert.go index 6481b81ae..14f364437 100644 --- a/pkg/database/ent/alert.go +++ b/pkg/database/ent/alert.go @@ -1,4 +1,4 @@ -// Code generated by entc, DO NOT EDIT. +// Code generated by ent, DO NOT EDIT. package ent @@ -87,8 +87,7 @@ type AlertEdges struct { func (e AlertEdges) OwnerOrErr() (*Machine, error) { if e.loadedTypes[0] { if e.Owner == nil { - // The edge owner was loaded in eager-loading, - // but was not found. + // Edge was loaded but was not found. return nil, &NotFoundError{label: machine.Label} } return e.Owner, nil @@ -124,8 +123,8 @@ func (e AlertEdges) MetasOrErr() ([]*Meta, error) { } // scanValues returns the types for scanning values from sql.Rows. -func (*Alert) scanValues(columns []string) ([]interface{}, error) { - values := make([]interface{}, len(columns)) +func (*Alert) scanValues(columns []string) ([]any, error) { + values := make([]any, len(columns)) for i := range columns { switch columns[i] { case alert.FieldSimulated: @@ -149,7 +148,7 @@ func (*Alert) scanValues(columns []string) ([]interface{}, error) { // assignValues assigns the values that were returned from sql.Rows (after scanning) // to the Alert fields. -func (a *Alert) assignValues(columns []string, values []interface{}) error { +func (a *Alert) assignValues(columns []string, values []any) error { if m, n := len(values), len(columns); m < n { return fmt.Errorf("mismatch number of scan values: %d != %d", m, n) } @@ -337,11 +336,11 @@ func (a *Alert) Update() *AlertUpdateOne { // Unwrap unwraps the Alert entity that was returned from a transaction after it was closed, // so that all future queries will be executed through the driver which created the transaction. func (a *Alert) Unwrap() *Alert { - tx, ok := a.config.driver.(*txDriver) + _tx, ok := a.config.driver.(*txDriver) if !ok { panic("ent: Alert is not a transactional entity") } - a.config.driver = tx.drv + a.config.driver = _tx.drv return a } @@ -349,54 +348,75 @@ func (a *Alert) Unwrap() *Alert { func (a *Alert) String() string { var builder strings.Builder builder.WriteString("Alert(") - builder.WriteString(fmt.Sprintf("id=%v", a.ID)) + builder.WriteString(fmt.Sprintf("id=%v, ", a.ID)) if v := a.CreatedAt; v != nil { - builder.WriteString(", created_at=") + builder.WriteString("created_at=") builder.WriteString(v.Format(time.ANSIC)) } + builder.WriteString(", ") if v := a.UpdatedAt; v != nil { - builder.WriteString(", updated_at=") + builder.WriteString("updated_at=") builder.WriteString(v.Format(time.ANSIC)) } - builder.WriteString(", scenario=") + builder.WriteString(", ") + builder.WriteString("scenario=") builder.WriteString(a.Scenario) - builder.WriteString(", bucketId=") + builder.WriteString(", ") + builder.WriteString("bucketId=") builder.WriteString(a.BucketId) - builder.WriteString(", message=") + builder.WriteString(", ") + builder.WriteString("message=") builder.WriteString(a.Message) - builder.WriteString(", eventsCount=") + builder.WriteString(", ") + builder.WriteString("eventsCount=") builder.WriteString(fmt.Sprintf("%v", a.EventsCount)) - builder.WriteString(", startedAt=") + builder.WriteString(", ") + builder.WriteString("startedAt=") builder.WriteString(a.StartedAt.Format(time.ANSIC)) - builder.WriteString(", stoppedAt=") + builder.WriteString(", ") + builder.WriteString("stoppedAt=") builder.WriteString(a.StoppedAt.Format(time.ANSIC)) - builder.WriteString(", sourceIp=") + builder.WriteString(", ") + builder.WriteString("sourceIp=") builder.WriteString(a.SourceIp) - builder.WriteString(", sourceRange=") + builder.WriteString(", ") + builder.WriteString("sourceRange=") builder.WriteString(a.SourceRange) - builder.WriteString(", sourceAsNumber=") + builder.WriteString(", ") + builder.WriteString("sourceAsNumber=") builder.WriteString(a.SourceAsNumber) - builder.WriteString(", sourceAsName=") + builder.WriteString(", ") + builder.WriteString("sourceAsName=") builder.WriteString(a.SourceAsName) - builder.WriteString(", sourceCountry=") + builder.WriteString(", ") + builder.WriteString("sourceCountry=") builder.WriteString(a.SourceCountry) - builder.WriteString(", sourceLatitude=") + builder.WriteString(", ") + builder.WriteString("sourceLatitude=") builder.WriteString(fmt.Sprintf("%v", a.SourceLatitude)) - builder.WriteString(", sourceLongitude=") + builder.WriteString(", ") + builder.WriteString("sourceLongitude=") builder.WriteString(fmt.Sprintf("%v", a.SourceLongitude)) - builder.WriteString(", sourceScope=") + builder.WriteString(", ") + builder.WriteString("sourceScope=") builder.WriteString(a.SourceScope) - builder.WriteString(", sourceValue=") + builder.WriteString(", ") + builder.WriteString("sourceValue=") builder.WriteString(a.SourceValue) - builder.WriteString(", capacity=") + builder.WriteString(", ") + builder.WriteString("capacity=") builder.WriteString(fmt.Sprintf("%v", a.Capacity)) - builder.WriteString(", leakSpeed=") + builder.WriteString(", ") + builder.WriteString("leakSpeed=") builder.WriteString(a.LeakSpeed) - builder.WriteString(", scenarioVersion=") + builder.WriteString(", ") + builder.WriteString("scenarioVersion=") builder.WriteString(a.ScenarioVersion) - builder.WriteString(", scenarioHash=") + builder.WriteString(", ") + builder.WriteString("scenarioHash=") builder.WriteString(a.ScenarioHash) - builder.WriteString(", simulated=") + builder.WriteString(", ") + builder.WriteString("simulated=") builder.WriteString(fmt.Sprintf("%v", a.Simulated)) builder.WriteByte(')') return builder.String() diff --git a/pkg/database/ent/alert/alert.go b/pkg/database/ent/alert/alert.go index 25e22a8e1..0a0b6f209 100644 --- a/pkg/database/ent/alert/alert.go +++ b/pkg/database/ent/alert/alert.go @@ -1,4 +1,4 @@ -// Code generated by entc, DO NOT EDIT. +// Code generated by ent, DO NOT EDIT. package alert diff --git a/pkg/database/ent/alert/where.go b/pkg/database/ent/alert/where.go index 982f96beb..a106fa0ac 100644 --- a/pkg/database/ent/alert/where.go +++ b/pkg/database/ent/alert/where.go @@ -1,4 +1,4 @@ -// Code generated by entc, DO NOT EDIT. +// Code generated by ent, DO NOT EDIT. package alert @@ -34,13 +34,7 @@ func IDNEQ(id int) predicate.Alert { // IDIn applies the In predicate on the ID field. func IDIn(ids ...int) predicate.Alert { return predicate.Alert(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(ids) == 0 { - s.Where(sql.False()) - return - } - v := make([]interface{}, len(ids)) + v := make([]any, len(ids)) for i := range v { v[i] = ids[i] } @@ -51,13 +45,7 @@ func IDIn(ids ...int) predicate.Alert { // IDNotIn applies the NotIn predicate on the ID field. func IDNotIn(ids ...int) predicate.Alert { return predicate.Alert(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(ids) == 0 { - s.Where(sql.False()) - return - } - v := make([]interface{}, len(ids)) + v := make([]any, len(ids)) for i := range v { v[i] = ids[i] } @@ -263,34 +251,22 @@ func CreatedAtNEQ(v time.Time) predicate.Alert { // CreatedAtIn applies the In predicate on the "created_at" field. func CreatedAtIn(vs ...time.Time) predicate.Alert { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Alert(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.In(s.C(FieldCreatedAt), v...)) }) } // CreatedAtNotIn applies the NotIn predicate on the "created_at" field. func CreatedAtNotIn(vs ...time.Time) predicate.Alert { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Alert(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.NotIn(s.C(FieldCreatedAt), v...)) }) } @@ -353,34 +329,22 @@ func UpdatedAtNEQ(v time.Time) predicate.Alert { // UpdatedAtIn applies the In predicate on the "updated_at" field. func UpdatedAtIn(vs ...time.Time) predicate.Alert { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Alert(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.In(s.C(FieldUpdatedAt), v...)) }) } // UpdatedAtNotIn applies the NotIn predicate on the "updated_at" field. func UpdatedAtNotIn(vs ...time.Time) predicate.Alert { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Alert(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.NotIn(s.C(FieldUpdatedAt), v...)) }) } @@ -443,34 +407,22 @@ func ScenarioNEQ(v string) predicate.Alert { // ScenarioIn applies the In predicate on the "scenario" field. func ScenarioIn(vs ...string) predicate.Alert { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Alert(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.In(s.C(FieldScenario), v...)) }) } // ScenarioNotIn applies the NotIn predicate on the "scenario" field. func ScenarioNotIn(vs ...string) predicate.Alert { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Alert(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.NotIn(s.C(FieldScenario), v...)) }) } @@ -554,34 +506,22 @@ func BucketIdNEQ(v string) predicate.Alert { // BucketIdIn applies the In predicate on the "bucketId" field. func BucketIdIn(vs ...string) predicate.Alert { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Alert(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.In(s.C(FieldBucketId), v...)) }) } // BucketIdNotIn applies the NotIn predicate on the "bucketId" field. func BucketIdNotIn(vs ...string) predicate.Alert { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Alert(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.NotIn(s.C(FieldBucketId), v...)) }) } @@ -679,34 +619,22 @@ func MessageNEQ(v string) predicate.Alert { // MessageIn applies the In predicate on the "message" field. func MessageIn(vs ...string) predicate.Alert { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Alert(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.In(s.C(FieldMessage), v...)) }) } // MessageNotIn applies the NotIn predicate on the "message" field. func MessageNotIn(vs ...string) predicate.Alert { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Alert(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.NotIn(s.C(FieldMessage), v...)) }) } @@ -804,34 +732,22 @@ func EventsCountNEQ(v int32) predicate.Alert { // EventsCountIn applies the In predicate on the "eventsCount" field. func EventsCountIn(vs ...int32) predicate.Alert { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Alert(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.In(s.C(FieldEventsCount), v...)) }) } // EventsCountNotIn applies the NotIn predicate on the "eventsCount" field. func EventsCountNotIn(vs ...int32) predicate.Alert { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Alert(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.NotIn(s.C(FieldEventsCount), v...)) }) } @@ -894,34 +810,22 @@ func StartedAtNEQ(v time.Time) predicate.Alert { // StartedAtIn applies the In predicate on the "startedAt" field. func StartedAtIn(vs ...time.Time) predicate.Alert { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Alert(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.In(s.C(FieldStartedAt), v...)) }) } // StartedAtNotIn applies the NotIn predicate on the "startedAt" field. func StartedAtNotIn(vs ...time.Time) predicate.Alert { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Alert(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.NotIn(s.C(FieldStartedAt), v...)) }) } @@ -984,34 +888,22 @@ func StoppedAtNEQ(v time.Time) predicate.Alert { // StoppedAtIn applies the In predicate on the "stoppedAt" field. func StoppedAtIn(vs ...time.Time) predicate.Alert { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Alert(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.In(s.C(FieldStoppedAt), v...)) }) } // StoppedAtNotIn applies the NotIn predicate on the "stoppedAt" field. func StoppedAtNotIn(vs ...time.Time) predicate.Alert { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Alert(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.NotIn(s.C(FieldStoppedAt), v...)) }) } @@ -1074,34 +966,22 @@ func SourceIpNEQ(v string) predicate.Alert { // SourceIpIn applies the In predicate on the "sourceIp" field. func SourceIpIn(vs ...string) predicate.Alert { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Alert(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.In(s.C(FieldSourceIp), v...)) }) } // SourceIpNotIn applies the NotIn predicate on the "sourceIp" field. func SourceIpNotIn(vs ...string) predicate.Alert { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Alert(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.NotIn(s.C(FieldSourceIp), v...)) }) } @@ -1199,34 +1079,22 @@ func SourceRangeNEQ(v string) predicate.Alert { // SourceRangeIn applies the In predicate on the "sourceRange" field. func SourceRangeIn(vs ...string) predicate.Alert { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Alert(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.In(s.C(FieldSourceRange), v...)) }) } // SourceRangeNotIn applies the NotIn predicate on the "sourceRange" field. func SourceRangeNotIn(vs ...string) predicate.Alert { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Alert(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.NotIn(s.C(FieldSourceRange), v...)) }) } @@ -1324,34 +1192,22 @@ func SourceAsNumberNEQ(v string) predicate.Alert { // SourceAsNumberIn applies the In predicate on the "sourceAsNumber" field. func SourceAsNumberIn(vs ...string) predicate.Alert { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Alert(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.In(s.C(FieldSourceAsNumber), v...)) }) } // SourceAsNumberNotIn applies the NotIn predicate on the "sourceAsNumber" field. func SourceAsNumberNotIn(vs ...string) predicate.Alert { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Alert(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.NotIn(s.C(FieldSourceAsNumber), v...)) }) } @@ -1449,34 +1305,22 @@ func SourceAsNameNEQ(v string) predicate.Alert { // SourceAsNameIn applies the In predicate on the "sourceAsName" field. func SourceAsNameIn(vs ...string) predicate.Alert { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Alert(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.In(s.C(FieldSourceAsName), v...)) }) } // SourceAsNameNotIn applies the NotIn predicate on the "sourceAsName" field. func SourceAsNameNotIn(vs ...string) predicate.Alert { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Alert(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.NotIn(s.C(FieldSourceAsName), v...)) }) } @@ -1574,34 +1418,22 @@ func SourceCountryNEQ(v string) predicate.Alert { // SourceCountryIn applies the In predicate on the "sourceCountry" field. func SourceCountryIn(vs ...string) predicate.Alert { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Alert(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.In(s.C(FieldSourceCountry), v...)) }) } // SourceCountryNotIn applies the NotIn predicate on the "sourceCountry" field. func SourceCountryNotIn(vs ...string) predicate.Alert { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Alert(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.NotIn(s.C(FieldSourceCountry), v...)) }) } @@ -1699,34 +1531,22 @@ func SourceLatitudeNEQ(v float32) predicate.Alert { // SourceLatitudeIn applies the In predicate on the "sourceLatitude" field. func SourceLatitudeIn(vs ...float32) predicate.Alert { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Alert(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.In(s.C(FieldSourceLatitude), v...)) }) } // SourceLatitudeNotIn applies the NotIn predicate on the "sourceLatitude" field. func SourceLatitudeNotIn(vs ...float32) predicate.Alert { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Alert(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.NotIn(s.C(FieldSourceLatitude), v...)) }) } @@ -1789,34 +1609,22 @@ func SourceLongitudeNEQ(v float32) predicate.Alert { // SourceLongitudeIn applies the In predicate on the "sourceLongitude" field. func SourceLongitudeIn(vs ...float32) predicate.Alert { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Alert(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.In(s.C(FieldSourceLongitude), v...)) }) } // SourceLongitudeNotIn applies the NotIn predicate on the "sourceLongitude" field. func SourceLongitudeNotIn(vs ...float32) predicate.Alert { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Alert(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.NotIn(s.C(FieldSourceLongitude), v...)) }) } @@ -1879,34 +1687,22 @@ func SourceScopeNEQ(v string) predicate.Alert { // SourceScopeIn applies the In predicate on the "sourceScope" field. func SourceScopeIn(vs ...string) predicate.Alert { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Alert(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.In(s.C(FieldSourceScope), v...)) }) } // SourceScopeNotIn applies the NotIn predicate on the "sourceScope" field. func SourceScopeNotIn(vs ...string) predicate.Alert { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Alert(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.NotIn(s.C(FieldSourceScope), v...)) }) } @@ -2004,34 +1800,22 @@ func SourceValueNEQ(v string) predicate.Alert { // SourceValueIn applies the In predicate on the "sourceValue" field. func SourceValueIn(vs ...string) predicate.Alert { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Alert(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.In(s.C(FieldSourceValue), v...)) }) } // SourceValueNotIn applies the NotIn predicate on the "sourceValue" field. func SourceValueNotIn(vs ...string) predicate.Alert { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Alert(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.NotIn(s.C(FieldSourceValue), v...)) }) } @@ -2129,34 +1913,22 @@ func CapacityNEQ(v int32) predicate.Alert { // CapacityIn applies the In predicate on the "capacity" field. func CapacityIn(vs ...int32) predicate.Alert { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Alert(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.In(s.C(FieldCapacity), v...)) }) } // CapacityNotIn applies the NotIn predicate on the "capacity" field. func CapacityNotIn(vs ...int32) predicate.Alert { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Alert(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.NotIn(s.C(FieldCapacity), v...)) }) } @@ -2219,34 +1991,22 @@ func LeakSpeedNEQ(v string) predicate.Alert { // LeakSpeedIn applies the In predicate on the "leakSpeed" field. func LeakSpeedIn(vs ...string) predicate.Alert { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Alert(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.In(s.C(FieldLeakSpeed), v...)) }) } // LeakSpeedNotIn applies the NotIn predicate on the "leakSpeed" field. func LeakSpeedNotIn(vs ...string) predicate.Alert { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Alert(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.NotIn(s.C(FieldLeakSpeed), v...)) }) } @@ -2344,34 +2104,22 @@ func ScenarioVersionNEQ(v string) predicate.Alert { // ScenarioVersionIn applies the In predicate on the "scenarioVersion" field. func ScenarioVersionIn(vs ...string) predicate.Alert { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Alert(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.In(s.C(FieldScenarioVersion), v...)) }) } // ScenarioVersionNotIn applies the NotIn predicate on the "scenarioVersion" field. func ScenarioVersionNotIn(vs ...string) predicate.Alert { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Alert(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.NotIn(s.C(FieldScenarioVersion), v...)) }) } @@ -2469,34 +2217,22 @@ func ScenarioHashNEQ(v string) predicate.Alert { // ScenarioHashIn applies the In predicate on the "scenarioHash" field. func ScenarioHashIn(vs ...string) predicate.Alert { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Alert(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.In(s.C(FieldScenarioHash), v...)) }) } // ScenarioHashNotIn applies the NotIn predicate on the "scenarioHash" field. func ScenarioHashNotIn(vs ...string) predicate.Alert { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Alert(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.NotIn(s.C(FieldScenarioHash), v...)) }) } diff --git a/pkg/database/ent/alert_create.go b/pkg/database/ent/alert_create.go index 541f520ba..6d08e8d30 100644 --- a/pkg/database/ent/alert_create.go +++ b/pkg/database/ent/alert_create.go @@ -1,4 +1,4 @@ -// Code generated by entc, DO NOT EDIT. +// Code generated by ent, DO NOT EDIT. package ent @@ -428,9 +428,15 @@ func (ac *AlertCreate) Save(ctx context.Context) (*Alert, error) { } mut = ac.hooks[i](mut) } - if _, err := mut.Mutate(ctx, ac.mutation); err != nil { + v, err := mut.Mutate(ctx, ac.mutation) + if err != nil { return nil, err } + nv, ok := v.(*Alert) + if !ok { + return nil, fmt.Errorf("unexpected node type %T returned from AlertMutation", v) + } + node = nv } return node, err } @@ -508,7 +514,7 @@ func (ac *AlertCreate) sqlSave(ctx context.Context) (*Alert, error) { _node, _spec := ac.createSpec() if err := sqlgraph.CreateNode(ctx, ac.driver, _spec); err != nil { if sqlgraph.IsConstraintError(err) { - err = &ConstraintError{err.Error(), err} + err = &ConstraintError{msg: err.Error(), wrap: err} } return nil, err } @@ -817,7 +823,7 @@ func (acb *AlertCreateBulk) Save(ctx context.Context) ([]*Alert, error) { // Invoke the actual operation on the latest mutation in the chain. if err = sqlgraph.BatchCreate(ctx, acb.driver, spec); err != nil { if sqlgraph.IsConstraintError(err) { - err = &ConstraintError{err.Error(), err} + err = &ConstraintError{msg: err.Error(), wrap: err} } } } @@ -825,11 +831,11 @@ func (acb *AlertCreateBulk) Save(ctx context.Context) ([]*Alert, error) { return nil, err } mutation.id = &nodes[i].ID - mutation.done = true if specs[i].ID.Value != nil { id := specs[i].ID.Value.(int64) nodes[i].ID = int(id) } + mutation.done = true return nodes[i], nil }) for i := len(builder.hooks) - 1; i >= 0; i-- { diff --git a/pkg/database/ent/alert_delete.go b/pkg/database/ent/alert_delete.go index 17215b4d2..014bcc2e0 100644 --- a/pkg/database/ent/alert_delete.go +++ b/pkg/database/ent/alert_delete.go @@ -1,4 +1,4 @@ -// Code generated by entc, DO NOT EDIT. +// Code generated by ent, DO NOT EDIT. package ent @@ -84,7 +84,11 @@ func (ad *AlertDelete) sqlExec(ctx context.Context) (int, error) { } } } - return sqlgraph.DeleteNodes(ctx, ad.driver, _spec) + affected, err := sqlgraph.DeleteNodes(ctx, ad.driver, _spec) + if err != nil && sqlgraph.IsConstraintError(err) { + err = &ConstraintError{msg: err.Error(), wrap: err} + } + return affected, err } // AlertDeleteOne is the builder for deleting a single Alert entity. diff --git a/pkg/database/ent/alert_query.go b/pkg/database/ent/alert_query.go index fb74e4546..a7a00cab0 100644 --- a/pkg/database/ent/alert_query.go +++ b/pkg/database/ent/alert_query.go @@ -1,11 +1,10 @@ -// Code generated by entc, DO NOT EDIT. +// Code generated by ent, DO NOT EDIT. package ent import ( "context" "database/sql/driver" - "errors" "fmt" "math" @@ -23,13 +22,12 @@ import ( // AlertQuery is the builder for querying Alert entities. type AlertQuery struct { config - limit *int - offset *int - unique *bool - order []OrderFunc - fields []string - predicates []predicate.Alert - // eager-loading edges. + limit *int + offset *int + unique *bool + order []OrderFunc + fields []string + predicates []predicate.Alert withOwner *MachineQuery withDecisions *DecisionQuery withEvents *EventQuery @@ -409,17 +407,18 @@ func (aq *AlertQuery) WithMetas(opts ...func(*MetaQuery)) *AlertQuery { // GroupBy(alert.FieldCreatedAt). // Aggregate(ent.Count()). // Scan(ctx, &v) -// func (aq *AlertQuery) GroupBy(field string, fields ...string) *AlertGroupBy { - group := &AlertGroupBy{config: aq.config} - group.fields = append([]string{field}, fields...) - group.path = func(ctx context.Context) (prev *sql.Selector, err error) { + grbuild := &AlertGroupBy{config: aq.config} + grbuild.fields = append([]string{field}, fields...) + grbuild.path = func(ctx context.Context) (prev *sql.Selector, err error) { if err := aq.prepareQuery(ctx); err != nil { return nil, err } return aq.sqlQuery(ctx), nil } - return group + grbuild.label = alert.Label + grbuild.flds, grbuild.scan = &grbuild.fields, grbuild.Scan + return grbuild } // Select allows the selection one or more fields/columns for the given query, @@ -434,10 +433,12 @@ func (aq *AlertQuery) GroupBy(field string, fields ...string) *AlertGroupBy { // client.Alert.Query(). // Select(alert.FieldCreatedAt). // Scan(ctx, &v) -// func (aq *AlertQuery) Select(fields ...string) *AlertSelect { aq.fields = append(aq.fields, fields...) - return &AlertSelect{AlertQuery: aq} + selbuild := &AlertSelect{AlertQuery: aq} + selbuild.label = alert.Label + selbuild.flds, selbuild.scan = &aq.fields, selbuild.Scan + return selbuild } func (aq *AlertQuery) prepareQuery(ctx context.Context) error { @@ -456,7 +457,7 @@ func (aq *AlertQuery) prepareQuery(ctx context.Context) error { return nil } -func (aq *AlertQuery) sqlAll(ctx context.Context) ([]*Alert, error) { +func (aq *AlertQuery) sqlAll(ctx context.Context, hooks ...queryHook) ([]*Alert, error) { var ( nodes = []*Alert{} withFKs = aq.withFKs @@ -474,143 +475,175 @@ func (aq *AlertQuery) sqlAll(ctx context.Context) ([]*Alert, error) { if withFKs { _spec.Node.Columns = append(_spec.Node.Columns, alert.ForeignKeys...) } - _spec.ScanValues = func(columns []string) ([]interface{}, error) { + _spec.ScanValues = func(columns []string) ([]any, error) { + return (*Alert).scanValues(nil, columns) + } + _spec.Assign = func(columns []string, values []any) error { node := &Alert{config: aq.config} nodes = append(nodes, node) - return node.scanValues(columns) - } - _spec.Assign = func(columns []string, values []interface{}) error { - if len(nodes) == 0 { - return fmt.Errorf("ent: Assign called without calling ScanValues") - } - node := nodes[len(nodes)-1] node.Edges.loadedTypes = loadedTypes return node.assignValues(columns, values) } + for i := range hooks { + hooks[i](ctx, _spec) + } if err := sqlgraph.QueryNodes(ctx, aq.driver, _spec); err != nil { return nil, err } if len(nodes) == 0 { return nodes, nil } - if query := aq.withOwner; query != nil { - ids := make([]int, 0, len(nodes)) - nodeids := make(map[int][]*Alert) - for i := range nodes { - if nodes[i].machine_alerts == nil { - continue - } - fk := *nodes[i].machine_alerts - if _, ok := nodeids[fk]; !ok { - ids = append(ids, fk) - } - nodeids[fk] = append(nodeids[fk], nodes[i]) - } - query.Where(machine.IDIn(ids...)) - neighbors, err := query.All(ctx) - if err != nil { + if err := aq.loadOwner(ctx, query, nodes, nil, + func(n *Alert, e *Machine) { n.Edges.Owner = e }); err != nil { return nil, err } - for _, n := range neighbors { - nodes, ok := nodeids[n.ID] - if !ok { - return nil, fmt.Errorf(`unexpected foreign-key "machine_alerts" returned %v`, n.ID) - } - for i := range nodes { - nodes[i].Edges.Owner = n - } - } } - if query := aq.withDecisions; query != nil { - fks := make([]driver.Value, 0, len(nodes)) - nodeids := make(map[int]*Alert) - for i := range nodes { - fks = append(fks, nodes[i].ID) - nodeids[nodes[i].ID] = nodes[i] - nodes[i].Edges.Decisions = []*Decision{} - } - query.withFKs = true - query.Where(predicate.Decision(func(s *sql.Selector) { - s.Where(sql.InValues(alert.DecisionsColumn, fks...)) - })) - neighbors, err := query.All(ctx) - if err != nil { + if err := aq.loadDecisions(ctx, query, nodes, + func(n *Alert) { n.Edges.Decisions = []*Decision{} }, + func(n *Alert, e *Decision) { n.Edges.Decisions = append(n.Edges.Decisions, e) }); err != nil { return nil, err } - for _, n := range neighbors { - fk := n.alert_decisions - if fk == nil { - return nil, fmt.Errorf(`foreign-key "alert_decisions" is nil for node %v`, n.ID) - } - node, ok := nodeids[*fk] - if !ok { - return nil, fmt.Errorf(`unexpected foreign-key "alert_decisions" returned %v for node %v`, *fk, n.ID) - } - node.Edges.Decisions = append(node.Edges.Decisions, n) - } } - if query := aq.withEvents; query != nil { - fks := make([]driver.Value, 0, len(nodes)) - nodeids := make(map[int]*Alert) - for i := range nodes { - fks = append(fks, nodes[i].ID) - nodeids[nodes[i].ID] = nodes[i] - nodes[i].Edges.Events = []*Event{} - } - query.withFKs = true - query.Where(predicate.Event(func(s *sql.Selector) { - s.Where(sql.InValues(alert.EventsColumn, fks...)) - })) - neighbors, err := query.All(ctx) - if err != nil { + if err := aq.loadEvents(ctx, query, nodes, + func(n *Alert) { n.Edges.Events = []*Event{} }, + func(n *Alert, e *Event) { n.Edges.Events = append(n.Edges.Events, e) }); err != nil { return nil, err } - for _, n := range neighbors { - fk := n.alert_events - if fk == nil { - return nil, fmt.Errorf(`foreign-key "alert_events" is nil for node %v`, n.ID) - } - node, ok := nodeids[*fk] - if !ok { - return nil, fmt.Errorf(`unexpected foreign-key "alert_events" returned %v for node %v`, *fk, n.ID) - } - node.Edges.Events = append(node.Edges.Events, n) - } } - if query := aq.withMetas; query != nil { - fks := make([]driver.Value, 0, len(nodes)) - nodeids := make(map[int]*Alert) - for i := range nodes { - fks = append(fks, nodes[i].ID) - nodeids[nodes[i].ID] = nodes[i] - nodes[i].Edges.Metas = []*Meta{} - } - query.withFKs = true - query.Where(predicate.Meta(func(s *sql.Selector) { - s.Where(sql.InValues(alert.MetasColumn, fks...)) - })) - neighbors, err := query.All(ctx) - if err != nil { + if err := aq.loadMetas(ctx, query, nodes, + func(n *Alert) { n.Edges.Metas = []*Meta{} }, + func(n *Alert, e *Meta) { n.Edges.Metas = append(n.Edges.Metas, e) }); err != nil { return nil, err } - for _, n := range neighbors { - fk := n.alert_metas - if fk == nil { - return nil, fmt.Errorf(`foreign-key "alert_metas" is nil for node %v`, n.ID) - } - node, ok := nodeids[*fk] - if !ok { - return nil, fmt.Errorf(`unexpected foreign-key "alert_metas" returned %v for node %v`, *fk, n.ID) - } - node.Edges.Metas = append(node.Edges.Metas, n) + } + return nodes, nil +} + +func (aq *AlertQuery) loadOwner(ctx context.Context, query *MachineQuery, nodes []*Alert, init func(*Alert), assign func(*Alert, *Machine)) error { + ids := make([]int, 0, len(nodes)) + nodeids := make(map[int][]*Alert) + for i := range nodes { + if nodes[i].machine_alerts == nil { + continue + } + fk := *nodes[i].machine_alerts + if _, ok := nodeids[fk]; !ok { + ids = append(ids, fk) + } + nodeids[fk] = append(nodeids[fk], nodes[i]) + } + query.Where(machine.IDIn(ids...)) + neighbors, err := query.All(ctx) + if err != nil { + return err + } + for _, n := range neighbors { + nodes, ok := nodeids[n.ID] + if !ok { + return fmt.Errorf(`unexpected foreign-key "machine_alerts" returned %v`, n.ID) + } + for i := range nodes { + assign(nodes[i], n) } } - - return nodes, nil + return nil +} +func (aq *AlertQuery) loadDecisions(ctx context.Context, query *DecisionQuery, nodes []*Alert, init func(*Alert), assign func(*Alert, *Decision)) error { + fks := make([]driver.Value, 0, len(nodes)) + nodeids := make(map[int]*Alert) + for i := range nodes { + fks = append(fks, nodes[i].ID) + nodeids[nodes[i].ID] = nodes[i] + if init != nil { + init(nodes[i]) + } + } + query.withFKs = true + query.Where(predicate.Decision(func(s *sql.Selector) { + s.Where(sql.InValues(alert.DecisionsColumn, fks...)) + })) + neighbors, err := query.All(ctx) + if err != nil { + return err + } + for _, n := range neighbors { + fk := n.alert_decisions + if fk == nil { + return fmt.Errorf(`foreign-key "alert_decisions" is nil for node %v`, n.ID) + } + node, ok := nodeids[*fk] + if !ok { + return fmt.Errorf(`unexpected foreign-key "alert_decisions" returned %v for node %v`, *fk, n.ID) + } + assign(node, n) + } + return nil +} +func (aq *AlertQuery) loadEvents(ctx context.Context, query *EventQuery, nodes []*Alert, init func(*Alert), assign func(*Alert, *Event)) error { + fks := make([]driver.Value, 0, len(nodes)) + nodeids := make(map[int]*Alert) + for i := range nodes { + fks = append(fks, nodes[i].ID) + nodeids[nodes[i].ID] = nodes[i] + if init != nil { + init(nodes[i]) + } + } + query.withFKs = true + query.Where(predicate.Event(func(s *sql.Selector) { + s.Where(sql.InValues(alert.EventsColumn, fks...)) + })) + neighbors, err := query.All(ctx) + if err != nil { + return err + } + for _, n := range neighbors { + fk := n.alert_events + if fk == nil { + return fmt.Errorf(`foreign-key "alert_events" is nil for node %v`, n.ID) + } + node, ok := nodeids[*fk] + if !ok { + return fmt.Errorf(`unexpected foreign-key "alert_events" returned %v for node %v`, *fk, n.ID) + } + assign(node, n) + } + return nil +} +func (aq *AlertQuery) loadMetas(ctx context.Context, query *MetaQuery, nodes []*Alert, init func(*Alert), assign func(*Alert, *Meta)) error { + fks := make([]driver.Value, 0, len(nodes)) + nodeids := make(map[int]*Alert) + for i := range nodes { + fks = append(fks, nodes[i].ID) + nodeids[nodes[i].ID] = nodes[i] + if init != nil { + init(nodes[i]) + } + } + query.withFKs = true + query.Where(predicate.Meta(func(s *sql.Selector) { + s.Where(sql.InValues(alert.MetasColumn, fks...)) + })) + neighbors, err := query.All(ctx) + if err != nil { + return err + } + for _, n := range neighbors { + fk := n.alert_metas + if fk == nil { + return fmt.Errorf(`foreign-key "alert_metas" is nil for node %v`, n.ID) + } + node, ok := nodeids[*fk] + if !ok { + return fmt.Errorf(`unexpected foreign-key "alert_metas" returned %v for node %v`, *fk, n.ID) + } + assign(node, n) + } + return nil } func (aq *AlertQuery) sqlCount(ctx context.Context) (int, error) { @@ -623,11 +656,14 @@ func (aq *AlertQuery) sqlCount(ctx context.Context) (int, error) { } func (aq *AlertQuery) sqlExist(ctx context.Context) (bool, error) { - n, err := aq.sqlCount(ctx) - if err != nil { + switch _, err := aq.FirstID(ctx); { + case IsNotFound(err): + return false, nil + case err != nil: return false, fmt.Errorf("ent: check existence: %w", err) + default: + return true, nil } - return n > 0, nil } func (aq *AlertQuery) querySpec() *sqlgraph.QuerySpec { @@ -713,6 +749,7 @@ func (aq *AlertQuery) sqlQuery(ctx context.Context) *sql.Selector { // AlertGroupBy is the group-by builder for Alert entities. type AlertGroupBy struct { config + selector fields []string fns []AggregateFunc // intermediate query (i.e. traversal path). @@ -727,7 +764,7 @@ func (agb *AlertGroupBy) Aggregate(fns ...AggregateFunc) *AlertGroupBy { } // Scan applies the group-by query and scans the result into the given value. -func (agb *AlertGroupBy) Scan(ctx context.Context, v interface{}) error { +func (agb *AlertGroupBy) Scan(ctx context.Context, v any) error { query, err := agb.path(ctx) if err != nil { return err @@ -736,210 +773,7 @@ func (agb *AlertGroupBy) Scan(ctx context.Context, v interface{}) error { return agb.sqlScan(ctx, v) } -// ScanX is like Scan, but panics if an error occurs. -func (agb *AlertGroupBy) ScanX(ctx context.Context, v interface{}) { - if err := agb.Scan(ctx, v); err != nil { - panic(err) - } -} - -// Strings returns list of strings from group-by. -// It is only allowed when executing a group-by query with one field. -func (agb *AlertGroupBy) Strings(ctx context.Context) ([]string, error) { - if len(agb.fields) > 1 { - return nil, errors.New("ent: AlertGroupBy.Strings is not achievable when grouping more than 1 field") - } - var v []string - if err := agb.Scan(ctx, &v); err != nil { - return nil, err - } - return v, nil -} - -// StringsX is like Strings, but panics if an error occurs. -func (agb *AlertGroupBy) StringsX(ctx context.Context) []string { - v, err := agb.Strings(ctx) - if err != nil { - panic(err) - } - return v -} - -// String returns a single string from a group-by query. -// It is only allowed when executing a group-by query with one field. -func (agb *AlertGroupBy) String(ctx context.Context) (_ string, err error) { - var v []string - if v, err = agb.Strings(ctx); err != nil { - return - } - switch len(v) { - case 1: - return v[0], nil - case 0: - err = &NotFoundError{alert.Label} - default: - err = fmt.Errorf("ent: AlertGroupBy.Strings returned %d results when one was expected", len(v)) - } - return -} - -// StringX is like String, but panics if an error occurs. -func (agb *AlertGroupBy) StringX(ctx context.Context) string { - v, err := agb.String(ctx) - if err != nil { - panic(err) - } - return v -} - -// Ints returns list of ints from group-by. -// It is only allowed when executing a group-by query with one field. -func (agb *AlertGroupBy) Ints(ctx context.Context) ([]int, error) { - if len(agb.fields) > 1 { - return nil, errors.New("ent: AlertGroupBy.Ints is not achievable when grouping more than 1 field") - } - var v []int - if err := agb.Scan(ctx, &v); err != nil { - return nil, err - } - return v, nil -} - -// IntsX is like Ints, but panics if an error occurs. -func (agb *AlertGroupBy) IntsX(ctx context.Context) []int { - v, err := agb.Ints(ctx) - if err != nil { - panic(err) - } - return v -} - -// Int returns a single int from a group-by query. -// It is only allowed when executing a group-by query with one field. -func (agb *AlertGroupBy) Int(ctx context.Context) (_ int, err error) { - var v []int - if v, err = agb.Ints(ctx); err != nil { - return - } - switch len(v) { - case 1: - return v[0], nil - case 0: - err = &NotFoundError{alert.Label} - default: - err = fmt.Errorf("ent: AlertGroupBy.Ints returned %d results when one was expected", len(v)) - } - return -} - -// IntX is like Int, but panics if an error occurs. -func (agb *AlertGroupBy) IntX(ctx context.Context) int { - v, err := agb.Int(ctx) - if err != nil { - panic(err) - } - return v -} - -// Float64s returns list of float64s from group-by. -// It is only allowed when executing a group-by query with one field. -func (agb *AlertGroupBy) Float64s(ctx context.Context) ([]float64, error) { - if len(agb.fields) > 1 { - return nil, errors.New("ent: AlertGroupBy.Float64s is not achievable when grouping more than 1 field") - } - var v []float64 - if err := agb.Scan(ctx, &v); err != nil { - return nil, err - } - return v, nil -} - -// Float64sX is like Float64s, but panics if an error occurs. -func (agb *AlertGroupBy) Float64sX(ctx context.Context) []float64 { - v, err := agb.Float64s(ctx) - if err != nil { - panic(err) - } - return v -} - -// Float64 returns a single float64 from a group-by query. -// It is only allowed when executing a group-by query with one field. -func (agb *AlertGroupBy) Float64(ctx context.Context) (_ float64, err error) { - var v []float64 - if v, err = agb.Float64s(ctx); err != nil { - return - } - switch len(v) { - case 1: - return v[0], nil - case 0: - err = &NotFoundError{alert.Label} - default: - err = fmt.Errorf("ent: AlertGroupBy.Float64s returned %d results when one was expected", len(v)) - } - return -} - -// Float64X is like Float64, but panics if an error occurs. -func (agb *AlertGroupBy) Float64X(ctx context.Context) float64 { - v, err := agb.Float64(ctx) - if err != nil { - panic(err) - } - return v -} - -// Bools returns list of bools from group-by. -// It is only allowed when executing a group-by query with one field. -func (agb *AlertGroupBy) Bools(ctx context.Context) ([]bool, error) { - if len(agb.fields) > 1 { - return nil, errors.New("ent: AlertGroupBy.Bools is not achievable when grouping more than 1 field") - } - var v []bool - if err := agb.Scan(ctx, &v); err != nil { - return nil, err - } - return v, nil -} - -// BoolsX is like Bools, but panics if an error occurs. -func (agb *AlertGroupBy) BoolsX(ctx context.Context) []bool { - v, err := agb.Bools(ctx) - if err != nil { - panic(err) - } - return v -} - -// Bool returns a single bool from a group-by query. -// It is only allowed when executing a group-by query with one field. -func (agb *AlertGroupBy) Bool(ctx context.Context) (_ bool, err error) { - var v []bool - if v, err = agb.Bools(ctx); err != nil { - return - } - switch len(v) { - case 1: - return v[0], nil - case 0: - err = &NotFoundError{alert.Label} - default: - err = fmt.Errorf("ent: AlertGroupBy.Bools returned %d results when one was expected", len(v)) - } - return -} - -// BoolX is like Bool, but panics if an error occurs. -func (agb *AlertGroupBy) BoolX(ctx context.Context) bool { - v, err := agb.Bool(ctx) - if err != nil { - panic(err) - } - return v -} - -func (agb *AlertGroupBy) sqlScan(ctx context.Context, v interface{}) error { +func (agb *AlertGroupBy) sqlScan(ctx context.Context, v any) error { for _, f := range agb.fields { if !alert.ValidColumn(f) { return &ValidationError{Name: f, err: fmt.Errorf("invalid field %q for group-by", f)} @@ -980,12 +814,13 @@ func (agb *AlertGroupBy) sqlQuery() *sql.Selector { // AlertSelect is the builder for selecting fields of Alert entities. type AlertSelect struct { *AlertQuery + selector // intermediate query (i.e. traversal path). sql *sql.Selector } // Scan applies the selector query and scans the result into the given value. -func (as *AlertSelect) Scan(ctx context.Context, v interface{}) error { +func (as *AlertSelect) Scan(ctx context.Context, v any) error { if err := as.prepareQuery(ctx); err != nil { return err } @@ -993,202 +828,7 @@ func (as *AlertSelect) Scan(ctx context.Context, v interface{}) error { return as.sqlScan(ctx, v) } -// ScanX is like Scan, but panics if an error occurs. -func (as *AlertSelect) ScanX(ctx context.Context, v interface{}) { - if err := as.Scan(ctx, v); err != nil { - panic(err) - } -} - -// Strings returns list of strings from a selector. It is only allowed when selecting one field. -func (as *AlertSelect) Strings(ctx context.Context) ([]string, error) { - if len(as.fields) > 1 { - return nil, errors.New("ent: AlertSelect.Strings is not achievable when selecting more than 1 field") - } - var v []string - if err := as.Scan(ctx, &v); err != nil { - return nil, err - } - return v, nil -} - -// StringsX is like Strings, but panics if an error occurs. -func (as *AlertSelect) StringsX(ctx context.Context) []string { - v, err := as.Strings(ctx) - if err != nil { - panic(err) - } - return v -} - -// String returns a single string from a selector. It is only allowed when selecting one field. -func (as *AlertSelect) String(ctx context.Context) (_ string, err error) { - var v []string - if v, err = as.Strings(ctx); err != nil { - return - } - switch len(v) { - case 1: - return v[0], nil - case 0: - err = &NotFoundError{alert.Label} - default: - err = fmt.Errorf("ent: AlertSelect.Strings returned %d results when one was expected", len(v)) - } - return -} - -// StringX is like String, but panics if an error occurs. -func (as *AlertSelect) StringX(ctx context.Context) string { - v, err := as.String(ctx) - if err != nil { - panic(err) - } - return v -} - -// Ints returns list of ints from a selector. It is only allowed when selecting one field. -func (as *AlertSelect) Ints(ctx context.Context) ([]int, error) { - if len(as.fields) > 1 { - return nil, errors.New("ent: AlertSelect.Ints is not achievable when selecting more than 1 field") - } - var v []int - if err := as.Scan(ctx, &v); err != nil { - return nil, err - } - return v, nil -} - -// IntsX is like Ints, but panics if an error occurs. -func (as *AlertSelect) IntsX(ctx context.Context) []int { - v, err := as.Ints(ctx) - if err != nil { - panic(err) - } - return v -} - -// Int returns a single int from a selector. It is only allowed when selecting one field. -func (as *AlertSelect) Int(ctx context.Context) (_ int, err error) { - var v []int - if v, err = as.Ints(ctx); err != nil { - return - } - switch len(v) { - case 1: - return v[0], nil - case 0: - err = &NotFoundError{alert.Label} - default: - err = fmt.Errorf("ent: AlertSelect.Ints returned %d results when one was expected", len(v)) - } - return -} - -// IntX is like Int, but panics if an error occurs. -func (as *AlertSelect) IntX(ctx context.Context) int { - v, err := as.Int(ctx) - if err != nil { - panic(err) - } - return v -} - -// Float64s returns list of float64s from a selector. It is only allowed when selecting one field. -func (as *AlertSelect) Float64s(ctx context.Context) ([]float64, error) { - if len(as.fields) > 1 { - return nil, errors.New("ent: AlertSelect.Float64s is not achievable when selecting more than 1 field") - } - var v []float64 - if err := as.Scan(ctx, &v); err != nil { - return nil, err - } - return v, nil -} - -// Float64sX is like Float64s, but panics if an error occurs. -func (as *AlertSelect) Float64sX(ctx context.Context) []float64 { - v, err := as.Float64s(ctx) - if err != nil { - panic(err) - } - return v -} - -// Float64 returns a single float64 from a selector. It is only allowed when selecting one field. -func (as *AlertSelect) Float64(ctx context.Context) (_ float64, err error) { - var v []float64 - if v, err = as.Float64s(ctx); err != nil { - return - } - switch len(v) { - case 1: - return v[0], nil - case 0: - err = &NotFoundError{alert.Label} - default: - err = fmt.Errorf("ent: AlertSelect.Float64s returned %d results when one was expected", len(v)) - } - return -} - -// Float64X is like Float64, but panics if an error occurs. -func (as *AlertSelect) Float64X(ctx context.Context) float64 { - v, err := as.Float64(ctx) - if err != nil { - panic(err) - } - return v -} - -// Bools returns list of bools from a selector. It is only allowed when selecting one field. -func (as *AlertSelect) Bools(ctx context.Context) ([]bool, error) { - if len(as.fields) > 1 { - return nil, errors.New("ent: AlertSelect.Bools is not achievable when selecting more than 1 field") - } - var v []bool - if err := as.Scan(ctx, &v); err != nil { - return nil, err - } - return v, nil -} - -// BoolsX is like Bools, but panics if an error occurs. -func (as *AlertSelect) BoolsX(ctx context.Context) []bool { - v, err := as.Bools(ctx) - if err != nil { - panic(err) - } - return v -} - -// Bool returns a single bool from a selector. It is only allowed when selecting one field. -func (as *AlertSelect) Bool(ctx context.Context) (_ bool, err error) { - var v []bool - if v, err = as.Bools(ctx); err != nil { - return - } - switch len(v) { - case 1: - return v[0], nil - case 0: - err = &NotFoundError{alert.Label} - default: - err = fmt.Errorf("ent: AlertSelect.Bools returned %d results when one was expected", len(v)) - } - return -} - -// BoolX is like Bool, but panics if an error occurs. -func (as *AlertSelect) BoolX(ctx context.Context) bool { - v, err := as.Bool(ctx) - if err != nil { - panic(err) - } - return v -} - -func (as *AlertSelect) sqlScan(ctx context.Context, v interface{}) error { +func (as *AlertSelect) sqlScan(ctx context.Context, v any) error { rows := &sql.Rows{} query, args := as.sql.Query() if err := as.driver.Query(ctx, query, args, rows); err != nil { diff --git a/pkg/database/ent/alert_update.go b/pkg/database/ent/alert_update.go index 9e6775bc2..1f9eccee3 100644 --- a/pkg/database/ent/alert_update.go +++ b/pkg/database/ent/alert_update.go @@ -1,4 +1,4 @@ -// Code generated by entc, DO NOT EDIT. +// Code generated by ent, DO NOT EDIT. package ent @@ -1190,7 +1190,7 @@ func (au *AlertUpdate) sqlSave(ctx context.Context) (n int, err error) { if _, ok := err.(*sqlgraph.NotFoundError); ok { err = &NotFoundError{alert.Label} } else if sqlgraph.IsConstraintError(err) { - err = &ConstraintError{err.Error(), err} + err = &ConstraintError{msg: err.Error(), wrap: err} } return 0, err } @@ -1808,9 +1808,15 @@ func (auo *AlertUpdateOne) Save(ctx context.Context) (*Alert, error) { } mut = auo.hooks[i](mut) } - if _, err := mut.Mutate(ctx, auo.mutation); err != nil { + v, err := mut.Mutate(ctx, auo.mutation) + if err != nil { return nil, err } + nv, ok := v.(*Alert) + if !ok { + return nil, fmt.Errorf("unexpected node type %T returned from AlertMutation", v) + } + node = nv } return node, err } @@ -2390,7 +2396,7 @@ func (auo *AlertUpdateOne) sqlSave(ctx context.Context) (_node *Alert, err error if _, ok := err.(*sqlgraph.NotFoundError); ok { err = &NotFoundError{alert.Label} } else if sqlgraph.IsConstraintError(err) { - err = &ConstraintError{err.Error(), err} + err = &ConstraintError{msg: err.Error(), wrap: err} } return nil, err } diff --git a/pkg/database/ent/bouncer.go b/pkg/database/ent/bouncer.go index ad6fa1cf2..068fc6c67 100644 --- a/pkg/database/ent/bouncer.go +++ b/pkg/database/ent/bouncer.go @@ -1,4 +1,4 @@ -// Code generated by entc, DO NOT EDIT. +// Code generated by ent, DO NOT EDIT. package ent @@ -41,8 +41,8 @@ type Bouncer struct { } // scanValues returns the types for scanning values from sql.Rows. -func (*Bouncer) scanValues(columns []string) ([]interface{}, error) { - values := make([]interface{}, len(columns)) +func (*Bouncer) scanValues(columns []string) ([]any, error) { + values := make([]any, len(columns)) for i := range columns { switch columns[i] { case bouncer.FieldRevoked: @@ -62,7 +62,7 @@ func (*Bouncer) scanValues(columns []string) ([]interface{}, error) { // assignValues assigns the values that were returned from sql.Rows (after scanning) // to the Bouncer fields. -func (b *Bouncer) assignValues(columns []string, values []interface{}) error { +func (b *Bouncer) assignValues(columns []string, values []any) error { if m, n := len(values), len(columns); m < n { return fmt.Errorf("mismatch number of scan values: %d != %d", m, n) } @@ -157,11 +157,11 @@ func (b *Bouncer) Update() *BouncerUpdateOne { // Unwrap unwraps the Bouncer entity that was returned from a transaction after it was closed, // so that all future queries will be executed through the driver which created the transaction. func (b *Bouncer) Unwrap() *Bouncer { - tx, ok := b.config.driver.(*txDriver) + _tx, ok := b.config.driver.(*txDriver) if !ok { panic("ent: Bouncer is not a transactional entity") } - b.config.driver = tx.drv + b.config.driver = _tx.drv return b } @@ -169,32 +169,42 @@ func (b *Bouncer) Unwrap() *Bouncer { func (b *Bouncer) String() string { var builder strings.Builder builder.WriteString("Bouncer(") - builder.WriteString(fmt.Sprintf("id=%v", b.ID)) + builder.WriteString(fmt.Sprintf("id=%v, ", b.ID)) if v := b.CreatedAt; v != nil { - builder.WriteString(", created_at=") + builder.WriteString("created_at=") builder.WriteString(v.Format(time.ANSIC)) } + builder.WriteString(", ") if v := b.UpdatedAt; v != nil { - builder.WriteString(", updated_at=") + builder.WriteString("updated_at=") builder.WriteString(v.Format(time.ANSIC)) } - builder.WriteString(", name=") + builder.WriteString(", ") + builder.WriteString("name=") builder.WriteString(b.Name) - builder.WriteString(", api_key=") + builder.WriteString(", ") + builder.WriteString("api_key=") builder.WriteString(b.APIKey) - builder.WriteString(", revoked=") + builder.WriteString(", ") + builder.WriteString("revoked=") builder.WriteString(fmt.Sprintf("%v", b.Revoked)) - builder.WriteString(", ip_address=") + builder.WriteString(", ") + builder.WriteString("ip_address=") builder.WriteString(b.IPAddress) - builder.WriteString(", type=") + builder.WriteString(", ") + builder.WriteString("type=") builder.WriteString(b.Type) - builder.WriteString(", version=") + builder.WriteString(", ") + builder.WriteString("version=") builder.WriteString(b.Version) - builder.WriteString(", until=") + builder.WriteString(", ") + builder.WriteString("until=") builder.WriteString(b.Until.Format(time.ANSIC)) - builder.WriteString(", last_pull=") + builder.WriteString(", ") + builder.WriteString("last_pull=") builder.WriteString(b.LastPull.Format(time.ANSIC)) - builder.WriteString(", auth_type=") + builder.WriteString(", ") + builder.WriteString("auth_type=") builder.WriteString(b.AuthType) builder.WriteByte(')') return builder.String() diff --git a/pkg/database/ent/bouncer/bouncer.go b/pkg/database/ent/bouncer/bouncer.go index 10fbe00b5..b688594ec 100644 --- a/pkg/database/ent/bouncer/bouncer.go +++ b/pkg/database/ent/bouncer/bouncer.go @@ -1,4 +1,4 @@ -// Code generated by entc, DO NOT EDIT. +// Code generated by ent, DO NOT EDIT. package bouncer diff --git a/pkg/database/ent/bouncer/where.go b/pkg/database/ent/bouncer/where.go index 15d16cd21..03a543f6d 100644 --- a/pkg/database/ent/bouncer/where.go +++ b/pkg/database/ent/bouncer/where.go @@ -1,4 +1,4 @@ -// Code generated by entc, DO NOT EDIT. +// Code generated by ent, DO NOT EDIT. package bouncer @@ -33,13 +33,7 @@ func IDNEQ(id int) predicate.Bouncer { // IDIn applies the In predicate on the ID field. func IDIn(ids ...int) predicate.Bouncer { return predicate.Bouncer(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(ids) == 0 { - s.Where(sql.False()) - return - } - v := make([]interface{}, len(ids)) + v := make([]any, len(ids)) for i := range v { v[i] = ids[i] } @@ -50,13 +44,7 @@ func IDIn(ids ...int) predicate.Bouncer { // IDNotIn applies the NotIn predicate on the ID field. func IDNotIn(ids ...int) predicate.Bouncer { return predicate.Bouncer(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(ids) == 0 { - s.Where(sql.False()) - return - } - v := make([]interface{}, len(ids)) + v := make([]any, len(ids)) for i := range v { v[i] = ids[i] } @@ -185,34 +173,22 @@ func CreatedAtNEQ(v time.Time) predicate.Bouncer { // CreatedAtIn applies the In predicate on the "created_at" field. func CreatedAtIn(vs ...time.Time) predicate.Bouncer { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Bouncer(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.In(s.C(FieldCreatedAt), v...)) }) } // CreatedAtNotIn applies the NotIn predicate on the "created_at" field. func CreatedAtNotIn(vs ...time.Time) predicate.Bouncer { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Bouncer(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.NotIn(s.C(FieldCreatedAt), v...)) }) } @@ -275,34 +251,22 @@ func UpdatedAtNEQ(v time.Time) predicate.Bouncer { // UpdatedAtIn applies the In predicate on the "updated_at" field. func UpdatedAtIn(vs ...time.Time) predicate.Bouncer { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Bouncer(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.In(s.C(FieldUpdatedAt), v...)) }) } // UpdatedAtNotIn applies the NotIn predicate on the "updated_at" field. func UpdatedAtNotIn(vs ...time.Time) predicate.Bouncer { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Bouncer(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.NotIn(s.C(FieldUpdatedAt), v...)) }) } @@ -365,34 +329,22 @@ func NameNEQ(v string) predicate.Bouncer { // NameIn applies the In predicate on the "name" field. func NameIn(vs ...string) predicate.Bouncer { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Bouncer(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.In(s.C(FieldName), v...)) }) } // NameNotIn applies the NotIn predicate on the "name" field. func NameNotIn(vs ...string) predicate.Bouncer { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Bouncer(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.NotIn(s.C(FieldName), v...)) }) } @@ -476,34 +428,22 @@ func APIKeyNEQ(v string) predicate.Bouncer { // APIKeyIn applies the In predicate on the "api_key" field. func APIKeyIn(vs ...string) predicate.Bouncer { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Bouncer(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.In(s.C(FieldAPIKey), v...)) }) } // APIKeyNotIn applies the NotIn predicate on the "api_key" field. func APIKeyNotIn(vs ...string) predicate.Bouncer { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Bouncer(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.NotIn(s.C(FieldAPIKey), v...)) }) } @@ -601,34 +541,22 @@ func IPAddressNEQ(v string) predicate.Bouncer { // IPAddressIn applies the In predicate on the "ip_address" field. func IPAddressIn(vs ...string) predicate.Bouncer { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Bouncer(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.In(s.C(FieldIPAddress), v...)) }) } // IPAddressNotIn applies the NotIn predicate on the "ip_address" field. func IPAddressNotIn(vs ...string) predicate.Bouncer { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Bouncer(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.NotIn(s.C(FieldIPAddress), v...)) }) } @@ -726,34 +654,22 @@ func TypeNEQ(v string) predicate.Bouncer { // TypeIn applies the In predicate on the "type" field. func TypeIn(vs ...string) predicate.Bouncer { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Bouncer(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.In(s.C(FieldType), v...)) }) } // TypeNotIn applies the NotIn predicate on the "type" field. func TypeNotIn(vs ...string) predicate.Bouncer { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Bouncer(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.NotIn(s.C(FieldType), v...)) }) } @@ -851,34 +767,22 @@ func VersionNEQ(v string) predicate.Bouncer { // VersionIn applies the In predicate on the "version" field. func VersionIn(vs ...string) predicate.Bouncer { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Bouncer(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.In(s.C(FieldVersion), v...)) }) } // VersionNotIn applies the NotIn predicate on the "version" field. func VersionNotIn(vs ...string) predicate.Bouncer { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Bouncer(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.NotIn(s.C(FieldVersion), v...)) }) } @@ -976,34 +880,22 @@ func UntilNEQ(v time.Time) predicate.Bouncer { // UntilIn applies the In predicate on the "until" field. func UntilIn(vs ...time.Time) predicate.Bouncer { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Bouncer(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.In(s.C(FieldUntil), v...)) }) } // UntilNotIn applies the NotIn predicate on the "until" field. func UntilNotIn(vs ...time.Time) predicate.Bouncer { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Bouncer(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.NotIn(s.C(FieldUntil), v...)) }) } @@ -1066,34 +958,22 @@ func LastPullNEQ(v time.Time) predicate.Bouncer { // LastPullIn applies the In predicate on the "last_pull" field. func LastPullIn(vs ...time.Time) predicate.Bouncer { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Bouncer(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.In(s.C(FieldLastPull), v...)) }) } // LastPullNotIn applies the NotIn predicate on the "last_pull" field. func LastPullNotIn(vs ...time.Time) predicate.Bouncer { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Bouncer(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.NotIn(s.C(FieldLastPull), v...)) }) } @@ -1142,34 +1022,22 @@ func AuthTypeNEQ(v string) predicate.Bouncer { // AuthTypeIn applies the In predicate on the "auth_type" field. func AuthTypeIn(vs ...string) predicate.Bouncer { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Bouncer(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.In(s.C(FieldAuthType), v...)) }) } // AuthTypeNotIn applies the NotIn predicate on the "auth_type" field. func AuthTypeNotIn(vs ...string) predicate.Bouncer { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Bouncer(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.NotIn(s.C(FieldAuthType), v...)) }) } diff --git a/pkg/database/ent/bouncer_create.go b/pkg/database/ent/bouncer_create.go index 42746542e..685ce089d 100644 --- a/pkg/database/ent/bouncer_create.go +++ b/pkg/database/ent/bouncer_create.go @@ -1,4 +1,4 @@ -// Code generated by entc, DO NOT EDIT. +// Code generated by ent, DO NOT EDIT. package ent @@ -190,9 +190,15 @@ func (bc *BouncerCreate) Save(ctx context.Context) (*Bouncer, error) { } mut = bc.hooks[i](mut) } - if _, err := mut.Mutate(ctx, bc.mutation); err != nil { + v, err := mut.Mutate(ctx, bc.mutation) + if err != nil { return nil, err } + nv, ok := v.(*Bouncer) + if !ok { + return nil, fmt.Errorf("unexpected node type %T returned from BouncerMutation", v) + } + node = nv } return node, err } @@ -271,7 +277,7 @@ func (bc *BouncerCreate) sqlSave(ctx context.Context) (*Bouncer, error) { _node, _spec := bc.createSpec() if err := sqlgraph.CreateNode(ctx, bc.driver, _spec); err != nil { if sqlgraph.IsConstraintError(err) { - err = &ConstraintError{err.Error(), err} + err = &ConstraintError{msg: err.Error(), wrap: err} } return nil, err } @@ -415,7 +421,7 @@ func (bcb *BouncerCreateBulk) Save(ctx context.Context) ([]*Bouncer, error) { // Invoke the actual operation on the latest mutation in the chain. if err = sqlgraph.BatchCreate(ctx, bcb.driver, spec); err != nil { if sqlgraph.IsConstraintError(err) { - err = &ConstraintError{err.Error(), err} + err = &ConstraintError{msg: err.Error(), wrap: err} } } } @@ -423,11 +429,11 @@ func (bcb *BouncerCreateBulk) Save(ctx context.Context) ([]*Bouncer, error) { return nil, err } mutation.id = &nodes[i].ID - mutation.done = true if specs[i].ID.Value != nil { id := specs[i].ID.Value.(int64) nodes[i].ID = int(id) } + mutation.done = true return nodes[i], nil }) for i := len(builder.hooks) - 1; i >= 0; i-- { diff --git a/pkg/database/ent/bouncer_delete.go b/pkg/database/ent/bouncer_delete.go index aff53424f..6bfb94591 100644 --- a/pkg/database/ent/bouncer_delete.go +++ b/pkg/database/ent/bouncer_delete.go @@ -1,4 +1,4 @@ -// Code generated by entc, DO NOT EDIT. +// Code generated by ent, DO NOT EDIT. package ent @@ -84,7 +84,11 @@ func (bd *BouncerDelete) sqlExec(ctx context.Context) (int, error) { } } } - return sqlgraph.DeleteNodes(ctx, bd.driver, _spec) + affected, err := sqlgraph.DeleteNodes(ctx, bd.driver, _spec) + if err != nil && sqlgraph.IsConstraintError(err) { + err = &ConstraintError{msg: err.Error(), wrap: err} + } + return affected, err } // BouncerDeleteOne is the builder for deleting a single Bouncer entity. diff --git a/pkg/database/ent/bouncer_query.go b/pkg/database/ent/bouncer_query.go index 05148d389..2747a3e0b 100644 --- a/pkg/database/ent/bouncer_query.go +++ b/pkg/database/ent/bouncer_query.go @@ -1,10 +1,9 @@ -// Code generated by entc, DO NOT EDIT. +// Code generated by ent, DO NOT EDIT. package ent import ( "context" - "errors" "fmt" "math" @@ -262,17 +261,18 @@ func (bq *BouncerQuery) Clone() *BouncerQuery { // GroupBy(bouncer.FieldCreatedAt). // Aggregate(ent.Count()). // Scan(ctx, &v) -// func (bq *BouncerQuery) GroupBy(field string, fields ...string) *BouncerGroupBy { - group := &BouncerGroupBy{config: bq.config} - group.fields = append([]string{field}, fields...) - group.path = func(ctx context.Context) (prev *sql.Selector, err error) { + grbuild := &BouncerGroupBy{config: bq.config} + grbuild.fields = append([]string{field}, fields...) + grbuild.path = func(ctx context.Context) (prev *sql.Selector, err error) { if err := bq.prepareQuery(ctx); err != nil { return nil, err } return bq.sqlQuery(ctx), nil } - return group + grbuild.label = bouncer.Label + grbuild.flds, grbuild.scan = &grbuild.fields, grbuild.Scan + return grbuild } // Select allows the selection one or more fields/columns for the given query, @@ -287,10 +287,12 @@ func (bq *BouncerQuery) GroupBy(field string, fields ...string) *BouncerGroupBy // client.Bouncer.Query(). // Select(bouncer.FieldCreatedAt). // Scan(ctx, &v) -// func (bq *BouncerQuery) Select(fields ...string) *BouncerSelect { bq.fields = append(bq.fields, fields...) - return &BouncerSelect{BouncerQuery: bq} + selbuild := &BouncerSelect{BouncerQuery: bq} + selbuild.label = bouncer.Label + selbuild.flds, selbuild.scan = &bq.fields, selbuild.Scan + return selbuild } func (bq *BouncerQuery) prepareQuery(ctx context.Context) error { @@ -309,23 +311,22 @@ func (bq *BouncerQuery) prepareQuery(ctx context.Context) error { return nil } -func (bq *BouncerQuery) sqlAll(ctx context.Context) ([]*Bouncer, error) { +func (bq *BouncerQuery) sqlAll(ctx context.Context, hooks ...queryHook) ([]*Bouncer, error) { var ( nodes = []*Bouncer{} _spec = bq.querySpec() ) - _spec.ScanValues = func(columns []string) ([]interface{}, error) { + _spec.ScanValues = func(columns []string) ([]any, error) { + return (*Bouncer).scanValues(nil, columns) + } + _spec.Assign = func(columns []string, values []any) error { node := &Bouncer{config: bq.config} nodes = append(nodes, node) - return node.scanValues(columns) - } - _spec.Assign = func(columns []string, values []interface{}) error { - if len(nodes) == 0 { - return fmt.Errorf("ent: Assign called without calling ScanValues") - } - node := nodes[len(nodes)-1] return node.assignValues(columns, values) } + for i := range hooks { + hooks[i](ctx, _spec) + } if err := sqlgraph.QueryNodes(ctx, bq.driver, _spec); err != nil { return nil, err } @@ -345,11 +346,14 @@ func (bq *BouncerQuery) sqlCount(ctx context.Context) (int, error) { } func (bq *BouncerQuery) sqlExist(ctx context.Context) (bool, error) { - n, err := bq.sqlCount(ctx) - if err != nil { + switch _, err := bq.FirstID(ctx); { + case IsNotFound(err): + return false, nil + case err != nil: return false, fmt.Errorf("ent: check existence: %w", err) + default: + return true, nil } - return n > 0, nil } func (bq *BouncerQuery) querySpec() *sqlgraph.QuerySpec { @@ -435,6 +439,7 @@ func (bq *BouncerQuery) sqlQuery(ctx context.Context) *sql.Selector { // BouncerGroupBy is the group-by builder for Bouncer entities. type BouncerGroupBy struct { config + selector fields []string fns []AggregateFunc // intermediate query (i.e. traversal path). @@ -449,7 +454,7 @@ func (bgb *BouncerGroupBy) Aggregate(fns ...AggregateFunc) *BouncerGroupBy { } // Scan applies the group-by query and scans the result into the given value. -func (bgb *BouncerGroupBy) Scan(ctx context.Context, v interface{}) error { +func (bgb *BouncerGroupBy) Scan(ctx context.Context, v any) error { query, err := bgb.path(ctx) if err != nil { return err @@ -458,210 +463,7 @@ func (bgb *BouncerGroupBy) Scan(ctx context.Context, v interface{}) error { return bgb.sqlScan(ctx, v) } -// ScanX is like Scan, but panics if an error occurs. -func (bgb *BouncerGroupBy) ScanX(ctx context.Context, v interface{}) { - if err := bgb.Scan(ctx, v); err != nil { - panic(err) - } -} - -// Strings returns list of strings from group-by. -// It is only allowed when executing a group-by query with one field. -func (bgb *BouncerGroupBy) Strings(ctx context.Context) ([]string, error) { - if len(bgb.fields) > 1 { - return nil, errors.New("ent: BouncerGroupBy.Strings is not achievable when grouping more than 1 field") - } - var v []string - if err := bgb.Scan(ctx, &v); err != nil { - return nil, err - } - return v, nil -} - -// StringsX is like Strings, but panics if an error occurs. -func (bgb *BouncerGroupBy) StringsX(ctx context.Context) []string { - v, err := bgb.Strings(ctx) - if err != nil { - panic(err) - } - return v -} - -// String returns a single string from a group-by query. -// It is only allowed when executing a group-by query with one field. -func (bgb *BouncerGroupBy) String(ctx context.Context) (_ string, err error) { - var v []string - if v, err = bgb.Strings(ctx); err != nil { - return - } - switch len(v) { - case 1: - return v[0], nil - case 0: - err = &NotFoundError{bouncer.Label} - default: - err = fmt.Errorf("ent: BouncerGroupBy.Strings returned %d results when one was expected", len(v)) - } - return -} - -// StringX is like String, but panics if an error occurs. -func (bgb *BouncerGroupBy) StringX(ctx context.Context) string { - v, err := bgb.String(ctx) - if err != nil { - panic(err) - } - return v -} - -// Ints returns list of ints from group-by. -// It is only allowed when executing a group-by query with one field. -func (bgb *BouncerGroupBy) Ints(ctx context.Context) ([]int, error) { - if len(bgb.fields) > 1 { - return nil, errors.New("ent: BouncerGroupBy.Ints is not achievable when grouping more than 1 field") - } - var v []int - if err := bgb.Scan(ctx, &v); err != nil { - return nil, err - } - return v, nil -} - -// IntsX is like Ints, but panics if an error occurs. -func (bgb *BouncerGroupBy) IntsX(ctx context.Context) []int { - v, err := bgb.Ints(ctx) - if err != nil { - panic(err) - } - return v -} - -// Int returns a single int from a group-by query. -// It is only allowed when executing a group-by query with one field. -func (bgb *BouncerGroupBy) Int(ctx context.Context) (_ int, err error) { - var v []int - if v, err = bgb.Ints(ctx); err != nil { - return - } - switch len(v) { - case 1: - return v[0], nil - case 0: - err = &NotFoundError{bouncer.Label} - default: - err = fmt.Errorf("ent: BouncerGroupBy.Ints returned %d results when one was expected", len(v)) - } - return -} - -// IntX is like Int, but panics if an error occurs. -func (bgb *BouncerGroupBy) IntX(ctx context.Context) int { - v, err := bgb.Int(ctx) - if err != nil { - panic(err) - } - return v -} - -// Float64s returns list of float64s from group-by. -// It is only allowed when executing a group-by query with one field. -func (bgb *BouncerGroupBy) Float64s(ctx context.Context) ([]float64, error) { - if len(bgb.fields) > 1 { - return nil, errors.New("ent: BouncerGroupBy.Float64s is not achievable when grouping more than 1 field") - } - var v []float64 - if err := bgb.Scan(ctx, &v); err != nil { - return nil, err - } - return v, nil -} - -// Float64sX is like Float64s, but panics if an error occurs. -func (bgb *BouncerGroupBy) Float64sX(ctx context.Context) []float64 { - v, err := bgb.Float64s(ctx) - if err != nil { - panic(err) - } - return v -} - -// Float64 returns a single float64 from a group-by query. -// It is only allowed when executing a group-by query with one field. -func (bgb *BouncerGroupBy) Float64(ctx context.Context) (_ float64, err error) { - var v []float64 - if v, err = bgb.Float64s(ctx); err != nil { - return - } - switch len(v) { - case 1: - return v[0], nil - case 0: - err = &NotFoundError{bouncer.Label} - default: - err = fmt.Errorf("ent: BouncerGroupBy.Float64s returned %d results when one was expected", len(v)) - } - return -} - -// Float64X is like Float64, but panics if an error occurs. -func (bgb *BouncerGroupBy) Float64X(ctx context.Context) float64 { - v, err := bgb.Float64(ctx) - if err != nil { - panic(err) - } - return v -} - -// Bools returns list of bools from group-by. -// It is only allowed when executing a group-by query with one field. -func (bgb *BouncerGroupBy) Bools(ctx context.Context) ([]bool, error) { - if len(bgb.fields) > 1 { - return nil, errors.New("ent: BouncerGroupBy.Bools is not achievable when grouping more than 1 field") - } - var v []bool - if err := bgb.Scan(ctx, &v); err != nil { - return nil, err - } - return v, nil -} - -// BoolsX is like Bools, but panics if an error occurs. -func (bgb *BouncerGroupBy) BoolsX(ctx context.Context) []bool { - v, err := bgb.Bools(ctx) - if err != nil { - panic(err) - } - return v -} - -// Bool returns a single bool from a group-by query. -// It is only allowed when executing a group-by query with one field. -func (bgb *BouncerGroupBy) Bool(ctx context.Context) (_ bool, err error) { - var v []bool - if v, err = bgb.Bools(ctx); err != nil { - return - } - switch len(v) { - case 1: - return v[0], nil - case 0: - err = &NotFoundError{bouncer.Label} - default: - err = fmt.Errorf("ent: BouncerGroupBy.Bools returned %d results when one was expected", len(v)) - } - return -} - -// BoolX is like Bool, but panics if an error occurs. -func (bgb *BouncerGroupBy) BoolX(ctx context.Context) bool { - v, err := bgb.Bool(ctx) - if err != nil { - panic(err) - } - return v -} - -func (bgb *BouncerGroupBy) sqlScan(ctx context.Context, v interface{}) error { +func (bgb *BouncerGroupBy) sqlScan(ctx context.Context, v any) error { for _, f := range bgb.fields { if !bouncer.ValidColumn(f) { return &ValidationError{Name: f, err: fmt.Errorf("invalid field %q for group-by", f)} @@ -702,12 +504,13 @@ func (bgb *BouncerGroupBy) sqlQuery() *sql.Selector { // BouncerSelect is the builder for selecting fields of Bouncer entities. type BouncerSelect struct { *BouncerQuery + selector // intermediate query (i.e. traversal path). sql *sql.Selector } // Scan applies the selector query and scans the result into the given value. -func (bs *BouncerSelect) Scan(ctx context.Context, v interface{}) error { +func (bs *BouncerSelect) Scan(ctx context.Context, v any) error { if err := bs.prepareQuery(ctx); err != nil { return err } @@ -715,202 +518,7 @@ func (bs *BouncerSelect) Scan(ctx context.Context, v interface{}) error { return bs.sqlScan(ctx, v) } -// ScanX is like Scan, but panics if an error occurs. -func (bs *BouncerSelect) ScanX(ctx context.Context, v interface{}) { - if err := bs.Scan(ctx, v); err != nil { - panic(err) - } -} - -// Strings returns list of strings from a selector. It is only allowed when selecting one field. -func (bs *BouncerSelect) Strings(ctx context.Context) ([]string, error) { - if len(bs.fields) > 1 { - return nil, errors.New("ent: BouncerSelect.Strings is not achievable when selecting more than 1 field") - } - var v []string - if err := bs.Scan(ctx, &v); err != nil { - return nil, err - } - return v, nil -} - -// StringsX is like Strings, but panics if an error occurs. -func (bs *BouncerSelect) StringsX(ctx context.Context) []string { - v, err := bs.Strings(ctx) - if err != nil { - panic(err) - } - return v -} - -// String returns a single string from a selector. It is only allowed when selecting one field. -func (bs *BouncerSelect) String(ctx context.Context) (_ string, err error) { - var v []string - if v, err = bs.Strings(ctx); err != nil { - return - } - switch len(v) { - case 1: - return v[0], nil - case 0: - err = &NotFoundError{bouncer.Label} - default: - err = fmt.Errorf("ent: BouncerSelect.Strings returned %d results when one was expected", len(v)) - } - return -} - -// StringX is like String, but panics if an error occurs. -func (bs *BouncerSelect) StringX(ctx context.Context) string { - v, err := bs.String(ctx) - if err != nil { - panic(err) - } - return v -} - -// Ints returns list of ints from a selector. It is only allowed when selecting one field. -func (bs *BouncerSelect) Ints(ctx context.Context) ([]int, error) { - if len(bs.fields) > 1 { - return nil, errors.New("ent: BouncerSelect.Ints is not achievable when selecting more than 1 field") - } - var v []int - if err := bs.Scan(ctx, &v); err != nil { - return nil, err - } - return v, nil -} - -// IntsX is like Ints, but panics if an error occurs. -func (bs *BouncerSelect) IntsX(ctx context.Context) []int { - v, err := bs.Ints(ctx) - if err != nil { - panic(err) - } - return v -} - -// Int returns a single int from a selector. It is only allowed when selecting one field. -func (bs *BouncerSelect) Int(ctx context.Context) (_ int, err error) { - var v []int - if v, err = bs.Ints(ctx); err != nil { - return - } - switch len(v) { - case 1: - return v[0], nil - case 0: - err = &NotFoundError{bouncer.Label} - default: - err = fmt.Errorf("ent: BouncerSelect.Ints returned %d results when one was expected", len(v)) - } - return -} - -// IntX is like Int, but panics if an error occurs. -func (bs *BouncerSelect) IntX(ctx context.Context) int { - v, err := bs.Int(ctx) - if err != nil { - panic(err) - } - return v -} - -// Float64s returns list of float64s from a selector. It is only allowed when selecting one field. -func (bs *BouncerSelect) Float64s(ctx context.Context) ([]float64, error) { - if len(bs.fields) > 1 { - return nil, errors.New("ent: BouncerSelect.Float64s is not achievable when selecting more than 1 field") - } - var v []float64 - if err := bs.Scan(ctx, &v); err != nil { - return nil, err - } - return v, nil -} - -// Float64sX is like Float64s, but panics if an error occurs. -func (bs *BouncerSelect) Float64sX(ctx context.Context) []float64 { - v, err := bs.Float64s(ctx) - if err != nil { - panic(err) - } - return v -} - -// Float64 returns a single float64 from a selector. It is only allowed when selecting one field. -func (bs *BouncerSelect) Float64(ctx context.Context) (_ float64, err error) { - var v []float64 - if v, err = bs.Float64s(ctx); err != nil { - return - } - switch len(v) { - case 1: - return v[0], nil - case 0: - err = &NotFoundError{bouncer.Label} - default: - err = fmt.Errorf("ent: BouncerSelect.Float64s returned %d results when one was expected", len(v)) - } - return -} - -// Float64X is like Float64, but panics if an error occurs. -func (bs *BouncerSelect) Float64X(ctx context.Context) float64 { - v, err := bs.Float64(ctx) - if err != nil { - panic(err) - } - return v -} - -// Bools returns list of bools from a selector. It is only allowed when selecting one field. -func (bs *BouncerSelect) Bools(ctx context.Context) ([]bool, error) { - if len(bs.fields) > 1 { - return nil, errors.New("ent: BouncerSelect.Bools is not achievable when selecting more than 1 field") - } - var v []bool - if err := bs.Scan(ctx, &v); err != nil { - return nil, err - } - return v, nil -} - -// BoolsX is like Bools, but panics if an error occurs. -func (bs *BouncerSelect) BoolsX(ctx context.Context) []bool { - v, err := bs.Bools(ctx) - if err != nil { - panic(err) - } - return v -} - -// Bool returns a single bool from a selector. It is only allowed when selecting one field. -func (bs *BouncerSelect) Bool(ctx context.Context) (_ bool, err error) { - var v []bool - if v, err = bs.Bools(ctx); err != nil { - return - } - switch len(v) { - case 1: - return v[0], nil - case 0: - err = &NotFoundError{bouncer.Label} - default: - err = fmt.Errorf("ent: BouncerSelect.Bools returned %d results when one was expected", len(v)) - } - return -} - -// BoolX is like Bool, but panics if an error occurs. -func (bs *BouncerSelect) BoolX(ctx context.Context) bool { - v, err := bs.Bool(ctx) - if err != nil { - panic(err) - } - return v -} - -func (bs *BouncerSelect) sqlScan(ctx context.Context, v interface{}) error { +func (bs *BouncerSelect) sqlScan(ctx context.Context, v any) error { rows := &sql.Rows{} query, args := bs.sql.Query() if err := bs.driver.Query(ctx, query, args, rows); err != nil { diff --git a/pkg/database/ent/bouncer_update.go b/pkg/database/ent/bouncer_update.go index 385fcbc7f..acf48dede 100644 --- a/pkg/database/ent/bouncer_update.go +++ b/pkg/database/ent/bouncer_update.go @@ -1,4 +1,4 @@ -// Code generated by entc, DO NOT EDIT. +// Code generated by ent, DO NOT EDIT. package ent @@ -385,7 +385,7 @@ func (bu *BouncerUpdate) sqlSave(ctx context.Context) (n int, err error) { if _, ok := err.(*sqlgraph.NotFoundError); ok { err = &NotFoundError{bouncer.Label} } else if sqlgraph.IsConstraintError(err) { - err = &ConstraintError{err.Error(), err} + err = &ConstraintError{msg: err.Error(), wrap: err} } return 0, err } @@ -588,9 +588,15 @@ func (buo *BouncerUpdateOne) Save(ctx context.Context) (*Bouncer, error) { } mut = buo.hooks[i](mut) } - if _, err := mut.Mutate(ctx, buo.mutation); err != nil { + v, err := mut.Mutate(ctx, buo.mutation) + if err != nil { return nil, err } + nv, ok := v.(*Bouncer) + if !ok { + return nil, fmt.Errorf("unexpected node type %T returned from BouncerMutation", v) + } + node = nv } return node, err } @@ -784,7 +790,7 @@ func (buo *BouncerUpdateOne) sqlSave(ctx context.Context) (_node *Bouncer, err e if _, ok := err.(*sqlgraph.NotFoundError); ok { err = &NotFoundError{bouncer.Label} } else if sqlgraph.IsConstraintError(err) { - err = &ConstraintError{err.Error(), err} + err = &ConstraintError{msg: err.Error(), wrap: err} } return nil, err } diff --git a/pkg/database/ent/client.go b/pkg/database/ent/client.go index 8efadc527..97909ee26 100644 --- a/pkg/database/ent/client.go +++ b/pkg/database/ent/client.go @@ -1,9 +1,10 @@ -// Code generated by entc, DO NOT EDIT. +// Code generated by ent, DO NOT EDIT. package ent import ( "context" + "errors" "fmt" "log" @@ -79,7 +80,7 @@ func Open(driverName, dataSourceName string, options ...Option) (*Client, error) // is used until the transaction is committed or rolled back. func (c *Client) Tx(ctx context.Context) (*Tx, error) { if _, ok := c.driver.(*txDriver); ok { - return nil, fmt.Errorf("ent: cannot start a transaction within a transaction") + return nil, errors.New("ent: cannot start a transaction within a transaction") } tx, err := newTx(ctx, c.driver) if err != nil { @@ -102,7 +103,7 @@ func (c *Client) Tx(ctx context.Context) (*Tx, error) { // BeginTx returns a transactional client with specified options. func (c *Client) BeginTx(ctx context.Context, opts *sql.TxOptions) (*Tx, error) { if _, ok := c.driver.(*txDriver); ok { - return nil, fmt.Errorf("ent: cannot start a transaction within a transaction") + return nil, errors.New("ent: cannot start a transaction within a transaction") } tx, err := c.driver.(interface { BeginTx(context.Context, *sql.TxOptions) (dialect.Tx, error) @@ -130,7 +131,6 @@ func (c *Client) BeginTx(ctx context.Context, opts *sql.TxOptions) (*Tx, error) // Alert. // Query(). // Count(ctx) -// func (c *Client) Debug() *Client { if c.debug { return c @@ -174,7 +174,7 @@ func (c *AlertClient) Use(hooks ...Hook) { c.hooks.Alert = append(c.hooks.Alert, hooks...) } -// Create returns a create builder for Alert. +// Create returns a builder for creating a Alert entity. func (c *AlertClient) Create() *AlertCreate { mutation := newAlertMutation(c.config, OpCreate) return &AlertCreate{config: c.config, hooks: c.Hooks(), mutation: mutation} @@ -209,12 +209,12 @@ func (c *AlertClient) Delete() *AlertDelete { return &AlertDelete{config: c.config, hooks: c.Hooks(), mutation: mutation} } -// DeleteOne returns a delete builder for the given entity. +// DeleteOne returns a builder for deleting the given entity. func (c *AlertClient) DeleteOne(a *Alert) *AlertDeleteOne { return c.DeleteOneID(a.ID) } -// DeleteOneID returns a delete builder for the given id. +// DeleteOne returns a builder for deleting the given entity by its id. func (c *AlertClient) DeleteOneID(id int) *AlertDeleteOne { builder := c.Delete().Where(alert.ID(id)) builder.mutation.id = &id @@ -328,7 +328,7 @@ func (c *BouncerClient) Use(hooks ...Hook) { c.hooks.Bouncer = append(c.hooks.Bouncer, hooks...) } -// Create returns a create builder for Bouncer. +// Create returns a builder for creating a Bouncer entity. func (c *BouncerClient) Create() *BouncerCreate { mutation := newBouncerMutation(c.config, OpCreate) return &BouncerCreate{config: c.config, hooks: c.Hooks(), mutation: mutation} @@ -363,12 +363,12 @@ func (c *BouncerClient) Delete() *BouncerDelete { return &BouncerDelete{config: c.config, hooks: c.Hooks(), mutation: mutation} } -// DeleteOne returns a delete builder for the given entity. +// DeleteOne returns a builder for deleting the given entity. func (c *BouncerClient) DeleteOne(b *Bouncer) *BouncerDeleteOne { return c.DeleteOneID(b.ID) } -// DeleteOneID returns a delete builder for the given id. +// DeleteOne returns a builder for deleting the given entity by its id. func (c *BouncerClient) DeleteOneID(id int) *BouncerDeleteOne { builder := c.Delete().Where(bouncer.ID(id)) builder.mutation.id = &id @@ -418,7 +418,7 @@ func (c *DecisionClient) Use(hooks ...Hook) { c.hooks.Decision = append(c.hooks.Decision, hooks...) } -// Create returns a create builder for Decision. +// Create returns a builder for creating a Decision entity. func (c *DecisionClient) Create() *DecisionCreate { mutation := newDecisionMutation(c.config, OpCreate) return &DecisionCreate{config: c.config, hooks: c.Hooks(), mutation: mutation} @@ -453,12 +453,12 @@ func (c *DecisionClient) Delete() *DecisionDelete { return &DecisionDelete{config: c.config, hooks: c.Hooks(), mutation: mutation} } -// DeleteOne returns a delete builder for the given entity. +// DeleteOne returns a builder for deleting the given entity. func (c *DecisionClient) DeleteOne(d *Decision) *DecisionDeleteOne { return c.DeleteOneID(d.ID) } -// DeleteOneID returns a delete builder for the given id. +// DeleteOne returns a builder for deleting the given entity by its id. func (c *DecisionClient) DeleteOneID(id int) *DecisionDeleteOne { builder := c.Delete().Where(decision.ID(id)) builder.mutation.id = &id @@ -524,7 +524,7 @@ func (c *EventClient) Use(hooks ...Hook) { c.hooks.Event = append(c.hooks.Event, hooks...) } -// Create returns a create builder for Event. +// Create returns a builder for creating a Event entity. func (c *EventClient) Create() *EventCreate { mutation := newEventMutation(c.config, OpCreate) return &EventCreate{config: c.config, hooks: c.Hooks(), mutation: mutation} @@ -559,12 +559,12 @@ func (c *EventClient) Delete() *EventDelete { return &EventDelete{config: c.config, hooks: c.Hooks(), mutation: mutation} } -// DeleteOne returns a delete builder for the given entity. +// DeleteOne returns a builder for deleting the given entity. func (c *EventClient) DeleteOne(e *Event) *EventDeleteOne { return c.DeleteOneID(e.ID) } -// DeleteOneID returns a delete builder for the given id. +// DeleteOne returns a builder for deleting the given entity by its id. func (c *EventClient) DeleteOneID(id int) *EventDeleteOne { builder := c.Delete().Where(event.ID(id)) builder.mutation.id = &id @@ -630,7 +630,7 @@ func (c *MachineClient) Use(hooks ...Hook) { c.hooks.Machine = append(c.hooks.Machine, hooks...) } -// Create returns a create builder for Machine. +// Create returns a builder for creating a Machine entity. func (c *MachineClient) Create() *MachineCreate { mutation := newMachineMutation(c.config, OpCreate) return &MachineCreate{config: c.config, hooks: c.Hooks(), mutation: mutation} @@ -665,12 +665,12 @@ func (c *MachineClient) Delete() *MachineDelete { return &MachineDelete{config: c.config, hooks: c.Hooks(), mutation: mutation} } -// DeleteOne returns a delete builder for the given entity. +// DeleteOne returns a builder for deleting the given entity. func (c *MachineClient) DeleteOne(m *Machine) *MachineDeleteOne { return c.DeleteOneID(m.ID) } -// DeleteOneID returns a delete builder for the given id. +// DeleteOne returns a builder for deleting the given entity by its id. func (c *MachineClient) DeleteOneID(id int) *MachineDeleteOne { builder := c.Delete().Where(machine.ID(id)) builder.mutation.id = &id @@ -736,7 +736,7 @@ func (c *MetaClient) Use(hooks ...Hook) { c.hooks.Meta = append(c.hooks.Meta, hooks...) } -// Create returns a create builder for Meta. +// Create returns a builder for creating a Meta entity. func (c *MetaClient) Create() *MetaCreate { mutation := newMetaMutation(c.config, OpCreate) return &MetaCreate{config: c.config, hooks: c.Hooks(), mutation: mutation} @@ -771,12 +771,12 @@ func (c *MetaClient) Delete() *MetaDelete { return &MetaDelete{config: c.config, hooks: c.Hooks(), mutation: mutation} } -// DeleteOne returns a delete builder for the given entity. +// DeleteOne returns a builder for deleting the given entity. func (c *MetaClient) DeleteOne(m *Meta) *MetaDeleteOne { return c.DeleteOneID(m.ID) } -// DeleteOneID returns a delete builder for the given id. +// DeleteOne returns a builder for deleting the given entity by its id. func (c *MetaClient) DeleteOneID(id int) *MetaDeleteOne { builder := c.Delete().Where(meta.ID(id)) builder.mutation.id = &id diff --git a/pkg/database/ent/config.go b/pkg/database/ent/config.go index 64fac3ab2..fd976567b 100644 --- a/pkg/database/ent/config.go +++ b/pkg/database/ent/config.go @@ -1,4 +1,4 @@ -// Code generated by entc, DO NOT EDIT. +// Code generated by ent, DO NOT EDIT. package ent @@ -17,7 +17,7 @@ type config struct { // debug enable a debug logging. debug bool // log used for logging on debug mode. - log func(...interface{}) + log func(...any) // hooks to execute on mutations. hooks *hooks } @@ -50,7 +50,7 @@ func Debug() Option { } // Log sets the logging function for debug mode. -func Log(fn func(...interface{})) Option { +func Log(fn func(...any)) Option { return func(c *config) { c.log = fn } diff --git a/pkg/database/ent/context.go b/pkg/database/ent/context.go index 08407261b..7811bfa23 100644 --- a/pkg/database/ent/context.go +++ b/pkg/database/ent/context.go @@ -1,4 +1,4 @@ -// Code generated by entc, DO NOT EDIT. +// Code generated by ent, DO NOT EDIT. package ent diff --git a/pkg/database/ent/decision.go b/pkg/database/ent/decision.go index 31ccd8c4b..608ae47bd 100644 --- a/pkg/database/ent/decision.go +++ b/pkg/database/ent/decision.go @@ -1,4 +1,4 @@ -// Code generated by entc, DO NOT EDIT. +// Code generated by ent, DO NOT EDIT. package ent @@ -65,8 +65,7 @@ type DecisionEdges struct { func (e DecisionEdges) OwnerOrErr() (*Alert, error) { if e.loadedTypes[0] { if e.Owner == nil { - // The edge owner was loaded in eager-loading, - // but was not found. + // Edge was loaded but was not found. return nil, &NotFoundError{label: alert.Label} } return e.Owner, nil @@ -75,8 +74,8 @@ func (e DecisionEdges) OwnerOrErr() (*Alert, error) { } // scanValues returns the types for scanning values from sql.Rows. -func (*Decision) scanValues(columns []string) ([]interface{}, error) { - values := make([]interface{}, len(columns)) +func (*Decision) scanValues(columns []string) ([]any, error) { + values := make([]any, len(columns)) for i := range columns { switch columns[i] { case decision.FieldSimulated: @@ -98,7 +97,7 @@ func (*Decision) scanValues(columns []string) ([]interface{}, error) { // assignValues assigns the values that were returned from sql.Rows (after scanning) // to the Decision fields. -func (d *Decision) assignValues(columns []string, values []interface{}) error { +func (d *Decision) assignValues(columns []string, values []any) error { if m, n := len(values), len(columns); m < n { return fmt.Errorf("mismatch number of scan values: %d != %d", m, n) } @@ -224,11 +223,11 @@ func (d *Decision) Update() *DecisionUpdateOne { // Unwrap unwraps the Decision entity that was returned from a transaction after it was closed, // so that all future queries will be executed through the driver which created the transaction. func (d *Decision) Unwrap() *Decision { - tx, ok := d.config.driver.(*txDriver) + _tx, ok := d.config.driver.(*txDriver) if !ok { panic("ent: Decision is not a transactional entity") } - d.config.driver = tx.drv + d.config.driver = _tx.drv return d } @@ -236,40 +235,53 @@ func (d *Decision) Unwrap() *Decision { func (d *Decision) String() string { var builder strings.Builder builder.WriteString("Decision(") - builder.WriteString(fmt.Sprintf("id=%v", d.ID)) + builder.WriteString(fmt.Sprintf("id=%v, ", d.ID)) if v := d.CreatedAt; v != nil { - builder.WriteString(", created_at=") + builder.WriteString("created_at=") builder.WriteString(v.Format(time.ANSIC)) } + builder.WriteString(", ") if v := d.UpdatedAt; v != nil { - builder.WriteString(", updated_at=") + builder.WriteString("updated_at=") builder.WriteString(v.Format(time.ANSIC)) } + builder.WriteString(", ") if v := d.Until; v != nil { - builder.WriteString(", until=") + builder.WriteString("until=") builder.WriteString(v.Format(time.ANSIC)) } - builder.WriteString(", scenario=") + builder.WriteString(", ") + builder.WriteString("scenario=") builder.WriteString(d.Scenario) - builder.WriteString(", type=") + builder.WriteString(", ") + builder.WriteString("type=") builder.WriteString(d.Type) - builder.WriteString(", start_ip=") + builder.WriteString(", ") + builder.WriteString("start_ip=") builder.WriteString(fmt.Sprintf("%v", d.StartIP)) - builder.WriteString(", end_ip=") + builder.WriteString(", ") + builder.WriteString("end_ip=") builder.WriteString(fmt.Sprintf("%v", d.EndIP)) - builder.WriteString(", start_suffix=") + builder.WriteString(", ") + builder.WriteString("start_suffix=") builder.WriteString(fmt.Sprintf("%v", d.StartSuffix)) - builder.WriteString(", end_suffix=") + builder.WriteString(", ") + builder.WriteString("end_suffix=") builder.WriteString(fmt.Sprintf("%v", d.EndSuffix)) - builder.WriteString(", ip_size=") + builder.WriteString(", ") + builder.WriteString("ip_size=") builder.WriteString(fmt.Sprintf("%v", d.IPSize)) - builder.WriteString(", scope=") + builder.WriteString(", ") + builder.WriteString("scope=") builder.WriteString(d.Scope) - builder.WriteString(", value=") + builder.WriteString(", ") + builder.WriteString("value=") builder.WriteString(d.Value) - builder.WriteString(", origin=") + builder.WriteString(", ") + builder.WriteString("origin=") builder.WriteString(d.Origin) - builder.WriteString(", simulated=") + builder.WriteString(", ") + builder.WriteString("simulated=") builder.WriteString(fmt.Sprintf("%v", d.Simulated)) builder.WriteByte(')') return builder.String() diff --git a/pkg/database/ent/decision/decision.go b/pkg/database/ent/decision/decision.go index 972e1eeec..f3a724fc2 100644 --- a/pkg/database/ent/decision/decision.go +++ b/pkg/database/ent/decision/decision.go @@ -1,4 +1,4 @@ -// Code generated by entc, DO NOT EDIT. +// Code generated by ent, DO NOT EDIT. package decision diff --git a/pkg/database/ent/decision/where.go b/pkg/database/ent/decision/where.go index 2d6b4d16d..c9366855e 100644 --- a/pkg/database/ent/decision/where.go +++ b/pkg/database/ent/decision/where.go @@ -1,4 +1,4 @@ -// Code generated by entc, DO NOT EDIT. +// Code generated by ent, DO NOT EDIT. package decision @@ -34,13 +34,7 @@ func IDNEQ(id int) predicate.Decision { // IDIn applies the In predicate on the ID field. func IDIn(ids ...int) predicate.Decision { return predicate.Decision(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(ids) == 0 { - s.Where(sql.False()) - return - } - v := make([]interface{}, len(ids)) + v := make([]any, len(ids)) for i := range v { v[i] = ids[i] } @@ -51,13 +45,7 @@ func IDIn(ids ...int) predicate.Decision { // IDNotIn applies the NotIn predicate on the ID field. func IDNotIn(ids ...int) predicate.Decision { return predicate.Decision(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(ids) == 0 { - s.Where(sql.False()) - return - } - v := make([]interface{}, len(ids)) + v := make([]any, len(ids)) for i := range v { v[i] = ids[i] } @@ -207,34 +195,22 @@ func CreatedAtNEQ(v time.Time) predicate.Decision { // CreatedAtIn applies the In predicate on the "created_at" field. func CreatedAtIn(vs ...time.Time) predicate.Decision { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Decision(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.In(s.C(FieldCreatedAt), v...)) }) } // CreatedAtNotIn applies the NotIn predicate on the "created_at" field. func CreatedAtNotIn(vs ...time.Time) predicate.Decision { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Decision(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.NotIn(s.C(FieldCreatedAt), v...)) }) } @@ -297,34 +273,22 @@ func UpdatedAtNEQ(v time.Time) predicate.Decision { // UpdatedAtIn applies the In predicate on the "updated_at" field. func UpdatedAtIn(vs ...time.Time) predicate.Decision { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Decision(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.In(s.C(FieldUpdatedAt), v...)) }) } // UpdatedAtNotIn applies the NotIn predicate on the "updated_at" field. func UpdatedAtNotIn(vs ...time.Time) predicate.Decision { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Decision(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.NotIn(s.C(FieldUpdatedAt), v...)) }) } @@ -387,34 +351,22 @@ func UntilNEQ(v time.Time) predicate.Decision { // UntilIn applies the In predicate on the "until" field. func UntilIn(vs ...time.Time) predicate.Decision { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Decision(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.In(s.C(FieldUntil), v...)) }) } // UntilNotIn applies the NotIn predicate on the "until" field. func UntilNotIn(vs ...time.Time) predicate.Decision { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Decision(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.NotIn(s.C(FieldUntil), v...)) }) } @@ -477,34 +429,22 @@ func ScenarioNEQ(v string) predicate.Decision { // ScenarioIn applies the In predicate on the "scenario" field. func ScenarioIn(vs ...string) predicate.Decision { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Decision(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.In(s.C(FieldScenario), v...)) }) } // ScenarioNotIn applies the NotIn predicate on the "scenario" field. func ScenarioNotIn(vs ...string) predicate.Decision { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Decision(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.NotIn(s.C(FieldScenario), v...)) }) } @@ -588,34 +528,22 @@ func TypeNEQ(v string) predicate.Decision { // TypeIn applies the In predicate on the "type" field. func TypeIn(vs ...string) predicate.Decision { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Decision(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.In(s.C(FieldType), v...)) }) } // TypeNotIn applies the NotIn predicate on the "type" field. func TypeNotIn(vs ...string) predicate.Decision { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Decision(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.NotIn(s.C(FieldType), v...)) }) } @@ -699,34 +627,22 @@ func StartIPNEQ(v int64) predicate.Decision { // StartIPIn applies the In predicate on the "start_ip" field. func StartIPIn(vs ...int64) predicate.Decision { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Decision(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.In(s.C(FieldStartIP), v...)) }) } // StartIPNotIn applies the NotIn predicate on the "start_ip" field. func StartIPNotIn(vs ...int64) predicate.Decision { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Decision(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.NotIn(s.C(FieldStartIP), v...)) }) } @@ -789,34 +705,22 @@ func EndIPNEQ(v int64) predicate.Decision { // EndIPIn applies the In predicate on the "end_ip" field. func EndIPIn(vs ...int64) predicate.Decision { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Decision(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.In(s.C(FieldEndIP), v...)) }) } // EndIPNotIn applies the NotIn predicate on the "end_ip" field. func EndIPNotIn(vs ...int64) predicate.Decision { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Decision(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.NotIn(s.C(FieldEndIP), v...)) }) } @@ -879,34 +783,22 @@ func StartSuffixNEQ(v int64) predicate.Decision { // StartSuffixIn applies the In predicate on the "start_suffix" field. func StartSuffixIn(vs ...int64) predicate.Decision { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Decision(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.In(s.C(FieldStartSuffix), v...)) }) } // StartSuffixNotIn applies the NotIn predicate on the "start_suffix" field. func StartSuffixNotIn(vs ...int64) predicate.Decision { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Decision(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.NotIn(s.C(FieldStartSuffix), v...)) }) } @@ -969,34 +861,22 @@ func EndSuffixNEQ(v int64) predicate.Decision { // EndSuffixIn applies the In predicate on the "end_suffix" field. func EndSuffixIn(vs ...int64) predicate.Decision { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Decision(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.In(s.C(FieldEndSuffix), v...)) }) } // EndSuffixNotIn applies the NotIn predicate on the "end_suffix" field. func EndSuffixNotIn(vs ...int64) predicate.Decision { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Decision(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.NotIn(s.C(FieldEndSuffix), v...)) }) } @@ -1059,34 +939,22 @@ func IPSizeNEQ(v int64) predicate.Decision { // IPSizeIn applies the In predicate on the "ip_size" field. func IPSizeIn(vs ...int64) predicate.Decision { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Decision(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.In(s.C(FieldIPSize), v...)) }) } // IPSizeNotIn applies the NotIn predicate on the "ip_size" field. func IPSizeNotIn(vs ...int64) predicate.Decision { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Decision(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.NotIn(s.C(FieldIPSize), v...)) }) } @@ -1149,34 +1017,22 @@ func ScopeNEQ(v string) predicate.Decision { // ScopeIn applies the In predicate on the "scope" field. func ScopeIn(vs ...string) predicate.Decision { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Decision(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.In(s.C(FieldScope), v...)) }) } // ScopeNotIn applies the NotIn predicate on the "scope" field. func ScopeNotIn(vs ...string) predicate.Decision { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Decision(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.NotIn(s.C(FieldScope), v...)) }) } @@ -1260,34 +1116,22 @@ func ValueNEQ(v string) predicate.Decision { // ValueIn applies the In predicate on the "value" field. func ValueIn(vs ...string) predicate.Decision { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Decision(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.In(s.C(FieldValue), v...)) }) } // ValueNotIn applies the NotIn predicate on the "value" field. func ValueNotIn(vs ...string) predicate.Decision { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Decision(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.NotIn(s.C(FieldValue), v...)) }) } @@ -1371,34 +1215,22 @@ func OriginNEQ(v string) predicate.Decision { // OriginIn applies the In predicate on the "origin" field. func OriginIn(vs ...string) predicate.Decision { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Decision(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.In(s.C(FieldOrigin), v...)) }) } // OriginNotIn applies the NotIn predicate on the "origin" field. func OriginNotIn(vs ...string) predicate.Decision { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Decision(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.NotIn(s.C(FieldOrigin), v...)) }) } diff --git a/pkg/database/ent/decision_create.go b/pkg/database/ent/decision_create.go index ab60433bc..aa1ec074e 100644 --- a/pkg/database/ent/decision_create.go +++ b/pkg/database/ent/decision_create.go @@ -1,4 +1,4 @@ -// Code generated by entc, DO NOT EDIT. +// Code generated by ent, DO NOT EDIT. package ent @@ -236,9 +236,15 @@ func (dc *DecisionCreate) Save(ctx context.Context) (*Decision, error) { } mut = dc.hooks[i](mut) } - if _, err := mut.Mutate(ctx, dc.mutation); err != nil { + v, err := mut.Mutate(ctx, dc.mutation) + if err != nil { return nil, err } + nv, ok := v.(*Decision) + if !ok { + return nil, fmt.Errorf("unexpected node type %T returned from DecisionMutation", v) + } + node = nv } return node, err } @@ -308,7 +314,7 @@ func (dc *DecisionCreate) sqlSave(ctx context.Context) (*Decision, error) { _node, _spec := dc.createSpec() if err := sqlgraph.CreateNode(ctx, dc.driver, _spec); err != nil { if sqlgraph.IsConstraintError(err) { - err = &ConstraintError{err.Error(), err} + err = &ConstraintError{msg: err.Error(), wrap: err} } return nil, err } @@ -496,7 +502,7 @@ func (dcb *DecisionCreateBulk) Save(ctx context.Context) ([]*Decision, error) { // Invoke the actual operation on the latest mutation in the chain. if err = sqlgraph.BatchCreate(ctx, dcb.driver, spec); err != nil { if sqlgraph.IsConstraintError(err) { - err = &ConstraintError{err.Error(), err} + err = &ConstraintError{msg: err.Error(), wrap: err} } } } @@ -504,11 +510,11 @@ func (dcb *DecisionCreateBulk) Save(ctx context.Context) ([]*Decision, error) { return nil, err } mutation.id = &nodes[i].ID - mutation.done = true if specs[i].ID.Value != nil { id := specs[i].ID.Value.(int64) nodes[i].ID = int(id) } + mutation.done = true return nodes[i], nil }) for i := len(builder.hooks) - 1; i >= 0; i-- { diff --git a/pkg/database/ent/decision_delete.go b/pkg/database/ent/decision_delete.go index f7e34c74c..24b494b11 100644 --- a/pkg/database/ent/decision_delete.go +++ b/pkg/database/ent/decision_delete.go @@ -1,4 +1,4 @@ -// Code generated by entc, DO NOT EDIT. +// Code generated by ent, DO NOT EDIT. package ent @@ -84,7 +84,11 @@ func (dd *DecisionDelete) sqlExec(ctx context.Context) (int, error) { } } } - return sqlgraph.DeleteNodes(ctx, dd.driver, _spec) + affected, err := sqlgraph.DeleteNodes(ctx, dd.driver, _spec) + if err != nil && sqlgraph.IsConstraintError(err) { + err = &ConstraintError{msg: err.Error(), wrap: err} + } + return affected, err } // DecisionDeleteOne is the builder for deleting a single Decision entity. diff --git a/pkg/database/ent/decision_query.go b/pkg/database/ent/decision_query.go index 5d6f624f5..414827258 100644 --- a/pkg/database/ent/decision_query.go +++ b/pkg/database/ent/decision_query.go @@ -1,10 +1,9 @@ -// Code generated by entc, DO NOT EDIT. +// Code generated by ent, DO NOT EDIT. package ent import ( "context" - "errors" "fmt" "math" @@ -25,9 +24,8 @@ type DecisionQuery struct { order []OrderFunc fields []string predicates []predicate.Decision - // eager-loading edges. - withOwner *AlertQuery - withFKs bool + withOwner *AlertQuery + withFKs bool // intermediate query (i.e. traversal path). sql *sql.Selector path func(context.Context) (*sql.Selector, error) @@ -300,17 +298,18 @@ func (dq *DecisionQuery) WithOwner(opts ...func(*AlertQuery)) *DecisionQuery { // GroupBy(decision.FieldCreatedAt). // Aggregate(ent.Count()). // Scan(ctx, &v) -// func (dq *DecisionQuery) GroupBy(field string, fields ...string) *DecisionGroupBy { - group := &DecisionGroupBy{config: dq.config} - group.fields = append([]string{field}, fields...) - group.path = func(ctx context.Context) (prev *sql.Selector, err error) { + grbuild := &DecisionGroupBy{config: dq.config} + grbuild.fields = append([]string{field}, fields...) + grbuild.path = func(ctx context.Context) (prev *sql.Selector, err error) { if err := dq.prepareQuery(ctx); err != nil { return nil, err } return dq.sqlQuery(ctx), nil } - return group + grbuild.label = decision.Label + grbuild.flds, grbuild.scan = &grbuild.fields, grbuild.Scan + return grbuild } // Select allows the selection one or more fields/columns for the given query, @@ -325,10 +324,12 @@ func (dq *DecisionQuery) GroupBy(field string, fields ...string) *DecisionGroupB // client.Decision.Query(). // Select(decision.FieldCreatedAt). // Scan(ctx, &v) -// func (dq *DecisionQuery) Select(fields ...string) *DecisionSelect { dq.fields = append(dq.fields, fields...) - return &DecisionSelect{DecisionQuery: dq} + selbuild := &DecisionSelect{DecisionQuery: dq} + selbuild.label = decision.Label + selbuild.flds, selbuild.scan = &dq.fields, selbuild.Scan + return selbuild } func (dq *DecisionQuery) prepareQuery(ctx context.Context) error { @@ -347,7 +348,7 @@ func (dq *DecisionQuery) prepareQuery(ctx context.Context) error { return nil } -func (dq *DecisionQuery) sqlAll(ctx context.Context) ([]*Decision, error) { +func (dq *DecisionQuery) sqlAll(ctx context.Context, hooks ...queryHook) ([]*Decision, error) { var ( nodes = []*Decision{} withFKs = dq.withFKs @@ -362,56 +363,61 @@ func (dq *DecisionQuery) sqlAll(ctx context.Context) ([]*Decision, error) { if withFKs { _spec.Node.Columns = append(_spec.Node.Columns, decision.ForeignKeys...) } - _spec.ScanValues = func(columns []string) ([]interface{}, error) { + _spec.ScanValues = func(columns []string) ([]any, error) { + return (*Decision).scanValues(nil, columns) + } + _spec.Assign = func(columns []string, values []any) error { node := &Decision{config: dq.config} nodes = append(nodes, node) - return node.scanValues(columns) - } - _spec.Assign = func(columns []string, values []interface{}) error { - if len(nodes) == 0 { - return fmt.Errorf("ent: Assign called without calling ScanValues") - } - node := nodes[len(nodes)-1] node.Edges.loadedTypes = loadedTypes return node.assignValues(columns, values) } + for i := range hooks { + hooks[i](ctx, _spec) + } if err := sqlgraph.QueryNodes(ctx, dq.driver, _spec); err != nil { return nil, err } if len(nodes) == 0 { return nodes, nil } - if query := dq.withOwner; query != nil { - ids := make([]int, 0, len(nodes)) - nodeids := make(map[int][]*Decision) - for i := range nodes { - if nodes[i].alert_decisions == nil { - continue - } - fk := *nodes[i].alert_decisions - if _, ok := nodeids[fk]; !ok { - ids = append(ids, fk) - } - nodeids[fk] = append(nodeids[fk], nodes[i]) - } - query.Where(alert.IDIn(ids...)) - neighbors, err := query.All(ctx) - if err != nil { + if err := dq.loadOwner(ctx, query, nodes, nil, + func(n *Decision, e *Alert) { n.Edges.Owner = e }); err != nil { return nil, err } - for _, n := range neighbors { - nodes, ok := nodeids[n.ID] - if !ok { - return nil, fmt.Errorf(`unexpected foreign-key "alert_decisions" returned %v`, n.ID) - } - for i := range nodes { - nodes[i].Edges.Owner = n - } + } + return nodes, nil +} + +func (dq *DecisionQuery) loadOwner(ctx context.Context, query *AlertQuery, nodes []*Decision, init func(*Decision), assign func(*Decision, *Alert)) error { + ids := make([]int, 0, len(nodes)) + nodeids := make(map[int][]*Decision) + for i := range nodes { + if nodes[i].alert_decisions == nil { + continue + } + fk := *nodes[i].alert_decisions + if _, ok := nodeids[fk]; !ok { + ids = append(ids, fk) + } + nodeids[fk] = append(nodeids[fk], nodes[i]) + } + query.Where(alert.IDIn(ids...)) + neighbors, err := query.All(ctx) + if err != nil { + return err + } + for _, n := range neighbors { + nodes, ok := nodeids[n.ID] + if !ok { + return fmt.Errorf(`unexpected foreign-key "alert_decisions" returned %v`, n.ID) + } + for i := range nodes { + assign(nodes[i], n) } } - - return nodes, nil + return nil } func (dq *DecisionQuery) sqlCount(ctx context.Context) (int, error) { @@ -424,11 +430,14 @@ func (dq *DecisionQuery) sqlCount(ctx context.Context) (int, error) { } func (dq *DecisionQuery) sqlExist(ctx context.Context) (bool, error) { - n, err := dq.sqlCount(ctx) - if err != nil { + switch _, err := dq.FirstID(ctx); { + case IsNotFound(err): + return false, nil + case err != nil: return false, fmt.Errorf("ent: check existence: %w", err) + default: + return true, nil } - return n > 0, nil } func (dq *DecisionQuery) querySpec() *sqlgraph.QuerySpec { @@ -514,6 +523,7 @@ func (dq *DecisionQuery) sqlQuery(ctx context.Context) *sql.Selector { // DecisionGroupBy is the group-by builder for Decision entities. type DecisionGroupBy struct { config + selector fields []string fns []AggregateFunc // intermediate query (i.e. traversal path). @@ -528,7 +538,7 @@ func (dgb *DecisionGroupBy) Aggregate(fns ...AggregateFunc) *DecisionGroupBy { } // Scan applies the group-by query and scans the result into the given value. -func (dgb *DecisionGroupBy) Scan(ctx context.Context, v interface{}) error { +func (dgb *DecisionGroupBy) Scan(ctx context.Context, v any) error { query, err := dgb.path(ctx) if err != nil { return err @@ -537,210 +547,7 @@ func (dgb *DecisionGroupBy) Scan(ctx context.Context, v interface{}) error { return dgb.sqlScan(ctx, v) } -// ScanX is like Scan, but panics if an error occurs. -func (dgb *DecisionGroupBy) ScanX(ctx context.Context, v interface{}) { - if err := dgb.Scan(ctx, v); err != nil { - panic(err) - } -} - -// Strings returns list of strings from group-by. -// It is only allowed when executing a group-by query with one field. -func (dgb *DecisionGroupBy) Strings(ctx context.Context) ([]string, error) { - if len(dgb.fields) > 1 { - return nil, errors.New("ent: DecisionGroupBy.Strings is not achievable when grouping more than 1 field") - } - var v []string - if err := dgb.Scan(ctx, &v); err != nil { - return nil, err - } - return v, nil -} - -// StringsX is like Strings, but panics if an error occurs. -func (dgb *DecisionGroupBy) StringsX(ctx context.Context) []string { - v, err := dgb.Strings(ctx) - if err != nil { - panic(err) - } - return v -} - -// String returns a single string from a group-by query. -// It is only allowed when executing a group-by query with one field. -func (dgb *DecisionGroupBy) String(ctx context.Context) (_ string, err error) { - var v []string - if v, err = dgb.Strings(ctx); err != nil { - return - } - switch len(v) { - case 1: - return v[0], nil - case 0: - err = &NotFoundError{decision.Label} - default: - err = fmt.Errorf("ent: DecisionGroupBy.Strings returned %d results when one was expected", len(v)) - } - return -} - -// StringX is like String, but panics if an error occurs. -func (dgb *DecisionGroupBy) StringX(ctx context.Context) string { - v, err := dgb.String(ctx) - if err != nil { - panic(err) - } - return v -} - -// Ints returns list of ints from group-by. -// It is only allowed when executing a group-by query with one field. -func (dgb *DecisionGroupBy) Ints(ctx context.Context) ([]int, error) { - if len(dgb.fields) > 1 { - return nil, errors.New("ent: DecisionGroupBy.Ints is not achievable when grouping more than 1 field") - } - var v []int - if err := dgb.Scan(ctx, &v); err != nil { - return nil, err - } - return v, nil -} - -// IntsX is like Ints, but panics if an error occurs. -func (dgb *DecisionGroupBy) IntsX(ctx context.Context) []int { - v, err := dgb.Ints(ctx) - if err != nil { - panic(err) - } - return v -} - -// Int returns a single int from a group-by query. -// It is only allowed when executing a group-by query with one field. -func (dgb *DecisionGroupBy) Int(ctx context.Context) (_ int, err error) { - var v []int - if v, err = dgb.Ints(ctx); err != nil { - return - } - switch len(v) { - case 1: - return v[0], nil - case 0: - err = &NotFoundError{decision.Label} - default: - err = fmt.Errorf("ent: DecisionGroupBy.Ints returned %d results when one was expected", len(v)) - } - return -} - -// IntX is like Int, but panics if an error occurs. -func (dgb *DecisionGroupBy) IntX(ctx context.Context) int { - v, err := dgb.Int(ctx) - if err != nil { - panic(err) - } - return v -} - -// Float64s returns list of float64s from group-by. -// It is only allowed when executing a group-by query with one field. -func (dgb *DecisionGroupBy) Float64s(ctx context.Context) ([]float64, error) { - if len(dgb.fields) > 1 { - return nil, errors.New("ent: DecisionGroupBy.Float64s is not achievable when grouping more than 1 field") - } - var v []float64 - if err := dgb.Scan(ctx, &v); err != nil { - return nil, err - } - return v, nil -} - -// Float64sX is like Float64s, but panics if an error occurs. -func (dgb *DecisionGroupBy) Float64sX(ctx context.Context) []float64 { - v, err := dgb.Float64s(ctx) - if err != nil { - panic(err) - } - return v -} - -// Float64 returns a single float64 from a group-by query. -// It is only allowed when executing a group-by query with one field. -func (dgb *DecisionGroupBy) Float64(ctx context.Context) (_ float64, err error) { - var v []float64 - if v, err = dgb.Float64s(ctx); err != nil { - return - } - switch len(v) { - case 1: - return v[0], nil - case 0: - err = &NotFoundError{decision.Label} - default: - err = fmt.Errorf("ent: DecisionGroupBy.Float64s returned %d results when one was expected", len(v)) - } - return -} - -// Float64X is like Float64, but panics if an error occurs. -func (dgb *DecisionGroupBy) Float64X(ctx context.Context) float64 { - v, err := dgb.Float64(ctx) - if err != nil { - panic(err) - } - return v -} - -// Bools returns list of bools from group-by. -// It is only allowed when executing a group-by query with one field. -func (dgb *DecisionGroupBy) Bools(ctx context.Context) ([]bool, error) { - if len(dgb.fields) > 1 { - return nil, errors.New("ent: DecisionGroupBy.Bools is not achievable when grouping more than 1 field") - } - var v []bool - if err := dgb.Scan(ctx, &v); err != nil { - return nil, err - } - return v, nil -} - -// BoolsX is like Bools, but panics if an error occurs. -func (dgb *DecisionGroupBy) BoolsX(ctx context.Context) []bool { - v, err := dgb.Bools(ctx) - if err != nil { - panic(err) - } - return v -} - -// Bool returns a single bool from a group-by query. -// It is only allowed when executing a group-by query with one field. -func (dgb *DecisionGroupBy) Bool(ctx context.Context) (_ bool, err error) { - var v []bool - if v, err = dgb.Bools(ctx); err != nil { - return - } - switch len(v) { - case 1: - return v[0], nil - case 0: - err = &NotFoundError{decision.Label} - default: - err = fmt.Errorf("ent: DecisionGroupBy.Bools returned %d results when one was expected", len(v)) - } - return -} - -// BoolX is like Bool, but panics if an error occurs. -func (dgb *DecisionGroupBy) BoolX(ctx context.Context) bool { - v, err := dgb.Bool(ctx) - if err != nil { - panic(err) - } - return v -} - -func (dgb *DecisionGroupBy) sqlScan(ctx context.Context, v interface{}) error { +func (dgb *DecisionGroupBy) sqlScan(ctx context.Context, v any) error { for _, f := range dgb.fields { if !decision.ValidColumn(f) { return &ValidationError{Name: f, err: fmt.Errorf("invalid field %q for group-by", f)} @@ -781,12 +588,13 @@ func (dgb *DecisionGroupBy) sqlQuery() *sql.Selector { // DecisionSelect is the builder for selecting fields of Decision entities. type DecisionSelect struct { *DecisionQuery + selector // intermediate query (i.e. traversal path). sql *sql.Selector } // Scan applies the selector query and scans the result into the given value. -func (ds *DecisionSelect) Scan(ctx context.Context, v interface{}) error { +func (ds *DecisionSelect) Scan(ctx context.Context, v any) error { if err := ds.prepareQuery(ctx); err != nil { return err } @@ -794,202 +602,7 @@ func (ds *DecisionSelect) Scan(ctx context.Context, v interface{}) error { return ds.sqlScan(ctx, v) } -// ScanX is like Scan, but panics if an error occurs. -func (ds *DecisionSelect) ScanX(ctx context.Context, v interface{}) { - if err := ds.Scan(ctx, v); err != nil { - panic(err) - } -} - -// Strings returns list of strings from a selector. It is only allowed when selecting one field. -func (ds *DecisionSelect) Strings(ctx context.Context) ([]string, error) { - if len(ds.fields) > 1 { - return nil, errors.New("ent: DecisionSelect.Strings is not achievable when selecting more than 1 field") - } - var v []string - if err := ds.Scan(ctx, &v); err != nil { - return nil, err - } - return v, nil -} - -// StringsX is like Strings, but panics if an error occurs. -func (ds *DecisionSelect) StringsX(ctx context.Context) []string { - v, err := ds.Strings(ctx) - if err != nil { - panic(err) - } - return v -} - -// String returns a single string from a selector. It is only allowed when selecting one field. -func (ds *DecisionSelect) String(ctx context.Context) (_ string, err error) { - var v []string - if v, err = ds.Strings(ctx); err != nil { - return - } - switch len(v) { - case 1: - return v[0], nil - case 0: - err = &NotFoundError{decision.Label} - default: - err = fmt.Errorf("ent: DecisionSelect.Strings returned %d results when one was expected", len(v)) - } - return -} - -// StringX is like String, but panics if an error occurs. -func (ds *DecisionSelect) StringX(ctx context.Context) string { - v, err := ds.String(ctx) - if err != nil { - panic(err) - } - return v -} - -// Ints returns list of ints from a selector. It is only allowed when selecting one field. -func (ds *DecisionSelect) Ints(ctx context.Context) ([]int, error) { - if len(ds.fields) > 1 { - return nil, errors.New("ent: DecisionSelect.Ints is not achievable when selecting more than 1 field") - } - var v []int - if err := ds.Scan(ctx, &v); err != nil { - return nil, err - } - return v, nil -} - -// IntsX is like Ints, but panics if an error occurs. -func (ds *DecisionSelect) IntsX(ctx context.Context) []int { - v, err := ds.Ints(ctx) - if err != nil { - panic(err) - } - return v -} - -// Int returns a single int from a selector. It is only allowed when selecting one field. -func (ds *DecisionSelect) Int(ctx context.Context) (_ int, err error) { - var v []int - if v, err = ds.Ints(ctx); err != nil { - return - } - switch len(v) { - case 1: - return v[0], nil - case 0: - err = &NotFoundError{decision.Label} - default: - err = fmt.Errorf("ent: DecisionSelect.Ints returned %d results when one was expected", len(v)) - } - return -} - -// IntX is like Int, but panics if an error occurs. -func (ds *DecisionSelect) IntX(ctx context.Context) int { - v, err := ds.Int(ctx) - if err != nil { - panic(err) - } - return v -} - -// Float64s returns list of float64s from a selector. It is only allowed when selecting one field. -func (ds *DecisionSelect) Float64s(ctx context.Context) ([]float64, error) { - if len(ds.fields) > 1 { - return nil, errors.New("ent: DecisionSelect.Float64s is not achievable when selecting more than 1 field") - } - var v []float64 - if err := ds.Scan(ctx, &v); err != nil { - return nil, err - } - return v, nil -} - -// Float64sX is like Float64s, but panics if an error occurs. -func (ds *DecisionSelect) Float64sX(ctx context.Context) []float64 { - v, err := ds.Float64s(ctx) - if err != nil { - panic(err) - } - return v -} - -// Float64 returns a single float64 from a selector. It is only allowed when selecting one field. -func (ds *DecisionSelect) Float64(ctx context.Context) (_ float64, err error) { - var v []float64 - if v, err = ds.Float64s(ctx); err != nil { - return - } - switch len(v) { - case 1: - return v[0], nil - case 0: - err = &NotFoundError{decision.Label} - default: - err = fmt.Errorf("ent: DecisionSelect.Float64s returned %d results when one was expected", len(v)) - } - return -} - -// Float64X is like Float64, but panics if an error occurs. -func (ds *DecisionSelect) Float64X(ctx context.Context) float64 { - v, err := ds.Float64(ctx) - if err != nil { - panic(err) - } - return v -} - -// Bools returns list of bools from a selector. It is only allowed when selecting one field. -func (ds *DecisionSelect) Bools(ctx context.Context) ([]bool, error) { - if len(ds.fields) > 1 { - return nil, errors.New("ent: DecisionSelect.Bools is not achievable when selecting more than 1 field") - } - var v []bool - if err := ds.Scan(ctx, &v); err != nil { - return nil, err - } - return v, nil -} - -// BoolsX is like Bools, but panics if an error occurs. -func (ds *DecisionSelect) BoolsX(ctx context.Context) []bool { - v, err := ds.Bools(ctx) - if err != nil { - panic(err) - } - return v -} - -// Bool returns a single bool from a selector. It is only allowed when selecting one field. -func (ds *DecisionSelect) Bool(ctx context.Context) (_ bool, err error) { - var v []bool - if v, err = ds.Bools(ctx); err != nil { - return - } - switch len(v) { - case 1: - return v[0], nil - case 0: - err = &NotFoundError{decision.Label} - default: - err = fmt.Errorf("ent: DecisionSelect.Bools returned %d results when one was expected", len(v)) - } - return -} - -// BoolX is like Bool, but panics if an error occurs. -func (ds *DecisionSelect) BoolX(ctx context.Context) bool { - v, err := ds.Bool(ctx) - if err != nil { - panic(err) - } - return v -} - -func (ds *DecisionSelect) sqlScan(ctx context.Context, v interface{}) error { +func (ds *DecisionSelect) sqlScan(ctx context.Context, v any) error { rows := &sql.Rows{} query, args := ds.sql.Query() if err := ds.driver.Query(ctx, query, args, rows); err != nil { diff --git a/pkg/database/ent/decision_update.go b/pkg/database/ent/decision_update.go index b0eb0836e..87b9fd2b8 100644 --- a/pkg/database/ent/decision_update.go +++ b/pkg/database/ent/decision_update.go @@ -1,4 +1,4 @@ -// Code generated by entc, DO NOT EDIT. +// Code generated by ent, DO NOT EDIT. package ent @@ -587,7 +587,7 @@ func (du *DecisionUpdate) sqlSave(ctx context.Context) (n int, err error) { if _, ok := err.(*sqlgraph.NotFoundError); ok { err = &NotFoundError{decision.Label} } else if sqlgraph.IsConstraintError(err) { - err = &ConstraintError{err.Error(), err} + err = &ConstraintError{msg: err.Error(), wrap: err} } return 0, err } @@ -888,9 +888,15 @@ func (duo *DecisionUpdateOne) Save(ctx context.Context) (*Decision, error) { } mut = duo.hooks[i](mut) } - if _, err := mut.Mutate(ctx, duo.mutation); err != nil { + v, err := mut.Mutate(ctx, duo.mutation) + if err != nil { return nil, err } + nv, ok := v.(*Decision) + if !ok { + return nil, fmt.Errorf("unexpected node type %T returned from DecisionMutation", v) + } + node = nv } return node, err } @@ -1187,7 +1193,7 @@ func (duo *DecisionUpdateOne) sqlSave(ctx context.Context) (_node *Decision, err if _, ok := err.(*sqlgraph.NotFoundError); ok { err = &NotFoundError{decision.Label} } else if sqlgraph.IsConstraintError(err) { - err = &ConstraintError{err.Error(), err} + err = &ConstraintError{msg: err.Error(), wrap: err} } return nil, err } diff --git a/pkg/database/ent/ent.go b/pkg/database/ent/ent.go index cdc1d2bde..a0b328578 100644 --- a/pkg/database/ent/ent.go +++ b/pkg/database/ent/ent.go @@ -1,13 +1,15 @@ -// Code generated by entc, DO NOT EDIT. +// Code generated by ent, DO NOT EDIT. package ent import ( + "context" "errors" "fmt" "entgo.io/ent" "entgo.io/ent/dialect/sql" + "entgo.io/ent/dialect/sql/sqlgraph" "github.com/crowdsecurity/crowdsec/pkg/database/ent/alert" "github.com/crowdsecurity/crowdsec/pkg/database/ent/bouncer" "github.com/crowdsecurity/crowdsec/pkg/database/ent/decision" @@ -89,7 +91,6 @@ type AggregateFunc func(*sql.Selector) string // GroupBy(field1, field2). // Aggregate(ent.As(ent.Sum(field1), "sum_field1"), (ent.As(ent.Sum(field2), "sum_field2")). // Scan(ctx, &v) -// func As(fn AggregateFunc, end string) AggregateFunc { return func(s *sql.Selector) string { return sql.As(fn(s), end) @@ -267,3 +268,208 @@ func IsConstraintError(err error) bool { var e *ConstraintError return errors.As(err, &e) } + +// selector embedded by the different Select/GroupBy builders. +type selector struct { + label string + flds *[]string + scan func(context.Context, any) error +} + +// ScanX is like Scan, but panics if an error occurs. +func (s *selector) ScanX(ctx context.Context, v any) { + if err := s.scan(ctx, v); err != nil { + panic(err) + } +} + +// Strings returns list of strings from a selector. It is only allowed when selecting one field. +func (s *selector) Strings(ctx context.Context) ([]string, error) { + if len(*s.flds) > 1 { + return nil, errors.New("ent: Strings is not achievable when selecting more than 1 field") + } + var v []string + if err := s.scan(ctx, &v); err != nil { + return nil, err + } + return v, nil +} + +// StringsX is like Strings, but panics if an error occurs. +func (s *selector) StringsX(ctx context.Context) []string { + v, err := s.Strings(ctx) + if err != nil { + panic(err) + } + return v +} + +// String returns a single string from a selector. It is only allowed when selecting one field. +func (s *selector) String(ctx context.Context) (_ string, err error) { + var v []string + if v, err = s.Strings(ctx); err != nil { + return + } + switch len(v) { + case 1: + return v[0], nil + case 0: + err = &NotFoundError{s.label} + default: + err = fmt.Errorf("ent: Strings returned %d results when one was expected", len(v)) + } + return +} + +// StringX is like String, but panics if an error occurs. +func (s *selector) StringX(ctx context.Context) string { + v, err := s.String(ctx) + if err != nil { + panic(err) + } + return v +} + +// Ints returns list of ints from a selector. It is only allowed when selecting one field. +func (s *selector) Ints(ctx context.Context) ([]int, error) { + if len(*s.flds) > 1 { + return nil, errors.New("ent: Ints is not achievable when selecting more than 1 field") + } + var v []int + if err := s.scan(ctx, &v); err != nil { + return nil, err + } + return v, nil +} + +// IntsX is like Ints, but panics if an error occurs. +func (s *selector) IntsX(ctx context.Context) []int { + v, err := s.Ints(ctx) + if err != nil { + panic(err) + } + return v +} + +// Int returns a single int from a selector. It is only allowed when selecting one field. +func (s *selector) Int(ctx context.Context) (_ int, err error) { + var v []int + if v, err = s.Ints(ctx); err != nil { + return + } + switch len(v) { + case 1: + return v[0], nil + case 0: + err = &NotFoundError{s.label} + default: + err = fmt.Errorf("ent: Ints returned %d results when one was expected", len(v)) + } + return +} + +// IntX is like Int, but panics if an error occurs. +func (s *selector) IntX(ctx context.Context) int { + v, err := s.Int(ctx) + if err != nil { + panic(err) + } + return v +} + +// Float64s returns list of float64s from a selector. It is only allowed when selecting one field. +func (s *selector) Float64s(ctx context.Context) ([]float64, error) { + if len(*s.flds) > 1 { + return nil, errors.New("ent: Float64s is not achievable when selecting more than 1 field") + } + var v []float64 + if err := s.scan(ctx, &v); err != nil { + return nil, err + } + return v, nil +} + +// Float64sX is like Float64s, but panics if an error occurs. +func (s *selector) Float64sX(ctx context.Context) []float64 { + v, err := s.Float64s(ctx) + if err != nil { + panic(err) + } + return v +} + +// Float64 returns a single float64 from a selector. It is only allowed when selecting one field. +func (s *selector) Float64(ctx context.Context) (_ float64, err error) { + var v []float64 + if v, err = s.Float64s(ctx); err != nil { + return + } + switch len(v) { + case 1: + return v[0], nil + case 0: + err = &NotFoundError{s.label} + default: + err = fmt.Errorf("ent: Float64s returned %d results when one was expected", len(v)) + } + return +} + +// Float64X is like Float64, but panics if an error occurs. +func (s *selector) Float64X(ctx context.Context) float64 { + v, err := s.Float64(ctx) + if err != nil { + panic(err) + } + return v +} + +// Bools returns list of bools from a selector. It is only allowed when selecting one field. +func (s *selector) Bools(ctx context.Context) ([]bool, error) { + if len(*s.flds) > 1 { + return nil, errors.New("ent: Bools is not achievable when selecting more than 1 field") + } + var v []bool + if err := s.scan(ctx, &v); err != nil { + return nil, err + } + return v, nil +} + +// BoolsX is like Bools, but panics if an error occurs. +func (s *selector) BoolsX(ctx context.Context) []bool { + v, err := s.Bools(ctx) + if err != nil { + panic(err) + } + return v +} + +// Bool returns a single bool from a selector. It is only allowed when selecting one field. +func (s *selector) Bool(ctx context.Context) (_ bool, err error) { + var v []bool + if v, err = s.Bools(ctx); err != nil { + return + } + switch len(v) { + case 1: + return v[0], nil + case 0: + err = &NotFoundError{s.label} + default: + err = fmt.Errorf("ent: Bools returned %d results when one was expected", len(v)) + } + return +} + +// BoolX is like Bool, but panics if an error occurs. +func (s *selector) BoolX(ctx context.Context) bool { + v, err := s.Bool(ctx) + if err != nil { + panic(err) + } + return v +} + +// queryHook describes an internal hook for the different sqlAll methods. +type queryHook func(context.Context, *sqlgraph.QuerySpec) diff --git a/pkg/database/ent/enttest/enttest.go b/pkg/database/ent/enttest/enttest.go index f975eb1e1..ccfd0205d 100644 --- a/pkg/database/ent/enttest/enttest.go +++ b/pkg/database/ent/enttest/enttest.go @@ -1,4 +1,4 @@ -// Code generated by entc, DO NOT EDIT. +// Code generated by ent, DO NOT EDIT. package enttest @@ -10,6 +10,7 @@ import ( _ "github.com/crowdsecurity/crowdsec/pkg/database/ent/runtime" "entgo.io/ent/dialect/sql/schema" + "github.com/crowdsecurity/crowdsec/pkg/database/ent/migrate" ) type ( @@ -17,7 +18,7 @@ type ( // testing.T and testing.B and used by enttest. TestingT interface { FailNow() - Error(...interface{}) + Error(...any) } // Option configures client creation. @@ -59,10 +60,7 @@ func Open(t TestingT, driverName, dataSourceName string, opts ...Option) *ent.Cl t.Error(err) t.FailNow() } - if err := c.Schema.Create(context.Background(), o.migrateOpts...); err != nil { - t.Error(err) - t.FailNow() - } + migrateSchema(t, c, o) return c } @@ -70,9 +68,17 @@ func Open(t TestingT, driverName, dataSourceName string, opts ...Option) *ent.Cl func NewClient(t TestingT, opts ...Option) *ent.Client { o := newOptions(opts) c := ent.NewClient(o.opts...) - if err := c.Schema.Create(context.Background(), o.migrateOpts...); err != nil { + migrateSchema(t, c, o) + return c +} +func migrateSchema(t TestingT, c *ent.Client, o *options) { + tables, err := schema.CopyTables(migrate.Tables) + if err != nil { + t.Error(err) + t.FailNow() + } + if err := migrate.Create(context.Background(), c.Schema, tables, o.migrateOpts...); err != nil { t.Error(err) t.FailNow() } - return c } diff --git a/pkg/database/ent/event.go b/pkg/database/ent/event.go index 078eb2c9f..276d0918e 100644 --- a/pkg/database/ent/event.go +++ b/pkg/database/ent/event.go @@ -1,4 +1,4 @@ -// Code generated by entc, DO NOT EDIT. +// Code generated by ent, DO NOT EDIT. package ent @@ -45,8 +45,7 @@ type EventEdges struct { func (e EventEdges) OwnerOrErr() (*Alert, error) { if e.loadedTypes[0] { if e.Owner == nil { - // The edge owner was loaded in eager-loading, - // but was not found. + // Edge was loaded but was not found. return nil, &NotFoundError{label: alert.Label} } return e.Owner, nil @@ -55,8 +54,8 @@ func (e EventEdges) OwnerOrErr() (*Alert, error) { } // scanValues returns the types for scanning values from sql.Rows. -func (*Event) scanValues(columns []string) ([]interface{}, error) { - values := make([]interface{}, len(columns)) +func (*Event) scanValues(columns []string) ([]any, error) { + values := make([]any, len(columns)) for i := range columns { switch columns[i] { case event.FieldID: @@ -76,7 +75,7 @@ func (*Event) scanValues(columns []string) ([]interface{}, error) { // assignValues assigns the values that were returned from sql.Rows (after scanning) // to the Event fields. -func (e *Event) assignValues(columns []string, values []interface{}) error { +func (e *Event) assignValues(columns []string, values []any) error { if m, n := len(values), len(columns); m < n { return fmt.Errorf("mismatch number of scan values: %d != %d", m, n) } @@ -141,11 +140,11 @@ func (e *Event) Update() *EventUpdateOne { // Unwrap unwraps the Event entity that was returned from a transaction after it was closed, // so that all future queries will be executed through the driver which created the transaction. func (e *Event) Unwrap() *Event { - tx, ok := e.config.driver.(*txDriver) + _tx, ok := e.config.driver.(*txDriver) if !ok { panic("ent: Event is not a transactional entity") } - e.config.driver = tx.drv + e.config.driver = _tx.drv return e } @@ -153,18 +152,21 @@ func (e *Event) Unwrap() *Event { func (e *Event) String() string { var builder strings.Builder builder.WriteString("Event(") - builder.WriteString(fmt.Sprintf("id=%v", e.ID)) + builder.WriteString(fmt.Sprintf("id=%v, ", e.ID)) if v := e.CreatedAt; v != nil { - builder.WriteString(", created_at=") + builder.WriteString("created_at=") builder.WriteString(v.Format(time.ANSIC)) } + builder.WriteString(", ") if v := e.UpdatedAt; v != nil { - builder.WriteString(", updated_at=") + builder.WriteString("updated_at=") builder.WriteString(v.Format(time.ANSIC)) } - builder.WriteString(", time=") + builder.WriteString(", ") + builder.WriteString("time=") builder.WriteString(e.Time.Format(time.ANSIC)) - builder.WriteString(", serialized=") + builder.WriteString(", ") + builder.WriteString("serialized=") builder.WriteString(e.Serialized) builder.WriteByte(')') return builder.String() diff --git a/pkg/database/ent/event/event.go b/pkg/database/ent/event/event.go index fa29402b9..07e58f16d 100644 --- a/pkg/database/ent/event/event.go +++ b/pkg/database/ent/event/event.go @@ -1,4 +1,4 @@ -// Code generated by entc, DO NOT EDIT. +// Code generated by ent, DO NOT EDIT. package event diff --git a/pkg/database/ent/event/where.go b/pkg/database/ent/event/where.go index 1b14c5cf8..322b6f49f 100644 --- a/pkg/database/ent/event/where.go +++ b/pkg/database/ent/event/where.go @@ -1,4 +1,4 @@ -// Code generated by entc, DO NOT EDIT. +// Code generated by ent, DO NOT EDIT. package event @@ -34,13 +34,7 @@ func IDNEQ(id int) predicate.Event { // IDIn applies the In predicate on the ID field. func IDIn(ids ...int) predicate.Event { return predicate.Event(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(ids) == 0 { - s.Where(sql.False()) - return - } - v := make([]interface{}, len(ids)) + v := make([]any, len(ids)) for i := range v { v[i] = ids[i] } @@ -51,13 +45,7 @@ func IDIn(ids ...int) predicate.Event { // IDNotIn applies the NotIn predicate on the ID field. func IDNotIn(ids ...int) predicate.Event { return predicate.Event(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(ids) == 0 { - s.Where(sql.False()) - return - } - v := make([]interface{}, len(ids)) + v := make([]any, len(ids)) for i := range v { v[i] = ids[i] } @@ -137,34 +125,22 @@ func CreatedAtNEQ(v time.Time) predicate.Event { // CreatedAtIn applies the In predicate on the "created_at" field. func CreatedAtIn(vs ...time.Time) predicate.Event { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Event(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.In(s.C(FieldCreatedAt), v...)) }) } // CreatedAtNotIn applies the NotIn predicate on the "created_at" field. func CreatedAtNotIn(vs ...time.Time) predicate.Event { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Event(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.NotIn(s.C(FieldCreatedAt), v...)) }) } @@ -227,34 +203,22 @@ func UpdatedAtNEQ(v time.Time) predicate.Event { // UpdatedAtIn applies the In predicate on the "updated_at" field. func UpdatedAtIn(vs ...time.Time) predicate.Event { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Event(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.In(s.C(FieldUpdatedAt), v...)) }) } // UpdatedAtNotIn applies the NotIn predicate on the "updated_at" field. func UpdatedAtNotIn(vs ...time.Time) predicate.Event { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Event(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.NotIn(s.C(FieldUpdatedAt), v...)) }) } @@ -317,34 +281,22 @@ func TimeNEQ(v time.Time) predicate.Event { // TimeIn applies the In predicate on the "time" field. func TimeIn(vs ...time.Time) predicate.Event { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Event(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.In(s.C(FieldTime), v...)) }) } // TimeNotIn applies the NotIn predicate on the "time" field. func TimeNotIn(vs ...time.Time) predicate.Event { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Event(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.NotIn(s.C(FieldTime), v...)) }) } @@ -393,34 +345,22 @@ func SerializedNEQ(v string) predicate.Event { // SerializedIn applies the In predicate on the "serialized" field. func SerializedIn(vs ...string) predicate.Event { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Event(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.In(s.C(FieldSerialized), v...)) }) } // SerializedNotIn applies the NotIn predicate on the "serialized" field. func SerializedNotIn(vs ...string) predicate.Event { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Event(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.NotIn(s.C(FieldSerialized), v...)) }) } diff --git a/pkg/database/ent/event_create.go b/pkg/database/ent/event_create.go index 3aa7d27d4..3d844892e 100644 --- a/pkg/database/ent/event_create.go +++ b/pkg/database/ent/event_create.go @@ -1,4 +1,4 @@ -// Code generated by entc, DO NOT EDIT. +// Code generated by ent, DO NOT EDIT. package ent @@ -120,9 +120,15 @@ func (ec *EventCreate) Save(ctx context.Context) (*Event, error) { } mut = ec.hooks[i](mut) } - if _, err := mut.Mutate(ctx, ec.mutation); err != nil { + v, err := mut.Mutate(ctx, ec.mutation) + if err != nil { return nil, err } + nv, ok := v.(*Event) + if !ok { + return nil, fmt.Errorf("unexpected node type %T returned from EventMutation", v) + } + node = nv } return node, err } @@ -181,7 +187,7 @@ func (ec *EventCreate) sqlSave(ctx context.Context) (*Event, error) { _node, _spec := ec.createSpec() if err := sqlgraph.CreateNode(ctx, ec.driver, _spec); err != nil { if sqlgraph.IsConstraintError(err) { - err = &ConstraintError{err.Error(), err} + err = &ConstraintError{msg: err.Error(), wrap: err} } return nil, err } @@ -289,7 +295,7 @@ func (ecb *EventCreateBulk) Save(ctx context.Context) ([]*Event, error) { // Invoke the actual operation on the latest mutation in the chain. if err = sqlgraph.BatchCreate(ctx, ecb.driver, spec); err != nil { if sqlgraph.IsConstraintError(err) { - err = &ConstraintError{err.Error(), err} + err = &ConstraintError{msg: err.Error(), wrap: err} } } } @@ -297,11 +303,11 @@ func (ecb *EventCreateBulk) Save(ctx context.Context) ([]*Event, error) { return nil, err } mutation.id = &nodes[i].ID - mutation.done = true if specs[i].ID.Value != nil { id := specs[i].ID.Value.(int64) nodes[i].ID = int(id) } + mutation.done = true return nodes[i], nil }) for i := len(builder.hooks) - 1; i >= 0; i-- { diff --git a/pkg/database/ent/event_delete.go b/pkg/database/ent/event_delete.go index 014cafa3f..0220dc71d 100644 --- a/pkg/database/ent/event_delete.go +++ b/pkg/database/ent/event_delete.go @@ -1,4 +1,4 @@ -// Code generated by entc, DO NOT EDIT. +// Code generated by ent, DO NOT EDIT. package ent @@ -84,7 +84,11 @@ func (ed *EventDelete) sqlExec(ctx context.Context) (int, error) { } } } - return sqlgraph.DeleteNodes(ctx, ed.driver, _spec) + affected, err := sqlgraph.DeleteNodes(ctx, ed.driver, _spec) + if err != nil && sqlgraph.IsConstraintError(err) { + err = &ConstraintError{msg: err.Error(), wrap: err} + } + return affected, err } // EventDeleteOne is the builder for deleting a single Event entity. diff --git a/pkg/database/ent/event_query.go b/pkg/database/ent/event_query.go index f59833e4c..49794e980 100644 --- a/pkg/database/ent/event_query.go +++ b/pkg/database/ent/event_query.go @@ -1,10 +1,9 @@ -// Code generated by entc, DO NOT EDIT. +// Code generated by ent, DO NOT EDIT. package ent import ( "context" - "errors" "fmt" "math" @@ -25,9 +24,8 @@ type EventQuery struct { order []OrderFunc fields []string predicates []predicate.Event - // eager-loading edges. - withOwner *AlertQuery - withFKs bool + withOwner *AlertQuery + withFKs bool // intermediate query (i.e. traversal path). sql *sql.Selector path func(context.Context) (*sql.Selector, error) @@ -300,17 +298,18 @@ func (eq *EventQuery) WithOwner(opts ...func(*AlertQuery)) *EventQuery { // GroupBy(event.FieldCreatedAt). // Aggregate(ent.Count()). // Scan(ctx, &v) -// func (eq *EventQuery) GroupBy(field string, fields ...string) *EventGroupBy { - group := &EventGroupBy{config: eq.config} - group.fields = append([]string{field}, fields...) - group.path = func(ctx context.Context) (prev *sql.Selector, err error) { + grbuild := &EventGroupBy{config: eq.config} + grbuild.fields = append([]string{field}, fields...) + grbuild.path = func(ctx context.Context) (prev *sql.Selector, err error) { if err := eq.prepareQuery(ctx); err != nil { return nil, err } return eq.sqlQuery(ctx), nil } - return group + grbuild.label = event.Label + grbuild.flds, grbuild.scan = &grbuild.fields, grbuild.Scan + return grbuild } // Select allows the selection one or more fields/columns for the given query, @@ -325,10 +324,12 @@ func (eq *EventQuery) GroupBy(field string, fields ...string) *EventGroupBy { // client.Event.Query(). // Select(event.FieldCreatedAt). // Scan(ctx, &v) -// func (eq *EventQuery) Select(fields ...string) *EventSelect { eq.fields = append(eq.fields, fields...) - return &EventSelect{EventQuery: eq} + selbuild := &EventSelect{EventQuery: eq} + selbuild.label = event.Label + selbuild.flds, selbuild.scan = &eq.fields, selbuild.Scan + return selbuild } func (eq *EventQuery) prepareQuery(ctx context.Context) error { @@ -347,7 +348,7 @@ func (eq *EventQuery) prepareQuery(ctx context.Context) error { return nil } -func (eq *EventQuery) sqlAll(ctx context.Context) ([]*Event, error) { +func (eq *EventQuery) sqlAll(ctx context.Context, hooks ...queryHook) ([]*Event, error) { var ( nodes = []*Event{} withFKs = eq.withFKs @@ -362,56 +363,61 @@ func (eq *EventQuery) sqlAll(ctx context.Context) ([]*Event, error) { if withFKs { _spec.Node.Columns = append(_spec.Node.Columns, event.ForeignKeys...) } - _spec.ScanValues = func(columns []string) ([]interface{}, error) { + _spec.ScanValues = func(columns []string) ([]any, error) { + return (*Event).scanValues(nil, columns) + } + _spec.Assign = func(columns []string, values []any) error { node := &Event{config: eq.config} nodes = append(nodes, node) - return node.scanValues(columns) - } - _spec.Assign = func(columns []string, values []interface{}) error { - if len(nodes) == 0 { - return fmt.Errorf("ent: Assign called without calling ScanValues") - } - node := nodes[len(nodes)-1] node.Edges.loadedTypes = loadedTypes return node.assignValues(columns, values) } + for i := range hooks { + hooks[i](ctx, _spec) + } if err := sqlgraph.QueryNodes(ctx, eq.driver, _spec); err != nil { return nil, err } if len(nodes) == 0 { return nodes, nil } - if query := eq.withOwner; query != nil { - ids := make([]int, 0, len(nodes)) - nodeids := make(map[int][]*Event) - for i := range nodes { - if nodes[i].alert_events == nil { - continue - } - fk := *nodes[i].alert_events - if _, ok := nodeids[fk]; !ok { - ids = append(ids, fk) - } - nodeids[fk] = append(nodeids[fk], nodes[i]) - } - query.Where(alert.IDIn(ids...)) - neighbors, err := query.All(ctx) - if err != nil { + if err := eq.loadOwner(ctx, query, nodes, nil, + func(n *Event, e *Alert) { n.Edges.Owner = e }); err != nil { return nil, err } - for _, n := range neighbors { - nodes, ok := nodeids[n.ID] - if !ok { - return nil, fmt.Errorf(`unexpected foreign-key "alert_events" returned %v`, n.ID) - } - for i := range nodes { - nodes[i].Edges.Owner = n - } + } + return nodes, nil +} + +func (eq *EventQuery) loadOwner(ctx context.Context, query *AlertQuery, nodes []*Event, init func(*Event), assign func(*Event, *Alert)) error { + ids := make([]int, 0, len(nodes)) + nodeids := make(map[int][]*Event) + for i := range nodes { + if nodes[i].alert_events == nil { + continue + } + fk := *nodes[i].alert_events + if _, ok := nodeids[fk]; !ok { + ids = append(ids, fk) + } + nodeids[fk] = append(nodeids[fk], nodes[i]) + } + query.Where(alert.IDIn(ids...)) + neighbors, err := query.All(ctx) + if err != nil { + return err + } + for _, n := range neighbors { + nodes, ok := nodeids[n.ID] + if !ok { + return fmt.Errorf(`unexpected foreign-key "alert_events" returned %v`, n.ID) + } + for i := range nodes { + assign(nodes[i], n) } } - - return nodes, nil + return nil } func (eq *EventQuery) sqlCount(ctx context.Context) (int, error) { @@ -424,11 +430,14 @@ func (eq *EventQuery) sqlCount(ctx context.Context) (int, error) { } func (eq *EventQuery) sqlExist(ctx context.Context) (bool, error) { - n, err := eq.sqlCount(ctx) - if err != nil { + switch _, err := eq.FirstID(ctx); { + case IsNotFound(err): + return false, nil + case err != nil: return false, fmt.Errorf("ent: check existence: %w", err) + default: + return true, nil } - return n > 0, nil } func (eq *EventQuery) querySpec() *sqlgraph.QuerySpec { @@ -514,6 +523,7 @@ func (eq *EventQuery) sqlQuery(ctx context.Context) *sql.Selector { // EventGroupBy is the group-by builder for Event entities. type EventGroupBy struct { config + selector fields []string fns []AggregateFunc // intermediate query (i.e. traversal path). @@ -528,7 +538,7 @@ func (egb *EventGroupBy) Aggregate(fns ...AggregateFunc) *EventGroupBy { } // Scan applies the group-by query and scans the result into the given value. -func (egb *EventGroupBy) Scan(ctx context.Context, v interface{}) error { +func (egb *EventGroupBy) Scan(ctx context.Context, v any) error { query, err := egb.path(ctx) if err != nil { return err @@ -537,210 +547,7 @@ func (egb *EventGroupBy) Scan(ctx context.Context, v interface{}) error { return egb.sqlScan(ctx, v) } -// ScanX is like Scan, but panics if an error occurs. -func (egb *EventGroupBy) ScanX(ctx context.Context, v interface{}) { - if err := egb.Scan(ctx, v); err != nil { - panic(err) - } -} - -// Strings returns list of strings from group-by. -// It is only allowed when executing a group-by query with one field. -func (egb *EventGroupBy) Strings(ctx context.Context) ([]string, error) { - if len(egb.fields) > 1 { - return nil, errors.New("ent: EventGroupBy.Strings is not achievable when grouping more than 1 field") - } - var v []string - if err := egb.Scan(ctx, &v); err != nil { - return nil, err - } - return v, nil -} - -// StringsX is like Strings, but panics if an error occurs. -func (egb *EventGroupBy) StringsX(ctx context.Context) []string { - v, err := egb.Strings(ctx) - if err != nil { - panic(err) - } - return v -} - -// String returns a single string from a group-by query. -// It is only allowed when executing a group-by query with one field. -func (egb *EventGroupBy) String(ctx context.Context) (_ string, err error) { - var v []string - if v, err = egb.Strings(ctx); err != nil { - return - } - switch len(v) { - case 1: - return v[0], nil - case 0: - err = &NotFoundError{event.Label} - default: - err = fmt.Errorf("ent: EventGroupBy.Strings returned %d results when one was expected", len(v)) - } - return -} - -// StringX is like String, but panics if an error occurs. -func (egb *EventGroupBy) StringX(ctx context.Context) string { - v, err := egb.String(ctx) - if err != nil { - panic(err) - } - return v -} - -// Ints returns list of ints from group-by. -// It is only allowed when executing a group-by query with one field. -func (egb *EventGroupBy) Ints(ctx context.Context) ([]int, error) { - if len(egb.fields) > 1 { - return nil, errors.New("ent: EventGroupBy.Ints is not achievable when grouping more than 1 field") - } - var v []int - if err := egb.Scan(ctx, &v); err != nil { - return nil, err - } - return v, nil -} - -// IntsX is like Ints, but panics if an error occurs. -func (egb *EventGroupBy) IntsX(ctx context.Context) []int { - v, err := egb.Ints(ctx) - if err != nil { - panic(err) - } - return v -} - -// Int returns a single int from a group-by query. -// It is only allowed when executing a group-by query with one field. -func (egb *EventGroupBy) Int(ctx context.Context) (_ int, err error) { - var v []int - if v, err = egb.Ints(ctx); err != nil { - return - } - switch len(v) { - case 1: - return v[0], nil - case 0: - err = &NotFoundError{event.Label} - default: - err = fmt.Errorf("ent: EventGroupBy.Ints returned %d results when one was expected", len(v)) - } - return -} - -// IntX is like Int, but panics if an error occurs. -func (egb *EventGroupBy) IntX(ctx context.Context) int { - v, err := egb.Int(ctx) - if err != nil { - panic(err) - } - return v -} - -// Float64s returns list of float64s from group-by. -// It is only allowed when executing a group-by query with one field. -func (egb *EventGroupBy) Float64s(ctx context.Context) ([]float64, error) { - if len(egb.fields) > 1 { - return nil, errors.New("ent: EventGroupBy.Float64s is not achievable when grouping more than 1 field") - } - var v []float64 - if err := egb.Scan(ctx, &v); err != nil { - return nil, err - } - return v, nil -} - -// Float64sX is like Float64s, but panics if an error occurs. -func (egb *EventGroupBy) Float64sX(ctx context.Context) []float64 { - v, err := egb.Float64s(ctx) - if err != nil { - panic(err) - } - return v -} - -// Float64 returns a single float64 from a group-by query. -// It is only allowed when executing a group-by query with one field. -func (egb *EventGroupBy) Float64(ctx context.Context) (_ float64, err error) { - var v []float64 - if v, err = egb.Float64s(ctx); err != nil { - return - } - switch len(v) { - case 1: - return v[0], nil - case 0: - err = &NotFoundError{event.Label} - default: - err = fmt.Errorf("ent: EventGroupBy.Float64s returned %d results when one was expected", len(v)) - } - return -} - -// Float64X is like Float64, but panics if an error occurs. -func (egb *EventGroupBy) Float64X(ctx context.Context) float64 { - v, err := egb.Float64(ctx) - if err != nil { - panic(err) - } - return v -} - -// Bools returns list of bools from group-by. -// It is only allowed when executing a group-by query with one field. -func (egb *EventGroupBy) Bools(ctx context.Context) ([]bool, error) { - if len(egb.fields) > 1 { - return nil, errors.New("ent: EventGroupBy.Bools is not achievable when grouping more than 1 field") - } - var v []bool - if err := egb.Scan(ctx, &v); err != nil { - return nil, err - } - return v, nil -} - -// BoolsX is like Bools, but panics if an error occurs. -func (egb *EventGroupBy) BoolsX(ctx context.Context) []bool { - v, err := egb.Bools(ctx) - if err != nil { - panic(err) - } - return v -} - -// Bool returns a single bool from a group-by query. -// It is only allowed when executing a group-by query with one field. -func (egb *EventGroupBy) Bool(ctx context.Context) (_ bool, err error) { - var v []bool - if v, err = egb.Bools(ctx); err != nil { - return - } - switch len(v) { - case 1: - return v[0], nil - case 0: - err = &NotFoundError{event.Label} - default: - err = fmt.Errorf("ent: EventGroupBy.Bools returned %d results when one was expected", len(v)) - } - return -} - -// BoolX is like Bool, but panics if an error occurs. -func (egb *EventGroupBy) BoolX(ctx context.Context) bool { - v, err := egb.Bool(ctx) - if err != nil { - panic(err) - } - return v -} - -func (egb *EventGroupBy) sqlScan(ctx context.Context, v interface{}) error { +func (egb *EventGroupBy) sqlScan(ctx context.Context, v any) error { for _, f := range egb.fields { if !event.ValidColumn(f) { return &ValidationError{Name: f, err: fmt.Errorf("invalid field %q for group-by", f)} @@ -781,12 +588,13 @@ func (egb *EventGroupBy) sqlQuery() *sql.Selector { // EventSelect is the builder for selecting fields of Event entities. type EventSelect struct { *EventQuery + selector // intermediate query (i.e. traversal path). sql *sql.Selector } // Scan applies the selector query and scans the result into the given value. -func (es *EventSelect) Scan(ctx context.Context, v interface{}) error { +func (es *EventSelect) Scan(ctx context.Context, v any) error { if err := es.prepareQuery(ctx); err != nil { return err } @@ -794,202 +602,7 @@ func (es *EventSelect) Scan(ctx context.Context, v interface{}) error { return es.sqlScan(ctx, v) } -// ScanX is like Scan, but panics if an error occurs. -func (es *EventSelect) ScanX(ctx context.Context, v interface{}) { - if err := es.Scan(ctx, v); err != nil { - panic(err) - } -} - -// Strings returns list of strings from a selector. It is only allowed when selecting one field. -func (es *EventSelect) Strings(ctx context.Context) ([]string, error) { - if len(es.fields) > 1 { - return nil, errors.New("ent: EventSelect.Strings is not achievable when selecting more than 1 field") - } - var v []string - if err := es.Scan(ctx, &v); err != nil { - return nil, err - } - return v, nil -} - -// StringsX is like Strings, but panics if an error occurs. -func (es *EventSelect) StringsX(ctx context.Context) []string { - v, err := es.Strings(ctx) - if err != nil { - panic(err) - } - return v -} - -// String returns a single string from a selector. It is only allowed when selecting one field. -func (es *EventSelect) String(ctx context.Context) (_ string, err error) { - var v []string - if v, err = es.Strings(ctx); err != nil { - return - } - switch len(v) { - case 1: - return v[0], nil - case 0: - err = &NotFoundError{event.Label} - default: - err = fmt.Errorf("ent: EventSelect.Strings returned %d results when one was expected", len(v)) - } - return -} - -// StringX is like String, but panics if an error occurs. -func (es *EventSelect) StringX(ctx context.Context) string { - v, err := es.String(ctx) - if err != nil { - panic(err) - } - return v -} - -// Ints returns list of ints from a selector. It is only allowed when selecting one field. -func (es *EventSelect) Ints(ctx context.Context) ([]int, error) { - if len(es.fields) > 1 { - return nil, errors.New("ent: EventSelect.Ints is not achievable when selecting more than 1 field") - } - var v []int - if err := es.Scan(ctx, &v); err != nil { - return nil, err - } - return v, nil -} - -// IntsX is like Ints, but panics if an error occurs. -func (es *EventSelect) IntsX(ctx context.Context) []int { - v, err := es.Ints(ctx) - if err != nil { - panic(err) - } - return v -} - -// Int returns a single int from a selector. It is only allowed when selecting one field. -func (es *EventSelect) Int(ctx context.Context) (_ int, err error) { - var v []int - if v, err = es.Ints(ctx); err != nil { - return - } - switch len(v) { - case 1: - return v[0], nil - case 0: - err = &NotFoundError{event.Label} - default: - err = fmt.Errorf("ent: EventSelect.Ints returned %d results when one was expected", len(v)) - } - return -} - -// IntX is like Int, but panics if an error occurs. -func (es *EventSelect) IntX(ctx context.Context) int { - v, err := es.Int(ctx) - if err != nil { - panic(err) - } - return v -} - -// Float64s returns list of float64s from a selector. It is only allowed when selecting one field. -func (es *EventSelect) Float64s(ctx context.Context) ([]float64, error) { - if len(es.fields) > 1 { - return nil, errors.New("ent: EventSelect.Float64s is not achievable when selecting more than 1 field") - } - var v []float64 - if err := es.Scan(ctx, &v); err != nil { - return nil, err - } - return v, nil -} - -// Float64sX is like Float64s, but panics if an error occurs. -func (es *EventSelect) Float64sX(ctx context.Context) []float64 { - v, err := es.Float64s(ctx) - if err != nil { - panic(err) - } - return v -} - -// Float64 returns a single float64 from a selector. It is only allowed when selecting one field. -func (es *EventSelect) Float64(ctx context.Context) (_ float64, err error) { - var v []float64 - if v, err = es.Float64s(ctx); err != nil { - return - } - switch len(v) { - case 1: - return v[0], nil - case 0: - err = &NotFoundError{event.Label} - default: - err = fmt.Errorf("ent: EventSelect.Float64s returned %d results when one was expected", len(v)) - } - return -} - -// Float64X is like Float64, but panics if an error occurs. -func (es *EventSelect) Float64X(ctx context.Context) float64 { - v, err := es.Float64(ctx) - if err != nil { - panic(err) - } - return v -} - -// Bools returns list of bools from a selector. It is only allowed when selecting one field. -func (es *EventSelect) Bools(ctx context.Context) ([]bool, error) { - if len(es.fields) > 1 { - return nil, errors.New("ent: EventSelect.Bools is not achievable when selecting more than 1 field") - } - var v []bool - if err := es.Scan(ctx, &v); err != nil { - return nil, err - } - return v, nil -} - -// BoolsX is like Bools, but panics if an error occurs. -func (es *EventSelect) BoolsX(ctx context.Context) []bool { - v, err := es.Bools(ctx) - if err != nil { - panic(err) - } - return v -} - -// Bool returns a single bool from a selector. It is only allowed when selecting one field. -func (es *EventSelect) Bool(ctx context.Context) (_ bool, err error) { - var v []bool - if v, err = es.Bools(ctx); err != nil { - return - } - switch len(v) { - case 1: - return v[0], nil - case 0: - err = &NotFoundError{event.Label} - default: - err = fmt.Errorf("ent: EventSelect.Bools returned %d results when one was expected", len(v)) - } - return -} - -// BoolX is like Bool, but panics if an error occurs. -func (es *EventSelect) BoolX(ctx context.Context) bool { - v, err := es.Bool(ctx) - if err != nil { - panic(err) - } - return v -} - -func (es *EventSelect) sqlScan(ctx context.Context, v interface{}) error { +func (es *EventSelect) sqlScan(ctx context.Context, v any) error { rows := &sql.Rows{} query, args := es.sql.Query() if err := es.driver.Query(ctx, query, args, rows); err != nil { diff --git a/pkg/database/ent/event_update.go b/pkg/database/ent/event_update.go index 17010d029..bb210745c 100644 --- a/pkg/database/ent/event_update.go +++ b/pkg/database/ent/event_update.go @@ -1,4 +1,4 @@ -// Code generated by entc, DO NOT EDIT. +// Code generated by ent, DO NOT EDIT. package ent @@ -275,7 +275,7 @@ func (eu *EventUpdate) sqlSave(ctx context.Context) (n int, err error) { if _, ok := err.(*sqlgraph.NotFoundError); ok { err = &NotFoundError{event.Label} } else if sqlgraph.IsConstraintError(err) { - err = &ConstraintError{err.Error(), err} + err = &ConstraintError{msg: err.Error(), wrap: err} } return 0, err } @@ -395,9 +395,15 @@ func (euo *EventUpdateOne) Save(ctx context.Context) (*Event, error) { } mut = euo.hooks[i](mut) } - if _, err := mut.Mutate(ctx, euo.mutation); err != nil { + v, err := mut.Mutate(ctx, euo.mutation) + if err != nil { return nil, err } + nv, ok := v.(*Event) + if !ok { + return nil, fmt.Errorf("unexpected node type %T returned from EventMutation", v) + } + node = nv } return node, err } @@ -563,7 +569,7 @@ func (euo *EventUpdateOne) sqlSave(ctx context.Context) (_node *Event, err error if _, ok := err.(*sqlgraph.NotFoundError); ok { err = &NotFoundError{event.Label} } else if sqlgraph.IsConstraintError(err) { - err = &ConstraintError{err.Error(), err} + err = &ConstraintError{msg: err.Error(), wrap: err} } return nil, err } diff --git a/pkg/database/ent/hook/hook.go b/pkg/database/ent/hook/hook.go index ad5a2aec7..f82f6590e 100644 --- a/pkg/database/ent/hook/hook.go +++ b/pkg/database/ent/hook/hook.go @@ -1,4 +1,4 @@ -// Code generated by entc, DO NOT EDIT. +// Code generated by ent, DO NOT EDIT. package hook @@ -182,7 +182,6 @@ func HasFields(field string, fields ...string) Condition { // If executes the given hook under condition. // // hook.If(ComputeAverage, And(HasFields(...), HasAddedFields(...))) -// func If(hk ent.Hook, cond Condition) ent.Hook { return func(next ent.Mutator) ent.Mutator { return ent.MutateFunc(func(ctx context.Context, m ent.Mutation) (ent.Value, error) { @@ -197,7 +196,6 @@ func If(hk ent.Hook, cond Condition) ent.Hook { // On executes the given hook only for the given operation. // // hook.On(Log, ent.Delete|ent.Create) -// func On(hk ent.Hook, op ent.Op) ent.Hook { return If(hk, HasOp(op)) } @@ -205,7 +203,6 @@ func On(hk ent.Hook, op ent.Op) ent.Hook { // Unless skips the given hook only for the given operation. // // hook.Unless(Log, ent.Update|ent.UpdateOne) -// func Unless(hk ent.Hook, op ent.Op) ent.Hook { return If(hk, Not(HasOp(op))) } @@ -226,7 +223,6 @@ func FixedError(err error) ent.Hook { // Reject(ent.Delete|ent.Update), // } // } -// func Reject(op ent.Op) ent.Hook { hk := FixedError(fmt.Errorf("%s operation is not allowed", op)) return On(hk, op) diff --git a/pkg/database/ent/machine.go b/pkg/database/ent/machine.go index b1096be6b..dc2b18ee8 100644 --- a/pkg/database/ent/machine.go +++ b/pkg/database/ent/machine.go @@ -1,4 +1,4 @@ -// Code generated by entc, DO NOT EDIT. +// Code generated by ent, DO NOT EDIT. package ent @@ -64,8 +64,8 @@ func (e MachineEdges) AlertsOrErr() ([]*Alert, error) { } // scanValues returns the types for scanning values from sql.Rows. -func (*Machine) scanValues(columns []string) ([]interface{}, error) { - values := make([]interface{}, len(columns)) +func (*Machine) scanValues(columns []string) ([]any, error) { + values := make([]any, len(columns)) for i := range columns { switch columns[i] { case machine.FieldIsValidated: @@ -85,7 +85,7 @@ func (*Machine) scanValues(columns []string) ([]interface{}, error) { // assignValues assigns the values that were returned from sql.Rows (after scanning) // to the Machine fields. -func (m *Machine) assignValues(columns []string, values []interface{}) error { +func (m *Machine) assignValues(columns []string, values []any) error { if m, n := len(values), len(columns); m < n { return fmt.Errorf("mismatch number of scan values: %d != %d", m, n) } @@ -193,11 +193,11 @@ func (m *Machine) Update() *MachineUpdateOne { // Unwrap unwraps the Machine entity that was returned from a transaction after it was closed, // so that all future queries will be executed through the driver which created the transaction. func (m *Machine) Unwrap() *Machine { - tx, ok := m.config.driver.(*txDriver) + _tx, ok := m.config.driver.(*txDriver) if !ok { panic("ent: Machine is not a transactional entity") } - m.config.driver = tx.drv + m.config.driver = _tx.drv return m } @@ -205,37 +205,48 @@ func (m *Machine) Unwrap() *Machine { func (m *Machine) String() string { var builder strings.Builder builder.WriteString("Machine(") - builder.WriteString(fmt.Sprintf("id=%v", m.ID)) + builder.WriteString(fmt.Sprintf("id=%v, ", m.ID)) if v := m.CreatedAt; v != nil { - builder.WriteString(", created_at=") + builder.WriteString("created_at=") builder.WriteString(v.Format(time.ANSIC)) } + builder.WriteString(", ") if v := m.UpdatedAt; v != nil { - builder.WriteString(", updated_at=") + builder.WriteString("updated_at=") builder.WriteString(v.Format(time.ANSIC)) } + builder.WriteString(", ") if v := m.LastPush; v != nil { - builder.WriteString(", last_push=") + builder.WriteString("last_push=") builder.WriteString(v.Format(time.ANSIC)) } + builder.WriteString(", ") if v := m.LastHeartbeat; v != nil { - builder.WriteString(", last_heartbeat=") + builder.WriteString("last_heartbeat=") builder.WriteString(v.Format(time.ANSIC)) } - builder.WriteString(", machineId=") + builder.WriteString(", ") + builder.WriteString("machineId=") builder.WriteString(m.MachineId) - builder.WriteString(", password=") - builder.WriteString(", ipAddress=") + builder.WriteString(", ") + builder.WriteString("password=") + builder.WriteString(", ") + builder.WriteString("ipAddress=") builder.WriteString(m.IpAddress) - builder.WriteString(", scenarios=") + builder.WriteString(", ") + builder.WriteString("scenarios=") builder.WriteString(m.Scenarios) - builder.WriteString(", version=") + builder.WriteString(", ") + builder.WriteString("version=") builder.WriteString(m.Version) - builder.WriteString(", isValidated=") + builder.WriteString(", ") + builder.WriteString("isValidated=") builder.WriteString(fmt.Sprintf("%v", m.IsValidated)) - builder.WriteString(", status=") + builder.WriteString(", ") + builder.WriteString("status=") builder.WriteString(m.Status) - builder.WriteString(", auth_type=") + builder.WriteString(", ") + builder.WriteString("auth_type=") builder.WriteString(m.AuthType) builder.WriteByte(')') return builder.String() diff --git a/pkg/database/ent/machine/machine.go b/pkg/database/ent/machine/machine.go index efed1eaab..e6900dd21 100644 --- a/pkg/database/ent/machine/machine.go +++ b/pkg/database/ent/machine/machine.go @@ -1,4 +1,4 @@ -// Code generated by entc, DO NOT EDIT. +// Code generated by ent, DO NOT EDIT. package machine diff --git a/pkg/database/ent/machine/where.go b/pkg/database/ent/machine/where.go index 0f77047bd..7d0227731 100644 --- a/pkg/database/ent/machine/where.go +++ b/pkg/database/ent/machine/where.go @@ -1,4 +1,4 @@ -// Code generated by entc, DO NOT EDIT. +// Code generated by ent, DO NOT EDIT. package machine @@ -34,13 +34,7 @@ func IDNEQ(id int) predicate.Machine { // IDIn applies the In predicate on the ID field. func IDIn(ids ...int) predicate.Machine { return predicate.Machine(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(ids) == 0 { - s.Where(sql.False()) - return - } - v := make([]interface{}, len(ids)) + v := make([]any, len(ids)) for i := range v { v[i] = ids[i] } @@ -51,13 +45,7 @@ func IDIn(ids ...int) predicate.Machine { // IDNotIn applies the NotIn predicate on the ID field. func IDNotIn(ids ...int) predicate.Machine { return predicate.Machine(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(ids) == 0 { - s.Where(sql.False()) - return - } - v := make([]interface{}, len(ids)) + v := make([]any, len(ids)) for i := range v { v[i] = ids[i] } @@ -193,34 +181,22 @@ func CreatedAtNEQ(v time.Time) predicate.Machine { // CreatedAtIn applies the In predicate on the "created_at" field. func CreatedAtIn(vs ...time.Time) predicate.Machine { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Machine(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.In(s.C(FieldCreatedAt), v...)) }) } // CreatedAtNotIn applies the NotIn predicate on the "created_at" field. func CreatedAtNotIn(vs ...time.Time) predicate.Machine { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Machine(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.NotIn(s.C(FieldCreatedAt), v...)) }) } @@ -283,34 +259,22 @@ func UpdatedAtNEQ(v time.Time) predicate.Machine { // UpdatedAtIn applies the In predicate on the "updated_at" field. func UpdatedAtIn(vs ...time.Time) predicate.Machine { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Machine(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.In(s.C(FieldUpdatedAt), v...)) }) } // UpdatedAtNotIn applies the NotIn predicate on the "updated_at" field. func UpdatedAtNotIn(vs ...time.Time) predicate.Machine { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Machine(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.NotIn(s.C(FieldUpdatedAt), v...)) }) } @@ -373,34 +337,22 @@ func LastPushNEQ(v time.Time) predicate.Machine { // LastPushIn applies the In predicate on the "last_push" field. func LastPushIn(vs ...time.Time) predicate.Machine { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Machine(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.In(s.C(FieldLastPush), v...)) }) } // LastPushNotIn applies the NotIn predicate on the "last_push" field. func LastPushNotIn(vs ...time.Time) predicate.Machine { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Machine(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.NotIn(s.C(FieldLastPush), v...)) }) } @@ -463,34 +415,22 @@ func LastHeartbeatNEQ(v time.Time) predicate.Machine { // LastHeartbeatIn applies the In predicate on the "last_heartbeat" field. func LastHeartbeatIn(vs ...time.Time) predicate.Machine { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Machine(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.In(s.C(FieldLastHeartbeat), v...)) }) } // LastHeartbeatNotIn applies the NotIn predicate on the "last_heartbeat" field. func LastHeartbeatNotIn(vs ...time.Time) predicate.Machine { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Machine(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.NotIn(s.C(FieldLastHeartbeat), v...)) }) } @@ -553,34 +493,22 @@ func MachineIdNEQ(v string) predicate.Machine { // MachineIdIn applies the In predicate on the "machineId" field. func MachineIdIn(vs ...string) predicate.Machine { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Machine(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.In(s.C(FieldMachineId), v...)) }) } // MachineIdNotIn applies the NotIn predicate on the "machineId" field. func MachineIdNotIn(vs ...string) predicate.Machine { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Machine(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.NotIn(s.C(FieldMachineId), v...)) }) } @@ -664,34 +592,22 @@ func PasswordNEQ(v string) predicate.Machine { // PasswordIn applies the In predicate on the "password" field. func PasswordIn(vs ...string) predicate.Machine { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Machine(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.In(s.C(FieldPassword), v...)) }) } // PasswordNotIn applies the NotIn predicate on the "password" field. func PasswordNotIn(vs ...string) predicate.Machine { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Machine(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.NotIn(s.C(FieldPassword), v...)) }) } @@ -775,34 +691,22 @@ func IpAddressNEQ(v string) predicate.Machine { // IpAddressIn applies the In predicate on the "ipAddress" field. func IpAddressIn(vs ...string) predicate.Machine { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Machine(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.In(s.C(FieldIpAddress), v...)) }) } // IpAddressNotIn applies the NotIn predicate on the "ipAddress" field. func IpAddressNotIn(vs ...string) predicate.Machine { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Machine(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.NotIn(s.C(FieldIpAddress), v...)) }) } @@ -886,34 +790,22 @@ func ScenariosNEQ(v string) predicate.Machine { // ScenariosIn applies the In predicate on the "scenarios" field. func ScenariosIn(vs ...string) predicate.Machine { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Machine(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.In(s.C(FieldScenarios), v...)) }) } // ScenariosNotIn applies the NotIn predicate on the "scenarios" field. func ScenariosNotIn(vs ...string) predicate.Machine { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Machine(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.NotIn(s.C(FieldScenarios), v...)) }) } @@ -1011,34 +903,22 @@ func VersionNEQ(v string) predicate.Machine { // VersionIn applies the In predicate on the "version" field. func VersionIn(vs ...string) predicate.Machine { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Machine(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.In(s.C(FieldVersion), v...)) }) } // VersionNotIn applies the NotIn predicate on the "version" field. func VersionNotIn(vs ...string) predicate.Machine { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Machine(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.NotIn(s.C(FieldVersion), v...)) }) } @@ -1150,34 +1030,22 @@ func StatusNEQ(v string) predicate.Machine { // StatusIn applies the In predicate on the "status" field. func StatusIn(vs ...string) predicate.Machine { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Machine(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.In(s.C(FieldStatus), v...)) }) } // StatusNotIn applies the NotIn predicate on the "status" field. func StatusNotIn(vs ...string) predicate.Machine { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Machine(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.NotIn(s.C(FieldStatus), v...)) }) } @@ -1275,34 +1143,22 @@ func AuthTypeNEQ(v string) predicate.Machine { // AuthTypeIn applies the In predicate on the "auth_type" field. func AuthTypeIn(vs ...string) predicate.Machine { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Machine(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.In(s.C(FieldAuthType), v...)) }) } // AuthTypeNotIn applies the NotIn predicate on the "auth_type" field. func AuthTypeNotIn(vs ...string) predicate.Machine { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Machine(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.NotIn(s.C(FieldAuthType), v...)) }) } diff --git a/pkg/database/ent/machine_create.go b/pkg/database/ent/machine_create.go index 3f0369050..efe02782f 100644 --- a/pkg/database/ent/machine_create.go +++ b/pkg/database/ent/machine_create.go @@ -1,4 +1,4 @@ -// Code generated by entc, DO NOT EDIT. +// Code generated by ent, DO NOT EDIT. package ent @@ -220,9 +220,15 @@ func (mc *MachineCreate) Save(ctx context.Context) (*Machine, error) { } mut = mc.hooks[i](mut) } - if _, err := mut.Mutate(ctx, mc.mutation); err != nil { + v, err := mut.Mutate(ctx, mc.mutation) + if err != nil { return nil, err } + nv, ok := v.(*Machine) + if !ok { + return nil, fmt.Errorf("unexpected node type %T returned from MachineMutation", v) + } + node = nv } return node, err } @@ -306,7 +312,7 @@ func (mc *MachineCreate) sqlSave(ctx context.Context) (*Machine, error) { _node, _spec := mc.createSpec() if err := sqlgraph.CreateNode(ctx, mc.driver, _spec); err != nil { if sqlgraph.IsConstraintError(err) { - err = &ConstraintError{err.Error(), err} + err = &ConstraintError{msg: err.Error(), wrap: err} } return nil, err } @@ -477,7 +483,7 @@ func (mcb *MachineCreateBulk) Save(ctx context.Context) ([]*Machine, error) { // Invoke the actual operation on the latest mutation in the chain. if err = sqlgraph.BatchCreate(ctx, mcb.driver, spec); err != nil { if sqlgraph.IsConstraintError(err) { - err = &ConstraintError{err.Error(), err} + err = &ConstraintError{msg: err.Error(), wrap: err} } } } @@ -485,11 +491,11 @@ func (mcb *MachineCreateBulk) Save(ctx context.Context) ([]*Machine, error) { return nil, err } mutation.id = &nodes[i].ID - mutation.done = true if specs[i].ID.Value != nil { id := specs[i].ID.Value.(int64) nodes[i].ID = int(id) } + mutation.done = true return nodes[i], nil }) for i := len(builder.hooks) - 1; i >= 0; i-- { diff --git a/pkg/database/ent/machine_delete.go b/pkg/database/ent/machine_delete.go index 004eda303..bead8acb4 100644 --- a/pkg/database/ent/machine_delete.go +++ b/pkg/database/ent/machine_delete.go @@ -1,4 +1,4 @@ -// Code generated by entc, DO NOT EDIT. +// Code generated by ent, DO NOT EDIT. package ent @@ -84,7 +84,11 @@ func (md *MachineDelete) sqlExec(ctx context.Context) (int, error) { } } } - return sqlgraph.DeleteNodes(ctx, md.driver, _spec) + affected, err := sqlgraph.DeleteNodes(ctx, md.driver, _spec) + if err != nil && sqlgraph.IsConstraintError(err) { + err = &ConstraintError{msg: err.Error(), wrap: err} + } + return affected, err } // MachineDeleteOne is the builder for deleting a single Machine entity. diff --git a/pkg/database/ent/machine_query.go b/pkg/database/ent/machine_query.go index b899f7d09..283914219 100644 --- a/pkg/database/ent/machine_query.go +++ b/pkg/database/ent/machine_query.go @@ -1,11 +1,10 @@ -// Code generated by entc, DO NOT EDIT. +// Code generated by ent, DO NOT EDIT. package ent import ( "context" "database/sql/driver" - "errors" "fmt" "math" @@ -26,7 +25,6 @@ type MachineQuery struct { order []OrderFunc fields []string predicates []predicate.Machine - // eager-loading edges. withAlerts *AlertQuery // intermediate query (i.e. traversal path). sql *sql.Selector @@ -300,17 +298,18 @@ func (mq *MachineQuery) WithAlerts(opts ...func(*AlertQuery)) *MachineQuery { // GroupBy(machine.FieldCreatedAt). // Aggregate(ent.Count()). // Scan(ctx, &v) -// func (mq *MachineQuery) GroupBy(field string, fields ...string) *MachineGroupBy { - group := &MachineGroupBy{config: mq.config} - group.fields = append([]string{field}, fields...) - group.path = func(ctx context.Context) (prev *sql.Selector, err error) { + grbuild := &MachineGroupBy{config: mq.config} + grbuild.fields = append([]string{field}, fields...) + grbuild.path = func(ctx context.Context) (prev *sql.Selector, err error) { if err := mq.prepareQuery(ctx); err != nil { return nil, err } return mq.sqlQuery(ctx), nil } - return group + grbuild.label = machine.Label + grbuild.flds, grbuild.scan = &grbuild.fields, grbuild.Scan + return grbuild } // Select allows the selection one or more fields/columns for the given query, @@ -325,10 +324,12 @@ func (mq *MachineQuery) GroupBy(field string, fields ...string) *MachineGroupBy // client.Machine.Query(). // Select(machine.FieldCreatedAt). // Scan(ctx, &v) -// func (mq *MachineQuery) Select(fields ...string) *MachineSelect { mq.fields = append(mq.fields, fields...) - return &MachineSelect{MachineQuery: mq} + selbuild := &MachineSelect{MachineQuery: mq} + selbuild.label = machine.Label + selbuild.flds, selbuild.scan = &mq.fields, selbuild.Scan + return selbuild } func (mq *MachineQuery) prepareQuery(ctx context.Context) error { @@ -347,7 +348,7 @@ func (mq *MachineQuery) prepareQuery(ctx context.Context) error { return nil } -func (mq *MachineQuery) sqlAll(ctx context.Context) ([]*Machine, error) { +func (mq *MachineQuery) sqlAll(ctx context.Context, hooks ...queryHook) ([]*Machine, error) { var ( nodes = []*Machine{} _spec = mq.querySpec() @@ -355,56 +356,64 @@ func (mq *MachineQuery) sqlAll(ctx context.Context) ([]*Machine, error) { mq.withAlerts != nil, } ) - _spec.ScanValues = func(columns []string) ([]interface{}, error) { + _spec.ScanValues = func(columns []string) ([]any, error) { + return (*Machine).scanValues(nil, columns) + } + _spec.Assign = func(columns []string, values []any) error { node := &Machine{config: mq.config} nodes = append(nodes, node) - return node.scanValues(columns) - } - _spec.Assign = func(columns []string, values []interface{}) error { - if len(nodes) == 0 { - return fmt.Errorf("ent: Assign called without calling ScanValues") - } - node := nodes[len(nodes)-1] node.Edges.loadedTypes = loadedTypes return node.assignValues(columns, values) } + for i := range hooks { + hooks[i](ctx, _spec) + } if err := sqlgraph.QueryNodes(ctx, mq.driver, _spec); err != nil { return nil, err } if len(nodes) == 0 { return nodes, nil } - if query := mq.withAlerts; query != nil { - fks := make([]driver.Value, 0, len(nodes)) - nodeids := make(map[int]*Machine) - for i := range nodes { - fks = append(fks, nodes[i].ID) - nodeids[nodes[i].ID] = nodes[i] - nodes[i].Edges.Alerts = []*Alert{} - } - query.withFKs = true - query.Where(predicate.Alert(func(s *sql.Selector) { - s.Where(sql.InValues(machine.AlertsColumn, fks...)) - })) - neighbors, err := query.All(ctx) - if err != nil { + if err := mq.loadAlerts(ctx, query, nodes, + func(n *Machine) { n.Edges.Alerts = []*Alert{} }, + func(n *Machine, e *Alert) { n.Edges.Alerts = append(n.Edges.Alerts, e) }); err != nil { return nil, err } - for _, n := range neighbors { - fk := n.machine_alerts - if fk == nil { - return nil, fmt.Errorf(`foreign-key "machine_alerts" is nil for node %v`, n.ID) - } - node, ok := nodeids[*fk] - if !ok { - return nil, fmt.Errorf(`unexpected foreign-key "machine_alerts" returned %v for node %v`, *fk, n.ID) - } - node.Edges.Alerts = append(node.Edges.Alerts, n) + } + return nodes, nil +} + +func (mq *MachineQuery) loadAlerts(ctx context.Context, query *AlertQuery, nodes []*Machine, init func(*Machine), assign func(*Machine, *Alert)) error { + fks := make([]driver.Value, 0, len(nodes)) + nodeids := make(map[int]*Machine) + for i := range nodes { + fks = append(fks, nodes[i].ID) + nodeids[nodes[i].ID] = nodes[i] + if init != nil { + init(nodes[i]) } } - - return nodes, nil + query.withFKs = true + query.Where(predicate.Alert(func(s *sql.Selector) { + s.Where(sql.InValues(machine.AlertsColumn, fks...)) + })) + neighbors, err := query.All(ctx) + if err != nil { + return err + } + for _, n := range neighbors { + fk := n.machine_alerts + if fk == nil { + return fmt.Errorf(`foreign-key "machine_alerts" is nil for node %v`, n.ID) + } + node, ok := nodeids[*fk] + if !ok { + return fmt.Errorf(`unexpected foreign-key "machine_alerts" returned %v for node %v`, *fk, n.ID) + } + assign(node, n) + } + return nil } func (mq *MachineQuery) sqlCount(ctx context.Context) (int, error) { @@ -417,11 +426,14 @@ func (mq *MachineQuery) sqlCount(ctx context.Context) (int, error) { } func (mq *MachineQuery) sqlExist(ctx context.Context) (bool, error) { - n, err := mq.sqlCount(ctx) - if err != nil { + switch _, err := mq.FirstID(ctx); { + case IsNotFound(err): + return false, nil + case err != nil: return false, fmt.Errorf("ent: check existence: %w", err) + default: + return true, nil } - return n > 0, nil } func (mq *MachineQuery) querySpec() *sqlgraph.QuerySpec { @@ -507,6 +519,7 @@ func (mq *MachineQuery) sqlQuery(ctx context.Context) *sql.Selector { // MachineGroupBy is the group-by builder for Machine entities. type MachineGroupBy struct { config + selector fields []string fns []AggregateFunc // intermediate query (i.e. traversal path). @@ -521,7 +534,7 @@ func (mgb *MachineGroupBy) Aggregate(fns ...AggregateFunc) *MachineGroupBy { } // Scan applies the group-by query and scans the result into the given value. -func (mgb *MachineGroupBy) Scan(ctx context.Context, v interface{}) error { +func (mgb *MachineGroupBy) Scan(ctx context.Context, v any) error { query, err := mgb.path(ctx) if err != nil { return err @@ -530,210 +543,7 @@ func (mgb *MachineGroupBy) Scan(ctx context.Context, v interface{}) error { return mgb.sqlScan(ctx, v) } -// ScanX is like Scan, but panics if an error occurs. -func (mgb *MachineGroupBy) ScanX(ctx context.Context, v interface{}) { - if err := mgb.Scan(ctx, v); err != nil { - panic(err) - } -} - -// Strings returns list of strings from group-by. -// It is only allowed when executing a group-by query with one field. -func (mgb *MachineGroupBy) Strings(ctx context.Context) ([]string, error) { - if len(mgb.fields) > 1 { - return nil, errors.New("ent: MachineGroupBy.Strings is not achievable when grouping more than 1 field") - } - var v []string - if err := mgb.Scan(ctx, &v); err != nil { - return nil, err - } - return v, nil -} - -// StringsX is like Strings, but panics if an error occurs. -func (mgb *MachineGroupBy) StringsX(ctx context.Context) []string { - v, err := mgb.Strings(ctx) - if err != nil { - panic(err) - } - return v -} - -// String returns a single string from a group-by query. -// It is only allowed when executing a group-by query with one field. -func (mgb *MachineGroupBy) String(ctx context.Context) (_ string, err error) { - var v []string - if v, err = mgb.Strings(ctx); err != nil { - return - } - switch len(v) { - case 1: - return v[0], nil - case 0: - err = &NotFoundError{machine.Label} - default: - err = fmt.Errorf("ent: MachineGroupBy.Strings returned %d results when one was expected", len(v)) - } - return -} - -// StringX is like String, but panics if an error occurs. -func (mgb *MachineGroupBy) StringX(ctx context.Context) string { - v, err := mgb.String(ctx) - if err != nil { - panic(err) - } - return v -} - -// Ints returns list of ints from group-by. -// It is only allowed when executing a group-by query with one field. -func (mgb *MachineGroupBy) Ints(ctx context.Context) ([]int, error) { - if len(mgb.fields) > 1 { - return nil, errors.New("ent: MachineGroupBy.Ints is not achievable when grouping more than 1 field") - } - var v []int - if err := mgb.Scan(ctx, &v); err != nil { - return nil, err - } - return v, nil -} - -// IntsX is like Ints, but panics if an error occurs. -func (mgb *MachineGroupBy) IntsX(ctx context.Context) []int { - v, err := mgb.Ints(ctx) - if err != nil { - panic(err) - } - return v -} - -// Int returns a single int from a group-by query. -// It is only allowed when executing a group-by query with one field. -func (mgb *MachineGroupBy) Int(ctx context.Context) (_ int, err error) { - var v []int - if v, err = mgb.Ints(ctx); err != nil { - return - } - switch len(v) { - case 1: - return v[0], nil - case 0: - err = &NotFoundError{machine.Label} - default: - err = fmt.Errorf("ent: MachineGroupBy.Ints returned %d results when one was expected", len(v)) - } - return -} - -// IntX is like Int, but panics if an error occurs. -func (mgb *MachineGroupBy) IntX(ctx context.Context) int { - v, err := mgb.Int(ctx) - if err != nil { - panic(err) - } - return v -} - -// Float64s returns list of float64s from group-by. -// It is only allowed when executing a group-by query with one field. -func (mgb *MachineGroupBy) Float64s(ctx context.Context) ([]float64, error) { - if len(mgb.fields) > 1 { - return nil, errors.New("ent: MachineGroupBy.Float64s is not achievable when grouping more than 1 field") - } - var v []float64 - if err := mgb.Scan(ctx, &v); err != nil { - return nil, err - } - return v, nil -} - -// Float64sX is like Float64s, but panics if an error occurs. -func (mgb *MachineGroupBy) Float64sX(ctx context.Context) []float64 { - v, err := mgb.Float64s(ctx) - if err != nil { - panic(err) - } - return v -} - -// Float64 returns a single float64 from a group-by query. -// It is only allowed when executing a group-by query with one field. -func (mgb *MachineGroupBy) Float64(ctx context.Context) (_ float64, err error) { - var v []float64 - if v, err = mgb.Float64s(ctx); err != nil { - return - } - switch len(v) { - case 1: - return v[0], nil - case 0: - err = &NotFoundError{machine.Label} - default: - err = fmt.Errorf("ent: MachineGroupBy.Float64s returned %d results when one was expected", len(v)) - } - return -} - -// Float64X is like Float64, but panics if an error occurs. -func (mgb *MachineGroupBy) Float64X(ctx context.Context) float64 { - v, err := mgb.Float64(ctx) - if err != nil { - panic(err) - } - return v -} - -// Bools returns list of bools from group-by. -// It is only allowed when executing a group-by query with one field. -func (mgb *MachineGroupBy) Bools(ctx context.Context) ([]bool, error) { - if len(mgb.fields) > 1 { - return nil, errors.New("ent: MachineGroupBy.Bools is not achievable when grouping more than 1 field") - } - var v []bool - if err := mgb.Scan(ctx, &v); err != nil { - return nil, err - } - return v, nil -} - -// BoolsX is like Bools, but panics if an error occurs. -func (mgb *MachineGroupBy) BoolsX(ctx context.Context) []bool { - v, err := mgb.Bools(ctx) - if err != nil { - panic(err) - } - return v -} - -// Bool returns a single bool from a group-by query. -// It is only allowed when executing a group-by query with one field. -func (mgb *MachineGroupBy) Bool(ctx context.Context) (_ bool, err error) { - var v []bool - if v, err = mgb.Bools(ctx); err != nil { - return - } - switch len(v) { - case 1: - return v[0], nil - case 0: - err = &NotFoundError{machine.Label} - default: - err = fmt.Errorf("ent: MachineGroupBy.Bools returned %d results when one was expected", len(v)) - } - return -} - -// BoolX is like Bool, but panics if an error occurs. -func (mgb *MachineGroupBy) BoolX(ctx context.Context) bool { - v, err := mgb.Bool(ctx) - if err != nil { - panic(err) - } - return v -} - -func (mgb *MachineGroupBy) sqlScan(ctx context.Context, v interface{}) error { +func (mgb *MachineGroupBy) sqlScan(ctx context.Context, v any) error { for _, f := range mgb.fields { if !machine.ValidColumn(f) { return &ValidationError{Name: f, err: fmt.Errorf("invalid field %q for group-by", f)} @@ -774,12 +584,13 @@ func (mgb *MachineGroupBy) sqlQuery() *sql.Selector { // MachineSelect is the builder for selecting fields of Machine entities. type MachineSelect struct { *MachineQuery + selector // intermediate query (i.e. traversal path). sql *sql.Selector } // Scan applies the selector query and scans the result into the given value. -func (ms *MachineSelect) Scan(ctx context.Context, v interface{}) error { +func (ms *MachineSelect) Scan(ctx context.Context, v any) error { if err := ms.prepareQuery(ctx); err != nil { return err } @@ -787,202 +598,7 @@ func (ms *MachineSelect) Scan(ctx context.Context, v interface{}) error { return ms.sqlScan(ctx, v) } -// ScanX is like Scan, but panics if an error occurs. -func (ms *MachineSelect) ScanX(ctx context.Context, v interface{}) { - if err := ms.Scan(ctx, v); err != nil { - panic(err) - } -} - -// Strings returns list of strings from a selector. It is only allowed when selecting one field. -func (ms *MachineSelect) Strings(ctx context.Context) ([]string, error) { - if len(ms.fields) > 1 { - return nil, errors.New("ent: MachineSelect.Strings is not achievable when selecting more than 1 field") - } - var v []string - if err := ms.Scan(ctx, &v); err != nil { - return nil, err - } - return v, nil -} - -// StringsX is like Strings, but panics if an error occurs. -func (ms *MachineSelect) StringsX(ctx context.Context) []string { - v, err := ms.Strings(ctx) - if err != nil { - panic(err) - } - return v -} - -// String returns a single string from a selector. It is only allowed when selecting one field. -func (ms *MachineSelect) String(ctx context.Context) (_ string, err error) { - var v []string - if v, err = ms.Strings(ctx); err != nil { - return - } - switch len(v) { - case 1: - return v[0], nil - case 0: - err = &NotFoundError{machine.Label} - default: - err = fmt.Errorf("ent: MachineSelect.Strings returned %d results when one was expected", len(v)) - } - return -} - -// StringX is like String, but panics if an error occurs. -func (ms *MachineSelect) StringX(ctx context.Context) string { - v, err := ms.String(ctx) - if err != nil { - panic(err) - } - return v -} - -// Ints returns list of ints from a selector. It is only allowed when selecting one field. -func (ms *MachineSelect) Ints(ctx context.Context) ([]int, error) { - if len(ms.fields) > 1 { - return nil, errors.New("ent: MachineSelect.Ints is not achievable when selecting more than 1 field") - } - var v []int - if err := ms.Scan(ctx, &v); err != nil { - return nil, err - } - return v, nil -} - -// IntsX is like Ints, but panics if an error occurs. -func (ms *MachineSelect) IntsX(ctx context.Context) []int { - v, err := ms.Ints(ctx) - if err != nil { - panic(err) - } - return v -} - -// Int returns a single int from a selector. It is only allowed when selecting one field. -func (ms *MachineSelect) Int(ctx context.Context) (_ int, err error) { - var v []int - if v, err = ms.Ints(ctx); err != nil { - return - } - switch len(v) { - case 1: - return v[0], nil - case 0: - err = &NotFoundError{machine.Label} - default: - err = fmt.Errorf("ent: MachineSelect.Ints returned %d results when one was expected", len(v)) - } - return -} - -// IntX is like Int, but panics if an error occurs. -func (ms *MachineSelect) IntX(ctx context.Context) int { - v, err := ms.Int(ctx) - if err != nil { - panic(err) - } - return v -} - -// Float64s returns list of float64s from a selector. It is only allowed when selecting one field. -func (ms *MachineSelect) Float64s(ctx context.Context) ([]float64, error) { - if len(ms.fields) > 1 { - return nil, errors.New("ent: MachineSelect.Float64s is not achievable when selecting more than 1 field") - } - var v []float64 - if err := ms.Scan(ctx, &v); err != nil { - return nil, err - } - return v, nil -} - -// Float64sX is like Float64s, but panics if an error occurs. -func (ms *MachineSelect) Float64sX(ctx context.Context) []float64 { - v, err := ms.Float64s(ctx) - if err != nil { - panic(err) - } - return v -} - -// Float64 returns a single float64 from a selector. It is only allowed when selecting one field. -func (ms *MachineSelect) Float64(ctx context.Context) (_ float64, err error) { - var v []float64 - if v, err = ms.Float64s(ctx); err != nil { - return - } - switch len(v) { - case 1: - return v[0], nil - case 0: - err = &NotFoundError{machine.Label} - default: - err = fmt.Errorf("ent: MachineSelect.Float64s returned %d results when one was expected", len(v)) - } - return -} - -// Float64X is like Float64, but panics if an error occurs. -func (ms *MachineSelect) Float64X(ctx context.Context) float64 { - v, err := ms.Float64(ctx) - if err != nil { - panic(err) - } - return v -} - -// Bools returns list of bools from a selector. It is only allowed when selecting one field. -func (ms *MachineSelect) Bools(ctx context.Context) ([]bool, error) { - if len(ms.fields) > 1 { - return nil, errors.New("ent: MachineSelect.Bools is not achievable when selecting more than 1 field") - } - var v []bool - if err := ms.Scan(ctx, &v); err != nil { - return nil, err - } - return v, nil -} - -// BoolsX is like Bools, but panics if an error occurs. -func (ms *MachineSelect) BoolsX(ctx context.Context) []bool { - v, err := ms.Bools(ctx) - if err != nil { - panic(err) - } - return v -} - -// Bool returns a single bool from a selector. It is only allowed when selecting one field. -func (ms *MachineSelect) Bool(ctx context.Context) (_ bool, err error) { - var v []bool - if v, err = ms.Bools(ctx); err != nil { - return - } - switch len(v) { - case 1: - return v[0], nil - case 0: - err = &NotFoundError{machine.Label} - default: - err = fmt.Errorf("ent: MachineSelect.Bools returned %d results when one was expected", len(v)) - } - return -} - -// BoolX is like Bool, but panics if an error occurs. -func (ms *MachineSelect) BoolX(ctx context.Context) bool { - v, err := ms.Bool(ctx) - if err != nil { - panic(err) - } - return v -} - -func (ms *MachineSelect) sqlScan(ctx context.Context, v interface{}) error { +func (ms *MachineSelect) sqlScan(ctx context.Context, v any) error { rows := &sql.Rows{} query, args := ms.sql.Query() if err := ms.driver.Query(ctx, query, args, rows); err != nil { diff --git a/pkg/database/ent/machine_update.go b/pkg/database/ent/machine_update.go index afdb89a8f..de9f8d124 100644 --- a/pkg/database/ent/machine_update.go +++ b/pkg/database/ent/machine_update.go @@ -1,4 +1,4 @@ -// Code generated by entc, DO NOT EDIT. +// Code generated by ent, DO NOT EDIT. package ent @@ -517,7 +517,7 @@ func (mu *MachineUpdate) sqlSave(ctx context.Context) (n int, err error) { if _, ok := err.(*sqlgraph.NotFoundError); ok { err = &NotFoundError{machine.Label} } else if sqlgraph.IsConstraintError(err) { - err = &ConstraintError{err.Error(), err} + err = &ConstraintError{msg: err.Error(), wrap: err} } return 0, err } @@ -766,9 +766,15 @@ func (muo *MachineUpdateOne) Save(ctx context.Context) (*Machine, error) { } mut = muo.hooks[i](mut) } - if _, err := mut.Mutate(ctx, muo.mutation); err != nil { + v, err := mut.Mutate(ctx, muo.mutation) + if err != nil { return nil, err } + nv, ok := v.(*Machine) + if !ok { + return nil, fmt.Errorf("unexpected node type %T returned from MachineMutation", v) + } + node = nv } return node, err } @@ -1047,7 +1053,7 @@ func (muo *MachineUpdateOne) sqlSave(ctx context.Context) (_node *Machine, err e if _, ok := err.(*sqlgraph.NotFoundError); ok { err = &NotFoundError{machine.Label} } else if sqlgraph.IsConstraintError(err) { - err = &ConstraintError{err.Error(), err} + err = &ConstraintError{msg: err.Error(), wrap: err} } return nil, err } diff --git a/pkg/database/ent/meta.go b/pkg/database/ent/meta.go index de06a0711..ee2082dab 100644 --- a/pkg/database/ent/meta.go +++ b/pkg/database/ent/meta.go @@ -1,4 +1,4 @@ -// Code generated by entc, DO NOT EDIT. +// Code generated by ent, DO NOT EDIT. package ent @@ -45,8 +45,7 @@ type MetaEdges struct { func (e MetaEdges) OwnerOrErr() (*Alert, error) { if e.loadedTypes[0] { if e.Owner == nil { - // The edge owner was loaded in eager-loading, - // but was not found. + // Edge was loaded but was not found. return nil, &NotFoundError{label: alert.Label} } return e.Owner, nil @@ -55,8 +54,8 @@ func (e MetaEdges) OwnerOrErr() (*Alert, error) { } // scanValues returns the types for scanning values from sql.Rows. -func (*Meta) scanValues(columns []string) ([]interface{}, error) { - values := make([]interface{}, len(columns)) +func (*Meta) scanValues(columns []string) ([]any, error) { + values := make([]any, len(columns)) for i := range columns { switch columns[i] { case meta.FieldID: @@ -76,7 +75,7 @@ func (*Meta) scanValues(columns []string) ([]interface{}, error) { // assignValues assigns the values that were returned from sql.Rows (after scanning) // to the Meta fields. -func (m *Meta) assignValues(columns []string, values []interface{}) error { +func (m *Meta) assignValues(columns []string, values []any) error { if m, n := len(values), len(columns); m < n { return fmt.Errorf("mismatch number of scan values: %d != %d", m, n) } @@ -141,11 +140,11 @@ func (m *Meta) Update() *MetaUpdateOne { // Unwrap unwraps the Meta entity that was returned from a transaction after it was closed, // so that all future queries will be executed through the driver which created the transaction. func (m *Meta) Unwrap() *Meta { - tx, ok := m.config.driver.(*txDriver) + _tx, ok := m.config.driver.(*txDriver) if !ok { panic("ent: Meta is not a transactional entity") } - m.config.driver = tx.drv + m.config.driver = _tx.drv return m } @@ -153,18 +152,21 @@ func (m *Meta) Unwrap() *Meta { func (m *Meta) String() string { var builder strings.Builder builder.WriteString("Meta(") - builder.WriteString(fmt.Sprintf("id=%v", m.ID)) + builder.WriteString(fmt.Sprintf("id=%v, ", m.ID)) if v := m.CreatedAt; v != nil { - builder.WriteString(", created_at=") + builder.WriteString("created_at=") builder.WriteString(v.Format(time.ANSIC)) } + builder.WriteString(", ") if v := m.UpdatedAt; v != nil { - builder.WriteString(", updated_at=") + builder.WriteString("updated_at=") builder.WriteString(v.Format(time.ANSIC)) } - builder.WriteString(", key=") + builder.WriteString(", ") + builder.WriteString("key=") builder.WriteString(m.Key) - builder.WriteString(", value=") + builder.WriteString(", ") + builder.WriteString("value=") builder.WriteString(m.Value) builder.WriteByte(')') return builder.String() diff --git a/pkg/database/ent/meta/meta.go b/pkg/database/ent/meta/meta.go index fdac57d6b..5fea86c81 100644 --- a/pkg/database/ent/meta/meta.go +++ b/pkg/database/ent/meta/meta.go @@ -1,4 +1,4 @@ -// Code generated by entc, DO NOT EDIT. +// Code generated by ent, DO NOT EDIT. package meta diff --git a/pkg/database/ent/meta/where.go b/pkg/database/ent/meta/where.go index 5c0b76af0..9938e9a6d 100644 --- a/pkg/database/ent/meta/where.go +++ b/pkg/database/ent/meta/where.go @@ -1,4 +1,4 @@ -// Code generated by entc, DO NOT EDIT. +// Code generated by ent, DO NOT EDIT. package meta @@ -34,13 +34,7 @@ func IDNEQ(id int) predicate.Meta { // IDIn applies the In predicate on the ID field. func IDIn(ids ...int) predicate.Meta { return predicate.Meta(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(ids) == 0 { - s.Where(sql.False()) - return - } - v := make([]interface{}, len(ids)) + v := make([]any, len(ids)) for i := range v { v[i] = ids[i] } @@ -51,13 +45,7 @@ func IDIn(ids ...int) predicate.Meta { // IDNotIn applies the NotIn predicate on the ID field. func IDNotIn(ids ...int) predicate.Meta { return predicate.Meta(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(ids) == 0 { - s.Where(sql.False()) - return - } - v := make([]interface{}, len(ids)) + v := make([]any, len(ids)) for i := range v { v[i] = ids[i] } @@ -137,34 +125,22 @@ func CreatedAtNEQ(v time.Time) predicate.Meta { // CreatedAtIn applies the In predicate on the "created_at" field. func CreatedAtIn(vs ...time.Time) predicate.Meta { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Meta(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.In(s.C(FieldCreatedAt), v...)) }) } // CreatedAtNotIn applies the NotIn predicate on the "created_at" field. func CreatedAtNotIn(vs ...time.Time) predicate.Meta { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Meta(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.NotIn(s.C(FieldCreatedAt), v...)) }) } @@ -227,34 +203,22 @@ func UpdatedAtNEQ(v time.Time) predicate.Meta { // UpdatedAtIn applies the In predicate on the "updated_at" field. func UpdatedAtIn(vs ...time.Time) predicate.Meta { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Meta(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.In(s.C(FieldUpdatedAt), v...)) }) } // UpdatedAtNotIn applies the NotIn predicate on the "updated_at" field. func UpdatedAtNotIn(vs ...time.Time) predicate.Meta { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Meta(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.NotIn(s.C(FieldUpdatedAt), v...)) }) } @@ -317,34 +281,22 @@ func KeyNEQ(v string) predicate.Meta { // KeyIn applies the In predicate on the "key" field. func KeyIn(vs ...string) predicate.Meta { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Meta(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.In(s.C(FieldKey), v...)) }) } // KeyNotIn applies the NotIn predicate on the "key" field. func KeyNotIn(vs ...string) predicate.Meta { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Meta(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.NotIn(s.C(FieldKey), v...)) }) } @@ -428,34 +380,22 @@ func ValueNEQ(v string) predicate.Meta { // ValueIn applies the In predicate on the "value" field. func ValueIn(vs ...string) predicate.Meta { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Meta(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.In(s.C(FieldValue), v...)) }) } // ValueNotIn applies the NotIn predicate on the "value" field. func ValueNotIn(vs ...string) predicate.Meta { - v := make([]interface{}, len(vs)) + v := make([]any, len(vs)) for i := range v { v[i] = vs[i] } return predicate.Meta(func(s *sql.Selector) { - // if not arguments were provided, append the FALSE constants, - // since we can't apply "IN ()". This will make this predicate falsy. - if len(v) == 0 { - s.Where(sql.False()) - return - } s.Where(sql.NotIn(s.C(FieldValue), v...)) }) } diff --git a/pkg/database/ent/meta_create.go b/pkg/database/ent/meta_create.go index 8830cfbb3..cb7c6fcba 100644 --- a/pkg/database/ent/meta_create.go +++ b/pkg/database/ent/meta_create.go @@ -1,4 +1,4 @@ -// Code generated by entc, DO NOT EDIT. +// Code generated by ent, DO NOT EDIT. package ent @@ -120,9 +120,15 @@ func (mc *MetaCreate) Save(ctx context.Context) (*Meta, error) { } mut = mc.hooks[i](mut) } - if _, err := mut.Mutate(ctx, mc.mutation); err != nil { + v, err := mut.Mutate(ctx, mc.mutation) + if err != nil { return nil, err } + nv, ok := v.(*Meta) + if !ok { + return nil, fmt.Errorf("unexpected node type %T returned from MetaMutation", v) + } + node = nv } return node, err } @@ -181,7 +187,7 @@ func (mc *MetaCreate) sqlSave(ctx context.Context) (*Meta, error) { _node, _spec := mc.createSpec() if err := sqlgraph.CreateNode(ctx, mc.driver, _spec); err != nil { if sqlgraph.IsConstraintError(err) { - err = &ConstraintError{err.Error(), err} + err = &ConstraintError{msg: err.Error(), wrap: err} } return nil, err } @@ -289,7 +295,7 @@ func (mcb *MetaCreateBulk) Save(ctx context.Context) ([]*Meta, error) { // Invoke the actual operation on the latest mutation in the chain. if err = sqlgraph.BatchCreate(ctx, mcb.driver, spec); err != nil { if sqlgraph.IsConstraintError(err) { - err = &ConstraintError{err.Error(), err} + err = &ConstraintError{msg: err.Error(), wrap: err} } } } @@ -297,11 +303,11 @@ func (mcb *MetaCreateBulk) Save(ctx context.Context) ([]*Meta, error) { return nil, err } mutation.id = &nodes[i].ID - mutation.done = true if specs[i].ID.Value != nil { id := specs[i].ID.Value.(int64) nodes[i].ID = int(id) } + mutation.done = true return nodes[i], nil }) for i := len(builder.hooks) - 1; i >= 0; i-- { diff --git a/pkg/database/ent/meta_delete.go b/pkg/database/ent/meta_delete.go index c51d5ad20..e1e49d2ac 100644 --- a/pkg/database/ent/meta_delete.go +++ b/pkg/database/ent/meta_delete.go @@ -1,4 +1,4 @@ -// Code generated by entc, DO NOT EDIT. +// Code generated by ent, DO NOT EDIT. package ent @@ -84,7 +84,11 @@ func (md *MetaDelete) sqlExec(ctx context.Context) (int, error) { } } } - return sqlgraph.DeleteNodes(ctx, md.driver, _spec) + affected, err := sqlgraph.DeleteNodes(ctx, md.driver, _spec) + if err != nil && sqlgraph.IsConstraintError(err) { + err = &ConstraintError{msg: err.Error(), wrap: err} + } + return affected, err } // MetaDeleteOne is the builder for deleting a single Meta entity. diff --git a/pkg/database/ent/meta_query.go b/pkg/database/ent/meta_query.go index 2dc38c20f..96c7721e7 100644 --- a/pkg/database/ent/meta_query.go +++ b/pkg/database/ent/meta_query.go @@ -1,10 +1,9 @@ -// Code generated by entc, DO NOT EDIT. +// Code generated by ent, DO NOT EDIT. package ent import ( "context" - "errors" "fmt" "math" @@ -25,9 +24,8 @@ type MetaQuery struct { order []OrderFunc fields []string predicates []predicate.Meta - // eager-loading edges. - withOwner *AlertQuery - withFKs bool + withOwner *AlertQuery + withFKs bool // intermediate query (i.e. traversal path). sql *sql.Selector path func(context.Context) (*sql.Selector, error) @@ -300,17 +298,18 @@ func (mq *MetaQuery) WithOwner(opts ...func(*AlertQuery)) *MetaQuery { // GroupBy(meta.FieldCreatedAt). // Aggregate(ent.Count()). // Scan(ctx, &v) -// func (mq *MetaQuery) GroupBy(field string, fields ...string) *MetaGroupBy { - group := &MetaGroupBy{config: mq.config} - group.fields = append([]string{field}, fields...) - group.path = func(ctx context.Context) (prev *sql.Selector, err error) { + grbuild := &MetaGroupBy{config: mq.config} + grbuild.fields = append([]string{field}, fields...) + grbuild.path = func(ctx context.Context) (prev *sql.Selector, err error) { if err := mq.prepareQuery(ctx); err != nil { return nil, err } return mq.sqlQuery(ctx), nil } - return group + grbuild.label = meta.Label + grbuild.flds, grbuild.scan = &grbuild.fields, grbuild.Scan + return grbuild } // Select allows the selection one or more fields/columns for the given query, @@ -325,10 +324,12 @@ func (mq *MetaQuery) GroupBy(field string, fields ...string) *MetaGroupBy { // client.Meta.Query(). // Select(meta.FieldCreatedAt). // Scan(ctx, &v) -// func (mq *MetaQuery) Select(fields ...string) *MetaSelect { mq.fields = append(mq.fields, fields...) - return &MetaSelect{MetaQuery: mq} + selbuild := &MetaSelect{MetaQuery: mq} + selbuild.label = meta.Label + selbuild.flds, selbuild.scan = &mq.fields, selbuild.Scan + return selbuild } func (mq *MetaQuery) prepareQuery(ctx context.Context) error { @@ -347,7 +348,7 @@ func (mq *MetaQuery) prepareQuery(ctx context.Context) error { return nil } -func (mq *MetaQuery) sqlAll(ctx context.Context) ([]*Meta, error) { +func (mq *MetaQuery) sqlAll(ctx context.Context, hooks ...queryHook) ([]*Meta, error) { var ( nodes = []*Meta{} withFKs = mq.withFKs @@ -362,56 +363,61 @@ func (mq *MetaQuery) sqlAll(ctx context.Context) ([]*Meta, error) { if withFKs { _spec.Node.Columns = append(_spec.Node.Columns, meta.ForeignKeys...) } - _spec.ScanValues = func(columns []string) ([]interface{}, error) { + _spec.ScanValues = func(columns []string) ([]any, error) { + return (*Meta).scanValues(nil, columns) + } + _spec.Assign = func(columns []string, values []any) error { node := &Meta{config: mq.config} nodes = append(nodes, node) - return node.scanValues(columns) - } - _spec.Assign = func(columns []string, values []interface{}) error { - if len(nodes) == 0 { - return fmt.Errorf("ent: Assign called without calling ScanValues") - } - node := nodes[len(nodes)-1] node.Edges.loadedTypes = loadedTypes return node.assignValues(columns, values) } + for i := range hooks { + hooks[i](ctx, _spec) + } if err := sqlgraph.QueryNodes(ctx, mq.driver, _spec); err != nil { return nil, err } if len(nodes) == 0 { return nodes, nil } - if query := mq.withOwner; query != nil { - ids := make([]int, 0, len(nodes)) - nodeids := make(map[int][]*Meta) - for i := range nodes { - if nodes[i].alert_metas == nil { - continue - } - fk := *nodes[i].alert_metas - if _, ok := nodeids[fk]; !ok { - ids = append(ids, fk) - } - nodeids[fk] = append(nodeids[fk], nodes[i]) - } - query.Where(alert.IDIn(ids...)) - neighbors, err := query.All(ctx) - if err != nil { + if err := mq.loadOwner(ctx, query, nodes, nil, + func(n *Meta, e *Alert) { n.Edges.Owner = e }); err != nil { return nil, err } - for _, n := range neighbors { - nodes, ok := nodeids[n.ID] - if !ok { - return nil, fmt.Errorf(`unexpected foreign-key "alert_metas" returned %v`, n.ID) - } - for i := range nodes { - nodes[i].Edges.Owner = n - } + } + return nodes, nil +} + +func (mq *MetaQuery) loadOwner(ctx context.Context, query *AlertQuery, nodes []*Meta, init func(*Meta), assign func(*Meta, *Alert)) error { + ids := make([]int, 0, len(nodes)) + nodeids := make(map[int][]*Meta) + for i := range nodes { + if nodes[i].alert_metas == nil { + continue + } + fk := *nodes[i].alert_metas + if _, ok := nodeids[fk]; !ok { + ids = append(ids, fk) + } + nodeids[fk] = append(nodeids[fk], nodes[i]) + } + query.Where(alert.IDIn(ids...)) + neighbors, err := query.All(ctx) + if err != nil { + return err + } + for _, n := range neighbors { + nodes, ok := nodeids[n.ID] + if !ok { + return fmt.Errorf(`unexpected foreign-key "alert_metas" returned %v`, n.ID) + } + for i := range nodes { + assign(nodes[i], n) } } - - return nodes, nil + return nil } func (mq *MetaQuery) sqlCount(ctx context.Context) (int, error) { @@ -424,11 +430,14 @@ func (mq *MetaQuery) sqlCount(ctx context.Context) (int, error) { } func (mq *MetaQuery) sqlExist(ctx context.Context) (bool, error) { - n, err := mq.sqlCount(ctx) - if err != nil { + switch _, err := mq.FirstID(ctx); { + case IsNotFound(err): + return false, nil + case err != nil: return false, fmt.Errorf("ent: check existence: %w", err) + default: + return true, nil } - return n > 0, nil } func (mq *MetaQuery) querySpec() *sqlgraph.QuerySpec { @@ -514,6 +523,7 @@ func (mq *MetaQuery) sqlQuery(ctx context.Context) *sql.Selector { // MetaGroupBy is the group-by builder for Meta entities. type MetaGroupBy struct { config + selector fields []string fns []AggregateFunc // intermediate query (i.e. traversal path). @@ -528,7 +538,7 @@ func (mgb *MetaGroupBy) Aggregate(fns ...AggregateFunc) *MetaGroupBy { } // Scan applies the group-by query and scans the result into the given value. -func (mgb *MetaGroupBy) Scan(ctx context.Context, v interface{}) error { +func (mgb *MetaGroupBy) Scan(ctx context.Context, v any) error { query, err := mgb.path(ctx) if err != nil { return err @@ -537,210 +547,7 @@ func (mgb *MetaGroupBy) Scan(ctx context.Context, v interface{}) error { return mgb.sqlScan(ctx, v) } -// ScanX is like Scan, but panics if an error occurs. -func (mgb *MetaGroupBy) ScanX(ctx context.Context, v interface{}) { - if err := mgb.Scan(ctx, v); err != nil { - panic(err) - } -} - -// Strings returns list of strings from group-by. -// It is only allowed when executing a group-by query with one field. -func (mgb *MetaGroupBy) Strings(ctx context.Context) ([]string, error) { - if len(mgb.fields) > 1 { - return nil, errors.New("ent: MetaGroupBy.Strings is not achievable when grouping more than 1 field") - } - var v []string - if err := mgb.Scan(ctx, &v); err != nil { - return nil, err - } - return v, nil -} - -// StringsX is like Strings, but panics if an error occurs. -func (mgb *MetaGroupBy) StringsX(ctx context.Context) []string { - v, err := mgb.Strings(ctx) - if err != nil { - panic(err) - } - return v -} - -// String returns a single string from a group-by query. -// It is only allowed when executing a group-by query with one field. -func (mgb *MetaGroupBy) String(ctx context.Context) (_ string, err error) { - var v []string - if v, err = mgb.Strings(ctx); err != nil { - return - } - switch len(v) { - case 1: - return v[0], nil - case 0: - err = &NotFoundError{meta.Label} - default: - err = fmt.Errorf("ent: MetaGroupBy.Strings returned %d results when one was expected", len(v)) - } - return -} - -// StringX is like String, but panics if an error occurs. -func (mgb *MetaGroupBy) StringX(ctx context.Context) string { - v, err := mgb.String(ctx) - if err != nil { - panic(err) - } - return v -} - -// Ints returns list of ints from group-by. -// It is only allowed when executing a group-by query with one field. -func (mgb *MetaGroupBy) Ints(ctx context.Context) ([]int, error) { - if len(mgb.fields) > 1 { - return nil, errors.New("ent: MetaGroupBy.Ints is not achievable when grouping more than 1 field") - } - var v []int - if err := mgb.Scan(ctx, &v); err != nil { - return nil, err - } - return v, nil -} - -// IntsX is like Ints, but panics if an error occurs. -func (mgb *MetaGroupBy) IntsX(ctx context.Context) []int { - v, err := mgb.Ints(ctx) - if err != nil { - panic(err) - } - return v -} - -// Int returns a single int from a group-by query. -// It is only allowed when executing a group-by query with one field. -func (mgb *MetaGroupBy) Int(ctx context.Context) (_ int, err error) { - var v []int - if v, err = mgb.Ints(ctx); err != nil { - return - } - switch len(v) { - case 1: - return v[0], nil - case 0: - err = &NotFoundError{meta.Label} - default: - err = fmt.Errorf("ent: MetaGroupBy.Ints returned %d results when one was expected", len(v)) - } - return -} - -// IntX is like Int, but panics if an error occurs. -func (mgb *MetaGroupBy) IntX(ctx context.Context) int { - v, err := mgb.Int(ctx) - if err != nil { - panic(err) - } - return v -} - -// Float64s returns list of float64s from group-by. -// It is only allowed when executing a group-by query with one field. -func (mgb *MetaGroupBy) Float64s(ctx context.Context) ([]float64, error) { - if len(mgb.fields) > 1 { - return nil, errors.New("ent: MetaGroupBy.Float64s is not achievable when grouping more than 1 field") - } - var v []float64 - if err := mgb.Scan(ctx, &v); err != nil { - return nil, err - } - return v, nil -} - -// Float64sX is like Float64s, but panics if an error occurs. -func (mgb *MetaGroupBy) Float64sX(ctx context.Context) []float64 { - v, err := mgb.Float64s(ctx) - if err != nil { - panic(err) - } - return v -} - -// Float64 returns a single float64 from a group-by query. -// It is only allowed when executing a group-by query with one field. -func (mgb *MetaGroupBy) Float64(ctx context.Context) (_ float64, err error) { - var v []float64 - if v, err = mgb.Float64s(ctx); err != nil { - return - } - switch len(v) { - case 1: - return v[0], nil - case 0: - err = &NotFoundError{meta.Label} - default: - err = fmt.Errorf("ent: MetaGroupBy.Float64s returned %d results when one was expected", len(v)) - } - return -} - -// Float64X is like Float64, but panics if an error occurs. -func (mgb *MetaGroupBy) Float64X(ctx context.Context) float64 { - v, err := mgb.Float64(ctx) - if err != nil { - panic(err) - } - return v -} - -// Bools returns list of bools from group-by. -// It is only allowed when executing a group-by query with one field. -func (mgb *MetaGroupBy) Bools(ctx context.Context) ([]bool, error) { - if len(mgb.fields) > 1 { - return nil, errors.New("ent: MetaGroupBy.Bools is not achievable when grouping more than 1 field") - } - var v []bool - if err := mgb.Scan(ctx, &v); err != nil { - return nil, err - } - return v, nil -} - -// BoolsX is like Bools, but panics if an error occurs. -func (mgb *MetaGroupBy) BoolsX(ctx context.Context) []bool { - v, err := mgb.Bools(ctx) - if err != nil { - panic(err) - } - return v -} - -// Bool returns a single bool from a group-by query. -// It is only allowed when executing a group-by query with one field. -func (mgb *MetaGroupBy) Bool(ctx context.Context) (_ bool, err error) { - var v []bool - if v, err = mgb.Bools(ctx); err != nil { - return - } - switch len(v) { - case 1: - return v[0], nil - case 0: - err = &NotFoundError{meta.Label} - default: - err = fmt.Errorf("ent: MetaGroupBy.Bools returned %d results when one was expected", len(v)) - } - return -} - -// BoolX is like Bool, but panics if an error occurs. -func (mgb *MetaGroupBy) BoolX(ctx context.Context) bool { - v, err := mgb.Bool(ctx) - if err != nil { - panic(err) - } - return v -} - -func (mgb *MetaGroupBy) sqlScan(ctx context.Context, v interface{}) error { +func (mgb *MetaGroupBy) sqlScan(ctx context.Context, v any) error { for _, f := range mgb.fields { if !meta.ValidColumn(f) { return &ValidationError{Name: f, err: fmt.Errorf("invalid field %q for group-by", f)} @@ -781,12 +588,13 @@ func (mgb *MetaGroupBy) sqlQuery() *sql.Selector { // MetaSelect is the builder for selecting fields of Meta entities. type MetaSelect struct { *MetaQuery + selector // intermediate query (i.e. traversal path). sql *sql.Selector } // Scan applies the selector query and scans the result into the given value. -func (ms *MetaSelect) Scan(ctx context.Context, v interface{}) error { +func (ms *MetaSelect) Scan(ctx context.Context, v any) error { if err := ms.prepareQuery(ctx); err != nil { return err } @@ -794,202 +602,7 @@ func (ms *MetaSelect) Scan(ctx context.Context, v interface{}) error { return ms.sqlScan(ctx, v) } -// ScanX is like Scan, but panics if an error occurs. -func (ms *MetaSelect) ScanX(ctx context.Context, v interface{}) { - if err := ms.Scan(ctx, v); err != nil { - panic(err) - } -} - -// Strings returns list of strings from a selector. It is only allowed when selecting one field. -func (ms *MetaSelect) Strings(ctx context.Context) ([]string, error) { - if len(ms.fields) > 1 { - return nil, errors.New("ent: MetaSelect.Strings is not achievable when selecting more than 1 field") - } - var v []string - if err := ms.Scan(ctx, &v); err != nil { - return nil, err - } - return v, nil -} - -// StringsX is like Strings, but panics if an error occurs. -func (ms *MetaSelect) StringsX(ctx context.Context) []string { - v, err := ms.Strings(ctx) - if err != nil { - panic(err) - } - return v -} - -// String returns a single string from a selector. It is only allowed when selecting one field. -func (ms *MetaSelect) String(ctx context.Context) (_ string, err error) { - var v []string - if v, err = ms.Strings(ctx); err != nil { - return - } - switch len(v) { - case 1: - return v[0], nil - case 0: - err = &NotFoundError{meta.Label} - default: - err = fmt.Errorf("ent: MetaSelect.Strings returned %d results when one was expected", len(v)) - } - return -} - -// StringX is like String, but panics if an error occurs. -func (ms *MetaSelect) StringX(ctx context.Context) string { - v, err := ms.String(ctx) - if err != nil { - panic(err) - } - return v -} - -// Ints returns list of ints from a selector. It is only allowed when selecting one field. -func (ms *MetaSelect) Ints(ctx context.Context) ([]int, error) { - if len(ms.fields) > 1 { - return nil, errors.New("ent: MetaSelect.Ints is not achievable when selecting more than 1 field") - } - var v []int - if err := ms.Scan(ctx, &v); err != nil { - return nil, err - } - return v, nil -} - -// IntsX is like Ints, but panics if an error occurs. -func (ms *MetaSelect) IntsX(ctx context.Context) []int { - v, err := ms.Ints(ctx) - if err != nil { - panic(err) - } - return v -} - -// Int returns a single int from a selector. It is only allowed when selecting one field. -func (ms *MetaSelect) Int(ctx context.Context) (_ int, err error) { - var v []int - if v, err = ms.Ints(ctx); err != nil { - return - } - switch len(v) { - case 1: - return v[0], nil - case 0: - err = &NotFoundError{meta.Label} - default: - err = fmt.Errorf("ent: MetaSelect.Ints returned %d results when one was expected", len(v)) - } - return -} - -// IntX is like Int, but panics if an error occurs. -func (ms *MetaSelect) IntX(ctx context.Context) int { - v, err := ms.Int(ctx) - if err != nil { - panic(err) - } - return v -} - -// Float64s returns list of float64s from a selector. It is only allowed when selecting one field. -func (ms *MetaSelect) Float64s(ctx context.Context) ([]float64, error) { - if len(ms.fields) > 1 { - return nil, errors.New("ent: MetaSelect.Float64s is not achievable when selecting more than 1 field") - } - var v []float64 - if err := ms.Scan(ctx, &v); err != nil { - return nil, err - } - return v, nil -} - -// Float64sX is like Float64s, but panics if an error occurs. -func (ms *MetaSelect) Float64sX(ctx context.Context) []float64 { - v, err := ms.Float64s(ctx) - if err != nil { - panic(err) - } - return v -} - -// Float64 returns a single float64 from a selector. It is only allowed when selecting one field. -func (ms *MetaSelect) Float64(ctx context.Context) (_ float64, err error) { - var v []float64 - if v, err = ms.Float64s(ctx); err != nil { - return - } - switch len(v) { - case 1: - return v[0], nil - case 0: - err = &NotFoundError{meta.Label} - default: - err = fmt.Errorf("ent: MetaSelect.Float64s returned %d results when one was expected", len(v)) - } - return -} - -// Float64X is like Float64, but panics if an error occurs. -func (ms *MetaSelect) Float64X(ctx context.Context) float64 { - v, err := ms.Float64(ctx) - if err != nil { - panic(err) - } - return v -} - -// Bools returns list of bools from a selector. It is only allowed when selecting one field. -func (ms *MetaSelect) Bools(ctx context.Context) ([]bool, error) { - if len(ms.fields) > 1 { - return nil, errors.New("ent: MetaSelect.Bools is not achievable when selecting more than 1 field") - } - var v []bool - if err := ms.Scan(ctx, &v); err != nil { - return nil, err - } - return v, nil -} - -// BoolsX is like Bools, but panics if an error occurs. -func (ms *MetaSelect) BoolsX(ctx context.Context) []bool { - v, err := ms.Bools(ctx) - if err != nil { - panic(err) - } - return v -} - -// Bool returns a single bool from a selector. It is only allowed when selecting one field. -func (ms *MetaSelect) Bool(ctx context.Context) (_ bool, err error) { - var v []bool - if v, err = ms.Bools(ctx); err != nil { - return - } - switch len(v) { - case 1: - return v[0], nil - case 0: - err = &NotFoundError{meta.Label} - default: - err = fmt.Errorf("ent: MetaSelect.Bools returned %d results when one was expected", len(v)) - } - return -} - -// BoolX is like Bool, but panics if an error occurs. -func (ms *MetaSelect) BoolX(ctx context.Context) bool { - v, err := ms.Bool(ctx) - if err != nil { - panic(err) - } - return v -} - -func (ms *MetaSelect) sqlScan(ctx context.Context, v interface{}) error { +func (ms *MetaSelect) sqlScan(ctx context.Context, v any) error { rows := &sql.Rows{} query, args := ms.sql.Query() if err := ms.driver.Query(ctx, query, args, rows); err != nil { diff --git a/pkg/database/ent/meta_update.go b/pkg/database/ent/meta_update.go index 0b2f627ac..1cbdc2c4a 100644 --- a/pkg/database/ent/meta_update.go +++ b/pkg/database/ent/meta_update.go @@ -1,4 +1,4 @@ -// Code generated by entc, DO NOT EDIT. +// Code generated by ent, DO NOT EDIT. package ent @@ -275,7 +275,7 @@ func (mu *MetaUpdate) sqlSave(ctx context.Context) (n int, err error) { if _, ok := err.(*sqlgraph.NotFoundError); ok { err = &NotFoundError{meta.Label} } else if sqlgraph.IsConstraintError(err) { - err = &ConstraintError{err.Error(), err} + err = &ConstraintError{msg: err.Error(), wrap: err} } return 0, err } @@ -395,9 +395,15 @@ func (muo *MetaUpdateOne) Save(ctx context.Context) (*Meta, error) { } mut = muo.hooks[i](mut) } - if _, err := mut.Mutate(ctx, muo.mutation); err != nil { + v, err := mut.Mutate(ctx, muo.mutation) + if err != nil { return nil, err } + nv, ok := v.(*Meta) + if !ok { + return nil, fmt.Errorf("unexpected node type %T returned from MetaMutation", v) + } + node = nv } return node, err } @@ -563,7 +569,7 @@ func (muo *MetaUpdateOne) sqlSave(ctx context.Context) (_node *Meta, err error) if _, ok := err.(*sqlgraph.NotFoundError); ok { err = &NotFoundError{meta.Label} } else if sqlgraph.IsConstraintError(err) { - err = &ConstraintError{err.Error(), err} + err = &ConstraintError{msg: err.Error(), wrap: err} } return nil, err } diff --git a/pkg/database/ent/migrate/migrate.go b/pkg/database/ent/migrate/migrate.go index 9bdaf5237..1956a6bf6 100644 --- a/pkg/database/ent/migrate/migrate.go +++ b/pkg/database/ent/migrate/migrate.go @@ -1,4 +1,4 @@ -// Code generated by entc, DO NOT EDIT. +// Code generated by ent, DO NOT EDIT. package migrate @@ -28,9 +28,6 @@ var ( // and therefore, it's recommended to enable this option to get more // flexibility in the schema changes. WithDropIndex = schema.WithDropIndex - // WithFixture sets the foreign-key renaming option to the migration when upgrading - // ent from v0.1.0 (issue-#285). Defaults to false. - WithFixture = schema.WithFixture // WithForeignKeys enables creating foreign-key in schema DDL. This defaults to true. WithForeignKeys = schema.WithForeignKeys ) @@ -45,27 +42,23 @@ func NewSchema(drv dialect.Driver) *Schema { return &Schema{drv: drv} } // Create creates all schema resources. func (s *Schema) Create(ctx context.Context, opts ...schema.MigrateOption) error { + return Create(ctx, s, Tables, opts...) +} + +// Create creates all table resources using the given schema driver. +func Create(ctx context.Context, s *Schema, tables []*schema.Table, opts ...schema.MigrateOption) error { migrate, err := schema.NewMigrate(s.drv, opts...) if err != nil { return fmt.Errorf("ent/migrate: %w", err) } - return migrate.Create(ctx, Tables...) + return migrate.Create(ctx, tables...) } // WriteTo writes the schema changes to w instead of running them against the database. // -// if err := client.Schema.WriteTo(context.Background(), os.Stdout); err != nil { +// if err := client.Schema.WriteTo(context.Background(), os.Stdout); err != nil { // log.Fatal(err) -// } -// +// } func (s *Schema) WriteTo(ctx context.Context, w io.Writer, opts ...schema.MigrateOption) error { - drv := &schema.WriteDriver{ - Writer: w, - Driver: s.drv, - } - migrate, err := schema.NewMigrate(drv, opts...) - if err != nil { - return fmt.Errorf("ent/migrate: %w", err) - } - return migrate.Create(ctx, Tables...) + return Create(ctx, &Schema{drv: &schema.WriteDriver{Writer: w, Driver: s.drv}}, Tables, opts...) } diff --git a/pkg/database/ent/migrate/schema.go b/pkg/database/ent/migrate/schema.go index 5e0dc1f3c..b6def08de 100644 --- a/pkg/database/ent/migrate/schema.go +++ b/pkg/database/ent/migrate/schema.go @@ -1,4 +1,4 @@ -// Code generated by entc, DO NOT EDIT. +// Code generated by ent, DO NOT EDIT. package migrate diff --git a/pkg/database/ent/mutation.go b/pkg/database/ent/mutation.go index 8d73b353e..646c07847 100644 --- a/pkg/database/ent/mutation.go +++ b/pkg/database/ent/mutation.go @@ -1,4 +1,4 @@ -// Code generated by entc, DO NOT EDIT. +// Code generated by ent, DO NOT EDIT. package ent @@ -4654,8 +4654,6 @@ func (m *DecisionMutation) RemovedEdges() []string { // RemovedIDs returns all IDs (to other nodes) that were removed for the edge with // the given name in this mutation. func (m *DecisionMutation) RemovedIDs(name string) []ent.Value { - switch name { - } return nil } @@ -5237,8 +5235,6 @@ func (m *EventMutation) RemovedEdges() []string { // RemovedIDs returns all IDs (to other nodes) that were removed for the edge with // the given name in this mutation. func (m *EventMutation) RemovedIDs(name string) []ent.Value { - switch name { - } return nil } @@ -6954,8 +6950,6 @@ func (m *MetaMutation) RemovedEdges() []string { // RemovedIDs returns all IDs (to other nodes) that were removed for the edge with // the given name in this mutation. func (m *MetaMutation) RemovedIDs(name string) []ent.Value { - switch name { - } return nil } diff --git a/pkg/database/ent/predicate/predicate.go b/pkg/database/ent/predicate/predicate.go index 842fc44a1..3c534cf48 100644 --- a/pkg/database/ent/predicate/predicate.go +++ b/pkg/database/ent/predicate/predicate.go @@ -1,4 +1,4 @@ -// Code generated by entc, DO NOT EDIT. +// Code generated by ent, DO NOT EDIT. package predicate diff --git a/pkg/database/ent/runtime.go b/pkg/database/ent/runtime.go index 0bc4b1c45..c9bed4143 100644 --- a/pkg/database/ent/runtime.go +++ b/pkg/database/ent/runtime.go @@ -1,4 +1,4 @@ -// Code generated by entc, DO NOT EDIT. +// Code generated by ent, DO NOT EDIT. package ent diff --git a/pkg/database/ent/runtime/runtime.go b/pkg/database/ent/runtime/runtime.go index 96f1bf98f..e64f7bd75 100644 --- a/pkg/database/ent/runtime/runtime.go +++ b/pkg/database/ent/runtime/runtime.go @@ -1,10 +1,10 @@ -// Code generated by entc, DO NOT EDIT. +// Code generated by ent, DO NOT EDIT. package runtime // The schema-stitching logic is generated in github.com/crowdsecurity/crowdsec/pkg/database/ent/runtime.go const ( - Version = "v0.10.1" // Version of ent codegen. - Sum = "h1:dM5h4Zk6yHGIgw4dCqVzGw3nWgpGYJiV4/kyHEF6PFo=" // Sum of ent codegen. + Version = "v0.11.3" // Version of ent codegen. + Sum = "h1:F5FBGAWiDCGder7YT+lqMnyzXl6d0xU3xMBM/SO3CMc=" // Sum of ent codegen. ) diff --git a/pkg/database/ent/tx.go b/pkg/database/ent/tx.go index ff924a6ac..b44fecdbd 100644 --- a/pkg/database/ent/tx.go +++ b/pkg/database/ent/tx.go @@ -1,4 +1,4 @@ -// Code generated by entc, DO NOT EDIT. +// Code generated by ent, DO NOT EDIT. package ent @@ -213,12 +213,12 @@ func (*txDriver) Commit() error { return nil } func (*txDriver) Rollback() error { return nil } // Exec calls tx.Exec. -func (tx *txDriver) Exec(ctx context.Context, query string, args, v interface{}) error { +func (tx *txDriver) Exec(ctx context.Context, query string, args, v any) error { return tx.tx.Exec(ctx, query, args, v) } // Query calls tx.Query. -func (tx *txDriver) Query(ctx context.Context, query string, args, v interface{}) error { +func (tx *txDriver) Query(ctx context.Context, query string, args, v any) error { return tx.tx.Query(ctx, query, args, v) }