diff --git a/app/app.go b/app/app.go index b16afa0..f13b9ef 100644 --- a/app/app.go +++ b/app/app.go @@ -100,7 +100,7 @@ func New(ctx context.Context, opts interface{}, ver appInit.Version) (appInit.Co authClient := auth.NewAuthClient(options.AuthServiceURL) - pgdal, err := dal.New(ctx, options.PostgresCredentials, authClient, nil) + pgdal, err := dal.New(ctx, options.PostgresCredentials, nil) if err != nil { fmt.Println("NEW", err) return nil, err @@ -142,6 +142,7 @@ func New(ctx context.Context, opts interface{}, ver appInit.Version) (appInit.Co svc := service.New(service.Deps{ Dal: pgdal, + AuthClient: authClient, RedirectURl: options.RedirectURL, Encrypt: encrypt, }) diff --git a/core.git b/core.git new file mode 100755 index 0000000..ec231c9 Binary files /dev/null and b/core.git differ diff --git a/deployments/main/docker-compose.yaml b/deployments/main/docker-compose.yaml index 66257cc..f831d2a 100644 --- a/deployments/main/docker-compose.yaml +++ b/deployments/main/docker-compose.yaml @@ -12,5 +12,7 @@ services: PUBLIC_ACCESS_SECRET_KEY: $JWT_PUBLIC_KEY PG_CRED: 'host=10.8.0.9 port=5433 user=squiz password=Redalert2 dbname=squiz sslmode=disable' AUTH_URL: 'http://10.8.0.8:59300/user' + PUBLIC_KEY: $PEM_PUB_USERID + PRIVATE_KEY: $PEM_PRIV_USERID ports: - 10.8.0.9:1488:1488 diff --git a/deployments/staging/docker-compose.yaml b/deployments/staging/docker-compose.yaml index 9cb57b2..f67de88 100644 --- a/deployments/staging/docker-compose.yaml +++ b/deployments/staging/docker-compose.yaml @@ -5,12 +5,14 @@ services: image: $CI_REGISTRY_IMAGE/staging-core:$CI_COMMIT_REF_SLUG.$CI_PIPELINE_ID tty: true environment: - HUB_ADMIN_URL: 'http://10.6.0.11:59303' + HUB_ADMIN_URL: 'http://10.8.0.6:59303' IS_PROD_LOG: 'false' IS_PROD: 'false' PORT: 1488 PUBLIC_ACCESS_SECRET_KEY: $JWT_PUBLIC_KEY - PG_CRED: 'host=10.6.0.23 port=5433 user=squiz password=Redalert2 dbname=squiz sslmode=disable' - AUTH_URL: 'http://10.6.0.11:59300/user' + PG_CRED: 'host=10.8.0.5 port=5433 user=squiz password=Redalert2 dbname=squiz sslmode=disable' + AUTH_URL: 'http://10.8.0.6:59300/user' + PUBLIC_KEY: $PEM_PUB_USERID + PRIVATE_KEY: $PEM_PRIV_USERID ports: - - 1488:1488 + - 10.8.0.5:1488:1488 diff --git a/go.mod b/go.mod index e02d80a..c7e01c1 100644 --- a/go.mod +++ b/go.mod @@ -18,7 +18,7 @@ require ( google.golang.org/grpc v1.62.0 google.golang.org/protobuf v1.33.0 penahub.gitlab.yandexcloud.net/backend/penahub_common v0.0.0-20240223054633-6cb3d5ce45b6 - penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240403161453-2b8c36400761 + penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240416222807-5b57148b0106 penahub.gitlab.yandexcloud.net/backend/quiz/worker.git v0.0.0-20240313171802-7da5fbb4caf3 ) @@ -39,7 +39,7 @@ require ( github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/json-iterator/go v1.1.12 // indirect - github.com/klauspost/compress v1.17.7 // indirect + github.com/klauspost/compress v1.17.8 // indirect github.com/klauspost/cpuid/v2 v2.2.7 // indirect github.com/kr/pretty v0.3.1 // indirect github.com/mattn/go-colorable v0.1.13 // indirect @@ -61,15 +61,15 @@ require ( github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/fasthttp v1.52.0 // indirect github.com/valyala/tcplisten v1.0.0 // indirect - github.com/xuri/efp v0.0.0-20231025114914-d1ff6096ae53 // indirect + github.com/xuri/efp v0.0.0-20240408161823-9ad904a10d6d // indirect github.com/xuri/nfp v0.0.0-20240318013403-ab9948c2c4a7 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 // indirect go.opentelemetry.io/otel/trace v1.24.0 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/crypto v0.21.0 // indirect - golang.org/x/net v0.22.0 // indirect - golang.org/x/sys v0.18.0 // indirect + golang.org/x/crypto v0.22.0 // indirect + golang.org/x/net v0.24.0 // indirect + golang.org/x/sys v0.19.0 // indirect golang.org/x/text v0.14.0 // indirect golang.org/x/tools v0.19.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240304212257-790db918fca8 // indirect diff --git a/go.sum b/go.sum index e84e665..1866672 100644 --- a/go.sum +++ b/go.sum @@ -87,6 +87,8 @@ github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.17.7 h1:ehO88t2UGzQK66LMdE8tibEd1ErmzZjNEqWkjLAKQQg= github.com/klauspost/compress v1.17.7/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= +github.com/klauspost/compress v1.17.8 h1:YcnTYrq7MikUT7k0Yb5eceMmALQPYBW/Xltxn0NAMnU= +github.com/klauspost/compress v1.17.8/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= github.com/klauspost/cpuid/v2 v2.0.1/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= github.com/klauspost/cpuid/v2 v2.2.7 h1:ZWSB3igEs+d0qvnxR/ZBzXVmxkgt8DdzP6m9pfuVLDM= github.com/klauspost/cpuid/v2 v2.2.7/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= @@ -186,6 +188,8 @@ github.com/valyala/tcplisten v1.0.0 h1:rBHj/Xf+E1tRGZyWIWwJDiRY0zc1Js+CV5DqwacVS github.com/valyala/tcplisten v1.0.0/go.mod h1:T0xQ8SeCZGxckz9qRXTfG43PvQ/mcWh7FwZEA7Ioqkc= github.com/xuri/efp v0.0.0-20231025114914-d1ff6096ae53 h1:Chd9DkqERQQuHpXjR/HSV1jLZA6uaoiwwH3vSuF3IW0= github.com/xuri/efp v0.0.0-20231025114914-d1ff6096ae53/go.mod h1:ybY/Jr0T0GTCnYjKqmdwxyxn2BQf2RcQIIvex5QldPI= +github.com/xuri/efp v0.0.0-20240408161823-9ad904a10d6d h1:llb0neMWDQe87IzJLS4Ci7psK/lVsjIS2otl+1WyRyY= +github.com/xuri/efp v0.0.0-20240408161823-9ad904a10d6d/go.mod h1:ybY/Jr0T0GTCnYjKqmdwxyxn2BQf2RcQIIvex5QldPI= github.com/xuri/excelize/v2 v2.8.1 h1:pZLMEwK8ep+CLIUWpWmvW8IWE/yxqG0I1xcN6cVMGuQ= github.com/xuri/excelize/v2 v2.8.1/go.mod h1:oli1E4C3Pa5RXg1TBXn4ENCXDV5JUMlBluUhG7c+CEE= github.com/xuri/nfp v0.0.0-20240318013403-ab9948c2c4a7 h1:hPVCafDV85blFTabnqKgNhDCkJX25eik94Si9cTER4A= @@ -222,7 +226,8 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA= golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= -golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/crypto v0.22.0 h1:g1v0xeRhjcugydODzvb3mEM9SQ0HGp9s/nh3COQ/C30= +golang.org/x/crypto v0.22.0/go.mod h1:vr6Su+7cTlO45qkww3VDJlzDn0ctJvRgYbC2NvXHt+M= golang.org/x/image v0.14.0 h1:tNgSxAFe3jC4uYqvZdTr84SZoM1KfwdC9SKIFrLjFn4= golang.org/x/image v0.14.0/go.mod h1:HUYqC05R2ZcZ3ejNQsIHQDQiwWM4JBqmm6MKANTp4LE= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -244,9 +249,8 @@ golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.22.0 h1:9sGLhx7iRIHEiX0oAJ3MRZMUCElJgy7Br1nO+AMN3Tc= golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= -golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/net v0.24.0 h1:1PcaxkF854Fu3+lvBIx5SYn9wRlBzzcnHZSiaFFAb0w= +golang.org/x/net v0.24.0/go.mod h1:2Q7sJY5mzlzWjKtYUEXSlBWCdyaioyXzRB2RtU8KVE8= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -264,6 +268,8 @@ golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o= +golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= @@ -327,7 +333,51 @@ penahub.gitlab.yandexcloud.net/backend/penahub_common v0.0.0-20240223054633-6cb3 penahub.gitlab.yandexcloud.net/backend/penahub_common v0.0.0-20240223054633-6cb3d5ce45b6/go.mod h1:lTmpjry+8evVkXWbEC+WMOELcFkRD1lFMc7J09mOndM= penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240401215937-e503b66e8119 h1:4lBVH0yO6YcrmGQnalfgHRJoLVfMlF1T6HI2ZSSW2fU= penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240401215937-e503b66e8119/go.mod h1:/DcyAjBh41IbomuDu5QzhL9flZW6lWO3ZAEbUXKobk0= -penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240403161453-2b8c36400761 h1:goi/wahHIZwlOuC5WwV9MHK2D+ofEYeBSOmY38WyEXU= -penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240403161453-2b8c36400761/go.mod h1:/DcyAjBh41IbomuDu5QzhL9flZW6lWO3ZAEbUXKobk0= +penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240405220411-d453616641a9 h1:Fr7z155xR9DRU21V6IwUU2dtzI9Spz8/4DHPFa6bv7Q= +penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240405220411-d453616641a9/go.mod h1:/DcyAjBh41IbomuDu5QzhL9flZW6lWO3ZAEbUXKobk0= +penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240407000742-2e3402cb1c72 h1:clcIGHPOmXeIJqd3nwZKMjEmXecRdXxV7ALYr7AYVkw= +penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240407000742-2e3402cb1c72/go.mod h1:/DcyAjBh41IbomuDu5QzhL9flZW6lWO3ZAEbUXKobk0= +penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240407001531-8b3a2583909c h1:ZjCh6dH8XMcrxpF62XLSfhag2TrrPEwaf4pKLGEmzOI= +penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240407001531-8b3a2583909c/go.mod h1:/DcyAjBh41IbomuDu5QzhL9flZW6lWO3ZAEbUXKobk0= +penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240407002311-bb50e3485574 h1:oGKoTypkoQuSmmh7YGF703dY4eLVM0kViloAN53hTAc= +penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240407002311-bb50e3485574/go.mod h1:/DcyAjBh41IbomuDu5QzhL9flZW6lWO3ZAEbUXKobk0= +penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240407002719-2c2925c38c5e h1:e3uQII+XJxn7uzjsl7M0iEJwj6endQtK1GUOac0Aqs0= +penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240407002719-2c2925c38c5e/go.mod h1:/DcyAjBh41IbomuDu5QzhL9flZW6lWO3ZAEbUXKobk0= +penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240407004642-38eec3714029 h1:+Ga4UbC5lfu+Cm287rviCtMGGtNVoa5/nNYMTZcdS5o= +penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240407004642-38eec3714029/go.mod h1:/DcyAjBh41IbomuDu5QzhL9flZW6lWO3ZAEbUXKobk0= +penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240407153236-41d24a8025ba h1:QqGGhYE784nyIujSfIDXSPWRvQp23O60BK+PtK/hdL4= +penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240407153236-41d24a8025ba/go.mod h1:/DcyAjBh41IbomuDu5QzhL9flZW6lWO3ZAEbUXKobk0= +penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240407223035-126d5822d53c h1:ZgITJEsx5Q3OexYLrGyRL9lOnJfFMqs00bOWlte0Vyw= +penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240407223035-126d5822d53c/go.mod h1:/DcyAjBh41IbomuDu5QzhL9flZW6lWO3ZAEbUXKobk0= +penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240408182839-4495237cb30d h1:zMmE6uS7nG329zQP8GoWhELK+PkthB7QVhLArSpjzHo= +penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240408182839-4495237cb30d/go.mod h1:/DcyAjBh41IbomuDu5QzhL9flZW6lWO3ZAEbUXKobk0= +penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240409160049-5136009e944d h1:oSUk1641wEUviO6w1/5h6OxJOAo+N4aT/jMvoYr7+vo= +penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240409160049-5136009e944d/go.mod h1:/DcyAjBh41IbomuDu5QzhL9flZW6lWO3ZAEbUXKobk0= +penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240410152249-f16ff4921566 h1:qeS4GXbmYfqkYFd+x8Pjm7MEhlI2Btb34rO6tZqTUus= +penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240410152249-f16ff4921566/go.mod h1:/DcyAjBh41IbomuDu5QzhL9flZW6lWO3ZAEbUXKobk0= +penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240412164014-6ce70d76fedc h1:B9X8pOrqWPGbWZNXSJEUk/8GWeBDGQmMKgQ0F+PSliQ= +penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240412164014-6ce70d76fedc/go.mod h1:/DcyAjBh41IbomuDu5QzhL9flZW6lWO3ZAEbUXKobk0= +penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240413232604-40d8b15b2411 h1:e3bRYVKpdA9eR6Kkx1qbAYynvYDhYg5rCSWsX8fZ4W0= +penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240413232604-40d8b15b2411/go.mod h1:/DcyAjBh41IbomuDu5QzhL9flZW6lWO3ZAEbUXKobk0= +penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240416095332-bf692017b2fe h1:7T3eDAMRotRboBgw8UVu1t3pLvfQQCzbE5pppX1XCY8= +penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240416095332-bf692017b2fe/go.mod h1:/DcyAjBh41IbomuDu5QzhL9flZW6lWO3ZAEbUXKobk0= +penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240416102930-a84f95429fb9 h1:8nn6sny017tca9HAxd0QzSzszoSzxAC7pYtziw1trDM= +penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240416102930-a84f95429fb9/go.mod h1:/DcyAjBh41IbomuDu5QzhL9flZW6lWO3ZAEbUXKobk0= +penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240416140702-9517c32cdcbc h1:Bw3QSermsPYtRb5RmgSRf4B+WS3CZDm4X6XyuQi79zk= +penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240416140702-9517c32cdcbc/go.mod h1:/DcyAjBh41IbomuDu5QzhL9flZW6lWO3ZAEbUXKobk0= +penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240416142544-77c4797a218b h1:cVthm0hS+zwrdOU02rYRdRu4mRpRyw00qzMgGV5B+fc= +penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240416142544-77c4797a218b/go.mod h1:/DcyAjBh41IbomuDu5QzhL9flZW6lWO3ZAEbUXKobk0= +penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240416145115-f853a933bbb7 h1:C/tQn686qCq3BVt4YgRZ5K26P37syliOLDwQVzp26NE= +penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240416145115-f853a933bbb7/go.mod h1:/DcyAjBh41IbomuDu5QzhL9flZW6lWO3ZAEbUXKobk0= +penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240416200508-36451ee08980 h1:A8GEeCtAaOY47KgQT0iweQjQFPfnmBvhnmYjsyd0p1c= +penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240416200508-36451ee08980/go.mod h1:/DcyAjBh41IbomuDu5QzhL9flZW6lWO3ZAEbUXKobk0= +penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240416212745-b16aea3f1522 h1:GQ0/RUwxyC2w2PQWg4pDSxkDzmkpxnHojjjLpcxlKdU= +penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240416212745-b16aea3f1522/go.mod h1:/DcyAjBh41IbomuDu5QzhL9flZW6lWO3ZAEbUXKobk0= +penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240416221615-7832ebf39e96 h1:0nnT2DmTz2kJ4T+odgKSQP+XY+qdqv18FSyvNd2WfF8= +penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240416221615-7832ebf39e96/go.mod h1:/DcyAjBh41IbomuDu5QzhL9flZW6lWO3ZAEbUXKobk0= +penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240416222025-e5ba6630d682 h1:PGrC6a2hzI5AgE5si7T9P8/DQaKYpypkH6r9NDZb2zA= +penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240416222025-e5ba6630d682/go.mod h1:/DcyAjBh41IbomuDu5QzhL9flZW6lWO3ZAEbUXKobk0= +penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240416222807-5b57148b0106 h1:LWCZW9FrueZjs15fY1rPgY23NhBjDpK5zQrKvCmLwnk= +penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240416222807-5b57148b0106/go.mod h1:/DcyAjBh41IbomuDu5QzhL9flZW6lWO3ZAEbUXKobk0= penahub.gitlab.yandexcloud.net/backend/quiz/worker.git v0.0.0-20240313171802-7da5fbb4caf3 h1:BLHIUnJAttW9OAW7A63H9ON/HPhXdpBa/YPUQWD4ORA= penahub.gitlab.yandexcloud.net/backend/quiz/worker.git v0.0.0-20240313171802-7da5fbb4caf3/go.mod h1:/BFcX4F10DRuFuAHlwkKO+1QAXPL4i49x1tsrTwxlqE= diff --git a/schema/000009_init.down.sql b/schema/000009_init.down.sql new file mode 100644 index 0000000..342ea06 --- /dev/null +++ b/schema/000009_init.down.sql @@ -0,0 +1,2 @@ +ALTER TABLE quiz +ALTER COLUMN name TYPE VARCHAR(280); diff --git a/schema/000009_init.up.sql b/schema/000009_init.up.sql new file mode 100644 index 0000000..0c3038e --- /dev/null +++ b/schema/000009_init.up.sql @@ -0,0 +1,2 @@ +ALTER TABLE quiz +ALTER COLUMN name TYPE VARCHAR(1024); diff --git a/service/account_svc.go b/service/account_svc.go index 4d79d73..877ffe5 100644 --- a/service/account_svc.go +++ b/service/account_svc.go @@ -77,9 +77,15 @@ func (s *Service) createAccount(ctx *fiber.Ctx) error { return ctx.Status(fiber.StatusConflict).SendString("user with this ID already exists") } + email, err := s.authClient.GetUserEmail(accountID) + if err != nil { + return err + } + newAccount := model.Account{ UserID: accountID, CreatedAt: time.Now(), + Email: email, Deleted: false, Privileges: map[string]model.ShortPrivilege{ "quizUnlimTime": { diff --git a/service/quiz_svc.go b/service/quiz_svc.go index 1cead38..3271f45 100644 --- a/service/quiz_svc.go +++ b/service/quiz_svc.go @@ -6,6 +6,8 @@ import ( "penahub.gitlab.yandexcloud.net/backend/quiz/common.git/model" "penahub.gitlab.yandexcloud.net/backend/quiz/common.git/repository/quiz" "time" + "fmt" + "net/url" "unicode/utf8" ) @@ -16,7 +18,7 @@ type CreateQuizReq struct { MailNotifications bool `json:"mail_notifications"` // set true if you want get an email with every quiz passing UniqueAnswers bool `json:"unique_answers"` // set true if we you mention only last quiz passing - Name string `json:"name"` // max 280 chars + Name string `json:"name"` // max 700 chars Description string `json:"description"` Config string `json:"config"` // serialize json with config for page rules. fill it up only if implement one form scenario Status string `json:"status"` // status of quiz as enum. see Status const. fill it up only if implement one form scenario @@ -45,8 +47,8 @@ func (s *Service) CreateQuiz(ctx *fiber.Ctx) error { } // check that we can store name - if utf8.RuneCountInString(req.Name) >= 280 { - return ctx.Status(fiber.StatusUnprocessableEntity).SendString("name field should have less then 280 chars") + if utf8.RuneCountInString(req.Name) > 700 { + return ctx.Status(fiber.StatusUnprocessableEntity).SendString("name field should have less then 700 chars") } // status should be empty or equal one of status enum strings @@ -199,8 +201,8 @@ func (s *Service) UpdateQuiz(ctx *fiber.Ctx) error { return ctx.Status(fiber.StatusFailedDependency).SendString("need id of question for update") } - if utf8.RuneCountInString(req.Name) >= 280 { - return ctx.Status(fiber.StatusUnprocessableEntity).SendString("name field should have less then 280 chars") + if utf8.RuneCountInString(req.Name) > 700 { + return ctx.Status(fiber.StatusUnprocessableEntity).SendString("name field should have less then 700 chars") } // status should be empty or equal one of status enum strings @@ -473,9 +475,11 @@ func (s *Service) MiniPart(ctx *fiber.Ctx) error { return ctx.Status(fiber.StatusInternalServerError).SendString(err.Error()) } + fmt.Println("OLOLO", string(shifr)) + ctx.Cookie(&fiber.Cookie{ Name: "quizUser", - Value: string(shifr), + Value: url.QueryEscape(string(shifr)), }) return ctx.Redirect(s.redirectURl, fiber.StatusFound) diff --git a/service/result_svc.go b/service/result_svc.go index cbc4cda..16bfaa1 100644 --- a/service/result_svc.go +++ b/service/result_svc.go @@ -213,6 +213,10 @@ func (s *Service) GetResultAnswers(ctx *fiber.Ctx) error { if err != nil { return ctx.Status(fiber.StatusInternalServerError).SendString("failed to get result answers") } + sortedAnswers, err := s.dal.QuestionRepo.ForSortingResults(ctx.Context(), answers) + if err != nil { + return ctx.Status(fiber.StatusInternalServerError).SendString("failed sort result answers") + } - return ctx.JSON(answers) + return ctx.JSON(sortedAnswers) } diff --git a/service/service.go b/service/service.go index 1747317..d99f4dd 100644 --- a/service/service.go +++ b/service/service.go @@ -4,6 +4,7 @@ import ( "github.com/gofiber/fiber/v2" "penahub.gitlab.yandexcloud.net/backend/quiz/common.git/dal" "penahub.gitlab.yandexcloud.net/backend/quiz/common.git/utils" + "penahub.gitlab.yandexcloud.net/backend/quiz/core.git/clients/auth" ) // Service is an entity for http requests handling @@ -11,16 +12,23 @@ type Service struct { dal *dal.DAL redirectURl string encrypt *utils.Encrypt + authClient *auth.AuthClient } type Deps struct { Dal *dal.DAL RedirectURl string Encrypt *utils.Encrypt + AuthClient *auth.AuthClient } func New(deps Deps) *Service { - return &Service{dal: deps.Dal, redirectURl: deps.RedirectURl, encrypt: deps.Encrypt} + return &Service{ + dal: deps.Dal, + redirectURl: deps.RedirectURl, + encrypt: deps.Encrypt, + authClient: deps.AuthClient, + } } // Register is a function for add handlers of service to external multiplexer diff --git a/service/statistic_svc.go b/service/statistic_svc.go index 132d7a8..12d38e6 100644 --- a/service/statistic_svc.go +++ b/service/statistic_svc.go @@ -98,10 +98,10 @@ func (s *Service) AllServiceStatistics(ctx *fiber.Ctx) error { ctx.Status(fiber.StatusBadRequest).SendString("Invalid request data") } - // allSvcStats, err := s.dal.StatisticsRepo.AllServiceStatistics(ctx.Context(), req.From, req.To) - // if err != nil { - // return ctx.Status(fiber.StatusInternalServerError).SendString(err.Error()) - // } + allSvcStats, err := s.dal.StatisticsRepo.AllServiceStatistics(ctx.Context(), req.From, req.To) + if err != nil { + return ctx.Status(fiber.StatusInternalServerError).SendString(err.Error()) + } - return ctx.Status(fiber.StatusOK).SendString("debug")/* .JSON(allSvcStats) */ + return ctx.Status(fiber.StatusOK).JSON(allSvcStats) } diff --git a/tools/tools.go b/tools/tools.go index ba83afb..61e01d0 100644 --- a/tools/tools.go +++ b/tools/tools.go @@ -37,7 +37,7 @@ func WriteDataToExcel(buffer io.Writer, questions []model.Question, answers []mo } sort.Slice(questions, func(i, j int) bool { - return questions[i].Page > questions[j].Page + return questions[i].Page < questions[j].Page }) headers := []string{"Данные респондента"}