Skip to content

Commit 754cb27

Browse files
committed
chore: add current implementation
1 parent 2a2468f commit 754cb27

34 files changed

+2232
-109
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
.DS_Store
22
./xdomea-v3.0.0/definition
3+
xdomea-v3.0.0/definition

LICENSE.md

Lines changed: 382 additions & 0 deletions
Large diffs are not rendered by default.

Readme.md

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1-
# Xdomea Golang Library 🚀
1+
> **Software noch in der Entwicklung**.
2+
> Aktuell fehlen noch Bestandteile um die Software korrekt einzusetzen
3+
4+
# Open Xdomea Golang Library 🚀
25

36
Dies ist eine öffentliche (unoffizielle) Implementierung des Xdomea Standards zur Erfüllung des E-Akten Standards. Ziel ist es, eine kleine Event Engine zu bauen, die man mit eigenen Eventhandlern erweitern und benutzen kann. Ziel ist es, die Entwicklungskosten für zukünftige Projekte beim Staat zu reduzieren durch Wiederverwendbarkeit. 🛠️💡
47

@@ -18,12 +21,21 @@ Auch wenn wir das Projekt komplett OpenSource ist, lebt das Projekt von contribu
1821

1922
Zum aktuellen Zeitpunkt ist dieses Projekt zu 100% Community-Driven, ohne jegliche Finanzierung vom Staat. Sei entsprechend nachsichtig mit uns. 🙏🌍
2023

