Erweiterungen an der Dokumentation

This commit is contained in:
SourceFellows 2020-10-23 16:15:43 +02:00
parent d810dc50b4
commit 36ff7c539c
8 changed files with 29 additions and 11 deletions

1
.gitignore vendored
View File

@ -1 +1,2 @@
mongo-db/*
registrierung/main

View File

@ -41,3 +41,4 @@ Testen kann man die Anwendung entweder über den [Browser](https://localhost:844
Erreichbar ist die Anwendung über https://localhost:8443/registrierung.
Möchten Sie in die MongoDB schauen was gespeichert wurde, erreichen Sie diese unter http://localhost:8081.
Die Prometheus-Metriken können unter http://localhost:9090/metrics abgerufen werden.

View File

@ -5,6 +5,7 @@ services:
build: registrierung
ports:
- "8443:8443"
- "9900:9900"
vorbereitung:
image: training-fellow/vorbereitung
build: vorbereitung

View File

@ -62,7 +62,7 @@ func NewRegistrationHandler(ser *registrierung.RegistrierungsService) gin.Handle
func NewUnconfirmedListHandler(ser *registrierung.RegistrierungsService) gin.HandlerFunc {
return func(c *gin.Context) {
registrations, err := ser.GetUnconfirmedRegistrierung()
registrations, err := ser.GetUnconfirmedRegistrierungen()
if err != nil {
log.Errorf("Could not find unconfirmed registrations: %v", err)
c.Writer.WriteHeader(http.StatusInternalServerError)

View File

@ -12,6 +12,7 @@ import (
"training-fellow.de/registrierung"
)
//NewRepo erzeugt ein neues RegistrierungsRepository für MongoDB
func NewRepo(url, database, collection string) registrierung.RegistrierungsRepository {
return &mongoDBRepositoy{url, collection, database}
}
@ -24,6 +25,7 @@ type mongoDBRepositoy struct {
type mongoCall func(*mongo.Collection) error
//SaveRegistrierung speichert die übergebene Registrierung
func (m *mongoDBRepositoy) SaveRegistrierung(registrierung *registrierung.Registrierung) error {
fmt.Println("Save")
@ -38,7 +40,8 @@ func (m *mongoDBRepositoy) SaveRegistrierung(registrierung *registrierung.Regist
}
func (m *mongoDBRepositoy) GetUnconfirmedRegistrierung() ([]*registrierung.Registrierung, error) {
//GetUnconfirmedRegistrierungen lieferte eine Liste aller bestätigter Registrierungen
func (m *mongoDBRepositoy) GetUnconfirmedRegistrierungen() ([]*registrierung.Registrierung, error) {
ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
defer cancel()
@ -60,19 +63,21 @@ func (m *mongoDBRepositoy) GetUnconfirmedRegistrierung() ([]*registrierung.Regis
return registrations, err
}
func (m *mongoDBRepositoy) ConfirmedRegistrierung(registrierungsId string) (*registrierung.Registrierung, error) {
//ConfirmedRegistrierung bestätigt eine Registrierung
func (m *mongoDBRepositoy) ConfirmedRegistrierung(registrierungsID string) (*registrierung.Registrierung, error) {
ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
defer cancel()
registrierung := &registrierung.Registrierung{}
err := m.executeInClient(ctx, func(collection *mongo.Collection) error {
result := collection.FindOneAndUpdate(ctx,
bson.M{"_id": registrierungsId},
bson.M{"_id": registrierungsID},
bson.M{"$set": bson.M{"confirmed": true}})
return result.Decode(&registrierung)
})
return registrierung, err
}
//Template Funktion zum Ausführen von MongoDB Aufrufen
func (m *mongoDBRepositoy) executeInClient(ctx context.Context, callback mongoCall) error {
client, err := mongo.NewClient(
options.Client().

View File

@ -7,7 +7,8 @@ import (
"training-fellow.de/registrierung"
)
func NewNotifier(url string) *notifier {
//NewNotifier erzeugt eine neue Instanz eines RegistrierungsNotifier für die Kommunikation mit NATS
func NewNotifier(url string) registrierung.RegistrierungsNotifier {
return &notifier{url}
}
@ -15,6 +16,7 @@ type notifier struct {
url string
}
//InformAboutNewRegistrierung informiert über eine neue Registrierung
func (nn *notifier) InformAboutNewRegistrierung(registrierung *registrierung.Registrierung) error {
notifierLogger := log.WithField("Registrierung", registrierung)

View File

@ -1,7 +1,11 @@
package registrierung
//RegistrierungsRepository verwaltet alle Registrierungen
type RegistrierungsRepository interface {
//SaveRegistrierung speichert eine Registrierung
SaveRegistrierung(*Registrierung) error
GetUnconfirmedRegistrierung() ([]*Registrierung, error)
ConfirmedRegistrierung(registrierungId string) (*Registrierung, error)
//GetUnconfirmedRegistrierung liefert alle unbestätigten Registrierungen
GetUnconfirmedRegistrierungen() ([]*Registrierung, error)
//ConfirmedRegistrierung bestätigt eine Registrierung
ConfirmedRegistrierung(registrierungID string) (*Registrierung, error)
}

View File

@ -1,16 +1,19 @@
package registrierung
//RegistrierungsService stellt die Businessfunktionalität für Registrierungen bereit
type RegistrierungsService struct {
Repository RegistrierungsRepository
Notifier RegistrierungsNotifier
}
//HandleNewRegistrierung behandelte neue Registrierungen
func (rs *RegistrierungsService) HandleNewRegistrierung(reg *Registrierung) error {
return rs.Repository.SaveRegistrierung(reg)
}
func (rs *RegistrierungsService) ConfirmRegistration(regId string) error {
registrierung, err := rs.Repository.ConfirmedRegistrierung(regId)
//ConfirmRegistration bestätigt eine Registrierung
func (rs *RegistrierungsService) ConfirmRegistration(regID string) error {
registrierung, err := rs.Repository.ConfirmedRegistrierung(regID)
if err != nil {
return err
}
@ -18,6 +21,7 @@ func (rs *RegistrierungsService) ConfirmRegistration(regId string) error {
return rs.Notifier.InformAboutNewRegistrierung(registrierung)
}
func (rs *RegistrierungsService) GetUnconfirmedRegistrierung() ([]*Registrierung, error) {
return rs.Repository.GetUnconfirmedRegistrierung()
//GetUnconfirmedRegistrierungen liefert alle noch nicht bestätigten Registrierungen
func (rs *RegistrierungsService) GetUnconfirmedRegistrierungen() ([]*Registrierung, error) {
return rs.Repository.GetUnconfirmedRegistrierungen()
}