From 36ff7c539caf894bd91060e4c9b626751fc33e86 Mon Sep 17 00:00:00 2001 From: SourceFellows Date: Fri, 23 Oct 2020 16:15:43 +0200 Subject: [PATCH] Erweiterungen an der Dokumentation --- .gitignore | 1 + README.md | 1 + docker-compose.yml | 1 + registrierung/http/rest/handler.go | 2 +- registrierung/mongodb/repository.go | 11 ++++++++--- registrierung/nats/notifier.go | 4 +++- registrierung/repository.go | 8 ++++++-- registrierung/service.go | 12 ++++++++---- 8 files changed, 29 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index bca83e0..b381ee3 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ mongo-db/* +registrierung/main diff --git a/README.md b/README.md index 1777128..e13df86 100644 --- a/README.md +++ b/README.md @@ -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. diff --git a/docker-compose.yml b/docker-compose.yml index 6d5a388..f815f3d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,6 +5,7 @@ services: build: registrierung ports: - "8443:8443" + - "9900:9900" vorbereitung: image: training-fellow/vorbereitung build: vorbereitung diff --git a/registrierung/http/rest/handler.go b/registrierung/http/rest/handler.go index a24dd5b..cc847e1 100644 --- a/registrierung/http/rest/handler.go +++ b/registrierung/http/rest/handler.go @@ -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) diff --git a/registrierung/mongodb/repository.go b/registrierung/mongodb/repository.go index a5672a3..7a9f861 100644 --- a/registrierung/mongodb/repository.go +++ b/registrierung/mongodb/repository.go @@ -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 := ®istrierung.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(®istrierung) }) 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(). diff --git a/registrierung/nats/notifier.go b/registrierung/nats/notifier.go index 9d8f3ad..e117b38 100644 --- a/registrierung/nats/notifier.go +++ b/registrierung/nats/notifier.go @@ -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 ¬ifier{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) diff --git a/registrierung/repository.go b/registrierung/repository.go index 3fde769..a6febbe 100644 --- a/registrierung/repository.go +++ b/registrierung/repository.go @@ -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) } diff --git a/registrierung/service.go b/registrierung/service.go index 0cbd0c4..2351a2e 100644 --- a/registrierung/service.go +++ b/registrierung/service.go @@ -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() }