Skip to content

Commit 4834224

Browse files
authored
Merge branch 'master' into bowen/#280-2
2 parents 062af8b + f2f6637 commit 4834224

7 files changed

Lines changed: 70 additions & 56 deletions

File tree

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ This project exists thanks to all the people who contribute, to participate in t
7474
<a href="https://github.com/livghit" target="_blank"><img src="https://avatars.githubusercontent.com/u/108449432?v=4" width="48" height="48"></a>
7575
<a href="https://github.com/jeff87218" target="_blank"><img src="https://avatars.githubusercontent.com/u/29706585?v=4" width="48" height="48"></a>
7676
<a href="https://github.com/shayan-yousefi" target="_blank"><img src="https://avatars.githubusercontent.com/u/19957980?v=4" width="48" height="48"></a>
77+
<a href="https://github.com/zxdstyle" target="_blank"><img src="https://avatars.githubusercontent.com/u/38398954?v=4" width="48" height="48"></a>
7778

7879
## Sponsor
7980

README_zh.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ Laravel!
7272
<a href="https://github.com/livghit" target="_blank"><img src="https://avatars.githubusercontent.com/u/108449432?v=4" width="48" height="48"></a>
7373
<a href="https://github.com/jeff87218" target="_blank"><img src="https://avatars.githubusercontent.com/u/29706585?v=4" width="48" height="48"></a>
7474
<a href="https://github.com/shayan-yousefi" target="_blank"><img src="https://avatars.githubusercontent.com/u/19957980?v=4" width="48" height="48"></a>
75+
<a href="https://github.com/zxdstyle" target="_blank"><img src="https://avatars.githubusercontent.com/u/38398954?v=4" width="48" height="48"></a>
7576

7677
## 打赏
7778

