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
nohup.out
.env
main
/.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
ENV GOPRIVATE=gitea.pena/PenaSide/common,gitea.pena/PenaSide/linters-golang,gitea.pena/PenaSide/customer,gitea.pena/PenaSide/trashlog,gitea.pena/PenaSide/hlog
ENV GOINSECURE=gitea.pena/PenaSide/common,gitea.pena/PenaSide/linters-golang,gitea.pena/PenaSide/customer,gitea.pena/PenaSide/trashlog,gitea.pena/PenaSide/hlog
COPY . /app
RUN go mod download
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o app ./cmd/main.go
# Add package metadata files
ADD yarn.lock package.json tsconfig.json ./
# Add src folder
ADD src ./src/
# 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"
"fmt"
"go.uber.org/zap"
"gitea.pena/PenaSide/tariffs/internal/app"
"gitea.pena/PenaSide/tariffs/internal/initialize"
"hub_admin_backend_service/internal/app"
"hub_admin_backend_service/internal/initialize"
"os"
"os/signal"
"syscall"
_ "gitea.pena/PenaSide/linters-golang/pkg/dummy"
)
func main() {

@ -1,22 +1,24 @@
version: "3.3"
services:
tariffs:
admin:
container_name: hub-admin-backend-service
restart: unless-stopped
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:
- 10.7.0.6:59303:8005
- 10.7.0.6:59304:8006
- 10.8.0.6:59303:8005
networks:
- default
environment:
MONGO_URL: mongodb://administrator:64143ffdd9304865586e5cf1@mongodb.pena:27017/administrator?authSource=administrator
MONGO_DB_NAME: administrator
DB_HOST: 10.7.0.6
DB_PORT: 27017
ENVIRONMENT: staging
INTERNAL_HTTP_ADDRESS: 0.0.0.0:8006
EXTERNAL_HTTP_ADDRESS: 0.0.0.0:8005
AUTH_SERVICE_HOST: http://10.7.0.4
AUTH_SERVICE_PORT: 59300
JWT_PUBLIC_KEY: "-----BEGIN PUBLIC KEY-----\nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCLW1tlHyKC9AG0hGpmkksET2DE\nr7ojSPemxFWAgFgcPJWQ7x3uNbsdJ3bIZFoA/FClaWKMCZmjnH9tv0bKZtY/CDhM\nZEyHpMruRSn6IKrxjtQZWy4uv/w6MzUeyBYG0OvNCiYpdvz5SkAGAUHD5ZNFqn2w\nKKFD0I2Dr59BFVSGJwIDAQAB\n-----END PUBLIC KEY-----"
PUBLIC_ACCESS_SECRET_KEY: "-----BEGIN PUBLIC KEY-----\nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCLW1tlHyKC9AG0hGpmkksET2DE\nr7ojSPemxFWAgFgcPJWQ7x3uNbsdJ3bIZFoA/FClaWKMCZmjnH9tv0bKZtY/CDhM\nZEyHpMruRSn6IKrxjtQZWy4uv/w6MzUeyBYG0OvNCiYpdvz5SkAGAUHD5ZNFqn2w\nKKFD0I2Dr59BFVSGJwIDAQAB\n-----END PUBLIC KEY-----"
- DB_HOST=10.8.0.6
- DB_PORT=27017
- ENVIRONMENT=staging
- HTTP_HOST=0.0.0.0
- HTTP_PORT=8005
- AUTH_SERVICE_HOST=http://10.8.0.6
- AUTH_SERVICE_PORT=59300
- DB_USERNAME=$DB_USERNAME
- DB_PASSWORD=$DB_PASSWORD
- DB_NAME=administrator
- 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
toolchain go1.23.4
go 1.22
require (
gitea.pena/PenaSide/common v0.0.0-20241231090536-2454377ad2a0
github.com/caarlos0/env/v8 v8.0.0
github.com/gofiber/fiber/v2 v2.52.4
github.com/golang-jwt/jwt/v5 v5.2.1
github.com/joho/godotenv v1.5.1
go.mongodb.org/mongo-driver v1.15.0
go.uber.org/zap v1.27.0
penahub.gitlab.yandexcloud.net/backend/penahub_common v0.0.0-20240527160654-bd1c2126bc6c
)
require (
gitea.pena/PenaSide/linters-golang v0.0.0-20241207122018-933207374735 // 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/google/uuid v1.6.0 // indirect
github.com/klauspost/compress v1.17.11 // indirect
github.com/google/uuid v1.5.0 // indirect
github.com/klauspost/compress v1.17.0 // indirect
github.com/mattn/go-colorable v0.1.13 // indirect
github.com/mattn/go-isatty v0.0.20 // 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/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d // indirect
go.uber.org/multierr v1.10.0 // indirect
golang.org/x/crypto v0.28.0 // indirect
golang.org/x/sync v0.8.0 // indirect
golang.org/x/sys v0.26.0 // indirect
golang.org/x/text v0.19.0 // indirect
golang.org/x/crypto v0.17.0 // indirect
golang.org/x/sync v0.1.0 // indirect
golang.org/x/sys v0.15.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/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig=
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/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/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/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk=
github.com/golang/snappy v0.0.1 h1:Qgr9rKW7uDUkrbSmQeiDsGa8SjGyCOGtuasMWwvp2P4=
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/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.5.0 h1:1p67kYwdtXjb0gL0BPiP1Av9wiZPo5A8z2cWkTZ+eyU=
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/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4=
github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc=
github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0=
github.com/klauspost/compress v1.17.0 h1:Rnbp4K9EjcDuVuHtd0dgA4qNuv9yKDYKK1ulpJwgrqM=
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/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
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/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY=
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.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
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/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
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=
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.28.0 h1:GBDwsMXVQi34v5CCYUm2jkJvu4cbtru2U4TN2PSyQnw=
golang.org/x/crypto v0.28.0/go.mod h1:rmgy+3RHxRZMyY0jjAJShp2zgEdOqj2AO7U0pYmeQ7U=
golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k=
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/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-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-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ=
golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o=
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-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
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-20220811171246-fbc7d0a398ab/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.26.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc=
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-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.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.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ=
golang.org/x/text v0.19.0 h1:kTxAhCbGbxhK0IwgSKiMO5awPoDQ0RpfiVYBfK860YM=
golang.org/x/text v0.19.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY=
golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
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-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
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=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
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"
"errors"
"go.uber.org/zap"
"gitea.pena/PenaSide/tariffs/internal/controller/middleware"
"gitea.pena/PenaSide/tariffs/internal/initialize"
"gitea.pena/PenaSide/tariffs/internal/models"
"gitea.pena/PenaSide/tariffs/internal/server/http"
"gitea.pena/PenaSide/tariffs/pkg/closer"
"hub_admin_backend_service/internal/controller/middleware"
"hub_admin_backend_service/internal/initialize"
"hub_admin_backend_service/internal/models"
"hub_admin_backend_service/internal/server/http"
"hub_admin_backend_service/pkg/closer"
"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)
defer cancel()

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

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

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

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

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

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

@ -1,7 +1,6 @@
package initialize
import (
"gitea.pena/PenaSide/common/mongo"
"github.com/caarlos0/env/v8"
"github.com/joho/godotenv"
"log"
@ -11,15 +10,16 @@ type Config struct {
AppName string `env:"APP_NAME" envDefault:"hub-admin-backend-service"`
InternalHttpAddress string `env:"INTERNAL_HTTP_ADDRESS" envDefault:"localhost:8000"`
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"`
PublicKey string `env:"JWT_PUBLIC_KEY"`
Issuer string `env:"JWT_ISSUER"`
Audience string `env:"JWT_AUDIENCE"`
ExternalCfg ExternalCfg
}
type ExternalCfg struct {
Database mongo.Configuration
}
func LoadConfig() (*Config, error) {

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

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

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

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

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

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

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

@ -1,6 +1,6 @@
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 {
resultMap := make(map[string][]models.Privilege)

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

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

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