diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..57e33ff --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/parcoursmob.iml b/.idea/parcoursmob.iml new file mode 100644 index 0000000..5e764c4 --- /dev/null +++ b/.idea/parcoursmob.iml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..b0e7199 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Dockerfile b/Dockerfile old mode 100644 new mode 100755 diff --git a/README.md b/README.md old mode 100644 new mode 100755 diff --git a/config.go b/config.go old mode 100644 new mode 100755 diff --git a/go.mod b/go.mod old mode 100644 new mode 100755 index e84d259..d2411d7 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ replace git.coopgo.io/coopgo-platform/mobility-accounts => ../../coopgo-platform replace git.coopgo.io/coopgo-platform/fleets => ../../coopgo-platform/fleets/ -// replace git.coopgo.io/coopgo-platform/agenda => ../../coopgo-platform/agenda/ +replace git.coopgo.io/coopgo-platform/agenda => ../../coopgo-platform/agenda/ // replace git.coopgo.io/coopgo-platform/emailing => ../../coopgo-platform/emailing/ @@ -26,7 +26,7 @@ require ( golang.org/x/image v0.5.0 golang.org/x/oauth2 v0.0.0-20220411215720-9780585627b5 google.golang.org/grpc v1.48.0 - google.golang.org/protobuf v1.28.1 + google.golang.org/protobuf v1.31.0 ) require ( @@ -37,32 +37,37 @@ require ( git.coopgo.io/coopgo-platform/mobility-accounts v0.0.0-20230329105908-a76c0412a386 github.com/gorilla/securecookie v1.1.1 github.com/minio/minio-go/v7 v7.0.43 - github.com/ory/viper v1.7.5 github.com/xuri/excelize/v2 v2.7.1 ) require ( - github.com/cespare/xxhash v1.1.0 // indirect + ariga.io/atlas v0.12.0 // indirect + github.com/agext/levenshtein v1.2.1 // indirect + github.com/apparentlymart/go-textseg/v13 v13.0.0 // indirect github.com/coreos/go-semver v0.3.0 // indirect github.com/coreos/go-systemd/v22 v22.3.2 // indirect - github.com/dgraph-io/ristretto v0.0.3 // indirect github.com/dustin/go-humanize v1.0.0 // indirect github.com/fsnotify/fsnotify v1.5.4 // indirect + github.com/go-openapi/inflect v0.19.0 // indirect github.com/go-playground/locales v0.14.0 // indirect github.com/go-playground/universal-translator v0.18.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect - github.com/golang/protobuf v1.5.2 // indirect + github.com/golang/protobuf v1.5.3 // indirect github.com/golang/snappy v0.0.1 // indirect + github.com/google/go-cmp v0.5.8 // indirect github.com/hashicorp/hcl v1.0.0 // indirect + github.com/hashicorp/hcl/v2 v2.10.0 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/klauspost/compress v1.15.9 // indirect github.com/klauspost/cpuid/v2 v2.1.0 // indirect github.com/leodido/go-urn v1.2.1 // indirect + github.com/lib/pq v1.10.9 // indirect github.com/magiconair/properties v1.8.6 // indirect github.com/mb0/wkt v0.0.0-20170420051526-a30afd545ee1 // indirect github.com/minio/md5-simd v1.1.2 // indirect github.com/minio/sha256-simd v1.0.0 // indirect + github.com/mitchellh/go-wordwrap v0.0.0-20150314170334-ad45545899c7 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect @@ -90,6 +95,7 @@ require ( github.com/xuri/efp v0.0.0-20220603152613-6918739fd470 // indirect github.com/xuri/nfp v0.0.0-20220409054826-5e722a1d9e22 // indirect github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d // indirect + github.com/zclconf/go-cty v1.8.0 // indirect go.etcd.io/etcd/api/v3 v3.5.4 // indirect go.etcd.io/etcd/client/pkg/v3 v3.5.4 // indirect go.mongodb.org/mongo-driver v1.10.1 // indirect diff --git a/go.sum b/go.sum old mode 100644 new mode 100755 index 55c7d65..d77f7c2 --- a/go.sum +++ b/go.sum @@ -1,3 +1,5 @@ +ariga.io/atlas v0.12.0 h1:jDfjxT3ppKhzqLS26lZv9ni7p9TVNrhy7SQquaF7bPs= +ariga.io/atlas v0.12.0/go.mod h1:+TR129FJZ5Lvzms6dvCeGWh1yR6hMvmXBhug4hrNIGk= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= @@ -36,8 +38,6 @@ cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RX cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -git.coopgo.io/coopgo-platform/agenda v0.0.0-20230310121901-ef3add576f86 h1:pSNHhPU8NB35G14QsSyw/XwsTWZo0qGB0U0X0gzqR1s= -git.coopgo.io/coopgo-platform/agenda v0.0.0-20230310121901-ef3add576f86/go.mod h1:7jVyZSz//VW5+jlLeuwc+JJawNUhJZ7Vima+TdVwKfs= git.coopgo.io/coopgo-platform/emailing v0.0.0-20221017030337-c71888d90c15 h1:+ZI4nGE6mqZ6pc7N/BizheEPRXn6Z84Sj7ikwfP2ZcU= git.coopgo.io/coopgo-platform/emailing v0.0.0-20221017030337-c71888d90c15/go.mod h1:rmbqiHVkONcECOoPlsXlxZnD315Tiz2oRnn1M7646Kg= git.coopgo.io/coopgo-platform/fleets v0.0.0-20230310144446-feb935f8bf4e h1:eHahRTKlC8aBWYCd6LbXNcX8HoQhuZj31OFWrw0EL0U= @@ -50,27 +50,30 @@ github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/DATA-DOG/go-sqlmock v1.3.2/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM= +github.com/DATA-DOG/go-sqlmock v1.5.0 h1:Shsta01QNfFxHCfpW6YH2STWB0MudeXXEWMr20OEh60= github.com/Masterminds/goutils v1.1.0/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= github.com/Masterminds/sprig v2.22.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuNhlNS5hqE0NB0E6fgfo2Br3o= github.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA= github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5/go.mod h1:lmUJ/7eu/Q8D7ML55dXQrVaamCz2vxCfdQBasLZfHKk= -github.com/OneOfOne/xxhash v1.2.2 h1:KMrpdQIwFcEqXDklaen+P1axHaj9BSKzvpUUfnHldSE= -github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= +github.com/agext/levenshtein v1.2.1 h1:QmvMAjj2aEICytGiWzmxoE0x2KZvE0fvmqMOfy2tjT8= +github.com/agext/levenshtein v1.2.1/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= +github.com/apparentlymart/go-dump v0.0.0-20180507223929-23540a00eaa3/go.mod h1:oL81AME2rN47vu18xqj1S1jPIPuN7afo62yKTNn3XMM= +github.com/apparentlymart/go-textseg v1.0.0/go.mod h1:z96Txxhf3xSFMPmb5X/1W05FF/Nj9VFpLOpjS5yuumk= +github.com/apparentlymart/go-textseg/v13 v13.0.0 h1:Y+KvPE1NYz0xl601PVImeQfFyEy6iT90AvPUL1NNfNw= +github.com/apparentlymart/go-textseg/v13 v13.0.0/go.mod h1:ZK2fH7c4NqDTLtiYLvIkEghdlcqw7yxLeM89kiTRPUo= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/cenkalti/backoff v2.1.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= github.com/cenkalti/backoff/v3 v3.0.0/go.mod h1:cIeZDE3IrqwwJl6VUwCN6trj1oXrTS4rc0ij+ULvLYs= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= -github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= @@ -96,11 +99,6 @@ github.com/d4l3k/messagediff v1.2.1/go.mod h1:Oozbb1TVXFac9FtSIxHBMnBCq2qeH/2KkE github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/dgraph-io/ristretto v0.0.1/go.mod h1:T40EBc7CJke8TkpiYfGGKAeFjSaxuFXhuXRyumBd6RE= -github.com/dgraph-io/ristretto v0.0.3 h1:jh22xisGBjrEVnRZ1DVTpBVQm0Xndu8sMl0CWDzSIBI= -github.com/dgraph-io/ristretto v0.0.3/go.mod h1:KPxhHT9ZxKefz+PCeOGsrHpl1qZ7i70dGTu2u+Ahh6E= -github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2 h1:tdlZCpZ/P9DhczCTSixgIKmwPv6+wP5DGjqLYw5SUiA= -github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= @@ -118,7 +116,6 @@ github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL github.com/fogleman/gg v1.3.0 h1:/7zJX8F6AaYQc57WQCyN9cAIz+4bCJGO9B+dyW29am8= github.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE= -github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/fsnotify/fsnotify v1.5.4 h1:jRbGcIw6P2Meqdwuo0H1p6JVLbL5DHKAKlYndzMwVZI= github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= @@ -131,6 +128,8 @@ github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vb github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= +github.com/go-openapi/inflect v0.19.0 h1:9jCH9scKIbHeV9m12SmPilScz6krDxKRasNNSNPXu/4= +github.com/go-openapi/inflect v0.19.0/go.mod h1:lHpZVlpIQqLyKwJ4N+YSc9hchQy/i12fJykb83CRBH4= github.com/go-playground/assert/v2 v2.0.1 h1:MsBgLAaY856+nPRTKrp3/OZK38U/wa0CcBYNjji3q3A= github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= github.com/go-playground/locales v0.14.0 h1:u50s323jtVGugKlcYeyzC0etD1HifMjqmJqb8WugfUU= @@ -140,6 +139,8 @@ github.com/go-playground/universal-translator v0.18.0/go.mod h1:UvRDBj+xPUEGrFYl github.com/go-playground/validator/v10 v10.11.0 h1:0W+xRM511GY47Yy3bZUbJVitCNg2BOGlCyvTqsp/xIw= github.com/go-playground/validator/v10 v10.11.0/go.mod h1:i+3WkQ1FvaUjjxh1kSvIA4dMGDBiPU55YFDl0WbKdWU= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= +github.com/go-test/deep v1.0.3 h1:ZrJSEWsXzPOxaZnFteGEfooLba+ju3FYIbOrS+rQd68= +github.com/go-test/deep v1.0.3/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= @@ -157,6 +158,7 @@ github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= +github.com/golang/protobuf v1.1.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -172,8 +174,9 @@ github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QD github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= +github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/snappy v0.0.1 h1:Qgr9rKW7uDUkrbSmQeiDsGa8SjGyCOGtuasMWwvp2P4= github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= @@ -190,6 +193,7 @@ github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= +github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= @@ -212,7 +216,6 @@ github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+ github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= -github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= github.com/gorilla/securecookie v1.1.1 h1:miw7JPhV+b/lAHSXz4qd/nN9jRiAFV5FwjeKyCS8BvQ= @@ -226,6 +229,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 v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hashicorp/hcl/v2 v2.10.0 h1:1S1UnuhDGlv3gRFV4+0EdwB+znNP5HmcGbIqwnSCByg= +github.com/hashicorp/hcl/v2 v2.10.0/go.mod h1:FwWsfWEjyV/CMj8s/gqAuiviY72rJ1/oayI9WftqcKg= github.com/huandu/xstrings v1.3.0/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= @@ -238,7 +243,6 @@ github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnr github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= -github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= @@ -256,7 +260,6 @@ github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxv github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= @@ -264,12 +267,15 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348 h1:MtvEpTB6LX3vkb4ax0b5D2DHbNAUsen0Gx5wZoq3lV4= +github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k= github.com/leodido/go-urn v1.2.1 h1:BqpAaACuzVSgi/VLzGZIobT2z4v53pjosyNd9Yv6n/w= github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY= github.com/lib/pq v0.0.0-20180327071824-d34b9ff171c2/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.3.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.8.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= -github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw= +github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/magiconair/properties v1.8.6 h1:5ibWZ6iY0NctNGWo87LalDlEZ6R41TqbbDamhfG/Qzo= github.com/magiconair/properties v1.8.6/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= @@ -285,7 +291,8 @@ github.com/minio/minio-go/v7 v7.0.43/go.mod h1:nCrRzjoSUQh8hgKKtu3Y708OLvRLtuASM github.com/minio/sha256-simd v1.0.0 h1:v1ta+49hkWZyvaKwrQB8elexRqm6Y0aMLjCNsrYxo6g= github.com/minio/sha256-simd v1.0.0/go.mod h1:OuYzVNI5vcoYIAmbIvHPl3N3jUzVedXbKy5RFepssQM= github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw= -github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/go-wordwrap v0.0.0-20150314170334-ad45545899c7 h1:DpOJ2HYzCv8LZP15IdmG+YdwD2luVPHITV96TkirNBM= +github.com/mitchellh/go-wordwrap v0.0.0-20150314170334-ad45545899c7/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= 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= @@ -308,11 +315,8 @@ github.com/opencontainers/runc v0.1.1/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59P github.com/opencontainers/runc v1.0.0-rc9/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= github.com/ory/dockertest v3.3.4+incompatible/go.mod h1:1vX4m9wsvi00u5bseYwXaSnhNrne+V0E6LAcBILJdPs= github.com/ory/dockertest/v3 v3.6.0/go.mod h1:4ZOpj8qBUmh8fcBSVzkH2bws2s91JdGvHUqan4GHEuQ= -github.com/ory/viper v1.7.5 h1:+xVdq7SU3e1vNaCsk/ixsfxE4zylk1TJUiJrY647jUE= -github.com/ory/viper v1.7.5/go.mod h1:ypOuyJmEUb3oENywQZRgeAMwqgOyDqwboO1tj3DjTaM= github.com/paulmach/go.geojson v1.4.0 h1:5x5moCkCtDo5x8af62P9IOAYGQcYHtxz2QJ3x1DoCgY= github.com/paulmach/go.geojson v1.4.0/go.mod h1:YaKx1hKpWF+T2oj2lFJPsW/t1Q5e1jQI61eoQSTwpIs= -github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pelletier/go-toml/v2 v2.0.5 h1:ipoSadvV8oGUjnUbMub59IDPPwfxF694nG/jwbMiyQg= @@ -356,25 +360,21 @@ github.com/rs/xid v1.4.0 h1:qd7wPTDkN6KQx2VmMBLrpHkiyQwgFXRnkOLacUiaSNY= github.com/rs/xid v1.4.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= github.com/santhosh-tekuri/jsonschema/v5 v5.0.0 h1:TToq11gyfNlrMFZiYujSekIsPd9AmsA2Bj/iv+s4JHE= github.com/santhosh-tekuri/jsonschema/v5 v5.0.0/go.mod h1:FKdcjfQW6rpZSnxxUvEA5H/cDPdvJ/SZJQLWWXWGrZ0= +github.com/sergi/go-diff v1.0.0 h1:Kpca3qRNrduNnOQeazBd0ysaKrUJiIuISHxogkT9RPQ= +github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= -github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= -github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72 h1:qLC7fQah7D6K1B0ujays3HV9gkFtllcxhzImRR7ArPQ= -github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= -github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/afero v1.8.2 h1:xehSyVa0YnHWsJ49JFljMpg1HX19V6NDZ1fkm1Xznbo= github.com/spf13/afero v1.8.2/go.mod h1:CtAatgMJh6bJEIs48Ay/FOnkljP3WeGUG0MC1RfAqwo= -github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.5.0 h1:rj3WzYc11XZaIZMPKmwP96zkFEnnAmV8s6XbB2aY32w= github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU= -github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= +github.com/spf13/pflag v1.0.2/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= @@ -392,7 +392,6 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/subosito/gotenv v1.4.1 h1:jyEFiXpy21Wm81FBN71l9VoMMV8H8jG+qIK3GCpY6Qs= github.com/subosito/gotenv v1.4.1/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0= github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= @@ -405,6 +404,9 @@ github.com/twpayne/go-kml v1.5.0/go.mod h1:g/OG8Q8JUxqFw8LGXE44W7osn1uXDAYaVFr1Y github.com/twpayne/go-kml v1.5.1/go.mod h1:kz8jAiIz6FIdU2Zjce9qGlVtgFYES9vt7BTPBHf5jl4= github.com/twpayne/go-polyline v1.0.0/go.mod h1:ICh24bcLYBX8CknfvNPKqoTbe+eg+MX1NPyJmSBo7pU= github.com/twpayne/go-waypoint v0.0.0-20200706203930-b263a7f6e4e8/go.mod h1:qj5pHncxKhu9gxtZEYWypA/z097sxhFlbTyOyt9gcnU= +github.com/vmihailenco/msgpack v3.3.3+incompatible/go.mod h1:fy3FlTQTDXWkZ7Bh6AcGMlsjHatGryHQYUTf1ShIgkk= +github.com/vmihailenco/msgpack/v4 v4.3.12/go.mod h1:gborTTJjAo/GWTqqRjrLCn9pgNN+NXzzngzBKDPIqw4= +github.com/vmihailenco/tagparser v0.1.1/go.mod h1:OeAg3pn3UbLjkWt+rN9oFYB6u/cQgqMEUPoW2WPyhdI= github.com/xdg-go/pbkdf2 v1.0.0 h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c= github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= github.com/xdg-go/scram v1.1.1 h1:VOMT+81stJgXW3CpHyqHN3AXDYIMsx56mEFrB37Mb/E= @@ -425,6 +427,10 @@ github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +github.com/zclconf/go-cty v1.2.0/go.mod h1:hOPWgoHbaTUnI5k4D2ld+GRpFJSCe6bCM7m1q/N4PQ8= +github.com/zclconf/go-cty v1.8.0 h1:s4AvqaeQzJIu3ndv4gVIhplVD0krU+bgrcLSVUnaWuA= +github.com/zclconf/go-cty v1.8.0/go.mod h1:vVKLxnk3puL4qRAv72AO+W99LUD4da90g3uUAzyuvAk= +github.com/zclconf/go-cty-debug v0.0.0-20191215020915-b22d67c1ba0b/go.mod h1:ZRKQfBXbGkpdV6QMzT3rU1kSTAnfu1dO8dPKjYprgj8= gitlab.scity.coop/maas/navitia-golang v0.0.0-20220429110621-5c22d6efdd0c h1:pCazzEsTvjDopl3bvo6H2f2xjo1cDjOZ9QpJRNFCc00= gitlab.scity.coop/maas/navitia-golang v0.0.0-20220429110621-5c22d6efdd0c/go.mod h1:M1U2osA6dYQF8zuJOTb/0O1F/Xgcb+4AkRdw+Un6Rp4= go.etcd.io/etcd/api/v3 v3.5.4 h1:OHVyt3TopwtUQ2GKdd5wu3PmmipR4FTwCqoEjSyRdIc= @@ -450,11 +456,11 @@ go.uber.org/zap v1.17.0 h1:MTjgFu6ZLKvY6Pvaqk97GlxNBuMpV4Hy/3P6tRGlI2U= go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190426145343-a29dc8fdc734/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200323165209-0ec3e9974c59/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= @@ -503,6 +509,7 @@ golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= 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/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= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -577,12 +584,12 @@ golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190502175342-a43fa875dd82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -590,7 +597,6 @@ golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200121082415-34d275377bf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -654,7 +660,6 @@ golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3 golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= @@ -809,8 +814,8 @@ google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp0 google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= -google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= +google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc h1:2gGKlE2+asNV9m7xrywl36YYNnBG5ZQ0r/BOOxqPpmk= gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc/go.mod h1:m7x9LTH6d71AHyAX77c9yqWCCa3UKHcVEj9y7hAtKDk= @@ -820,7 +825,6 @@ gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8 gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= -gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/mail.v2 v2.3.1 h1:WYFn/oANrAGP2C0dcV6/pbkPzv8yGzqTjPmTeO7qoXk= diff --git a/handlers/api/api.go b/handlers/api/api.go old mode 100644 new mode 100755 diff --git a/handlers/api/cache.go b/handlers/api/cache.go old mode 100644 new mode 100755 index 433d7fc..ba72b72 --- a/handlers/api/cache.go +++ b/handlers/api/cache.go @@ -12,40 +12,58 @@ import ( func (h APIHandler) GetCache(w http.ResponseWriter, r *http.Request) { vars := mux.Vars(r) cacheid := vars["cacheid"] - - d, err := h.cache.Get(cacheid) - if err != nil { - fmt.Println(err) - w.WriteHeader(http.StatusNotFound) - return - } - - result := d - - if data, ok := d.([]any); ok { - if limitsmin, ok := r.URL.Query()["limits.min"]; ok { - min, _ := strconv.Atoi(limitsmin[0]) - if limitsmax, ok := r.URL.Query()["limits.max"]; ok { - max, _ := strconv.Atoi(limitsmax[0]) - if max > len(data) { - result = data[min:] - } else { - result = data[min:max] - } - } else { - result = data[min:] - } + // Use a channel to synchronize the goroutines + ch := make(chan []byte) + // Fetch data from cache asynchronously + go func() { + d, err := h.cache.Get(cacheid) + if err != nil { + fmt.Println(err) + w.WriteHeader(http.StatusNotFound) + ch <- nil + return } + var data []any + if val, ok := d.([]any); ok { + data = val + } else { + data = []any{d} + } + j := toJSON(data, w, r) + ch <- j // Signal that the data has been fetched successfully + close(ch) + }() + // wait for the JSON marshaling goroutine to finish + j := <-ch + if j == nil { + return // Stop processing if an error occurred } - - j, err := json.Marshal(result) - if err != nil { - w.WriteHeader(http.StatusNotFound) - return - } - + // Send the JSON response to the client w.WriteHeader(http.StatusOK) w.Header().Set("Content-Type", "application/json") w.Write(j) + <-ch +} +func toJSON(data []any, w http.ResponseWriter, r *http.Request) []byte { + result := data + if limitsmin, ok := r.URL.Query()["limits.min"]; ok { + min, _ := strconv.Atoi(limitsmin[0]) + if limitsmax, ok := r.URL.Query()["limits.max"]; ok { + max, _ := strconv.Atoi(limitsmax[0]) + if max > len(data) { + result = data[min:] + } else { + result = data[min:max] + } + } else { + result = data[min:] + } + } + j, err := json.Marshal(result) + if err != nil { + w.WriteHeader(http.StatusNotFound) + return nil + } + return j } diff --git a/handlers/api/export.go b/handlers/api/export.go old mode 100644 new mode 100755 diff --git a/handlers/api/geo.go b/handlers/api/geo.go old mode 100644 new mode 100755 diff --git a/handlers/api/oidc.go b/handlers/api/oidc.go old mode 100644 new mode 100755 diff --git a/handlers/application/administration.go b/handlers/application/administration.go old mode 100644 new mode 100755 index 748ea06..4151433 --- a/handlers/application/administration.go +++ b/handlers/application/administration.go @@ -8,6 +8,7 @@ import ( "io" "net/http" "sort" + "sync" "time" "git.coopgo.io/coopgo-apps/parcoursmob/utils/identification" @@ -27,79 +28,83 @@ import ( ) func (h *ApplicationHandler) Administration(w http.ResponseWriter, r *http.Request) { - - accounts, err := h.services.GetAccounts() - if err != nil { - fmt.Println(err) - w.WriteHeader(http.StatusInternalServerError) - return - } - - beneficiaries, err := h.services.GetBeneficiaries() - if err != nil { - fmt.Println(err) - w.WriteHeader(http.StatusInternalServerError) - return - } - - bookings, err := h.services.GetBookings() - if err != nil { - fmt.Println(err) - w.WriteHeader(http.StatusInternalServerError) - return - } - - request := &groupsmanagement.GetGroupsRequest{ - Namespaces: []string{"parcoursmob_organizations"}, - } - - resp, err := h.services.GRPC.GroupsManagement.GetGroups(context.TODO(), request) - if err != nil { - fmt.Println(err) - w.WriteHeader(http.StatusInternalServerError) - return - } - - var groups = []groupstorage.Group{} - - for _, group := range resp.Groups { - g := group.ToStorageType() - groups = append(groups, g) - } - - sort.Sort(sorting.GroupsByName(groups)) - ////////////////////////////////////add event//////////////////////////////////////////// - rresp, err := h.services.GRPC.Agenda.GetEvents(context.TODO(), &agenda.GetEventsRequest{ - Namespaces: []string{"parcoursmob_dispositifs"}, - }) - - if err != nil { - fmt.Println(err) - w.WriteHeader(http.StatusInternalServerError) - return - } - - responses := []agendastorage.Event{} - - groupids := []string{} - for _, e := range rresp.Events { - groupids = append(groupids, e.Owners...) - responses = append(responses, e.ToStorageType()) - } - - sort.Sort(sorting.EventsByStartdate(responses)) - - groupsresp, err := h.services.GRPC.GroupsManagement.GetGroupsBatch(context.TODO(), &groupsmanagement.GetGroupsBatchRequest{ - Groupids: groupids, - }) - groupps := map[string]any{} - - if err == nil { - for _, g := range groupsresp.Groups { - groupps[g.Id] = g.ToStorageType() + var ( + wg sync.WaitGroup + accounts, beneficiaries []mobilityaccountsstorage.Account + bookings []fleetsstorage.Booking + accountsErr, beneficiariesErr, bookingsErr, groupsResponseErr, eventsResponseErr, groupsBatchErr error + groups = []groupstorage.Group{} + responses = []agendastorage.Event{} + groupsResponse *groupsmanagement.GetGroupsResponse + eventsResponse *agenda.GetEventsResponse + groupids = []string{} + groupsBatchResponse *groupsmanagement.GetGroupsBatchResponse + ) + // Retrieve accounts in a goroutine + wg.Add(1) + go func() { + defer wg.Done() + accounts, accountsErr = h.services.GetAccounts() + }() + // Retrieve beneficiaries in a goroutine + wg.Add(1) + go func() { + defer wg.Done() + beneficiaries, beneficiariesErr = h.services.GetBeneficiaries() + }() + // Retrieve bookings in a goroutine + wg.Add(1) + go func() { + defer wg.Done() + bookings, bookingsErr = h.services.GetBookings() + }() + // Retrieve groupsRequest in a goroutine + wg.Add(1) + go func() { + defer wg.Done() + request := &groupsmanagement.GetGroupsRequest{ + Namespaces: []string{"parcoursmob_organizations"}, } + groupsResponse, groupsResponseErr = h.services.GRPC.GroupsManagement.GetGroups(context.TODO(), request) + for _, group := range groupsResponse.Groups { + g := group.ToStorageType() + groups = append(groups, g) + } + sort.Sort(sorting.GroupsByName(groups)) + }() + // Retrieve Events in a goroutine + wg.Add(1) + go func() { + defer wg.Done() + eventsResponse, eventsResponseErr = h.services.GRPC.Agenda.GetEvents(context.TODO(), &agenda.GetEventsRequest{ + Namespaces: []string{"parcoursmob_dispositifs"}, + }) + for _, e := range eventsResponse.Events { + groupids = append(groupids, e.Owners...) + responses = append(responses, e.ToStorageType()) + } + sort.Sort(sorting.EventsByStartdate(responses)) + }() + wg.Add(1) + // Retrieve groupsBatch in a goroutine + go func() { + defer wg.Done() + groupsBatchResponse, groupsBatchErr = h.services.GRPC.GroupsManagement.GetGroupsBatch(context.TODO(), &groupsmanagement.GetGroupsBatchRequest{ + Groupids: groupids, + }) + groupps := map[string]any{} + if groupsBatchErr == nil { + for _, g := range groupsBatchResponse.Groups { + groupps[g.Id] = g.ToStorageType() + } + } + }() + wg.Wait() + if accountsErr != nil || beneficiariesErr != nil || bookingsErr != nil || groupsResponseErr != nil || eventsResponseErr != nil { + fmt.Println(accountsErr, beneficiariesErr, bookingsErr, groupsResponseErr, eventsResponseErr, groupsBatchErr) + w.WriteHeader(http.StatusInternalServerError) + return } - h.Renderer.Administration(w, r, accounts, beneficiaries, groups, bookings, responses) } @@ -155,22 +160,23 @@ func (h *ApplicationHandler) AdministrationCreateGroup(w http.ResponseWriter, r Namespace: "parcoursmob_roles", }, } - - _, err = h.services.GRPC.GroupsManagement.AddGroup(context.TODO(), request_organization) - if err != nil { - fmt.Println(err) - w.WriteHeader(http.StatusInternalServerError) - return - } - + go func() { + _, err = h.services.GRPC.GroupsManagement.AddGroup(context.TODO(), request_organization) + if err != nil { + fmt.Println(err) + w.WriteHeader(http.StatusInternalServerError) + return + } + }() // Create the admin role for the organization - _, err = h.services.GRPC.GroupsManagement.AddGroup(context.TODO(), request_role) - if err != nil { - fmt.Println(err) - w.WriteHeader(http.StatusInternalServerError) - return - } - + go func() { + _, err = h.services.GRPC.GroupsManagement.AddGroup(context.TODO(), request_role) + if err != nil { + fmt.Println(err) + w.WriteHeader(http.StatusInternalServerError) + return + } + }() http.Redirect(w, r, fmt.Sprintf("/app/administration/groups/%s", groupid), http.StatusFound) return } @@ -205,165 +211,167 @@ func (h *ApplicationHandler) AdministrationGroupDisplay(w http.ResponseWriter, r func (h *ApplicationHandler) AdministrationGroupInviteAdmin(w http.ResponseWriter, r *http.Request) { vars := mux.Vars(r) groupid := vars["groupid"] + var ( + groupresp *groupsmanagement.GetGroupResponse + accountresp *accounts.GetAccountUsernameResponse + err error + ) + go func() { + groupresp, err = h.services.GRPC.GroupsManagement.GetGroup(context.TODO(), &groupsmanagement.GetGroupRequest{ + Id: groupid, + Namespace: "parcoursmob_organizations", + }) - groupresp, err := h.services.GRPC.GroupsManagement.GetGroup(context.TODO(), &groupsmanagement.GetGroupRequest{ - Id: groupid, - Namespace: "parcoursmob_organizations", - }) - - if err != nil { - fmt.Println(err) - w.WriteHeader(http.StatusInternalServerError) - return - } - + if err != nil { + fmt.Println(err) + w.WriteHeader(http.StatusInternalServerError) + return + } + }() r.ParseForm() - accountresp, err := h.services.GRPC.MobilityAccounts.GetAccountUsername(context.TODO(), &accounts.GetAccountUsernameRequest{ - Username: r.FormValue("username"), - Namespace: "parcoursmob", - }) + go func() { + accountresp, err = h.services.GRPC.MobilityAccounts.GetAccountUsername(context.TODO(), &accounts.GetAccountUsernameRequest{ + Username: r.FormValue("username"), + Namespace: "parcoursmob", + }) + if err == nil { + // Account already exists : adding the existing account to admin list + account := accountresp.Account.ToStorageType() + account.Data["groups"] = append(account.Data["groups"].([]any), groupid, groupid) + account.Data["groups"] = append(account.Data["groups"].([]any), groupid, groupid+":admin") - if err == nil { - // Account already exists : adding the existing account to admin list - account := accountresp.Account.ToStorageType() - account.Data["groups"] = append(account.Data["groups"].([]any), groupid, groupid) - account.Data["groups"] = append(account.Data["groups"].([]any), groupid, groupid+":admin") + as, _ := accounts.AccountFromStorageType(&account) - as, _ := accounts.AccountFromStorageType(&account) + _, err = h.services.GRPC.MobilityAccounts.UpdateData( + context.TODO(), + &accounts.UpdateDataRequest{ + Account: as, + }, + ) - _, err = h.services.GRPC.MobilityAccounts.UpdateData( - context.TODO(), - &accounts.UpdateDataRequest{ - Account: as, - }, - ) - - fmt.Println(err) - - data := map[string]any{ - "group": groupresp.Group.ToStorageType().Data["name"], - } - - if err := h.emailing.Send("onboarding.existing_administrator", r.FormValue("username"), data); err != nil { fmt.Println(err) + + data := map[string]any{ + "group": groupresp.Group.ToStorageType().Data["name"], + } + + if err := h.emailing.Send("onboarding.existing_administrator", r.FormValue("username"), data); err != nil { + fmt.Println(err) + } + + http.Redirect(w, r, fmt.Sprintf("/app/administration/groups/%s", groupid), http.StatusFound) + return + } else { + // Onboard now administrator + onboarding := map[string]any{ + "username": r.FormValue("username"), + "group": groupid, + "admin": true, + } + + b := make([]byte, 16) + if _, err := io.ReadFull(rand.Reader, b); err != nil { + fmt.Println(err) + w.WriteHeader(http.StatusInternalServerError) + return + } + key := base64.RawURLEncoding.EncodeToString(b) + + h.cache.PutWithTTL("onboarding/"+key, onboarding, 168*time.Hour) // 1 week TTL + + data := map[string]any{ + "group": groupresp.Group.ToStorageType().Data["name"], + "key": key, + } + + if err := h.emailing.Send("onboarding.new_administrator", r.FormValue("username"), data); err != nil { + fmt.Println(err) + w.WriteHeader(http.StatusInternalServerError) + return + } } http.Redirect(w, r, fmt.Sprintf("/app/administration/groups/%s", groupid), http.StatusFound) return - } else { - // Onboard now administrator - onboarding := map[string]any{ - "username": r.FormValue("username"), - "group": groupid, - "admin": true, - } - - b := make([]byte, 16) - if _, err := io.ReadFull(rand.Reader, b); err != nil { - fmt.Println(err) - w.WriteHeader(http.StatusInternalServerError) - return - } - key := base64.RawURLEncoding.EncodeToString(b) - - h.cache.PutWithTTL("onboarding/"+key, onboarding, 168*time.Hour) // 1 week TTL - - data := map[string]any{ - "group": groupresp.Group.ToStorageType().Data["name"], - "key": key, - } - - if err := h.emailing.Send("onboarding.new_administrator", r.FormValue("username"), data); err != nil { - fmt.Println(err) - w.WriteHeader(http.StatusInternalServerError) - return - } - } - - http.Redirect(w, r, fmt.Sprintf("/app/administration/groups/%s", groupid), http.StatusFound) - return + }() } - func (h *ApplicationHandler) AdministrationGroupInviteMember(w http.ResponseWriter, r *http.Request) { vars := mux.Vars(r) groupid := vars["groupid"] + var ( + group storage.Group + ) + groupCh := make(chan storage.Group) + go func() { + groupresp, err := h.services.GRPC.GroupsManagement.GetGroup(context.TODO(), &groupsmanagement.GetGroupRequest{ + Id: groupid, + Namespace: "parcoursmob_organizations", + }) - groupresp, err := h.services.GRPC.GroupsManagement.GetGroup(context.TODO(), &groupsmanagement.GetGroupRequest{ - Id: groupid, - Namespace: "parcoursmob_organizations", - }) - - if err != nil { - fmt.Println(err) - w.WriteHeader(http.StatusInternalServerError) - return - } - - group := groupresp.Group.ToStorageType() - + if err != nil { + fmt.Println(err) + w.WriteHeader(http.StatusInternalServerError) + return + } + group := groupresp.Group.ToStorageType() + groupCh <- group + }() r.ParseForm() + go func() { + group = <-groupCh + accountresp, err := h.services.GRPC.MobilityAccounts.GetAccountUsername(context.TODO(), &accounts.GetAccountUsernameRequest{ + Username: r.FormValue("username"), + Namespace: "parcoursmob", + }) + if err == nil { + account := accountresp.Account.ToStorageType() + account.Data["groups"] = append(account.Data["groups"].([]any), group.ID) - accountresp, err := h.services.GRPC.MobilityAccounts.GetAccountUsername(context.TODO(), &accounts.GetAccountUsernameRequest{ - Username: r.FormValue("username"), - Namespace: "parcoursmob", - }) + as, _ := accounts.AccountFromStorageType(&account) - if err == nil { - account := accountresp.Account.ToStorageType() - account.Data["groups"] = append(account.Data["groups"].([]any), group.ID) + _, err = h.services.GRPC.MobilityAccounts.UpdateData( + context.TODO(), + &accounts.UpdateDataRequest{ + Account: as, + }, + ) + data := map[string]any{ + "group": group.Data["name"], + } - as, _ := accounts.AccountFromStorageType(&account) + if err := h.emailing.Send("onboarding.existing_member", r.FormValue("username"), data); err != nil { + } - _, err = h.services.GRPC.MobilityAccounts.UpdateData( - context.TODO(), - &accounts.UpdateDataRequest{ - Account: as, - }, - ) - - fmt.Println(err) - - data := map[string]any{ - "group": group.Data["name"], - } - - if err := h.emailing.Send("onboarding.existing_member", r.FormValue("username"), data); err != nil { - fmt.Println(err) - } - - http.Redirect(w, r, "/app/group/settings", http.StatusFound) - return - } else { - // Onboard now administrator - onboarding := map[string]any{ - "username": r.FormValue("username"), - "group": group.ID, - "admin": false, - } - - b := make([]byte, 16) - if _, err := io.ReadFull(rand.Reader, b); err != nil { - fmt.Println(err) - w.WriteHeader(http.StatusInternalServerError) + http.Redirect(w, r, "/app/group/settings", http.StatusFound) return + } else { + // Onboard now administrator + onboarding := map[string]any{ + "username": r.FormValue("username"), + "group": group.ID, + "admin": false, + } + + b := make([]byte, 16) + if _, err := io.ReadFull(rand.Reader, b); err != nil { + w.WriteHeader(http.StatusInternalServerError) + return + } + key := base64.RawURLEncoding.EncodeToString(b) + + h.cache.PutWithTTL("onboarding/"+key, onboarding, 168*time.Hour) // 1 week TTL + data := map[string]any{ + "group": group.Data["name"], + "key": key, + } + + if err := h.emailing.Send("onboarding.new_member", r.FormValue("username"), data); err != nil { + w.WriteHeader(http.StatusInternalServerError) + return + } } - key := base64.RawURLEncoding.EncodeToString(b) - - h.cache.PutWithTTL("onboarding/"+key, onboarding, 168*time.Hour) // 1 week TTL - - data := map[string]any{ - "group": group.Data["name"], - "key": key, - } - - if err := h.emailing.Send("onboarding.new_member", r.FormValue("username"), data); err != nil { - fmt.Println(err) - w.WriteHeader(http.StatusInternalServerError) - return - } - } - + }() http.Redirect(w, r, "/app/administration/groups/"+group.ID, http.StatusFound) return } diff --git a/handlers/application/agenda.go b/handlers/application/agenda.go old mode 100644 new mode 100755 diff --git a/handlers/application/application.go b/handlers/application/application.go old mode 100644 new mode 100755 diff --git a/handlers/application/beneficiaries.go b/handlers/application/beneficiaries.go old mode 100644 new mode 100755 index bfbc30f..ad4f22a --- a/handlers/application/beneficiaries.go +++ b/handlers/application/beneficiaries.go @@ -20,7 +20,10 @@ import ( profilepictures "git.coopgo.io/coopgo-apps/parcoursmob/utils/profile-pictures" "git.coopgo.io/coopgo-apps/parcoursmob/utils/sorting" filestorage "git.coopgo.io/coopgo-apps/parcoursmob/utils/storage" + agenda "git.coopgo.io/coopgo-platform/agenda/grpcapi" + agendastorage "git.coopgo.io/coopgo-platform/agenda/storage" fleets "git.coopgo.io/coopgo-platform/fleets/grpcapi" + fleetsstorage "git.coopgo.io/coopgo-platform/fleets/storage" groupsmanagement "git.coopgo.io/coopgo-platform/groups-management/grpcapi" "git.coopgo.io/coopgo-platform/groups-management/storage" mobilityaccounts "git.coopgo.io/coopgo-platform/mobility-accounts/grpcapi" @@ -41,6 +44,67 @@ type BeneficiariesForm struct { Gender string `json:"gender"` } +type Event_Beneficiary interface { + Name() string + Date() time.Time + DateEnd() time.Time + Type() string + Db() string + ID() string + Icons() string + Status() int +} + +type Event struct { + IDVal string + NameVal string + DateVal time.Time + DateEndVal time.Time + TypeVal string + DbVal string + Deleted bool + IconSet string + StatusVal int +} + +func (e Event) Name() string { + return e.NameVal +} + +func (e Event) Date() time.Time { + return e.DateVal +} + +func (e Event) DateEnd() time.Time { + return e.DateEndVal +} + +func (e Event) Type() string { + return e.TypeVal +} + +func (e Event) ID() string { + return e.IDVal +} + +func (e Event) Db() string { + return e.DbVal +} + +func (e Event) Icons() string { + return e.IconSet +} + +func (e Event) Status() int { + return e.StatusVal +} + +func sortByDate(events []Event_Beneficiary) { + sort.Slice(events, func(i, j int) bool { + return events[i].Date().After(events[j].Date()) + }) +} + func (h *ApplicationHandler) BeneficiariesList(w http.ResponseWriter, r *http.Request) { accounts, err := h.beneficiaries(r) @@ -135,6 +199,35 @@ func (h *ApplicationHandler) BeneficiaryDisplay(w http.ResponseWriter, r *http.R return } + subscriptionrequest := &agenda.GetSubscriptionByUserRequest{ + Subscriber: beneficiaryID, + } + + subcriptionresp, err := h.services.GRPC.Agenda.GetSubscriptionByUser(context.TODO(), subscriptionrequest) + if err != nil { + fmt.Println(err) + w.WriteHeader(http.StatusInternalServerError) + return + } + + events := []agendastorage.Event{} + currentTime := time.Now().Truncate(24 * time.Hour) + + for _, e := range subcriptionresp.Subscription { + eventresquest := &agenda.GetEventRequest{ + Id: e.Eventid, + } + eventresp, err := h.services.GRPC.Agenda.GetEvent(context.TODO(), eventresquest) + if err != nil { + fmt.Println(err) + w.WriteHeader(http.StatusInternalServerError) + return + } + events = append(events, eventresp.Event.ToStorageType()) + } + + sort.Sort(sorting.EventsByStartdate(events)) + bookingsrequest := &fleets.GetDriverBookingsRequest{ Driver: beneficiaryID, } @@ -145,12 +238,78 @@ func (h *ApplicationHandler) BeneficiaryDisplay(w http.ResponseWriter, r *http.R return } - bookings := []any{} + bookings := []fleetsstorage.Booking{} for _, b := range bookingsresp.Bookings { bookings = append(bookings, b.ToStorageType()) } + var events_list []Event_Beneficiary + var status_event int + + for _, e := range events { + + if e.Startdate.After(currentTime) { + status_event = 1 + } else if e.Startdate.Before(currentTime) && e.Enddate.After(currentTime) || e.Enddate.Equal(currentTime) { + status_event = 2 + } else { + status_event = 3 + } + + event := Event{ + NameVal: e.Name, + DateVal: e.Startdate, + DateEndVal: e.Enddate, + TypeVal: e.Type, + IDVal: e.ID, + DbVal: "/app/agenda/", + IconSet: "calendar", + StatusVal: status_event, + } + + events_list = append(events_list, event) + } + + var status_booking int + for _, b := range bookings { + + if b.Enddate.After(currentTime) || b.Enddate.Equal(currentTime) { + GetVehiculeRequest := &fleets.GetVehicleRequest{ + Vehicleid: b.Vehicleid, + } + + GetVehiculeResp, err := h.services.GRPC.Fleets.GetVehicle(context.Background(), GetVehiculeRequest) + if err != nil { + fmt.Println(err) + w.WriteHeader(http.StatusInternalServerError) + return + } + + if b.Startdate.After(currentTime) { + status_booking = 1 + } else if b.Startdate.Before(currentTime) && b.Enddate.After(currentTime) || b.Enddate.Equal(currentTime) { + status_booking = 2 + } else { + status_booking = 3 + } + + event := Event{ + NameVal: GetVehiculeResp.Vehicle.ToStorageType().Data["name"].(string), + DateVal: b.Startdate, + DateEndVal: b.Enddate, + TypeVal: "Réservation de véhicule", + IDVal: b.ID, + DbVal: "/app/vehicles-management/bookings/", + IconSet: "vehicle", + StatusVal: status_booking, + } + + events_list = append(events_list, event) + } + } + sortByDate(events_list) + groupsrequest := &groupsmanagement.GetGroupsRequest{ Namespaces: []string{"parcoursmob_organizations"}, Member: beneficiaryID, @@ -169,7 +328,7 @@ func (h *ApplicationHandler) BeneficiaryDisplay(w http.ResponseWriter, r *http.R beneficiaries_file_types := h.config.GetStringSlice("modules.beneficiaries.documents_types") file_types_map := h.config.GetStringMapString("storage.files.file_types") - h.Renderer.BeneficiaryDisplay(w, r, resp.Account.ToStorageType(), bookings, organizations, beneficiaries_file_types, file_types_map, documents) + h.Renderer.BeneficiaryDisplay(w, r, resp.Account.ToStorageType(), bookings, organizations, beneficiaries_file_types, file_types_map, documents, events_list) } func (h *ApplicationHandler) BeneficiaryUpdate(w http.ResponseWriter, r *http.Request) { @@ -333,6 +492,8 @@ func filterAccount(r *http.Request, a *mobilityaccounts.Account) bool { return true } +// func BeneficiariesEventList() + func (h *ApplicationHandler) beneficiaries(r *http.Request) ([]mobilityaccountsstorage.Account, error) { var accounts = []mobilityaccountsstorage.Account{} g := r.Context().Value(identification.GroupKey) diff --git a/handlers/application/dashboard.go b/handlers/application/dashboard.go old mode 100644 new mode 100755 index 20aa99e..d272a84 --- a/handlers/application/dashboard.go +++ b/handlers/application/dashboard.go @@ -68,8 +68,10 @@ func (h *ApplicationHandler) Dashboard(w http.ResponseWriter, r *http.Request) { Mindate: timestamppb.Now(), }) - for _, e := range eventsresp.Events { - events = append(events, e.ToStorageType()) + if err == nil { + for _, e := range eventsresp.Events { + events = append(events, e.ToStorageType()) + } } sort.Sort(sorting.EventsByStartdate(events)) diff --git a/handlers/application/directory.go b/handlers/application/directory.go old mode 100644 new mode 100755 diff --git a/handlers/application/group.go b/handlers/application/group.go old mode 100644 new mode 100755 diff --git a/handlers/application/group_module.go b/handlers/application/group_module.go old mode 100644 new mode 100755 diff --git a/handlers/application/journeys.go b/handlers/application/journeys.go old mode 100644 new mode 100755 index c8f143b..5150f87 --- a/handlers/application/journeys.go +++ b/handlers/application/journeys.go @@ -27,7 +27,14 @@ var Arrive any func (h *ApplicationHandler) JourneysSearch(w http.ResponseWriter, r *http.Request) { r.ParseForm() - + var ( + journeys_results *navitia.JourneyResults + carpool_results any + vehicle_results []any + ) + vehiclech := make(chan []any, 1) + navitiaCh := make(chan *navitia.JourneyResults, 1) + carpoolCh := make(chan any, 1) locTime, errTime := time.LoadLocation("Europe/Paris") if errTime != nil { fmt.Println("Loading timezone location Europe/Paris error : ") @@ -70,91 +77,101 @@ func (h *ApplicationHandler) JourneysSearch(w http.ResponseWriter, r *http.Reque w.WriteHeader(http.StatusBadRequest) return } + //////////////////////////////////////////////////////////////////////////////////////////////////////////////// + journeysRequest := func() { + //TODO make it a library + session, _ := navitia.NewCustom( + h.config.GetString("services.navitia.api_key"), + "https://api.navitia.io/v1", + &http.Client{}) + if err != nil { + fmt.Println(err) + w.WriteHeader(http.StatusBadRequest) + navitiaCh <- nil + return + } + + request := navitia.JourneyRequest{ + From: types.ID(fmt.Sprintf("%f", departuregeo.Geometry.Point[0]) + ";" + fmt.Sprintf("%f", departuregeo.Geometry.Point[1])), + To: types.ID(fmt.Sprintf("%f", destinationgeo.Geometry.Point[0]) + ";" + fmt.Sprintf("%f", destinationgeo.Geometry.Point[1])), + Date: departuredatetime.Add(-2 * time.Hour), + DateIsArrival: false, //TODO + } + + journeys, err = session.Journeys(context.Background(), request) + if err != nil { + fmt.Println(err) + // w.WriteHeader(http.StatusBadRequest) + // return + } + navitiaCh <- journeys - //TODO make it a library - session, _ := navitia.NewCustom( - h.config.GetString("services.navitia.api_key"), - "https://api.navitia.io/v1", - &http.Client{}) - if err != nil { - fmt.Println(err) - w.WriteHeader(http.StatusBadRequest) - return } - - request := navitia.JourneyRequest{ - From: types.ID(fmt.Sprintf("%f", departuregeo.Geometry.Point[0]) + ";" + fmt.Sprintf("%f", departuregeo.Geometry.Point[1])), - To: types.ID(fmt.Sprintf("%f", destinationgeo.Geometry.Point[0]) + ";" + fmt.Sprintf("%f", destinationgeo.Geometry.Point[1])), - Date: departuredatetime.Add(-2 * time.Hour), - DateIsArrival: false, //TODO - } - - journeys, err = session.Journeys(context.Background(), request) - if err != nil { - fmt.Println(err) - // w.WriteHeader(http.StatusBadRequest) - // return - } - + //////////////////////////////////////////////////////////////////////////////////////////////////////////////// //CARPOOL - // carpoolrequest := fmt.Sprintf( - // "https://api.rdex.ridygo.fr/journeys.json?p[driver][state]=1&frequency=punctual&p[passenger][state]=0&p[from][latitude]=%f&p[from][longitude]=%f&p[to][latitude]=%f&p[to][longitude]=%f&p[outward][mindate]=%s&p[outward][maxdate]=%s", - // departuregeo.Geometry.Point[1], departuregeo.Geometry.Point[0], - // destinationgeo.Geometry.Point[1], destinationgeo.Geometry.Point[0], - // departuredatetime.Format("2006-01-02"), departuredatetime.Add(24*time.Hour).Format("2006-01-02")) - carpoolrequest := "https://api.rdex.ridygo.fr/journeys.json" + carpoolRequest := func() { + carpoolrequest := "https://api.rdex.ridygo.fr/journeys.json" - client := &http.Client{} - req, err := http.NewRequest("GET", carpoolrequest, nil) - if err != nil { - fmt.Println(err) - } - - req.URL.RawQuery = fmt.Sprintf( - "p[driver][state]=1&frequency=punctual&p[passenger][state]=0&p[from][latitude]=%f&p[from][longitude]=%f&p[to][latitude]=%f&p[to][longitude]=%f&p[outward][mindate]=%s&p[outward][maxdate]=%s", - departuregeo.Geometry.Point[1], departuregeo.Geometry.Point[0], - destinationgeo.Geometry.Point[1], destinationgeo.Geometry.Point[0], - departuredatetime.Format("2006-01-02"), departuredatetime.Format("2006-01-02")) - - req.Header.Set("X-API-KEY", "123456") - resp, err := client.Do(req) - if err != nil { - fmt.Println(err) - } - - if err == nil && resp.StatusCode == http.StatusOK { - err = json.NewDecoder(resp.Body).Decode(&carpoolresults) + client := &http.Client{} + req, err := http.NewRequest("GET", carpoolrequest, nil) if err != nil { fmt.Println(err) } - if carpoolresults == nil { + req.URL.RawQuery = fmt.Sprintf( + "p[driver][state]=1&frequency=punctual&p[passenger][state]=0&p[from][latitude]=%f&p[from][longitude]=%f&p[to][latitude]=%f&p[to][longitude]=%f&p[outward][mindate]=%s&p[outward][maxdate]=%s", + departuregeo.Geometry.Point[1], departuregeo.Geometry.Point[0], + destinationgeo.Geometry.Point[1], destinationgeo.Geometry.Point[0], + departuredatetime.Format("2006-01-02"), departuredatetime.Format("2006-01-02")) + + req.Header.Set("X-API-KEY", "123456") + resp, err := client.Do(req) + if err != nil { + fmt.Println(err) + } + + if err == nil && resp.StatusCode == http.StatusOK { + err = json.NewDecoder(resp.Body).Decode(&carpoolresults) + if err != nil { + fmt.Println(err) + } + + if carpoolresults == nil { + carpoolresults = []any{} + } + } else { carpoolresults = []any{} } - } else { - carpoolresults = []any{} + carpoolCh <- carpoolresults } - + //////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Vehicles - - vehiclerequest := &fleets.GetVehiclesRequest{ - Namespaces: []string{"parcoursmob"}, - } - vehicleresp, err := h.services.GRPC.Fleets.GetVehicles(context.TODO(), vehiclerequest) - if err != nil { - fmt.Println(err) - w.WriteHeader(http.StatusInternalServerError) - } - - for _, vehicle := range vehicleresp.Vehicles { - v := vehicle.ToStorageType() - if v.Free(departuredatetime.Add(-24*time.Hour), departuredatetime.Add(168*time.Hour)) { - vehicles = append(vehicles, v) + vehicleRequest := func() { + vehiclerequest := &fleets.GetVehiclesRequest{ + Namespaces: []string{"parcoursmob"}, } + vehicleresp, err := h.services.GRPC.Fleets.GetVehicles(context.TODO(), vehiclerequest) + if err != nil { + fmt.Println(err) + w.WriteHeader(http.StatusInternalServerError) + } + for _, vehicle := range vehicleresp.Vehicles { + v := vehicle.ToStorageType() + if v.Free(departuredatetime.Add(-24*time.Hour), departuredatetime.Add(168*time.Hour)) { + vehicles = append(vehicles, v) + } + } + vehiclech <- vehicles } + go journeysRequest() + go carpoolRequest() + go vehicleRequest() + carpool_results = <-carpoolCh + journeys_results = <-navitiaCh + vehicle_results = <-vehiclech } - h.Renderer.JourneysSearch(w, r, carpoolresults, journeys, vehicles, searched, departuregeo, destinationgeo, departuredate, departuretime) + h.Renderer.JourneysSearch(w, r, carpool_results, journeys_results, vehicle_results, searched, departuregeo, destinationgeo, departuredate, departuretime) } type GroupsModule []groupstorage.Group diff --git a/handlers/application/members.go b/handlers/application/members.go old mode 100644 new mode 100755 diff --git a/handlers/application/support.go b/handlers/application/support.go old mode 100644 new mode 100755 diff --git a/handlers/application/vehicles-management.go b/handlers/application/vehicles-management.go old mode 100644 new mode 100755 index f56c833..cfb1fa8 --- a/handlers/application/vehicles-management.go +++ b/handlers/application/vehicles-management.go @@ -59,6 +59,7 @@ func (h *ApplicationHandler) VehiclesManagementOverview(w http.ResponseWriter, r } } + fmt.Println(vehicles_map) sort.Sort(sorting.VehiclesByLicencePlate(vehicles)) sort.Sort(sorting.BookingsByStartdate(bookings)) diff --git a/handlers/application/vehicles.go b/handlers/application/vehicles.go old mode 100644 new mode 100755 index eec2147..60a316a --- a/handlers/application/vehicles.go +++ b/handlers/application/vehicles.go @@ -26,7 +26,7 @@ import ( func (h ApplicationHandler) VehiclesSearch(w http.ResponseWriter, r *http.Request) { r.ParseForm() - + fmt.Println("invoked") var beneficiary mobilityaccountsstorage.Account beneficiarydocuments := []filestorage.FileInfo{} diff --git a/handlers/auth/auth.go b/handlers/auth/auth.go old mode 100644 new mode 100755 diff --git a/handlers/auth/disconnect.go b/handlers/auth/disconnect.go old mode 100644 new mode 100755 diff --git a/handlers/auth/groups.go b/handlers/auth/groups.go old mode 100644 new mode 100755 diff --git a/handlers/auth/lost_password.go b/handlers/auth/lost_password.go old mode 100644 new mode 100755 diff --git a/handlers/auth/onboarding.go b/handlers/auth/onboarding.go old mode 100644 new mode 100755 diff --git a/handlers/exports/agenda.go b/handlers/exports/agenda.go old mode 100644 new mode 100755 diff --git a/handlers/exports/exports.go b/handlers/exports/exports.go old mode 100644 new mode 100755 diff --git a/handlers/exports/fleets.go b/handlers/exports/fleets.go old mode 100644 new mode 100755 diff --git a/main.go b/main.go old mode 100644 new mode 100755 index a09edee..848aea2 --- a/main.go +++ b/main.go @@ -19,27 +19,26 @@ import ( func main() { cfg, err := ReadConfig() + if err != nil { panic(err) } var ( - address = cfg.GetString("server.listen") + //address = cfg.GetString("server.listen") service_name = cfg.GetString("service_name") templates_public_dir = cfg.GetString("templates.public_dir") dev_env = cfg.GetBool("dev_env") ) - svc, err := services.NewServicesHandler(cfg) if err != nil { panic(err) } - + fmt.Println(cfg) kv, err := cache.NewKVHandler(cfg) if err != nil { panic(err) } - filestorage, err := cache.NewFileStorage(cfg) idp, err := identification.NewIdentificationProvider(cfg, svc, kv) @@ -172,11 +171,9 @@ func main() { export.Use(idp.Middleware) export.Use(idp.GroupsMiddleware) - fmt.Println("-> HTTP server listening on", address) - srv := &http.Server{ Handler: r, - Addr: address, + Addr: "0.0.0.0:8000", WriteTimeout: 15 * time.Second, ReadTimeout: 15 * time.Second, } diff --git a/renderer/administration.go b/renderer/administration.go old mode 100644 new mode 100755 diff --git a/renderer/agenda.go b/renderer/agenda.go old mode 100644 new mode 100755 diff --git a/renderer/auth.go b/renderer/auth.go old mode 100644 new mode 100755 diff --git a/renderer/beneficiaries.go b/renderer/beneficiaries.go old mode 100644 new mode 100755 index 51a9ca9..770587e --- a/renderer/beneficiaries.go +++ b/renderer/beneficiaries.go @@ -5,6 +5,7 @@ import ( "html/template" "net/http" + fleetsstorage "git.coopgo.io/coopgo-platform/fleets/storage" mobilityaccountsstorage "git.coopgo.io/coopgo-platform/mobility-accounts/storage" ) @@ -52,7 +53,7 @@ type BeneficiariesDisplayState struct { Beneficiary any } -func (renderer *Renderer) BeneficiaryDisplay(w http.ResponseWriter, r *http.Request, beneficiary any, bookings []any, organizations []any, beneficiaries_file_types []string, file_types_map map[string]string, documents any) { +func (renderer *Renderer) BeneficiaryDisplay(w http.ResponseWriter, r *http.Request, beneficiary any, bookings []fleetsstorage.Booking, organizations []any, beneficiaries_file_types []string, file_types_map map[string]string, documents any, event interface{}) { files := renderer.ThemeConfig.GetStringSlice("views.beneficiaries.display.files") state := NewState(r, renderer.ThemeConfig, beneficiariesMenu) state.ViewState = map[string]any{ @@ -62,8 +63,8 @@ func (renderer *Renderer) BeneficiaryDisplay(w http.ResponseWriter, r *http.Requ "file_types_map": file_types_map, "documents": documents, "organizations": organizations, + "event": event, } - renderer.Render("beneficiaries_display", w, r, files, state) } diff --git a/renderer/dashboard.go b/renderer/dashboard.go old mode 100644 new mode 100755 diff --git a/renderer/directory.go b/renderer/directory.go old mode 100644 new mode 100755 diff --git a/renderer/func-maps.go b/renderer/func-maps.go old mode 100644 new mode 100755 diff --git a/renderer/group.go b/renderer/group.go old mode 100644 new mode 100755 diff --git a/renderer/group_module.go b/renderer/group_module.go old mode 100644 new mode 100755 diff --git a/renderer/journeys.go b/renderer/journeys.go old mode 100644 new mode 100755 diff --git a/renderer/layout.go b/renderer/layout.go old mode 100644 new mode 100755 diff --git a/renderer/mailer.go b/renderer/mailer.go old mode 100644 new mode 100755 diff --git a/renderer/members.go b/renderer/members.go old mode 100644 new mode 100755 diff --git a/renderer/renderer.go b/renderer/renderer.go old mode 100644 new mode 100755 diff --git a/renderer/support.go b/renderer/support.go old mode 100644 new mode 100755 diff --git a/renderer/vehicle-management.go b/renderer/vehicle-management.go old mode 100644 new mode 100755 diff --git a/renderer/vehicles.go b/renderer/vehicles.go old mode 100644 new mode 100755 diff --git a/services/agenda.go b/services/agenda.go old mode 100644 new mode 100755 diff --git a/services/fleets.go b/services/fleets.go old mode 100644 new mode 100755 diff --git a/services/groupsmanagement.go b/services/groupsmanagement.go old mode 100644 new mode 100755 diff --git a/services/mobilityaccounts.go b/services/mobilityaccounts.go old mode 100644 new mode 100755 diff --git a/services/services.go b/services/services.go old mode 100644 new mode 100755 diff --git a/themes b/themes new file mode 160000 index 0000000..db4c226 --- /dev/null +++ b/themes @@ -0,0 +1 @@ +Subproject commit db4c22699eff6756851b0d3eff430b7bbe4c1c1b diff --git a/utils/form-validators/form-validators.go b/utils/form-validators/form-validators.go old mode 100644 new mode 100755 diff --git a/utils/form-validators/phone-numbers.go b/utils/form-validators/phone-numbers.go old mode 100644 new mode 100755 diff --git a/utils/icons/svg-icons.go b/utils/icons/svg-icons.go old mode 100644 new mode 100755 diff --git a/utils/identification/groups.go b/utils/identification/groups.go old mode 100644 new mode 100755 diff --git a/utils/identification/oidc.go b/utils/identification/oidc.go old mode 100644 new mode 100755 diff --git a/utils/profile-pictures/profile-pictures.go b/utils/profile-pictures/profile-pictures.go old mode 100644 new mode 100755 diff --git a/utils/sorting/beneficiaries.go b/utils/sorting/beneficiaries.go old mode 100644 new mode 100755 diff --git a/utils/sorting/events.go b/utils/sorting/events.go old mode 100644 new mode 100755 diff --git a/utils/sorting/fleets.go b/utils/sorting/fleets.go old mode 100644 new mode 100755 diff --git a/utils/sorting/groups.go b/utils/sorting/groups.go old mode 100644 new mode 100755 diff --git a/utils/sorting/sorting.go b/utils/sorting/sorting.go old mode 100644 new mode 100755 diff --git a/utils/storage/badger.go b/utils/storage/badger.go new file mode 100644 index 0000000..82be054 --- /dev/null +++ b/utils/storage/badger.go @@ -0,0 +1 @@ +package storage diff --git a/utils/storage/cache.go b/utils/storage/cache.go old mode 100644 new mode 100755 diff --git a/utils/storage/etcd.go b/utils/storage/etcd.go old mode 100644 new mode 100755 index 14d044d..fb4512a --- a/utils/storage/etcd.go +++ b/utils/storage/etcd.go @@ -74,6 +74,7 @@ func NewEtcdHandler(cfg *viper.Viper) (*EtcdHandler, error) { Password: password, DialTimeout: 5 * time.Second, }) + fmt.Println(endpoints,prefix,username,password) if err != nil { fmt.Println(err) return nil, err diff --git a/utils/storage/files.go b/utils/storage/files.go old mode 100644 new mode 100755 diff --git a/utils/storage/kv.go b/utils/storage/kv.go old mode 100644 new mode 100755 index f422a7b..1d545fe --- a/utils/storage/kv.go +++ b/utils/storage/kv.go @@ -15,4 +15,6 @@ type KVHandler interface { func NewKVHandler(cfg *viper.Viper) (KVHandler, error) { return NewEtcdHandler(cfg) + return nil, nil + } diff --git a/utils/storage/minio.go b/utils/storage/minio.go old mode 100644 new mode 100755 diff --git a/utils/storage/sessions.go b/utils/storage/sessions.go old mode 100644 new mode 100755