go.mod

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ go 1.21
55
require (
66
github.com/RichardKnop/machinery/v2 v2.0.13
77
github.com/brianvoe/gofakeit/v6 v6.28.0
8-
github.com/charmbracelet/huh v0.5.2
9-
github.com/charmbracelet/huh/spinner v0.0.0-20240821193529-5fd70815c13f
8+
github.com/charmbracelet/huh v0.5.3
9+
github.com/charmbracelet/huh/spinner v0.0.0-20240829113522-b963c398e1f1
1010
github.com/charmbracelet/lipgloss v0.13.0
1111
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc
1212
github.com/gabriel-vasile/mimetype v1.4.5
@@ -36,8 +36,8 @@ require (
3636
github.com/urfave/cli/v2 v2.27.4
3737
go.uber.org/atomic v1.11.0
3838
golang.org/x/crypto v0.26.0
39-
golang.org/x/exp v0.0.0-20240808152545-0cdaa3abc0fa
40-
google.golang.org/grpc v1.65.0
39+
golang.org/x/exp v0.0.0-20240823005443-9b4947da3948
40+
google.golang.org/grpc v1.66.0
4141
gorm.io/driver/mysql v1.5.7
4242
gorm.io/driver/postgres v1.5.9
4343
gorm.io/driver/sqlserver v1.5.3
@@ -67,11 +67,9 @@ require (
6767
github.com/cespare/xxhash/v2 v2.3.0 // indirect
6868
github.com/charmbracelet/bubbles v0.19.0 // indirect
6969
github.com/charmbracelet/bubbletea v0.27.0 // indirect
70-
github.com/charmbracelet/x/ansi v0.1.4 // indirect
70+
github.com/charmbracelet/x/ansi v0.2.2 // indirect
7171
github.com/charmbracelet/x/exp/strings v0.0.0-20240722160745-212f7b056ed0 // indirect
72-
github.com/charmbracelet/x/input v0.1.3 // indirect
73-
github.com/charmbracelet/x/term v0.1.1 // indirect
74-
github.com/charmbracelet/x/windows v0.1.2 // indirect
72+
github.com/charmbracelet/x/term v0.2.0 // indirect
7573
github.com/containerd/console v1.0.4-0.20230313162750-1ae8d489ac81 // indirect
7674
github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect
7775
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
@@ -120,7 +118,7 @@ require (
120118
github.com/mitchellh/mapstructure v1.5.0
121119
github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 // indirect
122120
github.com/muesli/cancelreader v0.2.2 // indirect
123-
github.com/muesli/termenv v0.15.2 // indirect
121+
github.com/muesli/termenv v0.15.3-0.20240618155329-98d742f6907a // indirect
124122
github.com/opentracing/opentracing-go v1.2.0 // indirect
125123
github.com/pelletier/go-toml/v2 v2.2.2 // indirect
126124
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
@@ -150,16 +148,16 @@ require (
150148
go.opentelemetry.io/otel/trace v1.24.0 // indirect
151149
go.uber.org/multierr v1.9.0 // indirect
152150
golang.org/x/net v0.27.0 // indirect
153-
golang.org/x/oauth2 v0.20.0 // indirect
151+
golang.org/x/oauth2 v0.21.0 // indirect
154152
golang.org/x/sync v0.8.0 // indirect
155153
golang.org/x/sys v0.24.0 // indirect
156154
golang.org/x/term v0.23.0 // indirect
157155
golang.org/x/text v0.17.0
158156
golang.org/x/time v0.5.0 // indirect
159157
google.golang.org/api v0.171.0 // indirect
160158
google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect
161-
google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157 // indirect
162-
google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157 // indirect
159+
google.golang.org/genproto/googleapis/api v0.0.0-20240604185151-ef581f913117 // indirect
160+
google.golang.org/genproto/googleapis/rpc v0.0.0-20240604185151-ef581f913117 // indirect
163161
google.golang.org/protobuf v1.34.1 // indirect
164162
gopkg.in/ini.v1 v1.67.0 // indirect
165163
gopkg.in/yaml.v2 v2.4.0 // indirect

go.sum

Lines changed: 20 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -137,24 +137,18 @@ github.com/charmbracelet/bubbles v0.19.0 h1:gKZkKXPP6GlDk6EcfujDK19PCQqRjaJZQ7QR
137137
github.com/charmbracelet/bubbles v0.19.0/go.mod h1:WILteEqZ+krG5c3ntGEMeG99nCupcuIk7V0/zOP0tOA=
138138
github.com/charmbracelet/bubbletea v0.27.0 h1:Mznj+vvYuYagD9Pn2mY7fuelGvP0HAXtZYGgRBCbHvU=
139139
github.com/charmbracelet/bubbletea v0.27.0/go.mod h1:5MdP9XH6MbQkgGhnlxUqCNmBXf9I74KRQ8HIidRxV1Y=
140-
github.com/charmbracelet/huh v0.5.2 h1:ofeNkJ4iaFnzv46Njhx896DzLUe/j0L2QAf8znwzX4c=
141-
github.com/charmbracelet/huh v0.5.2/go.mod h1:Sf7dY0oAn6N/e3sXJFtFX9hdQLrUdO3z7AYollG9bAM=
142-
github.com/charmbracelet/huh/spinner v0.0.0-20240821193529-5fd70815c13f h1:i94e1l91SP1q7HAyAaT3pziIGIS1Q/Lvg/gaAWbr2Kc=
143-
github.com/charmbracelet/huh/spinner v0.0.0-20240821193529-5fd70815c13f/go.mod h1:1fSCfCxE3BGKFb3v+ta8bQHC5kcyPUA65zdVWBMzthE=
140+
github.com/charmbracelet/huh v0.5.3 h1:3KLP4a/K1/S4dq4xFMTNMt3XWhgMl/yx8NYtygQ0bmg=
141+
github.com/charmbracelet/huh v0.5.3/go.mod h1:OZC3lshuF+/y8laj//DoZdFSHxC51OrtXLJI8xWVouQ=
142+
github.com/charmbracelet/huh/spinner v0.0.0-20240829113522-b963c398e1f1 h1:SnxSKJFF/AWJK10hdbkIv/Ict4PJldPuIK8wvOBknes=
143+
github.com/charmbracelet/huh/spinner v0.0.0-20240829113522-b963c398e1f1/go.mod h1:1fSCfCxE3BGKFb3v+ta8bQHC5kcyPUA65zdVWBMzthE=
144144
github.com/charmbracelet/lipgloss v0.13.0 h1:4X3PPeoWEDCMvzDvGmTajSyYPcZM4+y8sCA/SsA3cjw=
145145
github.com/charmbracelet/lipgloss v0.13.0/go.mod h1:nw4zy0SBX/F/eAO1cWdcvy6qnkDUxr8Lw7dvFrAIbbY=
146-
github.com/charmbracelet/x/ansi v0.1.4 h1:IEU3D6+dWwPSgZ6HBH+v6oUuZ/nVawMiWj5831KfiLM=
147-
github.com/charmbracelet/x/ansi v0.1.4/go.mod h1:dk73KoMTT5AX5BsX0KrqhsTqAnhZZoCBjs7dGWp4Ktw=
146+
github.com/charmbracelet/x/ansi v0.2.2 h1:BC7xzaVpfWIYZRNE8NhO9zo8KA4eGUL6L/JWXDh3GF0=
147+
github.com/charmbracelet/x/ansi v0.2.2/go.mod h1:dk73KoMTT5AX5BsX0KrqhsTqAnhZZoCBjs7dGWp4Ktw=
148148
github.com/charmbracelet/x/exp/strings v0.0.0-20240722160745-212f7b056ed0 h1:qko3AQ4gK1MTS/de7F5hPGx6/k1u0w4TeYmBFwzYVP4=
149149
github.com/charmbracelet/x/exp/strings v0.0.0-20240722160745-212f7b056ed0/go.mod h1:pBhA0ybfXv6hDjQUZ7hk1lVxBiUbupdw5R31yPUViVQ=
150-
github.com/charmbracelet/x/exp/term v0.0.0-20240524151031-ff83003bf67a h1:k/s6UoOSVynWiw7PlclyGO2VdVs5ZLbMIHiGp4shFZE=
151-
github.com/charmbracelet/x/exp/term v0.0.0-20240524151031-ff83003bf67a/go.mod h1:YBotIGhfoWhHDlnUpJMkjebGV2pdGRCn1Y4/Nk/vVcU=
152-
github.com/charmbracelet/x/input v0.1.3 h1:oy4TMhyGQsYs/WWJwu1ELUMFnjiUAXwtDf048fHbCkg=
153-
github.com/charmbracelet/x/input v0.1.3/go.mod h1:1gaCOyw1KI9e2j00j/BBZ4ErzRZqa05w0Ghn83yIhKU=
154-
github.com/charmbracelet/x/term v0.1.1 h1:3cosVAiPOig+EV4X9U+3LDgtwwAoEzJjNdwbXDjF6yI=
155-
github.com/charmbracelet/x/term v0.1.1/go.mod h1:wB1fHt5ECsu3mXYusyzcngVWWlu1KKUmmLhfgr/Flxw=
156-
github.com/charmbracelet/x/windows v0.1.2 h1:Iumiwq2G+BRmgoayww/qfcvof7W/3uLoelhxojXlRWg=
157-
github.com/charmbracelet/x/windows v0.1.2/go.mod h1:GLEO/l+lizvFDBPLIOk+49gdX49L9YWMB5t+DZd0jkQ=
150+
github.com/charmbracelet/x/term v0.2.0 h1:cNB9Ot9q8I711MyZ7myUR5HFWL/lc3OpU8jZ4hwm0x0=
151+
github.com/charmbracelet/x/term v0.2.0/go.mod h1:GVxgxAbjUrmpvIINHIQnJJKpMlHiZ4cktEQCN6GWyF0=
158152
github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
159153
github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
160154
github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
@@ -476,8 +470,8 @@ github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 h1:ZK8zHtRHOkbHy6Mmr5D
476470
github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6/go.mod h1:CJlz5H+gyd6CUWT45Oy4q24RdLyn7Md9Vj2/ldJBSIo=
477471
github.com/muesli/cancelreader v0.2.2 h1:3I4Kt4BQjOR54NavqnDogx/MIoWBFa0StPA8ELUXHmA=
478472
github.com/muesli/cancelreader v0.2.2/go.mod h1:3XuTXfFS2VjM+HTLZY9Ak0l6eUKfijIfMUZ4EgX0QYo=
479-
github.com/muesli/termenv v0.15.2 h1:GohcuySI0QmI3wN8Ok9PtKGkgkFIk7y6Vpb5PvrY+Wo=
480-
github.com/muesli/termenv v0.15.2/go.mod h1:Epx+iuz8sNs7mNKhxzH4fWXGNpZwUaJKRS1noLXviQ8=
473+
github.com/muesli/termenv v0.15.3-0.20240618155329-98d742f6907a h1:2MaM6YC3mGu54x+RKAA6JiFFHlHDY1UbkxqppT7wYOg=
474+
github.com/muesli/termenv v0.15.3-0.20240618155329-98d742f6907a/go.mod h1:hxSnBBYLK21Vtq/PHd0S2FYCxBXzBua8ov5s1RobyRQ=
481475
github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A=
482476
github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU=
483477
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
@@ -677,8 +671,8 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0
677671
golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
678672
golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM=
679673
golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU=
680-
golang.org/x/exp v0.0.0-20240808152545-0cdaa3abc0fa h1:ELnwvuAXPNtPk1TJRuGkI9fDTwym6AYBu0qzT8AcHdI=
681-
golang.org/x/exp v0.0.0-20240808152545-0cdaa3abc0fa/go.mod h1:akd2r19cwCdwSwWeIdzYQGa/EZZyqcOdwWiwj5L5eKQ=
674+
golang.org/x/exp v0.0.0-20240823005443-9b4947da3948 h1:kx6Ds3MlpiUHKj7syVnbp57++8WpuKPcR5yjLBjvLEA=
675+
golang.org/x/exp v0.0.0-20240823005443-9b4947da3948/go.mod h1:akd2r19cwCdwSwWeIdzYQGa/EZZyqcOdwWiwj5L5eKQ=
682676
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
683677
golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
684678
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
@@ -764,8 +758,8 @@ golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ
764758
golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
765759
golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
766760
golang.org/x/oauth2 v0.0.0-20210113205817-d3ed898aa8a3/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
767-
golang.org/x/oauth2 v0.20.0 h1:4mQdhULixXKP1rwYBW0vAijoXnkTG0BLCDRzfe1idMo=
768-
golang.org/x/oauth2 v0.20.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI=
761+
golang.org/x/oauth2 v0.21.0 h1:tsimM75w1tF/uws5rbeHzIWxEqElMehnc+iW793zsZs=
762+
golang.org/x/oauth2 v0.21.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI=
769763
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
770764
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
771765
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -1008,10 +1002,10 @@ google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6D
10081002
google.golang.org/genproto v0.0.0-20210207032614-bba0dbe2a9ea/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
10091003
google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de h1:F6qOa9AZTYJXOUEr4jDysRDLrm4PHePlge4v4TGAlxY=
10101004
google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:VUhTRKeHn9wwcdrk73nvdC9gF178Tzhmt/qyaFcPLSo=
1011-
google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157 h1:7whR9kGa5LUwFtpLm2ArCEejtnxlGeLbAyjFY8sGNFw=
1012-
google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157/go.mod h1:99sLkeliLXfdj2J75X3Ho+rrVCaJze0uwN7zDDkjPVU=
1013-
google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157 h1:Zy9XzmMEflZ/MAaA7vNcoebnRAld7FsPW1EeBB7V0m8=
1014-
google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157/go.mod h1:EfXuqaE1J41VCDicxHzUDm+8rk+7ZdXzHV0IhO/I6s0=
1005+
google.golang.org/genproto/googleapis/api v0.0.0-20240604185151-ef581f913117 h1:+rdxYoE3E5htTEWIe15GlN6IfvbURM//Jt0mmkmm6ZU=
1006+
google.golang.org/genproto/googleapis/api v0.0.0-20240604185151-ef581f913117/go.mod h1:OimBR/bc1wPO9iV4NC2bpyjy3VnAwZh5EBPQdtaE5oo=
1007+
google.golang.org/genproto/googleapis/rpc v0.0.0-20240604185151-ef581f913117 h1:1GBuWVLM/KMVUv1t1En5Gs+gFZCNd360GGb4sSxtrhU=
1008+
google.golang.org/genproto/googleapis/rpc v0.0.0-20240604185151-ef581f913117/go.mod h1:EfXuqaE1J41VCDicxHzUDm+8rk+7ZdXzHV0IhO/I6s0=
10151009
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
10161010
google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
10171011
google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
@@ -1028,8 +1022,8 @@ google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM
10281022
google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
10291023
google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8=
10301024
google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
1031-
google.golang.org/grpc v1.65.0 h1:bs/cUb4lp1G5iImFFd3u5ixQzweKizoZJAwBNLR42lc=
1032-
google.golang.org/grpc v1.65.0/go.mod h1:WgYC2ypjlB0EiQi6wdKixMqukr6lBc0Vo+oOgjrM5ZQ=
1025+
google.golang.org/grpc v1.66.0 h1:DibZuoBznOxbDQxRINckZcUvnCEvrW9pcWIE2yF9r1c=
1026+
google.golang.org/grpc v1.66.0/go.mod h1:s3/l6xSSCURdVfAnL+TqCNMyTDAGN6+lZeVxnZR128Y=
10331027
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
10341028
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
10351029
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=

session/middleware/start_session.go

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
package middleware
22

33
import (
4-
"math/rand"
5-
64
"github.com/goravel/framework/contracts/http"
75
"github.com/goravel/framework/session"
86
"github.com/goravel/framework/support/carbon"
7+
"github.com/goravel/framework/support/color"
98
)
109

1110
func StartSession() http.Middleware {
@@ -21,7 +20,9 @@ func StartSession() http.Middleware {
2120
// Retrieve session driver
2221
driver, err := session.SessionFacade.Driver()
2322
if err != nil {
24-
panic(err)
23+
color.Red().Println(err)
24+
req.Next()
25+
return
2526
}
2627

2728
// Build session
@@ -32,17 +33,6 @@ func StartSession() http.Middleware {
3233
s.Start()
3334
req.SetSession(s)
3435

35-
// Perform garbage collection based on lottery
36-
lottery := session.ConfigFacade.Get("session.lottery").([]int)
37-
if len(lottery) == 2 {
38-
if rand.Intn(lottery[1])+1 <= lottery[0] {
39-
lifetime := session.ConfigFacade.GetInt("session.lifetime") * 60
40-
if err := driver.Gc(lifetime); err != nil {
41-
panic(err)
42-
}
43-
}
44-
}
45-
4636
// Set session cookie in response
4737
config := session.ConfigFacade
4838
ctx.Response().Cookie(http.Cookie{
@@ -61,7 +51,7 @@ func StartSession() http.Middleware {
6151

6252
// Save session
6353
if err := s.Save(); err != nil {
64-
panic(err)
54+
color.Red().Printf("Error saving session: %s\n", err)
6555
}
6656
}
6757
}

session/middleware/start_session_test.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,13 @@ func testHttpSessionMiddleware(next nethttp.Handler, mockConfig *configmocks.Con
3030

3131
func mockConfigFacade(mockConfig *configmocks.Config) {
3232
mockConfig.On("GetString", "session.driver").Return("file").Twice()
33-
mockConfig.On("GetInt", "session.lifetime").Return(60).Twice()
33+
mockConfig.On("GetInt", "session.lifetime").Return(60).Once()
3434
mockConfig.On("GetString", "session.cookie").Return("goravel_session").Once()
3535
mockConfig.On("GetString", "session.path").Return("/").Once()
3636
mockConfig.On("GetString", "session.domain").Return("").Once()
3737
mockConfig.On("GetBool", "session.secure").Return(false).Once()
3838
mockConfig.On("GetBool", "session.http_only").Return(true).Once()
3939
mockConfig.On("GetString", "session.same_site").Return("").Once()
40-
mockConfig.On("Get", "session.lottery").Return([]int{100, 100}).Once()
4140
}
4241

4342
func TestStartSession(t *testing.T) {
@@ -77,7 +76,7 @@ func TestStartSession(t *testing.T) {
7776
assert.Equal(t, cookie.Name, resp.Cookies()[0].Name)
7877
assert.Equal(t, cookie.Value, resp.Cookies()[0].Value)
7978

80-
assert.NoError(t, file.Remove("sessions"))
79+
assert.NoError(t, file.Remove("storage"))
8180
mockConfig.AssertExpectations(t)
8281
}
8382

session/service_provider.go

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
package session
22

33
import (
4+
"time"
5+
46
"github.com/goravel/framework/contracts/config"
57
"github.com/goravel/framework/contracts/foundation"
68
"github.com/goravel/framework/contracts/session"
9+
"github.com/goravel/framework/support/color"
710
)
811

912
var (
@@ -27,4 +30,32 @@ func (receiver *ServiceProvider) Register(app foundation.Application) {
2730
func (receiver *ServiceProvider) Boot(app foundation.Application) {
2831
SessionFacade = app.MakeSession()
2932
ConfigFacade = app.MakeConfig()
33+
34+
driver, err := SessionFacade.Driver()
35+
if err != nil {
36+
color.Red().Println(err)
37+
return
38+
}
39+
40+
startGcTimer(driver)
41+
}
42+
43+
// startGcTimer starts a garbage collection timer for the session driver.
44+
func startGcTimer(driver session.Driver) {
45+
interval := ConfigFacade.GetInt("session.gc_interval", 30)
46+
if interval <= 0 {
47+
// No need to start the timer if the interval is zero or negative
48+
return
49+
}
50+
51+
ticker := time.NewTicker(time.Duration(interval) * time.Minute)
52+
53+
go func() {
54+
for range ticker.C {
55+
lifetime := ConfigFacade.GetInt("session.lifetime") * 60
56+
if err := driver.Gc(lifetime); err != nil {
57+
color.Red().Printf("Error performing garbage collection: %s\n", err)
58+
}
59+
}
60+
}()
3061
}

0 commit comments

Comments
 (0)