Documentation
¶
Index ¶
- Constants
- Variables
- type AddCO2Faktor
- type AddStandardVersorger
- type AddStandardZaehlerdaten
- type AddVersorger
- type AddZaehlerdaten
- type AddZaehlerdatenCSV
- type AlleGebaeudeRes
- type AlleGebaeudeUndZaehlerRes
- type AlleMitarbeiterUmfragenForUmfrage
- type AllePendelwege
- type AlleUmfragen
- type AuswertungRes
- type CO2Dienstreisen
- type CO2Energie
- type CO2FaktorVetrag
- type CO2Flugklassenwerte
- type DeleteNutzerdatenReq
- type Dienstreisen
- type DuplicateUmfrageReq
- type Energieversorgung
- type Error
- type Gebaeude
- type GebaeudeFlaeche
- type GebaeudeNrUndZaehlerRef
- type ITGeraete
- type InsertGebaeude
- type InsertMitarbeiterUmfrage
- type InsertUmfrage
- type InsertZaehler
- type MitarbeiterUmfrage
- type Nutzerdaten
- type Pendelweg
- type PruefeRolleRes
- type RequestLinkShare
- type Response
- type Umfrage
- type UmfrageDienstreise
- type UmfrageExistsRes
- type UmfrageGebaeude
- type UmfrageID
- type UmfrageIDRequest
- type UmfrageITGeraete
- type UmfragePendelweg
- type UmfrageShareRes
- type UmfrageSharedResultsRes
- type UmfrageYearRes
- type UpdateUmfrage
- type Versoger
- type Zaehler
- type ZaehlerUndZaehlerdaten
- type ZaehlerUndZaehlerdatenVorhanden
- type ZaehlerwertVorhanden
- type Zaehlerwerte
Constants ¶
View Source
const ( KaeltezaehlerCol = "kaeltezaehler" StromzaehlerCol = "stromzaehler" WaermezaehlerCol = "waermezaehler" DienstreisenCol = "dienstreisen" EnergieversorgungCol = "energieversorgung" ITGeraeteCol = "itGeraete" PendelwegCol = "pendelweg" GebaeudeCol = "gebaeude" UmfrageCol = "umfrage" MitarbeiterUmfrageCol = "mitarbeiterUmfrage" NutzerdatenCol = "nutzerdaten" )
View Source
const ( IDEnergieversorgungWaerme int32 = 1 IDEnergieversorgungStrom int32 = 2 IDEnergieversorgungKaelte int32 = 3 )
View Source
const ( IDRolleNutzer int32 = 0 IDRolleAdmin int32 = 1 )
View Source
const ( IDEmailNichtBestaetigt int32 = 0 IDEmailBestaetigt int32 = 1 )
View Source
const ( IDDienstreiseBahn int32 = 1 IDDienstreiseAuto int32 = 2 IDDienstreiseFlugzeug int32 = 3 )
View Source
const ( EinheitkWh = "kWh" EinheitMWh = "MWh" Einheitqm = "m^2" EinheitgkWh = "g/kWh" EinheitgPkm = "g/Pkm" EinheitgStueck = "g/Stueck" )
View Source
const ( ZaehlertypWaerme = "Waerme" ZaehlertypKaelte = "Kaelte" ZaehlertypStrom = "Strom" )
View Source
const ( ResponseSuccess = "success" ResponseError = "error" )
View Source
const ( Verbrauch2PersonenHaushalt = 23200000.0 Verbrauch4PersonenHaushalt = 46400000.0 )
View Source
const ( IDVertragTU int32 = 1 IDVertragExtern int32 = 2 )
View Source
const DumpPath = "/autoDump/" // Pfad fuer die automatischen Dumps
View Source
const (
ErstesJahr int32 = 2020
)
View Source
const TimeoutDuration time.Duration = 5 * time.Second // Timeout Zeit fuer Datenbank-Kontext
Variables ¶
View Source
var ( // Fehler durch Nutzereingabe ErrZaehlerVorhanden = errors.New("Es ist schon ein Zaehler mit dem DPName vorhanden") // Fehler durch Nutzereingabe ErrFehlendeGebaeuderef = errors.New("Neuer Zaehler hat keine Referenzen auf Gebaeude") // Fehler durch Nutzereingabe ErrJahrVorhanden = errors.New("Ein Wert ist fuer das angegebene Jahr schon vorhanden") // Fehler durch Nutzereingabe ErrJahrUndMonatVorhanden = errors.New("Ein Wert fuer den angegebene Monat im Jahr ist schon vorhanden") // Fehler durch Nutzereingabe ErrGebaeudeVorhanden = errors.New("Ein Gebaeude mit der angegeben Nummer existiert schon in der Datenbank") // Fehler durch Nutzereingabe ErrGebaeudeNichtVorhanden = errors.New("Ein Gebaeude mit der angegeben Nummer konnte nicht gefunden werden") // Fehler durch Nutzereingabe ErrIDEnergieversorgungNichtVorhanden = errors.New("Die angegebene IDEnergieversorgung ist nicht vorhanden") // Fehler bei Erstellung der ObjectID ErrObjectIDNichtKonvertierbar = errors.New("ObjectID Konvertierung fehlerhaft") // Fehler beim loeschen des Eintrags wo ObjectID nicht gefunden wurde ErrObjectIDNichtGefunden = errors.New("ObjectID nicht gefunden") // Fehler beim loeschen eines Nutzers wo Username nicht gefunden wurde ErrUsernameLoeschenFehlgeschlagen = errors.New("Username konnte nicht geloescht werden") // Fehler beim loeschen des Eintrags wo ObjectID nicht gefunden wurde ErrUmfrageVollstaendig = errors.New("Umfrage ist bereits von allen Mitarbeitenden ausgefüllt.") )
View Source
var ( // Fehler beim Abrufen von mehreren Dokumenten ErrDokumenteNichtGefunden = errors.New("Es konnten nicht alle angefragten Dokumente gefunden werden!") // Fehler beim Finden einer Umfrage zu MitarbeiterUmfragen ErrMitarbeiterUmfrageMehrfachAssoziiert = errors.New("Die gegebene MitarbeiterUmfrage ist in mehreren Umfragen referenziert.") )
View Source
var ( // Fehler durch Nutzereingabe ErrJahrNichtVorhanden = errors.New("getEnergieCO2Faktor: Kein CO2 Faktor für angegebenes Jahr vorhanden") // Fehler durch Nutzereingabe ErrFlaecheNegativ = errors.New("gebaeudeNormalfall: Nutzflaeche ist negativ") // Fehler durch fehlende Behandlung eines Gebaeudespezialfalls im Code ErrGebaeudeSpezialfall = errors.New("BerechneEnergieverbrauch: Spezialfall fuer Gebaeude nicht abgedeckt") // Fehler durch fehlende Behandlung eines Zaehlerspezialfalls im Code ErrZaehlerSpezialfall = errors.New("gebaeudeNormalfall: Spezialfall fuer Zaehler nicht abgedeckt") // Fehler durch falsche Daten in Datenbank ErrStrGebaeuderefFehlt = "%s: Zaehler %s hat keine Referenzen auf Gebaeude" // Fehler durch fehlende Werte in Datenbank ErrStrVerbrauchFehlt = "%s: Kein Verbrauch für das Jahr %d, Zaehler: %s" // Fehler durch nicht behandelte Einheit oder Fehler in der Datenbank ErrStrEinheitUnbekannt = "%s: Einheit %s unbekannt" // Fehler durch Nutzereingabe ErrPersonenzahlZuKlein = errors.New("BerechnePendelweg: Personenzahl ist kleiner als 1") // Fehler durch Nutzereingabe (oder Wert fehlt in Datenbank) ErrTankartUnbekannt = errors.New("BerechneDienstreisen: Tankart nicht vorhanden") // Fehler durch Nutzereingabe (oder Wert fehlt in Datenbank) ErrStreckentypUnbekannt = errors.New("BerechneDienstreisen: Streckentyp nicht vorhanden") // Fehler durch Nutzereingabe ErrStreckeNegativ = errors.New("BerechneDienstreise / BerechnePendelweg: Strecke ist negativ") // Fehler durch Nutzereingabe ErrAnzahlNegativ = errors.New("BerechneITGeraete: Anzahl an IT-Geraeten ist negativ") // Fehler durch fehlende Implementierung einer Berechnung ErrBerechnungUnbekannt = errors.New("BerechneDienstreisen: Keine Berechnung fuer angegeben ID vorhanden") // Fehler durch fehlende Angabe des Versorgers für Jahr ErrStrKeinVersorger = "gebaeudeNormalfall: Gebaeude %d hat keinen Versorger für Jahr %d eingetragen" // Fehler durch fehlenden Energiefaktor für bestimmtes Jahr und Energieform ErrStrKeinFaktorFuerVertrag = "Für Jahr %d ist kein Faktor für Energie %d und Vertrag %d" // Fehler ErrVertragNichtVorhanden = errors.New("Angegeben ID fuer den Vertrag ist nicht vorhanden") )
View Source
var ( // Nutzer will Account mit bestehender Username registrieren ErrInsertExistingAccount = errors.New("Account mit diesem Nutzernamen existiert bereits") // Nutzer nicht berechtigt oder kein Admin ErrNutzerHatKeineBerechtigung = errors.New("Der Nutzer hat nicht die passende Berechtigung") )
Functions ¶
This section is empty.
Types ¶
type AddCO2Faktor ¶
type AddCO2Faktor struct { IDEnergieversorgung int32 `json:"idEnergieversorgung"` IDVertrag int32 `json:"idVertrag"` Jahr int32 `json:"jahr"` Wert int32 `json:"wert"` }
Structs für Request JSONs zum Hinzufuegen und Aendern von Daten der Datenbank
type AddStandardVersorger ¶
type AddStandardVersorger struct {
Jahr int32 `json:"jahr"`
}
type AddStandardZaehlerdaten ¶
type AddVersorger ¶
type AddZaehlerdaten ¶
type AddZaehlerdatenCSV ¶
type AlleGebaeudeRes ¶
type AlleGebaeudeRes struct {
Gebaeude []int32 `json:"gebaeude"`
}
Struct zum Abfragen aller Gebaeude
type AlleGebaeudeUndZaehlerRes ¶
type AlleGebaeudeUndZaehlerRes struct { Gebaeude []GebaeudeNrUndZaehlerRef `json:"gebaeude"` Zaehler []ZaehlerUndZaehlerdatenVorhanden `json:"zaehler"` }
Struct zum Abfragen aller Gebaeude und eingetragenen Zählern
type AlleMitarbeiterUmfragenForUmfrage ¶
type AlleMitarbeiterUmfragenForUmfrage struct {
MitarbeiterUmfragen []MitarbeiterUmfrage `json:"mitarbeiterUmfragen"`
}
type AllePendelwege ¶
type AllePendelwege struct { Pendelwege []UmfragePendelweg TageImBuero int32 }
Hilfs-Struct für die Auswertung der Umfrage
type AlleUmfragen ¶
type AlleUmfragen struct {
Umfragen []Umfrage `json:"umfragen"`
}
type AuswertungRes ¶
type AuswertungRes struct { // Information von Umfrage ID primitive.ObjectID `json:"id"` Bezeichnung string `json:"bezeichnung"` Mitarbeiteranzahl int32 `json:"mitarbeiteranzahl"` Jahr int32 `json:"jahr"` Umfragenanzahl int32 `json:"umfragenanzahl"` Umfragenanteil float64 `json:"umfragenanteil"` AuswertungFreigegeben int32 `json:"auswertungFreigegeben"` // Berechnete Werte fuer Auswertung EmissionenWaerme float64 `json:"emissionenWaerme"` EmissionenStrom float64 `json:"emissionenStrom"` EmissionenKaelte float64 `json:"emissionenKaelte"` EmissionenEnergie float64 `json:"emissionenEnergie"` EmissionenITGeraeteHauptverantwortlicher float64 `json:"emissionenITGeraeteHauptverantwortlicher"` EmissionenITGeraeteMitarbeiter float64 `json:"emissionenITGeraeteMitarbeiter"` EmissionenITGeraete float64 `json:"emissionenITGeraete"` EmissionenDienstreisen float64 `json:"emissionenDienstreisen"` EmissionenPendelwege float64 `json:"emissionenPendelwege"` EmissionenGesamt float64 `json:"emissionenGesamt"` EmissionenProMitarbeiter float64 `json:"emissionenProMitarbeiter"` EmissionenDienstreisenAufgeteilt map[string]float64 `json:"emissionenDienstreisenAufgeteilt"` EmissionenPendelwegeAufgeteilt map[int32]float64 `json:"emissionenPendelwegeAufgeteilt"` EmissionenITGeraeteAufgeteilt map[int32]float64 `json:"emissionenITGeraeteAufgeteilt"` // Berechneter Gesamtverbrauch VerbrauchWearme float64 `json:"verbrauchWaerme"` VerbrauchStrom float64 `json:"verbrauchStrom"` VerbrauchKaelte float64 `json:"verbrauchKaelte"` VerbrauchEnergie float64 `json:"verbrauchEnergie"` Vergleich2PersonenHaushalt float64 `json:"vergleich2PersonenHaushalt"` Vergleich4PersonenHaushalt float64 `json:"vergleich4PersonenHaushalt"` // Für Datenlücken-Visualisierung GebaeudeIDsUndZaehler []GebaeudeNrUndZaehlerRef `json:"gebaeudeIDsUndZaehler"` Zaehler []ZaehlerUndZaehlerdatenVorhanden `json:"zaehler"` UmfrageGebaeude []UmfrageGebaeude `json:"umfrageGebaeude"` }
type CO2Dienstreisen ¶
type CO2Dienstreisen struct { Tankart string `json:"tankart" bson:"tankart"` Streckentyp string `json:"streckentyp" bson:"streckentyp"` Wert int32 `json:"wert" bson:"wert"` Werte []CO2Flugklassenwerte `json:"werte" bson:"werte"` }
type CO2Energie ¶
type CO2Energie struct { Jahr int32 `json:"jahr" bson:"jahr"` Vertraege []CO2FaktorVetrag `json:"vertraege" bson:"vertraege"` }
type CO2FaktorVetrag ¶
type CO2Flugklassenwerte ¶
type DeleteNutzerdatenReq ¶
type DeleteNutzerdatenReq struct {
Username string `json:"username"`
}
type Dienstreisen ¶
type Dienstreisen struct { IDDienstreisen int32 `json:"idDienstreisen" bson:"idDienstreisen"` // (index) Medium string `json:"medium" bson:"medium"` Einheit string `json:"einheit" bson:"einheit"` Revision int32 `json:"revision" bson:"revision"` CO2Faktor []CO2Dienstreisen `json:"CO2Faktor" bson:"CO2Faktor"` }
Collection dienstreisen
type DuplicateUmfrageReq ¶
type Energieversorgung ¶
type Energieversorgung struct { IDEnergieversorgung int32 `json:"idEnergieversorgung" bson:"idEnergieversorgung"` // (index) Kategorie string `json:"kategorie" bson:"kategorie"` Einheit string `json:"einheit" bson:"einheit"` Revision int32 `json:"revision" bson:"revision"` CO2Faktor []CO2Energie `json:"CO2Faktor" bson:"CO2Faktor"` }
Collection energieversorgung
type Gebaeude ¶
type Gebaeude struct { GebaeudeID primitive.ObjectID `json:"_id" bson:"_id"` Nr int32 `json:"nr" bson:"nr"` // (index) Bezeichnung string `json:"bezeichnung" bson:"bezeichnung"` Flaeche GebaeudeFlaeche `json:"flaeche" bson:"flaeche"` Einheit string `json:"einheit" bson:"einheit"` Spezialfall int32 `json:"spezialfall" bson:"spezialfall"` Revision int32 `json:"revision" bson:"revision"` Stromversorger []Versoger `json:"stromversorger" bson:"stromversorger"` Waermeversorger []Versoger `json:"waermeversorger" bson:"waermeversorger"` Kaelteversorger []Versoger `json:"kaelteversorger" bson:"kaelteversorger"` KaelteRef []primitive.ObjectID `json:"kaelteRef" bson:"kaelteRef"` // -> Kaeltezaehler._id WaermeRef []primitive.ObjectID `json:"waermeRef" bson:"waermeRef"` // -> Waermezaehler._id StromRef []primitive.ObjectID `json:"stromRef" bson:"stromRef"` // -> Stromzaehler._id }
collection gebaeude
type GebaeudeFlaeche ¶
type GebaeudeFlaeche struct { HNF float64 `json:"hnf" bson:"hnf"` // Hauptnutzungsfläche NNF float64 `json:"nnf" bson:"nnf"` // Nebennutzungsfläche NGF float64 `json:"ngf" bson:"ngf"` // Nettogrundfläche (HNF+NNF+VF) FF float64 `json:"ff" bson:"ff"` // Funktionsfläche VF float64 `json:"vf" bson:"vf"` // Verkehrsfläche FreiF float64 `json:"freif" bson:"freif"` // Freifläche GesamtF float64 `json:"gesamtf" bson:"gesamtf"` // Gesamtfläche }
type GebaeudeNrUndZaehlerRef ¶
type ITGeraete ¶
type ITGeraete struct { IDITGerate int32 `json:"idITGeraete" bson:"idITGeraete"` // (index) Kategorie string `json:"kategorie" bson:"kategorie"` CO2FaktorGesamt int32 `json:"CO2FaktorGesamt" bson:"CO2FaktorGesamt"` CO2FaktorJahr int32 `json:"CO2FaktorJahr" bson:"CO2FaktorJahr"` Einheit string `json:"einheit" bson:"einheit"` Revision int32 `json:"revision" bson:"revision"` }
Collection itGeraete
type InsertGebaeude ¶
type InsertGebaeude struct { Nr int32 `json:"nr"` Bezeichnung string `json:"bezeichnung"` Flaeche GebaeudeFlaeche `json:"flaeche"` WaermeVersorgerJahre []int32 `json:"waerme_versorger_jahre"` KaelteVersorgerJahre []int32 `json:"kaelte_versorger_jahre"` StromVersorgerJahre []int32 `json:"strom_versorger_jahre"` }
type InsertMitarbeiterUmfrage ¶
type InsertMitarbeiterUmfrage struct { Pendelweg []UmfragePendelweg `json:"pendelweg"` TageImBuero int32 `json:"tageImBuero"` Dienstreise []UmfrageDienstreise `json:"dienstreisen"` ITGeraete []UmfrageITGeraete `json:"itGeraete"` IDUmfrage primitive.ObjectID `json:"idUmfrage"` }
type InsertUmfrage ¶
type InsertUmfrage struct { Bezeichnung string `json:"bezeichnung"` Mitarbeiteranzahl int32 `json:"mitarbeiteranzahl"` Jahr int32 `json:"jahr"` Gebaeude []UmfrageGebaeude `json:"gebaeude"` ITGeraete []UmfrageITGeraete `json:"itGeraete"` }
type InsertZaehler ¶
type MitarbeiterUmfrage ¶
type MitarbeiterUmfrage struct { ID primitive.ObjectID `json:"_id" bson:"_id"` Pendelweg []UmfragePendelweg `json:"pendelweg" bson:"pendelweg"` TageImBuero int32 `json:"tageImBuero" bson:"tageImBuero"` Dienstreise []UmfrageDienstreise `json:"dienstreise" bson:"dienstreise"` ITGeraete []UmfrageITGeraete `json:"itGereate" bson:"itGeraete"` Revision int32 `json:"revision" bson:"revision"` }
Collection mitarbeiterUmfrage
type Nutzerdaten ¶
type Nutzerdaten struct { NutzerID primitive.ObjectID `json:"_id" bson:"_id"` Nutzername string `json:"nutzername" bson:"nutzername"` EMail string `json:"email" bson:"email"` Rolle int32 `json:"rolle" bson:"rolle"` Revision int32 `json:"revision" bson:"revision"` UmfrageRef []primitive.ObjectID `json:"umfrageRef" bson:"umfrageRef"` }
Collection nutzerdaten
type Pendelweg ¶
type Pendelweg struct { IDPendelweg int32 `json:"idPendelweg" bson:"idPendelweg"` // (index) Medium string `json:"medium" bson:"medium"` CO2Faktor int32 `json:"CO2Faktor" bson:"CO2Faktor"` Einheit string `json:"einheit" bson:"einheit"` Revision int32 `json:"revision" bson:"revision"` }
Collection pendelweg
type PruefeRolleRes ¶
type PruefeRolleRes struct {
Rolle int32 `json:"rolle"`
}
type RequestLinkShare ¶
type RequestLinkShare struct {}
type Response ¶
type Response struct { Status string `json:"status"` Data interface{} `json:"data"` // Typisch nil, wenn Error oder nichts zu reporten Error interface{} `json:"error"` // Typisch nil, wenn kein Error }
Responses basieren auf generischen Response Format, in dem die spezifischen Inhalte gekapselt sind
type Umfrage ¶
type Umfrage struct { ID primitive.ObjectID `json:"_id" bson:"_id"` Bezeichnung string `json:"bezeichnung" bson:"bezeichnung"` Mitarbeiteranzahl int32 `json:"mitarbeiteranzahl" bson:"mitarbeiteranzahl"` Jahr int32 `json:"jahr" bson:"jahr"` Gebaeude []UmfrageGebaeude `json:"gebaeude" bson:"gebaeude"` ITGeraete []UmfrageITGeraete `json:"itGeraete" bson:"itGeraete"` AuswertungFreigegeben int32 `json:"auswertungFreigegeben" bson:"auswertungFreigegeben"` Revision int32 `json:"revision" bson:"revision"` MitarbeiterumfrageRef []primitive.ObjectID `json:"mitarbeiterUmfrageRef" bson:"mitarbeiterUmfrageRef"` }
Collection umfrage
type UmfrageDienstreise ¶
type UmfrageDienstreise struct { IDDienstreise int32 `json:"idDienstreise" bson:"idDienstreise"` // -> IDDienstreisen in Dienstreisen Streckentyp string `json:"streckentyp" bson:"streckentyp"` Strecke int32 `json:"strecke" bson:"strecke"` Tankart string `json:"tankart" bson:"tankart"` Klasse string `json:"klasse" bson:"klasse"` }
type UmfrageExistsRes ¶
type UmfrageGebaeude ¶
type UmfrageID ¶
type UmfrageID struct { UmfrageID string `json:"umfrageID"` Bezeichnung string `json:"bezeichnung"` }
Struct zum Abfragen ob Umfrage existiert
type UmfrageIDRequest ¶
type UmfrageITGeraete ¶
type UmfragePendelweg ¶
type UmfrageShareRes ¶
type UmfrageShareRes struct {}
type UmfrageSharedResultsRes ¶
type UmfrageSharedResultsRes struct {
}type UmfrageYearRes ¶
type UmfrageYearRes struct {
Jahr int32 `json:"jahr"`
}
type UpdateUmfrage ¶
type UpdateUmfrage struct { UmfrageID primitive.ObjectID `json:"umfrageID"` Bezeichnung string `json:"bezeichnung"` Mitarbeiteranzahl int32 `json:"mitarbeiteranzahl"` Jahr int32 `json:"jahr"` Gebaeude []UmfrageGebaeude `json:"gebaeude"` ITGeraete []UmfrageITGeraete `json:"itGeraete"` }
type Zaehler ¶
type Zaehler struct { ZaehlerID primitive.ObjectID `json:"_id" bson:"_id"` Zaehlertyp string `json:"-" bson:"-"` // Feld wird nur in Go benutzt DPName string `json:"dpName" bson:"dpName"` Bezeichnung string `json:"bezeichnung" bson:"bezeichnung"` Zaehlerdaten []Zaehlerwerte `json:"zaehlerdaten" bson:"zaehlerdaten"` Einheit string `json:"einheit" bson:"einheit"` Spezialfall int32 `json:"spezialfall" bson:"spezialfall"` Revision int32 `json:"revision" bson:"revision"` GebaeudeRef []primitive.ObjectID `json:"gebaeudeRef" bson:"gebaeudeRef"` // -> Gebaeude.nr }
Uebertyp fuer Kaeltezaehler, Waermezaehler und Stromzaehler
type ZaehlerUndZaehlerdaten ¶
type ZaehlerUndZaehlerdaten struct { ZaehlerID primitive.ObjectID `json:"_id" bson:"_id"` Zaehlerdaten []Zaehlerwerte `json:"zaehlerdaten" bson:"zaehlerdaten"` }
Uebertyp fuer Kaeltezaehler, Waermezaehler und Stromzaehler
type ZaehlerUndZaehlerdatenVorhanden ¶
type ZaehlerUndZaehlerdatenVorhanden struct { ZaehlerID primitive.ObjectID `json:"zaehlerID"` ZaehlerdatenVorhanden []ZaehlerwertVorhanden `json:"zaehlerdatenVorhanden"` }
type ZaehlerwertVorhanden ¶
type Zaehlerwerte ¶
Click to show internal directories.
Click to hide internal directories.