---
billing/routes.go | 3 +-
go.mod | 42 ++++++++++++------------
go.sum | 76 ++++++++++++++++++++++----------------------
mattermost/routes.go | 48 ++++++++++++++--------------
4 files changed, 84 insertions(+), 85 deletions(-)
diff --git a/billing/routes.go b/billing/routes.go
index 524ce9e..527a6bb 100644
--- a/billing/routes.go
@@ -1,6 +1,7 @@
package billing
import (
+ "errors"
"fmt"
"io"
"links"
@@ -484,7 +485,7 @@ func (s *Service) CreateSubscription(c echo.Context) error {
if plan == nil {
// Invalid method id given
err = validate.GetInputErrors(
- []error{fmt.Errorf(lt.Translate("Invalid subscription plan ID given"))},
+ []error{errors.New(lt.Translate("Invalid subscription plan ID given"))},
)
gmap["errors"] = err
return s.Render(c, http.StatusOK, "billing_create_subscription.html", gmap)
diff --git a/go.mod b/go.mod
index 3b4fd36..a9cbc9e 100644
--- a/go.mod
+++ b/go.mod
@@ -1,8 +1,6 @@
module links
-go 1.23.0
-
-toolchain go1.24.4
+go 1.25.0
require (
git.sr.ht/~emersion/gqlclient v0.0.0-20230820050442-8873fe0204b9
@@ -13,7 +11,7 @@ require (
github.com/alexedwards/scs/v2 v2.8.0
github.com/emersion/go-message v0.18.2
github.com/jarcoal/httpmock v1.3.0
- github.com/labstack/echo/v4 v4.13.3
+ github.com/labstack/echo/v4 v4.15.4
github.com/lib/pq v1.10.9
github.com/mattermost/mattermost-plugin-apps v1.1.0
github.com/mattermost/mattermost-server/v6 v6.6.0
@@ -21,24 +19,24 @@ require (
github.com/oschwald/geoip2-golang v1.9.0
github.com/segmentio/ksuid v1.0.4
github.com/shopspring/decimal v1.2.0
- github.com/stretchr/testify v1.10.0
+ github.com/stretchr/testify v1.11.1
github.com/stripe/stripe-go/v76 v76.6.0
github.com/vektah/dataloaden v0.3.0
github.com/vektah/gqlparser/v2 v2.5.30
github.com/yeqown/go-qrcode/v2 v2.2.2
github.com/yeqown/go-qrcode/writer/standard v1.2.1
- golang.org/x/crypto v0.40.0
+ golang.org/x/crypto v0.53.0
golang.org/x/image v0.0.0-20211028202545-6944b10bf410
- golang.org/x/net v0.42.0
- golang.org/x/text v0.27.0
- golang.org/x/time v0.8.0
+ golang.org/x/net v0.56.0
+ golang.org/x/text v0.38.0
+ golang.org/x/time v0.15.0
hg.code.netlandish.com/~netlandish/sendygo v0.0.0-20230124192435-bbf347776232
- netlandish.com/x/gobwebs v0.1.17
- netlandish.com/x/gobwebs-auditlog v0.3.4
- netlandish.com/x/gobwebs-formguard v0.3.2
- netlandish.com/x/gobwebs-graphql v0.3.2
- netlandish.com/x/gobwebs-oauth2 v0.2.15
- netlandish.com/x/gobwebs-ses-feedback v0.2.15
+ netlandish.com/x/gobwebs v0.1.18
+ netlandish.com/x/gobwebs-auditlog v0.3.5
+ netlandish.com/x/gobwebs-formguard v0.3.3
+ netlandish.com/x/gobwebs-graphql v0.3.3
+ netlandish.com/x/gobwebs-oauth2 v0.2.16
+ netlandish.com/x/gobwebs-ses-feedback v0.2.16
petersanchez.com/x/carrier v0.2.6
petersanchez.com/x/carrier/ses v0.0.0-20260908210515-f3c6132b8e61
petersanchez.com/x/carrier/smtp v0.0.0-20260908210515-f3c6132b8e61
@@ -109,7 +107,7 @@ require (
github.com/json-iterator/go v1.1.12 // indirect
github.com/klauspost/compress v1.15.0 // indirect
github.com/klauspost/cpuid/v2 v2.0.11 // indirect
- github.com/labstack/gommon v0.4.2 // indirect
+ github.com/labstack/gommon v0.5.0 // indirect
github.com/lann/builder v0.0.0-20180802200727-47ae307949d0 // indirect
github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0 // indirect
github.com/leodido/go-urn v1.4.0 // indirect
@@ -117,8 +115,8 @@ require (
github.com/mattermost/ldap v0.0.0-20201202150706-ee0e6284187d // indirect
github.com/mattermost/logr/v2 v2.0.15 // indirect
github.com/mattermost/mattermost-plugin-api v0.0.22-0.20211210183909-beb4761e4bd3 // indirect
- github.com/mattn/go-colorable v0.1.14 // indirect
- github.com/mattn/go-isatty v0.0.20 // indirect
+ github.com/mattn/go-colorable v0.1.15 // indirect
+ github.com/mattn/go-isatty v0.0.22 // indirect
github.com/matttproud/golang_protobuf_extensions v1.0.2 // indirect
github.com/minio/md5-simd v1.1.2 // indirect
github.com/minio/minio-go/v7 v7.0.23 // indirect
@@ -159,11 +157,11 @@ require (
go.uber.org/multierr v1.7.0 // indirect
go.uber.org/zap v1.17.0 // indirect
golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3 // indirect
- golang.org/x/mod v0.26.0 // indirect
+ golang.org/x/mod v0.36.0 // indirect
golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b // indirect
- golang.org/x/sync v0.16.0 // indirect
- golang.org/x/sys v0.34.0 // indirect
- golang.org/x/tools v0.35.0 // indirect
+ golang.org/x/sync v0.21.0 // indirect
+ golang.org/x/sys v0.46.0 // indirect
+ golang.org/x/tools v0.45.0 // indirect
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect
google.golang.org/api v0.62.0 // indirect
google.golang.org/appengine v1.6.7 // indirect
diff --git a/go.sum b/go.sum
index 97447e0..a69bcc7 100644
--- a/go.sum
+++ b/go.sum
@@ -1033,11 +1033,11 @@ github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/ktrysmt/go-bitbucket v0.6.4/go.mod h1:9u0v3hsd2rqCHRIpbir1oP7F58uo5dq19sBYvuMoyQ4=
github.com/labstack/echo/v4 v4.1.11/go.mod h1:i541M3Fj6f76NZtHSj7TXnyM8n2gaodfvfxNnFqi74g=
github.com/labstack/echo/v4 v4.5.0/go.mod h1:czIriw4a0C1dFun+ObrXp7ok03xON0N1awStJ6ArI7Y=
-github.com/labstack/echo/v4 v4.13.3 h1:pwhpCPrTl5qry5HRdM5FwdXnhXSLSY+WE+YQSeCaafY=
-github.com/labstack/echo/v4 v4.13.3/go.mod h1:o90YNEeQWjDozo584l7AwhJMHN0bOC4tAfg+Xox9q5g=
+github.com/labstack/echo/v4 v4.15.4 h1:DL45vVYa+BWE+XuW+zZNd9H0YEdZ80UAWJGcTVW4EVs=
+github.com/labstack/echo/v4 v4.15.4/go.mod h1:CuMetKIRwsuO/qlAgMq+KTAalwGoB/h4tC+yPdrTj1g=
github.com/labstack/gommon v0.3.0/go.mod h1:MULnywXg0yavhxWKc+lOruYdAhDwPK9wf0OL7NoOu+k=
-github.com/labstack/gommon v0.4.2 h1:F8qTUNXgG1+6WQmqoUWnz8WiEU60mXVVw0P4ht1WRA0=
-github.com/labstack/gommon v0.4.2/go.mod h1:QlUFxVM+SNXhDL/Z7YhocGIBYOiwB0mXm1+1bAPHPyU=
+github.com/labstack/gommon v0.5.0 h1:6VSQ2NOzsnEJ5W6+84E0RbcaDDmgB6NIAzWCczTEe6c=
+github.com/labstack/gommon v0.5.0/go.mod h1:Rzlg7HHy1maLfzBYGg9NZcVuz1sA68HHhLjhcEllYE0=
github.com/lann/builder v0.0.0-20180802200727-47ae307949d0 h1:SOEGU9fKiNWd/HOJuq6+3iTQz8KNCLtVX6idSoTLdUw=
github.com/lann/builder v0.0.0-20180802200727-47ae307949d0/go.mod h1:dXGbAdH5GtBTC4WfIxhKZfyBF/HBFgRZSWwZ9g/He9o=
github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0 h1:P6pPBnrTSX3DEVR4fDembhRWSsG5rVo6hYhAB/ADZrk=
@@ -1098,8 +1098,8 @@ github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope
github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
github.com/mattn/go-colorable v0.1.11/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4=
github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4=
-github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE=
-github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8=
+github.com/mattn/go-colorable v0.1.15 h1:+u9SLTRGnXv73cEsnsmoZBom+dMU88B2M0aDcWy0/jY=
+github.com/mattn/go-colorable v0.1.15/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8=
github.com/mattn/go-ieproxy v0.0.1/go.mod h1:pYabZ6IHcRpFh7vIaLfK7rdcWgFEb3SFJ6/gNWuh88E=
github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
@@ -1111,8 +1111,8 @@ github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcME
github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE=
github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94=
-github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
-github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
+github.com/mattn/go-isatty v0.0.22 h1:j8l17JJ9i6VGPUFUYoTUKPSgKe/83EYU2zBC7YNKMw4=
+github.com/mattn/go-isatty v0.0.22/go.mod h1:ZXfXG4SQHsB/w3ZeOYbR0PrPwLy+n6xiMrJlRFqopa4=
github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
github.com/mattn/go-runewidth v0.0.3/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
@@ -1517,8 +1517,8 @@ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81P
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
-github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
-github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
+github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
+github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
github.com/stripe/stripe-go/v76 v76.6.0 h1:jG5VTzxZdwF1PFP2FAH6ThMFQRWJ/EVjY+17/Z8nCNQ=
github.com/stripe/stripe-go/v76 v76.6.0/go.mod h1:rw1MxjlAKKcZ+3FOXgTHgwiOa2ya6CPq6ykpJ0Q6Po4=
github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw=
@@ -1709,8 +1709,8 @@ golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2Uz
golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU=
golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4=
golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4=
-golang.org/x/crypto v0.40.0 h1:r4x+VvoG5Fm+eJcxMaY8CQM7Lb0l1lsmjGBQ6s8BfKM=
-golang.org/x/crypto v0.40.0/go.mod h1:Qr1vMER5WyS2dfPHAlsOj01wgLbsyWtFn/aY+5+ZdxY=
+golang.org/x/crypto v0.53.0 h1:QZ4Muo8THX6CizN2vPPd5fBGHyogrdK9fG4wLPFUsto=
+golang.org/x/crypto v0.53.0/go.mod h1:DNLU434OwVakk9PzuwV8w62mAJpRJL3vsgcfp4Qnsio=
golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
@@ -1769,8 +1769,8 @@ golang.org/x/mod v0.5.0/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro=
golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro=
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
-golang.org/x/mod v0.26.0 h1:EGMPT//Ezu+ylkCijjPc+f4Aih7sZvaAr+O3EHBxvZg=
-golang.org/x/mod v0.26.0/go.mod h1:/j6NAhSk8iQ723BGAUyoAcn7SlD7s15Dp9Nd/SfeaFQ=
+golang.org/x/mod v0.36.0 h1:JJjpVx6myfUsUdAzZuOSTTmRE0PfZeNWzzvKrP7amb4=
+golang.org/x/mod v0.36.0/go.mod h1:moc6ELqsWcOw5Ef3xVprK5ul/MvtVvkIXLziUOICjUQ=
golang.org/x/net v0.0.0-20180218175443-cbe0f9307d01/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
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=
@@ -1855,8 +1855,8 @@ golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY=
golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc=
golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
-golang.org/x/net v0.42.0 h1:jzkYrhi3YQWD6MLBJcsklgQsoAcw89EcZbJw8Z614hs=
-golang.org/x/net v0.42.0/go.mod h1:FF1RA5d3u7nAYA4z2TkclSCKh68eSXtiFwcWQpPXdt8=
+golang.org/x/net v0.56.0 h1:Rw8j/hFzGvJUZwNBXnAtf5sVDVt+65SK2C7IxCxZt5o=
+golang.org/x/net v0.56.0/go.mod h1:D3Ku6r+V6JROoZK144D2XfMHFcMq/0zSfLelVTCFKec=
golang.org/x/oauth2 v0.0.0-20180227000427-d7d64896b5ff/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20181017192945-9dcd33a902f4/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
@@ -1896,8 +1896,8 @@ golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJ
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.16.0 h1:ycBJEhp9p4vXvUZNszeOq0kGTPghopOL8q0fq3vstxw=
-golang.org/x/sync v0.16.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
+golang.org/x/sync v0.21.0 h1:HLII4xRRTtCRkxYp4HNFF0Js/Og6q2i++KXbg0gHCwM=
+golang.org/x/sync v0.21.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0=
golang.org/x/sys v0.0.0-20180224232135-f6cff0780e54/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -2035,8 +2035,8 @@ golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
-golang.org/x/sys v0.34.0 h1:H5Y5sJ2L2JRdyv7ROF1he/lPdvFsd0mJHFw2ThKHxLA=
-golang.org/x/sys v0.34.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
+golang.org/x/sys v0.46.0 h1:noSf2Fq6F8DBgS+LysIkx7rIExoNHJsxOAtPp4rthXw=
+golang.org/x/sys v0.46.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw=
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/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
@@ -2062,16 +2062,16 @@ golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
-golang.org/x/text v0.27.0 h1:4fGWRpyh641NLlecmyl4LOe6yDdfaYNrGb2zdfo4JV4=
-golang.org/x/text v0.27.0/go.mod h1:1D28KMCvyooCX9hBiosv5Tz/+YLxj0j7XhWjpSUF7CU=
+golang.org/x/text v0.38.0 h1:sXmwo9DwP3OK9EZ7PqAdaooSGozfl/3a6/xJcbzPRhE=
+golang.org/x/text v0.38.0/go.mod h1:YXZt3QhHUKYT53r2lLKFIVi6Ao1jdzrTR/KQ09qyxF4=
golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20201208040808-7e3f01d25324/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
-golang.org/x/time v0.8.0 h1:9i3RxcPv3PZnitoVGMPDKZSq1xW1gK1Xy3ArNOGZfEg=
-golang.org/x/time v0.8.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
+golang.org/x/time v0.15.0 h1:bbrp8t3bGUeFOx08pvsMYRTCVSMk89u4tKbNOZbp88U=
+golang.org/x/time v0.15.0/go.mod h1:Y4YMaQmXwGQZoFaVFk4YpCt4FLQMYKZe9oeV/f4MSno=
golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
@@ -2157,8 +2157,8 @@ golang.org/x/tools v0.1.7/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo=
golang.org/x/tools v0.1.9/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU=
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
-golang.org/x/tools v0.35.0 h1:mBffYraMEf7aa0sB+NuKnuCy8qI/9Bughn8dC2Gu5r0=
-golang.org/x/tools v0.35.0/go.mod h1:NKdj5HkL/73byiZSJjqJgKn3ep7KjFkBOkR/Hps3VPw=
+golang.org/x/tools v0.45.0 h1:18qN3FAooORvApf5XjCXgsuayZOEtXf6JK18I3+ONa8=
+golang.org/x/tools v0.45.0/go.mod h1:LuUGqqaXcXMEFEruIVJVm5mgDD8vww/z/SR1gQ4uE/0=
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=
@@ -2582,18 +2582,18 @@ modernc.org/z v1.0.1-0.20210308123920-1f282aa71362/go.mod h1:8/SRk5C/HgiQWCgXdfp
modernc.org/z v1.0.1/go.mod h1:8/SRk5C/HgiQWCgXdfpb+1RvhORdkz5sw72d3jjtyqA=
modernc.org/z v1.2.20/go.mod h1:zU9FiF4PbHdOTUxw+IF8j7ArBMRPsHgq10uVPt6xTzo=
modernc.org/zappy v1.0.0/go.mod h1:hHe+oGahLVII/aTTyWK/b53VDHMAGCBYYeZ9sn83HC4=
-netlandish.com/x/gobwebs v0.1.17 h1:NHTkicwy3CjlTgSdcgFMNHFpWtpgYwZ08pitL9y71S0=
-netlandish.com/x/gobwebs v0.1.17/go.mod h1:2jf9Zn0yiggw+lXtk+aP5PlXa19fExCOvAsxaJPhmv0=
-netlandish.com/x/gobwebs-auditlog v0.3.4 h1:1KltddWOgy34cHOGpdoCF8LBjsNN447kXs9rkjNtlQs=
-netlandish.com/x/gobwebs-auditlog v0.3.4/go.mod h1:ZHlBBkBGw5OyoHwQp3qiKDbs8EUhRIIdkIc8Nb2do/w=
-netlandish.com/x/gobwebs-formguard v0.3.2 h1:giooK4x7lo+4f8DnlWntS6UmAcvpCzeJO6fkTcVEO7U=
-netlandish.com/x/gobwebs-formguard v0.3.2/go.mod h1:0flzVl44Q6grobYq2eeEfTl7wtrNzoaOT9lkZQcyFGo=
-netlandish.com/x/gobwebs-graphql v0.3.2 h1:/PbHVB8UBSJ7Iv0aoCDatGGBTeflMxW3e5QSptDBchc=
-netlandish.com/x/gobwebs-graphql v0.3.2/go.mod h1:uqmWwIT7MFd9SPkmtNvr8OTSRFH2LLVHRwuq1FL9SA8=
-netlandish.com/x/gobwebs-oauth2 v0.2.15 h1:Ch/5WcEn3iGo2Ml5uLVRMqUYXVL3PkuTTuijJCebWPQ=
-netlandish.com/x/gobwebs-oauth2 v0.2.15/go.mod h1:fJoaihXFmZf8WtMZdTuhoMzBSywrVINnlhjBqWmUY2s=
-netlandish.com/x/gobwebs-ses-feedback v0.2.15 h1:GSdLOd89J1xarfpuadbdAL02z6/BqEiNsvZpy0OmsPI=
-netlandish.com/x/gobwebs-ses-feedback v0.2.15/go.mod h1:f9EvJCa9Zcy0a7o+zuGQ/h8WdLCaURk0RiASLh7Paes=
+netlandish.com/x/gobwebs v0.1.18 h1:AaYSrWFqY50AP3keme0GLJ37nzBTEu1oF2Bb8ycawkI=
+netlandish.com/x/gobwebs v0.1.18/go.mod h1:XiRorH2heI1yiH4l5KewNVN+y2Zobsw9APQyE7NTN0E=
+netlandish.com/x/gobwebs-auditlog v0.3.5 h1:JDyAgLGSFuIUtXDDYJxURXNisibxSTnXQEROnj932To=
+netlandish.com/x/gobwebs-auditlog v0.3.5/go.mod h1:IuYnP6JGmKtrkQyQUTE1mVONTVnQLBzrZ51sg3mr/Dc=
+netlandish.com/x/gobwebs-formguard v0.3.3 h1:6WL6rslCH4oJErgi3ODMMY8oyridU3CCuDSnaDzz0sE=
+netlandish.com/x/gobwebs-formguard v0.3.3/go.mod h1:EYme0oo1QedzAt08GNBvmY536AlC8Fsjs502snSyYjM=
+netlandish.com/x/gobwebs-graphql v0.3.3 h1:zua2k8WrCSsO6HbMdU1/U2TJ191rZ60GsSEiVBiwds4=
+netlandish.com/x/gobwebs-graphql v0.3.3/go.mod h1:RKbenG3Mk6+R+gNDzuy0LYhpX8/renwwNgcOHZMhpIQ=
+netlandish.com/x/gobwebs-oauth2 v0.2.16 h1:uFppAu8Cj3KFzVvmApN11+2x8AvgHhbY8Z9o8oH8IPk=
+netlandish.com/x/gobwebs-oauth2 v0.2.16/go.mod h1:706kdWKWwzZqOmvUbTHRhj3nXydKcFu4igAPho+k+7Y=
+netlandish.com/x/gobwebs-ses-feedback v0.2.16 h1:pibN64bcjAmzvqv4WLuoT5g4RTE6pH/YzH3870/awcI=
+netlandish.com/x/gobwebs-ses-feedback v0.2.16/go.mod h1:tartk7kSsMTbprPR6MAUydUWKs8oW9ZixVWTeaOxvZc=
petersanchez.com/x/carrier v0.2.6 h1:3siN90JCjMbAdXZ1wh/SakPwwHb4gXj4IghzOSLjJcE=
petersanchez.com/x/carrier v0.2.6/go.mod h1:GLiDI9OThDmruufk/VHlR6Ihvq/hIJQyA5beU6AFNYk=
petersanchez.com/x/carrier/ses v0.0.0-20260908210515-f3c6132b8e61 h1:ZX535miQ/79f2IjOqNMhIkJF3nrbvTRaGp7OO7RSuVs=
diff --git a/mattermost/routes.go b/mattermost/routes.go
index 19ebef1..583b18b 100644
--- a/mattermost/routes.go
+++ b/mattermost/routes.go
@@ -239,7 +239,7 @@ func (s *Service) SearchCommand(c echo.Context) error {
}
lt := localizer.GetSessionLocalizer(c)
if len(mmConns) == 0 {
- return c.JSON(http.StatusOK, apps.NewTextResponse(lt.Translate("No slack connection found")))
+ return c.JSON(http.StatusOK, apps.NewTextResponse("%s", lt.Translate("No slack connection found")))
}
mmConn := mmConns[0]
@@ -268,7 +268,7 @@ func (s *Service) SearchCommand(c echo.Context) error {
if err != nil {
return err
}
- return c.JSON(http.StatusOK, apps.NewTextResponse(lt.Translate("We sent you a private msg")))
+ return c.JSON(http.StatusOK, apps.NewTextResponse("%s", lt.Translate("We sent you a private msg")))
}
opts = &database.FilterOptions{
Filter: sq.And{
@@ -287,7 +287,7 @@ func (s *Service) SearchCommand(c echo.Context) error {
org := orgs[0]
if links.BillingEnabled(gctx.Server.Config) && org.IsRestricted([]string{models.BillingStatusFree}) {
msg := lt.Translate("Sorry, free accounts do not support Mattermost Integration. Please upgrade to continue")
- return c.JSON(http.StatusOK, apps.NewTextResponse(msg))
+ return c.JSON(http.StatusOK, apps.NewTextResponse("%s", msg))
}
user, err := models.GetUser(c.Request().Context(), org.OwnerID, true)
@@ -296,7 +296,7 @@ func (s *Service) SearchCommand(c echo.Context) error {
}
text, ok := creq.Values["text"].(string)
if !ok {
- return c.JSON(http.StatusOK, apps.NewTextResponse(lt.Translate("The text to be searched is required")))
+ return c.JSON(http.StatusOK, apps.NewTextResponse("%s", lt.Translate("The text to be searched is required")))
}
ctx := c.Request().Context()
ctx = auth.Context(ctx, user)
@@ -347,7 +347,7 @@ func (s *Service) SearchCommand(c echo.Context) error {
err = links.Execute(ctx, op, &result)
if err != nil {
if graphError, ok := err.(*gqlclient.Error); ok {
- return c.JSON(http.StatusOK, apps.NewTextResponse(graphError.Message))
+ return c.JSON(http.StatusOK, apps.NewTextResponse("%s", graphError.Message))
}
return err
}
@@ -359,7 +359,7 @@ func (s *Service) SearchCommand(c echo.Context) error {
} else {
attachmentLinks = lt.Translate("No links were found for %s", text)
}
- return c.JSON(http.StatusOK, apps.NewTextResponse(attachmentLinks))
+ return c.JSON(http.StatusOK, apps.NewTextResponse("%s", attachmentLinks))
}
@@ -378,7 +378,7 @@ func (s *Service) ShortCommand(c echo.Context) error {
return err
}
if len(mmConns) == 0 {
- return c.JSON(http.StatusOK, apps.NewTextResponse(lt.Translate("No slack connection found")))
+ return c.JSON(http.StatusOK, apps.NewTextResponse("%s", lt.Translate("No slack connection found")))
}
mmConn := mmConns[0]
@@ -391,14 +391,14 @@ func (s *Service) ShortCommand(c echo.Context) error {
return err
}
if len(orgs) == 0 {
- return c.JSON(http.StatusOK, apps.NewTextResponse(lt.Translate("No organization found")))
+ return c.JSON(http.StatusOK, apps.NewTextResponse("%s", lt.Translate("No organization found")))
}
gctx := c.(*server.Context)
org := orgs[0]
if links.BillingEnabled(gctx.Server.Config) && org.IsRestricted([]string{models.BillingStatusFree}) {
msg := lt.Translate("Sorry, free accounts do not support Mattermost Integration. Please upgrade to continue")
- return c.JSON(http.StatusOK, apps.NewTextResponse(msg))
+ return c.JSON(http.StatusOK, apps.NewTextResponse("%s", msg))
}
opts = &database.FilterOptions{
@@ -425,7 +425,7 @@ func (s *Service) ShortCommand(c echo.Context) error {
if err != nil {
return err
}
- return c.JSON(http.StatusOK, apps.NewTextResponse(lt.Translate("We sent you a private msg")))
+ return c.JSON(http.StatusOK, apps.NewTextResponse("%s", lt.Translate("We sent you a private msg")))
}
user, err := models.GetUser(c.Request().Context(), mmUsers[0].UserID, true)
if err != nil {
@@ -435,19 +435,19 @@ func (s *Service) ShortCommand(c echo.Context) error {
ctx = auth.Context(ctx, user)
title, ok := creq.Values["title"].(string)
if !ok {
- return c.JSON(http.StatusOK, apps.NewTextResponse(lt.Translate("The title is required")))
+ return c.JSON(http.StatusOK, apps.NewTextResponse("%s", lt.Translate("The title is required")))
}
url, ok := creq.Values["url"].(string)
if !ok {
- return c.JSON(http.StatusOK, apps.NewTextResponse(lt.Translate("The url is required")))
+ return c.JSON(http.StatusOK, apps.NewTextResponse("%s", lt.Translate("The url is required")))
}
shortCode, ok := creq.Values["code"].(string)
if !ok {
- return c.JSON(http.StatusOK, apps.NewTextResponse(lt.Translate("The code is required")))
+ return c.JSON(http.StatusOK, apps.NewTextResponse("%s", lt.Translate("The code is required")))
}
domain, ok := creq.Values["domain"].(string)
if !ok {
- return c.JSON(http.StatusOK, apps.NewTextResponse(lt.Translate("The domain is required")))
+ return c.JSON(http.StatusOK, apps.NewTextResponse("%s", lt.Translate("The domain is required")))
}
// Check that the domain exists, it is a short service domain
@@ -468,7 +468,7 @@ func (s *Service) ShortCommand(c echo.Context) error {
return err
}
if len(domains) == 0 {
- return c.JSON(http.StatusOK, apps.NewTextResponse(lt.Translate("Domain not found")))
+ return c.JSON(http.StatusOK, apps.NewTextResponse("%s", lt.Translate("Domain not found")))
}
type GraphQLResponse struct {
@@ -497,11 +497,11 @@ func (s *Service) ShortCommand(c echo.Context) error {
err = links.Execute(ctx, op, &result)
if err != nil {
if graphError, ok := err.(*gqlclient.Error); ok {
- return c.JSON(http.StatusOK, apps.NewTextResponse(graphError.Message))
+ return c.JSON(http.StatusOK, apps.NewTextResponse("%s", graphError.Message))
}
return err
}
- return c.JSON(http.StatusOK, apps.NewTextResponse(lt.Translate("A new short was created succesfully")))
+ return c.JSON(http.StatusOK, apps.NewTextResponse("%s", lt.Translate("A new short was created succesfully")))
}
func (s *Service) AddCommand(c echo.Context) error {
@@ -519,7 +519,7 @@ func (s *Service) AddCommand(c echo.Context) error {
}
lt := localizer.GetSessionLocalizer(c)
if len(mmConns) == 0 {
- return c.JSON(http.StatusOK, apps.NewTextResponse(lt.Translate("No slack connection found")))
+ return c.JSON(http.StatusOK, apps.NewTextResponse("%s", lt.Translate("No slack connection found")))
}
mmConn := mmConns[0]
@@ -540,7 +540,7 @@ func (s *Service) AddCommand(c echo.Context) error {
if links.BillingEnabled(gctx.Server.Config) && org.IsRestricted([]string{models.BillingStatusFree}) {
lt := localizer.GetSessionLocalizer(c)
msg := lt.Translate("Sorry, free accounts do not support Mattermost Integration. Please upgrade to continue")
- return c.JSON(http.StatusOK, apps.NewTextResponse(msg))
+ return c.JSON(http.StatusOK, apps.NewTextResponse("%s", msg))
}
opts = &database.FilterOptions{
@@ -575,11 +575,11 @@ func (s *Service) AddCommand(c echo.Context) error {
}
linkURL, ok := creq.Values["url"].(string)
if !ok {
- return c.JSON(http.StatusOK, apps.NewTextResponse(lt.Translate("Url is required")))
+ return c.JSON(http.StatusOK, apps.NewTextResponse("%s", lt.Translate("Url is required")))
}
title, ok := creq.Values["title"].(string)
if !ok {
- return c.JSON(http.StatusOK, apps.NewTextResponse(lt.Translate("Title is required")))
+ return c.JSON(http.StatusOK, apps.NewTextResponse("%s", lt.Translate("Title is required")))
}
ctx := c.Request().Context()
ctx = auth.Context(ctx, user)
@@ -605,11 +605,11 @@ func (s *Service) AddCommand(c echo.Context) error {
err = links.Execute(ctx, op, &result)
if err != nil {
if graphError, ok := err.(*gqlclient.Error); ok {
- return c.JSON(http.StatusOK, apps.NewTextResponse(graphError.Message))
+ return c.JSON(http.StatusOK, apps.NewTextResponse("%s", graphError.Message))
}
return err
}
- return c.JSON(http.StatusOK, apps.NewTextResponse(lt.Translate("A new link was created succesfully")))
+ return c.JSON(http.StatusOK, apps.NewTextResponse("%s", lt.Translate("A new link was created succesfully")))
}
func (s *Service) ConnectCommand(c echo.Context) error {
@@ -638,7 +638,7 @@ func (s *Service) ConnectCommand(c echo.Context) error {
if err != nil {
return err
}
- return c.JSON(http.StatusOK, apps.NewTextResponse(lt.Translate("We sent you a private msg")))
+ return c.JSON(http.StatusOK, apps.NewTextResponse("%s", lt.Translate("We sent you a private msg")))
}
func (s *Service) Ping(c echo.Context) error {
--
2.54.0