Addming a logEvent function to our listener ms
This commit is contained in:
parent
db380018eb
commit
fc8e500c5b
@ -1,9 +1,12 @@
|
|||||||
package event
|
package event
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"bytes"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"log"
|
"log"
|
||||||
|
"net/http"
|
||||||
|
|
||||||
amqp "github.com/rabbitmq/amqp091-go"
|
amqp "github.com/rabbitmq/amqp091-go"
|
||||||
)
|
)
|
||||||
@ -95,5 +98,79 @@ func handlePayload(payload Payload) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func logEvent(entry Payload) error {
|
func logEvent(entry Payload) error {
|
||||||
|
log.Println(entry)
|
||||||
|
loggerService := Microservice{
|
||||||
|
Input: entry,
|
||||||
|
Addr: "http://logger-service/log",
|
||||||
|
ErrCode: statusError{
|
||||||
|
ExpectedCode: http.StatusAccepted,
|
||||||
|
ErrCode: http.StatusInternalServerError,
|
||||||
|
Err: errors.New("internal error"),
|
||||||
|
},
|
||||||
|
SuccessMsg: "Logged!",
|
||||||
|
}
|
||||||
|
return callService(loggerService)
|
||||||
|
}
|
||||||
|
|
||||||
|
// func (app *Config) SendMail(w http.ResponseWriter, entry MailPayload) {
|
||||||
|
// log.Println(entry)
|
||||||
|
// mailService := Microservice{
|
||||||
|
// Input: entry,
|
||||||
|
// Addr: "http://mail-service/send-mail",
|
||||||
|
// ErrCode: statusError{
|
||||||
|
// ExpectedCode: http.StatusAccepted,
|
||||||
|
// ErrCode: http.StatusInternalServerError,
|
||||||
|
// Err: errors.New("internal error"),
|
||||||
|
// },
|
||||||
|
// SuccessMsg: "Mail sent!",
|
||||||
|
// }
|
||||||
|
// app.callService(w, mailService)
|
||||||
|
// }
|
||||||
|
|
||||||
|
type statusError struct {
|
||||||
|
ExpectedCode int
|
||||||
|
ErrCode int
|
||||||
|
Err error
|
||||||
|
}
|
||||||
|
|
||||||
|
type Microservice struct {
|
||||||
|
Input any
|
||||||
|
Addr string
|
||||||
|
ErrCode statusError
|
||||||
|
SuccessMsg string
|
||||||
|
}
|
||||||
|
|
||||||
|
func callService(ms Microservice) error {
|
||||||
|
// create some json we'll send to the microservice
|
||||||
|
inputPayload, err := json.MarshalIndent(ms.Input, "", "\t")
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
log.Println(ms.Input)
|
||||||
|
|
||||||
|
// call the service
|
||||||
|
req, err := http.NewRequest(
|
||||||
|
"POST",
|
||||||
|
ms.Addr,
|
||||||
|
bytes.NewBuffer(inputPayload),
|
||||||
|
)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
req.Header.Add("Content-Type", "application/json")
|
||||||
|
client := &http.Client{}
|
||||||
|
resp, err := client.Do(req)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
defer resp.Body.Close()
|
||||||
|
|
||||||
|
log.Println(resp.Body)
|
||||||
|
|
||||||
|
// make sure we get back the correct status code
|
||||||
|
if resp.StatusCode != ms.ErrCode.ExpectedCode {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user