Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Erhan Hayret
BulkMail
Commits
8802f2ff
Commit
8802f2ff
authored
May 25, 2022
by
Erhan
Browse files
Update
parent
65d395a1
Changes
26
Hide whitespace changes
Inline
Side-by-side
src/GoConsumer/main.go
deleted
100644 → 0
View file @
65d395a1
package
main
import
(
//Local Packages
"log"
//This Project Packages
db
"bulkmail/packages/DataAccess/MongoDb"
"bulkmail/packages/Data/Models"
//Git Packages
amqp
"github.com/rabbitmq/amqp091-go"
//"go.mongodb.org/mongo-driver/mongo"
)
func
failOnError
(
err
error
,
msg
string
)
{
if
err
!=
nil
{
log
.
Panicf
(
"%s: %s"
,
msg
,
err
)
}
}
func
main
()
{
//Rabbit Connection
conn
,
err
:=
amqp
.
Dial
(
"amqp://root:root@localhost:5672/"
)
failOnError
(
err
,
"Failed to connect to RabbitMQ"
)
defer
conn
.
Close
()
//Rabbit Channel
ch
,
err
:=
conn
.
Channel
()
failOnError
(
err
,
"Failed to open a channel"
)
defer
ch
.
Close
()
//Rabbit Queue
q
,
err
:=
ch
.
QueueDeclare
(
"BulkMail"
,
// name
false
,
// durable
false
,
// delete when unused
false
,
// exclusive
false
,
// no-wait
nil
,
// arguments
)
failOnError
(
err
,
"Failed to declare a queue"
)
msgs
,
err
:=
ch
.
Consume
(
q
.
Name
,
// queue
""
,
// consumer
true
,
// auto-ack
false
,
// exclusive
false
,
// no-local
false
,
// no-wait
nil
,
// args
)
failOnError
(
err
,
"Failed to register a consumer"
)
var
forever
chan
struct
{}
var
mail
Models
.
Mail
go
func
()
{
for
d
:=
range
msgs
{
log
.
Printf
(
"Received a message: %s"
,
d
.
Body
)
}
}()
//var clnt *mongo.Client
clnt
:=
db
.
GetConnection
()
mongodb
:=
db
.
CreateDatabase
(
*
clnt
)
col
:=
db
.
CreateCollection
(
*
mongodb
)
log
.
Printf
(
" [*] Waiting for messages. To exit press CTRL+C"
)
<-
forever
}
\ No newline at end of file
src/GoServices/Business/SendMailBusiness.go
deleted
100644 → 0
View file @
65d395a1
package
Business
import
(
//Local Packages
"net/http"
"encoding/json"
//ThisProject Packages
models
"bulkmail/packages/Data/Models"
myLog
"bulkmail/packages/Utils/Logger"
rabbit
"bulkmail/packages/Utils/RabbitMQ"
)
func
AddToQueue
(
w
http
.
ResponseWriter
,
r
*
http
.
Request
){
var
mail
models
.
Mail
json
.
NewDecoder
(
r
.
Body
)
.
Decode
(
&
mail
)
body
,
err
:=
json
.
Marshal
(
mail
)
if
err
!=
nil
{
myLog
.
FailOnError
(
err
,
"Failed data can't converting"
)
}
rabbit
.
AddToQueue
(
body
)
}
\ No newline at end of file
src/GoServices/Data/Models/Mail.go
deleted
100644 → 0
View file @
65d395a1
package
Models
type
Mail
struct
{
Id
string
`json:"id"`
MailSubject
string
`json:"mailSubject"`
MailText
string
`json:"mailText"`
SenderEmail
string
`json:"senderEmail"`
SenderEmailPsw
string
`json:"senderEmailPsw`
ArriveEmails
[]
string
`json:"arriveEmails"`
}
\ No newline at end of file
src/GoServices/DataAccess/MongoDb/Connections.go
deleted
100644 → 0
View file @
65d395a1
package
MongoDb
import
(
//Local Packages
"context"
//This Project Packages
myLogger
"bulkmail/packages/Utils/Logger"
//Online Packages
//bson "go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/mongo/options"
)
var
client
*
mongo
.
Client
var
database
*
mongo
.
Database
var
collection
*
mongo
.
Collection
var
ctx
=
context
.
TODO
()
var
err
error
func
GetClient
(
databaseName
string
,
collectionName
string
){
connectionOptions
:=
options
.
Client
()
.
ApplyURI
(
"mongodb://root:root@localhost:27017/"
)
client
,
err
=
mongo
.
Connect
(
ctx
,
connectionOptions
)
if
err
!=
nil
{
myLogger
.
FailOnError
(
err
,
"MONGO CONNECTION FAILED"
)
}
collection
=
client
.
Database
(
databaseName
)
.
Collection
(
collectionName
)
}
func
InsertOne
(
data
string
){
_
,
er
:=
collection
.
InsertOne
(
ctx
,
data
)
if
er
!=
nil
{
myLogger
.
FailOnError
(
err
,
"INSERT ONE FAILED"
)
}
myLogger
.
Print
(
"inserted"
)
//!!
}
\ No newline at end of file
src/GoServices/Presentation/WebAPI/Controllers/SendMailController.go
deleted
100644 → 0
View file @
65d395a1
package
Controllers
import
(
//Local Packages
"net/http"
//This Project Packages
bsns
"bulkmail/packages/Business"
)
func
SendMail
()
{
http
.
HandleFunc
(
"/SendMail"
,
bsns
.
AddToQueue
)
}
src/GoServices/Presentation/WebAPI/Service.go
deleted
100644 → 0
View file @
65d395a1
package
WebAPI
import
(
//Local Packages
"net/http"
"log"
"sync"
//This Project Packages
"bulkmail/packages/Presentation/WebAPI/Controllers"
myLogger
"bulkmail/packages/Utils/Logger"
)
func
WebAPI
(
wg
*
sync
.
WaitGroup
)
{
defer
wg
.
Done
()
Controllers
.
SendMail
()
myLogger
.
Print
(
"Server Started"
)
log
.
Fatal
(
http
.
ListenAndServe
(
":10000"
,
nil
))
}
\ No newline at end of file
Prev
1
2
Next
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment