Compare commits

..

No commits in common. "dev" and "privilege-go" have entirely different histories.

29 changed files with 205 additions and 174 deletions

@ -1,24 +0,0 @@
name: Deploy
run-name: ${{ gitea.actor }} build image and push to container registry
on:
push:
branches:
- 'main'
- 'staging'
jobs:
CreateImage:
runs-on: [hubstaging]
uses: http://gitea.pena/PenaDevops/actions.git/.gitea/workflows/build-image.yml@v1.1.6-p
with:
runner: hubstaging
secrets:
REGISTRY_USER: ${{ secrets.REGISTRY_USER }}
REGISTRY_PASSWORD: ${{ secrets.REGISTRY_PASSWORD }}
DeployService:
runs-on: [hubstaging]
needs: CreateImage
uses: http://gitea.pena/PenaDevops/actions.git/.gitea/workflows/deploy.yml@v1.1.4-p7
with:
runner: hubstaging

@ -1,14 +0,0 @@
name: Lint
run-name: ${{ gitea.actor }} produce linting
on:
push:
branches:
- 'dev'
jobs:
Lint:
runs-on: [hubstaging]
uses: http://gitea.pena/PenaDevops/actions.git/.gitea/workflows/lint.yml@v1.1.2
with:
runner: hubstaging

1
.gitignore vendored

@ -1,5 +1,4 @@
/node_modules /node_modules
nohup.out nohup.out
.env .env
main
/.idea /.idea

29
.gitlab-ci.yml Normal file

@ -0,0 +1,29 @@
include:
- project: "devops/pena-continuous-integration"
file: "/templates/docker/build-template.gitlab-ci.yml"
- project: "devops/pena-continuous-integration"
file: "/templates/docker/deploy-template.gitlab-ci.yml"
build-app:
stage: build
tags:
- nodebuild
extends: .build_template
variables:
DOCKER_BUILD_PATH: "./Dockerfile"
PRODUCTION_BRANCH: main
STAGING_BRANCH: staging
deploy-to-staging:
tags:
- staging
rules:
- if: "$CI_COMMIT_BRANCH == $STAGING_BRANCH"
extends: .deploy_template
deploy-to-prod:
rules:
- if: "$CI_COMMIT_BRANCH == $PRODUCTION_BRANCH"
tags:
- prod
extends: .deploy_template

