Compare commits

...

5 Commits
dev ... lint

Author SHA1 Message Date
a71208de38 - 2024-12-24 16:02:15 +03:00
be56513c8b - 2024-12-24 16:01:07 +03:00
Pasha
d83c3f2160 some upd 2024-12-18 20:05:44 +03:00
Pasha
10cd97b46d some upd 2024-12-18 19:55:08 +03:00
Pasha
8096c7703f some upd 2024-12-18 19:53:57 +03:00
9 changed files with 65 additions and 60 deletions

@ -1,11 +1,11 @@
package main
import (
"gitea.pena/PenaSide/verification/internal/app"
"gitea.pena/PenaSide/verification/internal/config"
"go.uber.org/zap"
"log"
"os"
"gitea.pena/PenaSide/verification/internal/app"
"gitea.pena/PenaSide/verification/internal/config"
_ "gitea.pena/PenaSide/linters-golang/pkg/dummy"
"time"

@ -111,13 +111,13 @@ func Run(cfg *config.Config, build Build) {
go func() {
if err := userSrv.Start(cfg.ClientHttpURL); err != nil {
logger.Fatal("Server startup error", zap.Error(err))
logger.Fatal("Client server startup error", zap.Error(err))
}
}()
go func() {
if err := adminSrv.Start(cfg.AdminHttpURL); err != nil {
logger.Fatal("Server startup error", zap.Error(err))
logger.Fatal("Admin server startup error", zap.Error(err))
}
}()

@ -4,9 +4,9 @@ import (
"bytes"
_ "embed"
"fmt"
"gitea.pena/PenaSide/verification/internal/models"
tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api/v5"
"go.uber.org/zap"
"gitea.pena/PenaSide/verification/internal/models"
"text/template"
)
@ -35,7 +35,6 @@ func NewTelegram(deps Deps) *Telegram {
}
func (t *Telegram) SendVerification(data *models.Verification, url string, isUpdate bool) error {
fmt.Println("VERT", data, url,isUpdate)
var tplPath string
if isUpdate {
tplPath = UpdatedVerification
@ -43,13 +42,10 @@ func (t *Telegram) SendVerification(data *models.Verification, url string, isUpd
tplPath = NewVerification
}
fmt.Println("VERT1", tplPath)
var userURL string
userURL = fmt.Sprintf("%s/users/%s", t.stagingURL, data.UserID)
fmt.Println("VERT2", userURL)
tpl, err := template.New("verification_template").Parse(tplPath)
fmt.Println("VERT333", tpl,err)
if err != nil {
return fmt.Errorf("error parsing template: %w", err)
}
@ -69,14 +65,12 @@ func (t *Telegram) SendVerification(data *models.Verification, url string, isUpd
}
err = tpl.Execute(&text, toTG)
fmt.Println("VERT433", err)
if err != nil {
return fmt.Errorf("error executing template: %w", err)
}
msg := tgbotapi.NewMessage(t.chatID, text.String())
fmt.Println("VERT433", err, t.chatID, text.String())
_, err = t.bot.Send(msg)
if err != nil {
return fmt.Errorf("error sending message: %w", err)

@ -3,10 +3,10 @@ package admin
import "github.com/gofiber/fiber/v2"
func (r *VerifyAdminController) Register(router fiber.Router) {
router.Get("/verification/:userID", r.GetVerification)
router.Patch("/verification", r.SetVerificationStatus)
router.Get("/:userID", r.GetVerification)
router.Patch("/", r.SetVerificationStatus)
}
func (r *VerifyAdminController) Name() string {
return ""
return "verification"
}

@ -3,11 +3,11 @@ package user
import "github.com/gofiber/fiber/v2"
func (r *VerifyUserController) Register(router fiber.Router) {
router.Get("/verification", r.GetVerification)
router.Post("/verification", r.CreateVerification)
router.Put("/verification", r.SetVerificationFile)
router.Get("/", r.GetVerification)
router.Post("/", r.CreateVerification)
router.Put("/", r.SetVerificationFile)
}
func (r *VerifyUserController) Name() string {
return ""
return "verification"
}

@ -4,17 +4,18 @@ import (
"context"
"errors"
"fmt"
"gitea.pena/PenaSide/verification/internal/utils"
"mime/multipart"
"time"
"strings"
"time"
"gitea.pena/PenaSide/verification/internal/models"
"github.com/minio/minio-go/v7"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/bson/primitive"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/mongo/options"
"go.uber.org/zap"
"gitea.pena/PenaSide/verification/internal/models"
)
type VerificationRepository struct {
@ -54,7 +55,7 @@ func (r *VerificationRepository) Insert(
return nil, err
}
_, err = r.s3.PutObject(ctx, VerificationBucket, fmt.Sprintf("%s/%s/%s", r.folder, userID, innFH.Filename), inn, innFH.Size, minio.PutObjectOptions{})
_, err = r.s3.PutObject(ctx, VerificationBucket, utils.GenerateFilePath(r.folder, userID, innFH.Filename), inn, innFH.Size, minio.PutObjectOptions{})
if r.err(err) {
return nil, err
}
@ -65,7 +66,7 @@ func (r *VerificationRepository) Insert(
}
// Put rule file
_, err = r.s3.PutObject(ctx, VerificationBucket, fmt.Sprintf("%s/%s/%s", r.folder, userID, ruleFH.Filename), rule, ruleFH.Size, minio.PutObjectOptions{})
_, err = r.s3.PutObject(ctx, VerificationBucket, utils.GenerateFilePath(r.folder, userID, innFH.Filename), rule, ruleFH.Size, minio.PutObjectOptions{})
if r.err(err) {
return nil, err
}
@ -77,7 +78,7 @@ func (r *VerificationRepository) Insert(
return nil, err
}
_, err = r.s3.PutObject(ctx, VerificationBucket, fmt.Sprintf("%s/%s/%s", r.folder, userID, certFH.Filename), cert, certFH.Size, minio.PutObjectOptions{})
_, err = r.s3.PutObject(ctx, VerificationBucket, utils.GenerateFilePath(r.folder, userID, innFH.Filename), cert, certFH.Size, minio.PutObjectOptions{})
if r.err(err) {
return nil, err
}
@ -85,7 +86,7 @@ func (r *VerificationRepository) Insert(
record.Files = []models.VerificationFile{
{
Name: "certificate",
Url: fmt.Sprintf("%s/%s/%s/%s", r.url, r.folder, userID, certFH.Filename),
Url: utils.GenerateURL(r.url, r.folder, userID, certFH.Filename),
},
}
}
@ -94,11 +95,11 @@ func (r *VerificationRepository) Insert(
record.Files = append(record.Files, []models.VerificationFile{
{
Name: "inn",
Url: fmt.Sprintf("%s/%s/%s/%s", r.url, r.folder, userID, innFH.Filename),
Url: utils.GenerateURL(r.url, r.folder, userID, innFH.Filename),
},
{
Name: "rule",
Url: fmt.Sprintf("%s/%s/%s/%s", r.url, r.folder, userID, ruleFH.Filename),
Url: utils.GenerateURL(r.url, r.folder, userID, ruleFH.Filename),
},
}...)
@ -114,8 +115,9 @@ func (r *VerificationRepository) Insert(
func (r *VerificationRepository) GetByUserID(ctx context.Context, userID string) (*models.Verification, error) {
if userID == "" {
err := errors.New("userID cannot be empty")
r.logger.Error("VerificationRepositoryError", zap.Error(err))
return nil, err
if r.err(err) {
return nil, err
}
}
filter := bson.M{
@ -130,8 +132,9 @@ func (r *VerificationRepository) GetByUserID(ctx context.Context, userID string)
if err == mongo.ErrNoDocuments {
return nil, nil
}
r.logger.Error("VerificationRepositoryError", zap.Error(err))
return nil, err
if r.err(err) {
return nil, err
}
}
return &result, nil
@ -140,8 +143,9 @@ func (r *VerificationRepository) GetByUserID(ctx context.Context, userID string)
func (r *VerificationRepository) Get(ctx context.Context, id string) (*models.Verification, error) {
if id == "" {
err := errors.New("_id cannot be empty")
r.logger.Error("VerificationRepositoryError", zap.Error(err))
return nil, err
if r.err(err) {
return nil, err
}
}
filter := bson.M{
@ -154,8 +158,9 @@ func (r *VerificationRepository) Get(ctx context.Context, id string) (*models.Ve
if err == mongo.ErrNoDocuments {
return nil, nil
}
r.logger.Error("VerificationRepositoryError", zap.Error(err))
return nil, err
if r.err(err) {
return nil, err
}
}
return &result, nil
@ -195,7 +200,7 @@ func (r *VerificationRepository) UpdateFile(ctx context.Context, userID, fileNam
return nil, err
}
fileURL := fmt.Sprintf("%s/%s/%s/%s", r.url, r.folder, userID, fileHeader.Filename)
fileURL := fmt.Sprintf("%s/%s/%s/%s", r.url, r.folder, userID, fileHeader.Filename)
// remove old file
verification, err := r.GetByUserID(ctx, userID)
@ -203,9 +208,9 @@ func (r *VerificationRepository) UpdateFile(ctx context.Context, userID, fileNam
return nil, err
}
if verification == nil {
return nil, fmt.Errorf("no verification found")
}
if verification == nil {
return nil, fmt.Errorf("no verification found")
}
found := false
for iterator, file := range verification.Files {
@ -228,7 +233,6 @@ func (r *VerificationRepository) UpdateFile(ctx context.Context, userID, fileNam
// update in mongodb
result, err := r.Update(ctx, &models.Verification{ID: verification.ID, Files: verification.Files})
if r.err(err) {
return nil, err

@ -4,14 +4,16 @@ import (
"gitea.pena/PenaSide/verification/internal/models"
"strings"
"github.com/gofiber/fiber/v2"
"gitea.pena/PenaSide/common/jwt_adapter"
"github.com/gofiber/fiber/v2"
)
const localUserIDHeader = "LocalUserID"
func LocalJwt() fiber.Handler {
return func(c *fiber.Ctx) error {
if c.Get("LocalUserID") != "" {
c.Locals("userID", c.Get("LocalUserID"))
if c.Get(localUserIDHeader) != "" {
c.Locals("userID", c.Get(localUserIDHeader))
}
return c.Next()

11
internal/utils/utils.go Normal file

@ -0,0 +1,11 @@
package utils
import "fmt"
func GenerateFilePath(folder, userID, filename string) string {
return fmt.Sprintf("%s/%s/%s", folder, userID, filename)
}
func GenerateURL(baseURL, folder, userID, filename string) string {
return fmt.Sprintf("%s/%s/%s/%s", baseURL, folder, userID, filename)
}

@ -1,20 +1,14 @@
TELEGRAM_TOKEN=6712573453:AAFbioUuXf0Te73MUCqa0_h09qEQ1iQREas
TELEGRAM_CHANNEL_ID=542073142
HTTP_ADDRESS_USER=0.0.0.0:8080
HTTP_ADDRESS_ADMIN=0.0.0.0:8081
MONGO_HOST=localhost
MONGO_PORT=27020
MONGO_USER=test
MONGO_PASSWORD=test
MONGO_AUTH=admin
MONGO_DATABASE_NAME=admin
S3_ENDPOINT=localhost:9005
S3_ACCESS_KEY_ID=admin
TELEGRAM_TOKEN=6712573453:AAFqTOsgwe_j48ZQ1GzWKQDT5Nwr-SAWjz8
TELEGRAM_CHANNEL_ID=-1002177203276
CLIENT_HTTP_URL=0.0.0.0:8080
ADMIN_HTTP_URL=0.0.0.0:8081
MONGO_URL=mongodb://test:test@localhost:27020/
MONGO_DB_NAME=admin
S3_ACCESS_KEY=admin
S3_SECRET_KEY=admin123
CUSTOMER_SVC_ADDRESS=localhost:9003
STAGING_URL=https://sadmin.pena
VERIFICATION_MICROSERVICE_URL=https://sadmin.pena
S3_FOLDER=videodata
S3_FILE_URL=http://localhost:9005/videodata
CUSTOMER_RPC_HOST=localhost:9003
CUSTOMER_MICROSERVICE_RPC_URL=localhost:9003
TRASH_LOG_HOST=localhost:7113
MODULE_LOGGER=verify-local
S3_ENDPOINT=localhost:9000