21-
## Bakers
22-
23-
<div>
24-
<ul>
25-
<li>
26-
<img src="./.git-assets/bakers-logo/dcs-software.png" height="150px" width="150px" style="object-fit: contain;">
27-
</li>
28-
</ul>
29-
</div>
24+
## Bakers 🥧
25+
26+
<table>
27+
<tbody>
28+
<tr>
29+
<td>
30+
<img src="./.git-assets/bakers-logo/dcs-software.png" height="150px" width="150px" style="object-fit: contain;">
31+
</td>
32+
<td>
33+
<h3>DCS-Software UG (haftungsbeschränkt)</h3>
34+
<ul>
35+
<li><a href="">Linkedin</a></li>
36+
<li><a href="https://github.com/dcssoftware">GitHub</a></li>
37+
</ul>
38+
</td>
39+
</tr>
40+
</tbody>
41+
</table>
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package identifier
2+
3+
type DataProviderIdentifier string
4+
5+
const (
6+
DataProviderTypeEmail DataProviderIdentifier = "MS_SHAREPOINT"
7+
DataProviderTypeMsSharePoint DataProviderIdentifier = "EMAIL"
8+
)
9+
10+
func (dataIdentifier DataProviderIdentifier) GetIdentifier() string {
11+
return string(dataIdentifier)
12+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package dataprovider
2+
3+
import (
4+
"github.com/dcssoftware/xdomea-golang-sdk/xdomea-v3.0.0/data-provider/email"
5+
"github.com/dcssoftware/xdomea-golang-sdk/xdomea-v3.0.0/data-provider/interface/identifier"
6+
mssharepoint "github.com/dcssoftware/xdomea-golang-sdk/xdomea-v3.0.0/data-provider/ms-sharepoint"
7+
)
8+
9+
type AuthenticatedProviderType interface {
10+
email.EmailProvider | mssharepoint.MsSharePointProvider
11+
}
12+
13+
type ProviderInterface[AuthenticatedInstance AuthenticatedProviderType] interface {
14+
GetInstanceIdentifier() identifier.DataProviderIdentifier
15+
GetAuthenticatedInstance() AuthenticatedInstance
16+
FetchTransportFiles() ([][]byte, error)
17+
}

xdomea-v3.0.0/event_listener.go

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package xdomeav300
2+
3+
import "github.com/dcssoftware/xdomea-golang-sdk/xdomea-v3.0.0/models"
4+
5+
type XdomeaEvents struct {
6+
AbgabeEvents
7+
AktenplanEvents
8+
}
9+
10+
type AbgabeEvents struct {
11+
AbgabeEmpfangen func(incomingData models.AbgabeAbgabe0401)
12+
AbgabeEmpfangsbestätigungÜbergeben func()
13+
AbgabeEmpfangsbestätigungÜbernehmen func()
14+
AbgabeImportbestätigungÜbergeben func()
15+
AbgabeImportbestätigungÜbernehmen func()
16+
AbgabeÜbergeben func()
17+
AbgabeÜbernehmen func()
18+
}
19+
20+
type AktenplanEvents struct {
21+
AktenplanEmpfangen func()
22+
AktenplanEmpfangsbestätigungÜbergeben func()
23+
AktenplanEmpfangsbestätigungÜbernehmen func()
24+
AktenplanÜbergeben func()
25+
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package xdomeav300
2+
3+
import "github.com/dcssoftware/xdomea-golang-sdk/xdomea-v3.0.0/models"
4+
5+
func (i XdomeaInstance[T]) RegisterAbgabeEvent_AbgabeEmpfangen(eventHandler func(incomingData models.AbgabeAbgabe0401)) {
6+
i.eventListener.AbgabeEmpfangen = eventHandler
7+
}
8+
9+
func (i XdomeaInstance[T]) RegisterAbgabeEvent_AbgabeEmpfangsbestätigungÜbergeben(eventHandler func()) {
10+
i.eventListener.AbgabeEmpfangsbestätigungÜbergeben = eventHandler
11+
}
12+
13+
func (i XdomeaInstance[T]) RegisterAbgabeEvent_AbgabeEmpfangsbestätigungÜbernehmen(eventHandler func()) {
14+
i.eventListener.AbgabeEmpfangsbestätigungÜbernehmen = eventHandler
15+
}
16+
17+
func (i XdomeaInstance[T]) RegisterAbgabeEvent_AbgabeImportbestätigungÜbergeben(eventHandler func()) {
18+
i.eventListener.AbgabeImportbestätigungÜbergeben = eventHandler
19+
}
20+
21+
func (i XdomeaInstance[T]) RegisterAbgabeEvent_AbgabeImportbestätigungÜbernehmen(eventHandler func()) {
22+
i.eventListener.AbgabeImportbestätigungÜbernehmen = eventHandler
23+
}
24+
25+
func (i XdomeaInstance[T]) RegisterAbgabeEvent_AbgabeÜbergeben(eventHandler func()) {
26+
i.eventListener.AbgabeÜbergeben = eventHandler
27+
}
28+
29+
func (i XdomeaInstance[T]) RegisterAbgabeEvent_AbgabeÜbernehmen(eventHandler func()) {
30+
i.eventListener.AbgabeÜbernehmen = eventHandler
31+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
package xdomeav300

xdomea-v3.0.0/events/abgabe_events/abgabe_empfangen.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
package abgabeevents
22

3-
import xdomeaconsts "github.com/dcssoftware/xdomea-golang-sdk/xdomea-v3.0.0/const"
3+
import (
4+
"github.com/dcssoftware/xdomea-golang-sdk/xdomea-v3.0.0/models"
5+
)
46

5-
func AbgabeEmpfangen() {
6-
_ = xdomeaconsts.MessageType_Abgabe_Abgabe
7+
// Code 0401
8+
func AbgabeEmpfangen(incomingData models.AbgabeAbgabe0401) {
79

810
empfangsbestätigungSenden := false
911
if empfangsbestätigungSenden {

xdomea-v3.0.0/instance.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package xdomeav300
2+
3+
import dataprovider "github.com/dcssoftware/xdomea-golang-sdk/xdomea-v3.0.0/data-provider/interface"
4+
5+
// XdomeaInstance holds a slice of data providers of generic type.
6+
type XdomeaInstance[T dataprovider.AuthenticatedProviderType] struct {
7+
dataproviders []dataprovider.ProviderInterface[T]
8+
eventListener XdomeaEvents
9+
}
10+
11+
func NewXdomeaInstance[T dataprovider.AuthenticatedProviderType]() *XdomeaInstance[T] {
12+
return &XdomeaInstance[T]{}
13+
}
14+
15+
// AddDataProvider adds a generic data provider to the instance.
16+
func (x *XdomeaInstance[T]) AddDataProvider(provider dataprovider.ProviderInterface[T]) {
17+
x.dataproviders = append(x.dataproviders, provider)
18+
}

0 commit comments

Comments
 (0)