@ -1,13 +1,64 @@
FROM gitea.pena/penadevops/container-images/golang:main as build FROM node:20.5.1-alpine3.17 as build
# Update packages and clear cache
RUN apk update && rm -rf /var/cache/apk/*
# Set the working directory inside the container
WORKDIR /app WORKDIR /app
ENV GOPRIVATE=gitea.pena/PenaSide/common,gitea.pena/PenaSide/linters-golang,gitea.pena/PenaSide/customer,gitea.pena/PenaSide/trashlog,gitea.pena/PenaSide/hlog # Add package metadata files
ENV GOINSECURE=gitea.pena/PenaSide/common,gitea.pena/PenaSide/linters-golang,gitea.pena/PenaSide/customer,gitea.pena/PenaSide/trashlog,gitea.pena/PenaSide/hlog ADD yarn.lock package.json tsconfig.json ./
COPY . /app # Add src folder
RUN go mod download ADD src ./src/
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o app ./cmd/main.go # Add tools
ADD tools ./tools/
# Add migrations
ADD migrations ./migrations
# Install packages
RUN yarn install --ignore-scripts --non-interactive && yarn cache clean
# Build app
RUN yarn build
FROM gitea.pena/penadevops/container-images/alpine:main
RUN apk add --no-cache ca-certificates
COPY --from=build app/app .
CMD ["/app"]
FROM node:20.5.1-alpine3.17 as test
# Update packages and clear cache
RUN apk update && rm -rf /var/cache/apk/*
# Set production env
ENV NODE_ENV=production
# Set the working directory inside the container
WORKDIR /app
# Copy built files from build stage
COPY --from=build /app/dist /app/package.json /app/yarn.lock ./
# Copy migrate tool from build stage
COPY --from=build /app/tools/migrate /usr/local/bin/migrate
# Copy test migrations from build stage
COPY --from=build /app/migrations/test ./migrations
# Change ownership of files in the /app directory to the 'node' user
RUN chown -R node: .
# Install packages
RUN yarn install --non-interactive --frozen-lockfile --production && yarn cache clean
# Set 'node' user as the active user within the container
USER node
# Run the Node.js application
CMD ["node", "./index.js"]
FROM node:20.5.1-alpine3.17 as production
# Update packages and clear cache
RUN apk update && rm -rf /var/cache/apk/*
# Set production env
ENV NODE_ENV=production
# Set the working directory inside the container
WORKDIR /app
# Copy built files from build stage
COPY --from=build /app/dist /app/package.json /app/yarn.lock ./
# Change ownership of files in the /app directory to the 'node' user
RUN chown -R node: .
# Install packages
RUN yarn install --non-interactive --frozen-lockfile --production && yarn cache clean
# Set 'node' user as the active user within the container
USER node
# Run the Node.js application
CMD ["node", "./index.js"]

@ -1,10 +0,0 @@
version: "3"
tasks:
update-linter:
cmds:
- go get -u gitea.pena/PenaSide/linters-golang
lint:
cmds:
- task: update-linter
- cmd: golangci-lint run -v -c $(go list -f '{{"{{"}}.Dir{{"}}"}}' -m gitea.pena/PenaSide/linters-golang)/.golangci.yml

@ -4,12 +4,11 @@ import (
"context" "context"
"fmt" "fmt"
"go.uber.org/zap" "go.uber.org/zap"
"gitea.pena/PenaSide/tariffs/internal/app" "hub_admin_backend_service/internal/app"
"gitea.pena/PenaSide/tariffs/internal/initialize" "hub_admin_backend_service/internal/initialize"
"os" "os"
"os/signal" "os/signal"
"syscall" "syscall"
_ "gitea.pena/PenaSide/linters-golang/pkg/dummy"
) )
func main() { func main() {

@ -1,22 +1,24 @@
version: "3.3" version: "3.3"
services: services:
tariffs: admin:
container_name: hub-admin-backend-service
restart: unless-stopped restart: unless-stopped
tty: true tty: true
image: gitea.pena:3000/penaside/tariffs/staging:$GITHUB_RUN_NUMBER image: $CI_REGISTRY_IMAGE/staging:$CI_COMMIT_REF_SLUG.$CI_PIPELINE_ID
ports: ports:
- 10.7.0.6:59303:8005 - 10.8.0.6:59303:8005
- 10.7.0.6:59304:8006 networks:
- default
environment: environment:
MONGO_URL: mongodb://administrator:64143ffdd9304865586e5cf1@mongodb.pena:27017/administrator?authSource=administrator - DB_HOST=10.8.0.6
MONGO_DB_NAME: administrator - DB_PORT=27017
DB_HOST: 10.7.0.6 - ENVIRONMENT=staging
DB_PORT: 27017 - HTTP_HOST=0.0.0.0
ENVIRONMENT: staging - HTTP_PORT=8005
INTERNAL_HTTP_ADDRESS: 0.0.0.0:8006 - AUTH_SERVICE_HOST=http://10.8.0.6
EXTERNAL_HTTP_ADDRESS: 0.0.0.0:8005 - AUTH_SERVICE_PORT=59300
AUTH_SERVICE_HOST: http://10.7.0.4 - DB_USERNAME=$DB_USERNAME
AUTH_SERVICE_PORT: 59300 - DB_PASSWORD=$DB_PASSWORD
JWT_PUBLIC_KEY: "-----BEGIN PUBLIC KEY-----\nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCLW1tlHyKC9AG0hGpmkksET2DE\nr7ojSPemxFWAgFgcPJWQ7x3uNbsdJ3bIZFoA/FClaWKMCZmjnH9tv0bKZtY/CDhM\nZEyHpMruRSn6IKrxjtQZWy4uv/w6MzUeyBYG0OvNCiYpdvz5SkAGAUHD5ZNFqn2w\nKKFD0I2Dr59BFVSGJwIDAQAB\n-----END PUBLIC KEY-----" - DB_NAME=administrator
PUBLIC_ACCESS_SECRET_KEY: "-----BEGIN PUBLIC KEY-----\nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCLW1tlHyKC9AG0hGpmkksET2DE\nr7ojSPemxFWAgFgcPJWQ7x3uNbsdJ3bIZFoA/FClaWKMCZmjnH9tv0bKZtY/CDhM\nZEyHpMruRSn6IKrxjtQZWy4uv/w6MzUeyBYG0OvNCiYpdvz5SkAGAUHD5ZNFqn2w\nKKFD0I2Dr59BFVSGJwIDAQAB\n-----END PUBLIC KEY-----" - PUBLIC_ACCESS_SECRET_KEY=$PUBLIC_ACCESS_SECRET_KEY

24
go.mod

@ -1,25 +1,23 @@
module gitea.pena/PenaSide/tariffs module hub_admin_backend_service
go 1.23.2 go 1.22
toolchain go1.23.4
require ( require (
gitea.pena/PenaSide/common v0.0.0-20241231090536-2454377ad2a0
github.com/caarlos0/env/v8 v8.0.0 github.com/caarlos0/env/v8 v8.0.0
github.com/gofiber/fiber/v2 v2.52.4 github.com/gofiber/fiber/v2 v2.52.4
github.com/golang-jwt/jwt/v5 v5.2.1
github.com/joho/godotenv v1.5.1 github.com/joho/godotenv v1.5.1
go.mongodb.org/mongo-driver v1.15.0 go.mongodb.org/mongo-driver v1.15.0
go.uber.org/zap v1.27.0 go.uber.org/zap v1.27.0
penahub.gitlab.yandexcloud.net/backend/penahub_common v0.0.0-20240527160654-bd1c2126bc6c
) )
require ( require (
gitea.pena/PenaSide/linters-golang v0.0.0-20241207122018-933207374735 // indirect
github.com/andybalholm/brotli v1.0.5 // indirect github.com/andybalholm/brotli v1.0.5 // indirect
github.com/golang-jwt/jwt v3.2.2+incompatible // indirect
github.com/golang-jwt/jwt/v5 v5.2.1 // indirect
github.com/golang/snappy v0.0.1 // indirect github.com/golang/snappy v0.0.1 // indirect
github.com/google/uuid v1.6.0 // indirect github.com/google/uuid v1.5.0 // indirect
github.com/klauspost/compress v1.17.11 // indirect github.com/klauspost/compress v1.17.0 // indirect
github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-colorable v0.1.13 // indirect
github.com/mattn/go-isatty v0.0.20 // indirect github.com/mattn/go-isatty v0.0.20 // indirect
github.com/mattn/go-runewidth v0.0.15 // indirect github.com/mattn/go-runewidth v0.0.15 // indirect
@ -33,8 +31,8 @@ require (
github.com/xdg-go/stringprep v1.0.4 // indirect github.com/xdg-go/stringprep v1.0.4 // indirect
github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d // indirect github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d // indirect
go.uber.org/multierr v1.10.0 // indirect go.uber.org/multierr v1.10.0 // indirect
golang.org/x/crypto v0.28.0 // indirect golang.org/x/crypto v0.17.0 // indirect
golang.org/x/sync v0.8.0 // indirect golang.org/x/sync v0.1.0 // indirect
golang.org/x/sys v0.26.0 // indirect golang.org/x/sys v0.15.0 // indirect
golang.org/x/text v0.19.0 // indirect golang.org/x/text v0.14.0 // indirect
) )

36
go.sum

@ -1,7 +1,3 @@
gitea.pena/PenaSide/common v0.0.0-20241231090536-2454377ad2a0 h1:B4+DAND6gJnCsc9DZY6XyMVLzD23nI8whk8xI7XKGrM=
gitea.pena/PenaSide/common v0.0.0-20241231090536-2454377ad2a0/go.mod h1:U7QFuvkrIWyb/m/SOyrsroS7DJntjcr9k7kNy3vtPdU=
gitea.pena/PenaSide/linters-golang v0.0.0-20241207122018-933207374735 h1:jDVeUhGBTXBibmW5dmtJg2m2+z5z2Rf6J4G0LpjVoJ0=
gitea.pena/PenaSide/linters-golang v0.0.0-20241207122018-933207374735/go.mod h1:gdd+vOT6up9STkEbxa2qESLIMZFjCmRbkcheFQCVgZU=
github.com/andybalholm/brotli v1.0.5 h1:8uQZIdzKmjc/iuPu7O2ioW48L81FgatrcpfFmiq/cCs= github.com/andybalholm/brotli v1.0.5 h1:8uQZIdzKmjc/iuPu7O2ioW48L81FgatrcpfFmiq/cCs=
github.com/andybalholm/brotli v1.0.5/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= github.com/andybalholm/brotli v1.0.5/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig=
github.com/caarlos0/env/v8 v8.0.0 h1:POhxHhSpuxrLMIdvTGARuZqR4Jjm8AYmoi/JKlcScs0= github.com/caarlos0/env/v8 v8.0.0 h1:POhxHhSpuxrLMIdvTGARuZqR4Jjm8AYmoi/JKlcScs0=
@ -10,18 +6,20 @@ 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/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/gofiber/fiber/v2 v2.52.4 h1:P+T+4iK7VaqUsq2PALYEfBBo6bJZ4q3FP8cZ84EggTM= github.com/gofiber/fiber/v2 v2.52.4 h1:P+T+4iK7VaqUsq2PALYEfBBo6bJZ4q3FP8cZ84EggTM=
github.com/gofiber/fiber/v2 v2.52.4/go.mod h1:KEOE+cXMhXG0zHc9d8+E38hoX+ZN7bhOtgeF2oT6jrQ= github.com/gofiber/fiber/v2 v2.52.4/go.mod h1:KEOE+cXMhXG0zHc9d8+E38hoX+ZN7bhOtgeF2oT6jrQ=
github.com/golang-jwt/jwt v3.2.2+incompatible h1:IfV12K8xAKAnZqdXVzCZ+TOjboZ2keLg81eXfW3O+oY=
github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I=
github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk= github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk=
github.com/golang-jwt/jwt/v5 v5.2.1/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= github.com/golang-jwt/jwt/v5 v5.2.1/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk=
github.com/golang/snappy v0.0.1 h1:Qgr9rKW7uDUkrbSmQeiDsGa8SjGyCOGtuasMWwvp2P4= github.com/golang/snappy v0.0.1 h1:Qgr9rKW7uDUkrbSmQeiDsGa8SjGyCOGtuasMWwvp2P4=
github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
github.com/google/go-cmp v0.5.2 h1:X2ev0eStA3AbceY54o37/0PQ/UWqKEiiO2dKL5OPaFM= github.com/google/go-cmp v0.5.2 h1:X2ev0eStA3AbceY54o37/0PQ/UWqKEiiO2dKL5OPaFM=
github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.5.0 h1:1p67kYwdtXjb0gL0BPiP1Av9wiZPo5A8z2cWkTZ+eyU=
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.5.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0= github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0=
github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4= github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4=
github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= github.com/klauspost/compress v1.17.0 h1:Rnbp4K9EjcDuVuHtd0dgA4qNuv9yKDYKK1ulpJwgrqM=
github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= github.com/klauspost/compress v1.17.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
@ -35,8 +33,8 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY=
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw=
github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
github.com/valyala/fasthttp v1.51.0 h1:8b30A5JlZ6C7AS81RsWjYMQmrZG6feChmgAolCl1SqA= github.com/valyala/fasthttp v1.51.0 h1:8b30A5JlZ6C7AS81RsWjYMQmrZG6feChmgAolCl1SqA=
@ -62,16 +60,16 @@ go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8=
go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.28.0 h1:GBDwsMXVQi34v5CCYUm2jkJvu4cbtru2U4TN2PSyQnw= golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k=
golang.org/x/crypto v0.28.0/go.mod h1:rmgy+3RHxRZMyY0jjAJShp2zgEdOqj2AO7U0pYmeQ7U= golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4=
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ= golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o=
golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
@ -79,16 +77,16 @@ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.26.0 h1:KHjCJyddX0LoSTb3J+vWpupP9p0oznkqVk/IfjymZbo= golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc=
golang.org/x/sys v0.26.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= 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.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ=
golang.org/x/text v0.19.0 h1:kTxAhCbGbxhK0IwgSKiMO5awPoDQ0RpfiVYBfK860YM= golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
golang.org/x/text v0.19.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
@ -97,3 +95,5 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IV
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
penahub.gitlab.yandexcloud.net/backend/penahub_common v0.0.0-20240527160654-bd1c2126bc6c h1:jxnyIeC2CNDNmfdFx2qnLS4Qd0v5ocYrY9X+OL9qsvc=
penahub.gitlab.yandexcloud.net/backend/penahub_common v0.0.0-20240527160654-bd1c2126bc6c/go.mod h1:lTmpjry+8evVkXWbEC+WMOELcFkRD1lFMc7J09mOndM=

@ -4,11 +4,11 @@ import (
"context" "context"
"errors" "errors"
"go.uber.org/zap" "go.uber.org/zap"
"gitea.pena/PenaSide/tariffs/internal/controller/middleware" "hub_admin_backend_service/internal/controller/middleware"
"gitea.pena/PenaSide/tariffs/internal/initialize" "hub_admin_backend_service/internal/initialize"
"gitea.pena/PenaSide/tariffs/internal/models" "hub_admin_backend_service/internal/models"
"gitea.pena/PenaSide/tariffs/internal/server/http" "hub_admin_backend_service/internal/server/http"
"gitea.pena/PenaSide/tariffs/pkg/closer" "hub_admin_backend_service/pkg/closer"
"time" "time"
) )
@ -19,7 +19,7 @@ func Run(ctx context.Context, cfg initialize.Config, logger *zap.Logger) error {
} }
}() }()
logger.Info("Starting application", zap.Any("AppCFG", cfg)) logger.Info("Starting application", zap.String("AppName", cfg.AppName))
ctx, cancel := context.WithCancel(ctx) ctx, cancel := context.WithCancel(ctx)
defer cancel() defer cancel()

@ -3,7 +3,7 @@ package middleware
import ( import (
"github.com/gofiber/fiber/v2" "github.com/gofiber/fiber/v2"
"go.uber.org/zap" "go.uber.org/zap"
"gitea.pena/PenaSide/tariffs/internal/models" "hub_admin_backend_service/internal/models"
"strconv" "strconv"
) )

@ -4,9 +4,9 @@ import (
"errors" "errors"
"github.com/gofiber/fiber/v2" "github.com/gofiber/fiber/v2"
"go.uber.org/zap" "go.uber.org/zap"
our_errors "gitea.pena/PenaSide/tariffs/internal/errors" our_errors "hub_admin_backend_service/internal/errors"
"gitea.pena/PenaSide/tariffs/internal/repository/privilege" "hub_admin_backend_service/internal/repository/privilege"
"gitea.pena/PenaSide/tariffs/internal/tools" "hub_admin_backend_service/internal/tools"
) )
type Deps struct { type Deps struct {

@ -4,10 +4,10 @@ import (
"errors" "errors"
"github.com/gofiber/fiber/v2" "github.com/gofiber/fiber/v2"
"go.uber.org/zap" "go.uber.org/zap"
our_errors "gitea.pena/PenaSide/tariffs/internal/errors" our_errors "hub_admin_backend_service/internal/errors"
"gitea.pena/PenaSide/tariffs/internal/models" "hub_admin_backend_service/internal/models"
"gitea.pena/PenaSide/tariffs/internal/repository/privilege" "hub_admin_backend_service/internal/repository/privilege"
"gitea.pena/PenaSide/tariffs/internal/tools" "hub_admin_backend_service/internal/tools"
) )
type Deps struct { type Deps struct {

@ -5,11 +5,11 @@ import (
"github.com/gofiber/fiber/v2" "github.com/gofiber/fiber/v2"
"go.mongodb.org/mongo-driver/bson/primitive" "go.mongodb.org/mongo-driver/bson/primitive"
"go.uber.org/zap" "go.uber.org/zap"
"gitea.pena/PenaSide/tariffs/internal/controller/middleware" "hub_admin_backend_service/internal/controller/middleware"
our_errors "gitea.pena/PenaSide/tariffs/internal/errors" our_errors "hub_admin_backend_service/internal/errors"
"gitea.pena/PenaSide/tariffs/internal/models" "hub_admin_backend_service/internal/models"
"gitea.pena/PenaSide/tariffs/internal/repository/tariff" "hub_admin_backend_service/internal/repository/tariff"
"gitea.pena/PenaSide/tariffs/internal/tools" "hub_admin_backend_service/internal/tools"
) )
type Deps struct { type Deps struct {

@ -3,8 +3,8 @@ package tariff_external
import "github.com/gofiber/fiber/v2" import "github.com/gofiber/fiber/v2"
func (t *TariffExternal) Register(router fiber.Router) { func (t *TariffExternal) Register(router fiber.Router) {
router.Get("/getList", t.GetList)
router.Get("/:id", t.Get) router.Get("/:id", t.Get)
router.Get("/getList", t.GetList)
router.Post("/", t.Create) router.Post("/", t.Create)
} }

@ -5,11 +5,11 @@ import (
"github.com/gofiber/fiber/v2" "github.com/gofiber/fiber/v2"
"go.mongodb.org/mongo-driver/bson/primitive" "go.mongodb.org/mongo-driver/bson/primitive"
"go.uber.org/zap" "go.uber.org/zap"
"gitea.pena/PenaSide/tariffs/internal/controller/middleware" "hub_admin_backend_service/internal/controller/middleware"
our_errors "gitea.pena/PenaSide/tariffs/internal/errors" our_errors "hub_admin_backend_service/internal/errors"
"gitea.pena/PenaSide/tariffs/internal/models" "hub_admin_backend_service/internal/models"
"gitea.pena/PenaSide/tariffs/internal/repository/tariff" "hub_admin_backend_service/internal/repository/tariff"
"gitea.pena/PenaSide/tariffs/internal/tools" "hub_admin_backend_service/internal/tools"
) )
// todo middleware jwt // todo middleware jwt

@ -1,7 +1,6 @@
package initialize package initialize
import ( import (
"gitea.pena/PenaSide/common/mongo"
"github.com/caarlos0/env/v8" "github.com/caarlos0/env/v8"
"github.com/joho/godotenv" "github.com/joho/godotenv"
"log" "log"
@ -11,15 +10,16 @@ type Config struct {
AppName string `env:"APP_NAME" envDefault:"hub-admin-backend-service"` AppName string `env:"APP_NAME" envDefault:"hub-admin-backend-service"`
InternalHttpAddress string `env:"INTERNAL_HTTP_ADDRESS" envDefault:"localhost:8000"` InternalHttpAddress string `env:"INTERNAL_HTTP_ADDRESS" envDefault:"localhost:8000"`
ExternalHttpAddress string `env:"EXTERNAL_HTTP_ADDRESS" envDefault:"localhost:8001"` ExternalHttpAddress string `env:"EXTERNAL_HTTP_ADDRESS" envDefault:"localhost:8001"`
MongoHost string `env:"MONGO_HOST" envDefault:"127.0.0.1"`
MongoPort string `env:"MONGO_PORT" envDefault:"27021"`
MongoUser string `env:"MONGO_USER" envDefault:"test"`
MongoPassword string `env:"MONGO_PASSWORD" envDefault:"test"`
MongoDatabase string `env:"MONGO_DB" envDefault:"admin"`
MongoAuth string `env:"MONGO_AUTH" envDefault:"admin"`
PrivateKey string `env:"JWT_PRIVATE_KEY"` PrivateKey string `env:"JWT_PRIVATE_KEY"`
PublicKey string `env:"JWT_PUBLIC_KEY"` PublicKey string `env:"JWT_PUBLIC_KEY"`
Issuer string `env:"JWT_ISSUER"` Issuer string `env:"JWT_ISSUER"`
Audience string `env:"JWT_AUDIENCE"` Audience string `env:"JWT_AUDIENCE"`
ExternalCfg ExternalCfg
}
type ExternalCfg struct {
Database mongo.Configuration
} }
func LoadConfig() (*Config, error) { func LoadConfig() (*Config, error) {

@ -2,11 +2,11 @@ package initialize
import ( import (
"go.uber.org/zap" "go.uber.org/zap"
"gitea.pena/PenaSide/tariffs/internal/controller/middleware" "hub_admin_backend_service/internal/controller/middleware"
"gitea.pena/PenaSide/tariffs/internal/controller/privilege_external" "hub_admin_backend_service/internal/controller/privilege_external"
"gitea.pena/PenaSide/tariffs/internal/controller/privilege_internal" "hub_admin_backend_service/internal/controller/privilege_internal"
"gitea.pena/PenaSide/tariffs/internal/controller/tariff_external" "hub_admin_backend_service/internal/controller/tariff_external"
"gitea.pena/PenaSide/tariffs/internal/controller/tariff_internal" "hub_admin_backend_service/internal/controller/tariff_internal"
) )
type ControllerDeps struct { type ControllerDeps struct {

@ -2,15 +2,19 @@ package initialize
import ( import (
"context" "context"
mdb "gitea.pena/PenaSide/common/mongo"
"go.mongodb.org/mongo-driver/mongo" "go.mongodb.org/mongo-driver/mongo"
mdb "penahub.gitlab.yandexcloud.net/backend/penahub_common/mongo"
"time" "time"
) )
func MongoDB(ctx context.Context, cfg Config) (*mongo.Database, error) { func MongoDB(ctx context.Context, cfg Config) (*mongo.Database, error) {
dbConfig := &mdb.Configuration{ dbConfig := &mdb.Configuration{
URL: cfg.ExternalCfg.Database.URL, Host: cfg.MongoHost,
DatabaseName: cfg.ExternalCfg.Database.DatabaseName, Port: cfg.MongoPort,
User: cfg.MongoUser,
Password: cfg.MongoPassword,
DatabaseName: cfg.MongoDatabase,
Auth: cfg.MongoAuth,
} }
newCtx, cancel := context.WithTimeout(ctx, 10*time.Second) newCtx, cancel := context.WithTimeout(ctx, 10*time.Second)

@ -3,8 +3,8 @@ package initialize
import ( import (
"go.mongodb.org/mongo-driver/mongo" "go.mongodb.org/mongo-driver/mongo"
"go.uber.org/zap" "go.uber.org/zap"
"gitea.pena/PenaSide/tariffs/internal/repository/privilege" "hub_admin_backend_service/internal/repository/privilege"
"gitea.pena/PenaSide/tariffs/internal/repository/tariff" "hub_admin_backend_service/internal/repository/tariff"
) )
type RepositoryDeps struct { type RepositoryDeps struct {

@ -5,20 +5,17 @@ import (
"time" "time"
) )
type Privilege struct { type Privilege struct {
ID primitive.ObjectID `bson:"_id" json:"_id"` ID primitive.ObjectID `bson:"_id"`
Name string `bson:"name" json:"name"` Name string `bson:"name"`
PrivilegeID string `bson:"privilegeId" json:"privilegeId"` PrivilegeID string `bson:"privilegeId"`
ServiceKey string `bson:"serviceKey" json:"serviceKey"` ServiceKey string `bson:"serviceKey"`
Description string `bson:"description" json:"description"` Description string `bson:"description"`
Type string `bson:"type" json:"type"` Type string `bson:"type"`
Value string `bson:"value" json:"value"` Value string `bson:"value"`
Price float64 `bson:"price" json:"price"` Price float64 `bson:"price"`
Amount float64 `bson:"amount" json:"amount"` CreatedAt time.Time `bson:"createdAt"`
CreatedAt time.Time `bson:"createdAt" json:"createdAt"` UpdatedAt time.Time `bson:"updatedAt"`
UpdatedAt time.Time `bson:"updatedAt" json:"updatedAt"` IsDeleted bool `bson:"isDeleted"`
IsDeleted bool `bson:"isDeleted" json:"isDeleted"` DeletedAt *time.Time `bson:"deletedAt"`
DeletedAt *time.Time `bson:"deletedAt" json:"deletedAt"`
} }

@ -7,8 +7,8 @@ import (
"go.mongodb.org/mongo-driver/mongo" "go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/mongo/options" "go.mongodb.org/mongo-driver/mongo/options"
"go.uber.org/zap" "go.uber.org/zap"
"gitea.pena/PenaSide/tariffs/internal/errors" "hub_admin_backend_service/internal/errors"
"gitea.pena/PenaSide/tariffs/internal/models" "hub_admin_backend_service/internal/models"
"time" "time"
) )

@ -7,8 +7,8 @@ import (
"go.mongodb.org/mongo-driver/mongo" "go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/mongo/options" "go.mongodb.org/mongo-driver/mongo/options"
"go.uber.org/zap" "go.uber.org/zap"
"gitea.pena/PenaSide/tariffs/internal/errors" "hub_admin_backend_service/internal/errors"
"gitea.pena/PenaSide/tariffs/internal/models" "hub_admin_backend_service/internal/models"
"math" "math"
"time" "time"
) )

@ -5,8 +5,8 @@ import (
"fmt" "fmt"
"github.com/gofiber/fiber/v2" "github.com/gofiber/fiber/v2"
"go.uber.org/zap" "go.uber.org/zap"
"gitea.pena/PenaSide/tariffs/internal/models" "hub_admin_backend_service/internal/models"
"gitea.pena/PenaSide/tariffs/internal/utils" "hub_admin_backend_service/internal/utils"
) )
type ServerConfig struct { type ServerConfig struct {

@ -1,6 +1,6 @@
package tools package tools
import "gitea.pena/PenaSide/tariffs/internal/models" import "hub_admin_backend_service/internal/models"
func ConvertPrivilegesToMap(privileges []models.Privilege) map[string][]models.Privilege { func ConvertPrivilegesToMap(privileges []models.Privilege) map[string][]models.Privilege {
resultMap := make(map[string][]models.Privilege) resultMap := make(map[string][]models.Privilege)

@ -2,7 +2,7 @@ package tools
import ( import (
"errors" "errors"
"gitea.pena/PenaSide/tariffs/internal/models" "hub_admin_backend_service/internal/models"
) )
func ValidatePrivilege(req models.CreateUpdateReq) bool { func ValidatePrivilege(req models.CreateUpdateReq) bool {

@ -3,7 +3,7 @@ package utils
import ( import (
"errors" "errors"
"github.com/gofiber/fiber/v2" "github.com/gofiber/fiber/v2"
"gitea.pena/PenaSide/tariffs/internal/models" "hub_admin_backend_service/internal/models"
"strings" "strings"
) )

@ -4,7 +4,7 @@ import (
"errors" "errors"
"fmt" "fmt"
"github.com/golang-jwt/jwt/v5" "github.com/golang-jwt/jwt/v5"
"gitea.pena/PenaSide/tariffs/internal/models" "hub_admin_backend_service/internal/models"
"time" "time"
) )