Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 9 additions & 8 deletions .github/workflows/builder.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,12 @@ jobs:
run: go build -v ./...
- name: Build Servers
run: |
go build -v -ldflags "-s -w" ./servers/bullion/main-server/main.go
go build -v -ldflags "-s -w" ./servers/jwelly/mysql-to-surreal/main.go
go build -v -ldflags "-s -w" ./servers/jwelly/main-server/main.go
go build -v -ldflags "-s -w" ./servers/jwelly/mysql-backup/main.go
go build -v -ldflags "-s -w" ./servers/jwelly/mysql-to-mysql/main.go
go build -v -ldflags "-s -w" ./servers/link-shortner/main.go
go build -v -ldflags "-s -w" ./servers/whatsapp-server/main.go
go build -v -ldflags "-s -w" ./servers/http-dump/dump-server/main.go
go build -ldflags "-s -w" -v ./servers/bullion/main-server/main.go
go build -ldflags "-s -w" -v ./servers/jwelly/mysql-to-surreal/main.go
go build -ldflags "-s -w" -v ./servers/jwelly/main-server/main.go
go build -ldflags "-s -w" -v ./servers/jwelly/mysql-backup/main.go
go build -ldflags "-s -w" -v ./servers/jwelly/mysql-to-mysql/main.go
go build -ldflags "-s -w" -v ./servers/link-shortner/main.go
go build -ldflags "-s -w" -v ./servers/whatsapp-server/main.go
go build -ldflags "-s -w" -v ./servers/telegram-server/main.go
go build -ldflags "-s -w" -v ./servers/http-dump/dump-server/main.go
26 changes: 25 additions & 1 deletion .vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,14 @@
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Run Telegram Server",
"type": "go",
"request": "launch",
"mode": "auto",
"args": ["--dev"],
"program": "${workspaceFolder}/servers/telegram-server/main.go"
},
{
"name": "Run Bullion Server",
"type": "go",
Expand All @@ -18,7 +26,15 @@
"request": "launch",
"mode": "auto",
"args": ["--dev"],
"program": "${workspaceFolder}/servers/http-dump-server/main.go"
"program": "${workspaceFolder}/servers/http-dump/dump-server/main.go"
},
{
"name": "Run Message Dump Server",
"type": "go",
"request": "launch",
"mode": "auto",
"args": ["--dev"],
"program": "${workspaceFolder}/servers/http-dump/message-dump/main.go"
},
{
"name": "Run Whatsapp Server",
Expand Down Expand Up @@ -67,6 +83,14 @@
"mode": "auto",
"args": ["--dev"],
"program": "${workspaceFolder}/servers/jwelly/mysql-to-mysql/main.go"
},
{
"name": "Run TEST",
"type": "go",
"request": "launch",
"mode": "auto",
"args": ["--dev"],
"program": "${workspaceFolder}/test.go"
}
]
}
15 changes: 8 additions & 7 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,9 @@ require (
github.com/fxamacker/cbor/v2 v2.9.0
github.com/gen2brain/go-fitz v1.24.15
github.com/go-faker/faker/v4 v4.7.0
github.com/go-playground/validator/v10 v10.29.0
github.com/go-playground/validator/v10 v10.30.1
github.com/go-sql-driver/mysql v1.9.3
github.com/go-telegram-bot-api/telegram-bot-api/v5 v5.5.1
github.com/gofiber/fiber/v2 v2.52.10
github.com/golang-jwt/jwt/v5 v5.3.0
github.com/google/uuid v1.6.0
Expand All @@ -26,7 +27,7 @@ require (
go.mau.fi/whatsmeow v0.0.0-20251217143725-11cf47c62d32
go.mongodb.org/mongo-driver v1.17.6
golang.org/x/crypto v0.46.0
google.golang.org/api v0.257.0
google.golang.org/api v0.258.0
google.golang.org/protobuf v1.36.11
)

Expand Down Expand Up @@ -102,7 +103,7 @@ require (
go.opentelemetry.io/otel/sdk v1.39.0 // indirect
go.opentelemetry.io/otel/sdk/metric v1.39.0 // indirect
go.opentelemetry.io/otel/trace v1.39.0 // indirect
golang.org/x/exp v0.0.0-20251209150349-8475f28825e9 // indirect
golang.org/x/exp v0.0.0-20251219203646-944ab1f22d93 // indirect
golang.org/x/image v0.34.0 // indirect
golang.org/x/net v0.48.0 // indirect
golang.org/x/oauth2 v0.34.0 // indirect
Expand All @@ -112,9 +113,9 @@ require (
golang.org/x/text v0.32.0 // indirect
golang.org/x/time v0.14.0 // indirect
google.golang.org/appengine/v2 v2.0.6 // indirect
google.golang.org/genproto v0.0.0-20251213004720-97cd9d5aeac2 // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20251213004720-97cd9d5aeac2 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20251213004720-97cd9d5aeac2 // indirect
google.golang.org/grpc v1.77.0 // indirect
google.golang.org/genproto v0.0.0-20251222181119-0a764e51fe1b // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20251222181119-0a764e51fe1b // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20251222181119-0a764e51fe1b // indirect
google.golang.org/grpc v1.78.0 // indirect
rsc.io/qr v0.2.0 // indirect
)
30 changes: 16 additions & 14 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -102,10 +102,12 @@ github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/o
github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY=
github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY=
github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY=
github.com/go-playground/validator/v10 v10.29.0 h1:lQlF5VNJWNlRbRZNeOIkWElR+1LL/OuHcc0Kp14w1xk=
github.com/go-playground/validator/v10 v10.29.0/go.mod h1:D6QxqeMlgIPuT02L66f2ccrZ7AGgHkzKmmTMZhk/Kc4=
github.com/go-playground/validator/v10 v10.30.1 h1:f3zDSN/zOma+w6+1Wswgd9fLkdwy06ntQJp0BBvFG0w=
github.com/go-playground/validator/v10 v10.30.1/go.mod h1:oSuBIQzuJxL//3MelwSLD5hc2Tu889bF0Idm9Dg26cM=
github.com/go-sql-driver/mysql v1.9.3 h1:U/N249h2WzJ3Ukj8SowVFjdtZKfu9vlLZxjPXV1aweo=
github.com/go-sql-driver/mysql v1.9.3/go.mod h1:qn46aNg1333BRMNU69Lq93t8du/dwxI64Gl8i5p1WMU=
github.com/go-telegram-bot-api/telegram-bot-api/v5 v5.5.1 h1:wG8n/XJQ07TmjbITcGiUaOtXxdrINDz1b0J1w0SzqDc=
github.com/go-telegram-bot-api/telegram-bot-api/v5 v5.5.1/go.mod h1:A2S0CWkNylc2phvKXWBBdD3K0iGnDBGbzRpISP2zBl8=
github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
github.com/gofiber/fiber/v2 v2.52.10 h1:jRHROi2BuNti6NYXmZ6gbNSfT3zj/8c0xy94GOU5elY=
github.com/gofiber/fiber/v2 v2.52.10/go.mod h1:YEcBbO/FB+5M1IZNBP9FO3J9281zgPAreiI1oqg8nDw=
Expand Down Expand Up @@ -242,8 +244,8 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.46.0 h1:cKRW/pmt1pKAfetfu+RCEvjvZkA9RimPbh7bhFjGVBU=
golang.org/x/crypto v0.46.0/go.mod h1:Evb/oLKmMraqjZ2iQTwDwvCtJkczlDuTmdJXoZVzqU0=
golang.org/x/exp v0.0.0-20251209150349-8475f28825e9 h1:MDfG8Cvcqlt9XXrmEiD4epKn7VJHZO84hejP9Jmp0MM=
golang.org/x/exp v0.0.0-20251209150349-8475f28825e9/go.mod h1:EPRbTFwzwjXj9NpYyyrvenVh9Y+GFeEvMNh7Xuz7xgU=
golang.org/x/exp v0.0.0-20251219203646-944ab1f22d93 h1:fQsdNF2N+/YewlRZiricy4P1iimyPKZ/xwniHj8Q2a0=
golang.org/x/exp v0.0.0-20251219203646-944ab1f22d93/go.mod h1:EPRbTFwzwjXj9NpYyyrvenVh9Y+GFeEvMNh7Xuz7xgU=
golang.org/x/image v0.0.0-20220302094943-723b81ca9867/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM=
golang.org/x/image v0.34.0 h1:33gCkyw9hmwbZJeZkct8XyR11yH889EQt/QH4VmXMn8=
golang.org/x/image v0.34.0/go.mod h1:2RNFBZRB+vnwwFil8GkMdRvrJOFd1AzdZI6vOY+eJVU=
Expand Down Expand Up @@ -289,18 +291,18 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk=
gonum.org/v1/gonum v0.16.0/go.mod h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E=
google.golang.org/api v0.257.0 h1:8Y0lzvHlZps53PEaw+G29SsQIkuKrumGWs9puiexNAA=
google.golang.org/api v0.257.0/go.mod h1:4eJrr+vbVaZSqs7vovFd1Jb/A6ml6iw2e6FBYf3GAO4=
google.golang.org/api v0.258.0 h1:IKo1j5FBlN74fe5isA2PVozN3Y5pwNKriEgAXPOkDAc=
google.golang.org/api v0.258.0/go.mod h1:qhOMTQEZ6lUps63ZNq9jhODswwjkjYYguA7fA3TBFww=
google.golang.org/appengine/v2 v2.0.6 h1:LvPZLGuchSBslPBp+LAhihBeGSiRh1myRoYK4NtuBIw=
google.golang.org/appengine/v2 v2.0.6/go.mod h1:WoEXGoXNfa0mLvaH5sV3ZSGXwVmy8yf7Z1JKf3J3wLI=
google.golang.org/genproto v0.0.0-20251213004720-97cd9d5aeac2 h1:stRtB2UVzFOWnorVuwF0BVVEjQ3AN6SjHWdg811UIQM=
google.golang.org/genproto v0.0.0-20251213004720-97cd9d5aeac2/go.mod h1:yJ2HH4EHEDTd3JiLmhds6NkJ17ITVYOdV3m3VKOnws0=
google.golang.org/genproto/googleapis/api v0.0.0-20251213004720-97cd9d5aeac2 h1:7LRqPCEdE4TP4/9psdaB7F2nhZFfBiGJomA5sojLWdU=
google.golang.org/genproto/googleapis/api v0.0.0-20251213004720-97cd9d5aeac2/go.mod h1:+rXWjjaukWZun3mLfjmVnQi18E1AsFbDN9QdJ5YXLto=
google.golang.org/genproto/googleapis/rpc v0.0.0-20251213004720-97cd9d5aeac2 h1:2I6GHUeJ/4shcDpoUlLs/2WPnhg7yJwvXtqcMJt9liA=
google.golang.org/genproto/googleapis/rpc v0.0.0-20251213004720-97cd9d5aeac2/go.mod h1:7i2o+ce6H/6BluujYR+kqX3GKH+dChPTQU19wjRPiGk=
google.golang.org/grpc v1.77.0 h1:wVVY6/8cGA6vvffn+wWK5ToddbgdU3d8MNENr4evgXM=
google.golang.org/grpc v1.77.0/go.mod h1:z0BY1iVj0q8E1uSQCjL9cppRj+gnZjzDnzV0dHhrNig=
google.golang.org/genproto v0.0.0-20251222181119-0a764e51fe1b h1:kqShdsddZrS6q+DGBCA73CzHsKDu5vW4qw78tFnbVvY=
google.golang.org/genproto v0.0.0-20251222181119-0a764e51fe1b/go.mod h1:gw1DtiPCt5uh/HV9STVEeaO00S5ATsJiJ2LsZV8lcDI=
google.golang.org/genproto/googleapis/api v0.0.0-20251222181119-0a764e51fe1b h1:uA40e2M6fYRBf0+8uN5mLlqUtV192iiksiICIBkYJ1E=
google.golang.org/genproto/googleapis/api v0.0.0-20251222181119-0a764e51fe1b/go.mod h1:Xa7le7qx2vmqB/SzWUBa7KdMjpdpAHlh5QCSnjessQk=
google.golang.org/genproto/googleapis/rpc v0.0.0-20251222181119-0a764e51fe1b h1:Mv8VFug0MP9e5vUxfBcE3vUkV6CImK3cMNMIDFjmzxU=
google.golang.org/genproto/googleapis/rpc v0.0.0-20251222181119-0a764e51fe1b/go.mod h1:j9x/tPzZkyxcgEFkiKEEGxfvyumM01BEtsW8xzOahRQ=
google.golang.org/grpc v1.78.0 h1:K1XZG/yGDJnzMdd/uZHAkVqJE+xIDOcmdSFZkBUicNc=
google.golang.org/grpc v1.78.0/go.mod h1:I47qjTo4OKbMkjA/aOOwxDIiPSBofUtQUI5EfpWvW7U=
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE=
Expand Down
Binary file removed http-dump
Binary file not shown.
2 changes: 2 additions & 0 deletions linux.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
GOOS=linux GOARCH=amd64 go build -v -o http-dump -ldflags="-s -w" ./servers/http-dump/dump-server/main.go
GOOS=linux GOARCH=amd64 go build -v -o message-dump -ldflags="-s -w" ./servers/http-dump/message-dump/main.go
26 changes: 26 additions & 0 deletions servers/http-dump/message-dump/env/index.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package messagedump_env

import "github.com/rpsoftech/golang-servers/env"

type dumpEnv struct {
DefaultEnv *env.DefaultEnvInterface
REDIS_DEFAULT_KEY string `json:"REDIS_DEFAULT_KEY" validate:"required,min=3"`
REDIS_DEFAULT_CHANNEL string `json:"REDIS_DEFAULT_CHANNEL" validate:"required,min=3"`
ServerId string `json:"SERVER_ID" validate:"required,min=3"`
}

var Env *dumpEnv

func init() {
env.LoadEnv("message-dump.env")
println("Dump Server Env Initialized")
Env = &dumpEnv{
DefaultEnv: env.Env,
REDIS_DEFAULT_KEY: env.Env.GetEnv("REDIS_DEFAULT_KEY"),
REDIS_DEFAULT_CHANNEL: env.Env.GetEnv("REDIS_DEFAULT_CHANNEL"),
ServerId: env.Env.GetEnv("SERVER_ID"),
// ACCESS_TOKEN_KEY: env.Env.GetEnv("ACCESS_TOKEN_KEY"),
// REFRESH_TOKEN_KEY: env.Env.GetEnv("REFRESH_TOKEN_KEY"),
}
env.ValidateEnv(Env)
}
10 changes: 10 additions & 0 deletions servers/http-dump/message-dump/env/redis.key-env.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package messagedump_env

import "fmt"

func GetRedisKey(key string) string {
return fmt.Sprintf("%s%s", Env.REDIS_DEFAULT_KEY, key)
}
func GetRedisEventKey(key string) string {
return fmt.Sprintf("%s%s", Env.REDIS_DEFAULT_CHANNEL, key)
}
29 changes: 29 additions & 0 deletions servers/http-dump/message-dump/interfaces/config.interfaces.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package messagedump_interfaces

import "github.com/rpsoftech/golang-servers/interfaces"

// type DumpConfig struct{}

type MessageDumpServerConfig struct {
*interfaces.BaseEntity `bson:",inline"`
Name string `bson:"name" json:"name" validate:"required,min=3,max=100"`
MessageDumpConfigs []MessageDumpConfig `bson:"messageDumpConfigs" json:"messageDumpConfigs" validate:"required,dive"`
}

type MessageDumpConfig struct {
// *interfaces.BaseEntity `bson:",inline"`
SourceChannel string `bson:"sourceChannel" json:"sourceChannel" validate:"required,oneof=whatsapp"`
WhatsappConfig *WhatsappSideConfig `bson:"whatsappConfig" json:"whatsappConfig" validate:"required,dive"`
TelegramConfig *TelegramSideConfig `bson:"telegramConfig" json:"telegramConfig" validate:"required,dive"`
}

type WhatsappSideConfig struct {
WhatsappServerToken string `bson:"whatsappServerToken" json:"whatsappServerToken" validate:"required"`
WhatsappServerUrl string `bson:"whatsappServerUrl" json:"whatsappServerUrl" validate:"required,url"`
SendNumbers []string `bson:"sendNumbers" json:"sendNumbers" validate:"required"`
SendWhatsappId []string `bson:"sendWhatsappId" json:"sendWhatsappId" validate:"required"`
}
type TelegramSideConfig struct {
TelegramBotToken string `bson:"telegramBotToken" json:"telegramBotToken" validate:"required"`
UserChatId []int64 `bson:"userChatId" json:"userChatId" validate:"required"`
}
71 changes: 71 additions & 0 deletions servers/http-dump/message-dump/main.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
package main

import (
"fmt"
"sync"

_ "github.com/rpsoftech/golang-servers/servers/http-dump/message-dump/env"
messagedump_env "github.com/rpsoftech/golang-servers/servers/http-dump/message-dump/env"
messagedump_interfaces "github.com/rpsoftech/golang-servers/servers/http-dump/message-dump/interfaces"
messagedump_repo "github.com/rpsoftech/golang-servers/servers/http-dump/message-dump/repo"
messagedump_telegram "github.com/rpsoftech/golang-servers/servers/http-dump/message-dump/telegram"
messagedump_whatsapp "github.com/rpsoftech/golang-servers/servers/http-dump/message-dump/whatsapp"
"github.com/rpsoftech/golang-servers/utility/mongodb"
"github.com/rpsoftech/golang-servers/utility/redis"
)

func deferMainFunc() {
println("Closing...")
redis.DeferFunction()
mongodb.DeferFunction()
}
func main() {
defer deferMainFunc()
println("Message Dump Server Started")
println("Getting Details From MONGO")
repo := messagedump_repo.InitAndReturnMessageDumpConfigRepo()
res, err := repo.FindOne(messagedump_env.Env.ServerId)
if err != nil {
panic(err)
}
var wg sync.WaitGroup // Declare a WaitGroup
// red:
println("Config Name:", res.Name)
println("Number of Message Dump Configs:", len(res.MessageDumpConfigs))
for _, config := range res.MessageDumpConfigs {
// println("Config Name:", config.)
wg.Add(1)
go func(config *messagedump_interfaces.MessageDumpConfig) {
pubSub := redis.InitRedisAndRedisClient().SubscribeToChannels(messagedump_env.GetRedisEventKey(fmt.Sprintf("d/%s", config.SourceChannel)))
var teleBot *messagedump_telegram.TelegramBotInstance
var whatsappBot *messagedump_whatsapp.WhatsappBotInstance
var err error
if config.TelegramConfig.TelegramBotToken != "" {
println("Telegram Bot Token Found:")
teleBot, err = messagedump_telegram.CreateTelegramBotInstance(config.TelegramConfig.TelegramBotToken)
if err != nil {
panic(err)
}
}
if config.WhatsappConfig.WhatsappServerUrl != "" && config.WhatsappConfig.WhatsappServerToken != "" {
println("WhatsApp Server URL:", config.WhatsappConfig.WhatsappServerUrl)
whatsappBot = messagedump_whatsapp.CreateWhatsappBotInstance(config.WhatsappConfig.WhatsappServerUrl, config.WhatsappConfig.WhatsappServerToken)
}
ch := pubSub.Channel()
for msg := range ch {
if teleBot != nil && teleBot.Bot != nil {
for _, chatId := range config.TelegramConfig.UserChatId {
teleBot.Bot.SendMessage(chatId, msg.Payload)
}
}
if whatsappBot != nil {
whatsappBot.SendTextMessage(config.WhatsappConfig.SendNumbers, msg.Payload)
}
fmt.Printf("Message from channel %s: %s\n", msg.Channel, msg.Payload)
}
wg.Done()
}(&config)
}
wg.Wait() // Wait for all goroutines to finish
fmt.Println("All workers have completed their tasks. Main function exiting.")
}
61 changes: 61 additions & 0 deletions servers/http-dump/message-dump/repo/config.repo.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
package messagedump_repo

import (
"errors"
"fmt"
"net/http"

"github.com/rpsoftech/golang-servers/interfaces"
messagedump_interfaces "github.com/rpsoftech/golang-servers/servers/http-dump/message-dump/interfaces"
"github.com/rpsoftech/golang-servers/utility/mongodb"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/mongo"
)

type MessageDumpConfigRepoStruct struct {
collection *mongo.Collection
}

const messageDumpConfigCollectionName = "MessageDumpConfigs"

var messageDumpConfigRepo *MessageDumpConfigRepoStruct

func InitAndReturnMessageDumpConfigRepo() *MessageDumpConfigRepoStruct {
if messageDumpConfigRepo != nil {
return messageDumpConfigRepo
}
coll := mongodb.MongoDatabase.Collection(messageDumpConfigCollectionName)
messageDumpConfigRepo = &MessageDumpConfigRepoStruct{
collection: coll,
}
mongodb.AddUniqueIndexesToCollection([]string{"id"}, messageDumpConfigRepo.collection)
return messageDumpConfigRepo
}

func (repo *MessageDumpConfigRepoStruct) FindOne(id string) (*messagedump_interfaces.MessageDumpServerConfig, error) {
result := new(messagedump_interfaces.MessageDumpServerConfig)

err := repo.collection.FindOne(mongodb.MongoCtx, bson.D{{
Key: "id", Value: id,
}}).Decode(result)

if err != nil {
if errors.Is(err, mongo.ErrNoDocuments) {
// This error means your query did not match any documents.
err = &interfaces.RequestError{
StatusCode: http.StatusBadRequest,
Code: interfaces.ERROR_ENTITY_NOT_FOUND,
Message: fmt.Sprintf("Product Entity identified by id %s not found", id),
Name: "ENTITY_NOT_FOUND",
}
} else {
err = &interfaces.RequestError{
StatusCode: 500,
Code: interfaces.ERROR_INTERNAL_SERVER,
Message: fmt.Sprintf("Internal Server Error: %s", err.Error()),
Name: "INTERNAL_ERROR",
}
}
}
return result, err
}
Loading