Skip to content

Commit 5e1bebe

Browse files
committed
feat: enhance event handling
1 parent 754cb27 commit 5e1bebe

File tree

51 files changed

+233
-182
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+233
-182
lines changed
Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,22 @@
11
package email
22

3-
type EmailProvider struct {
4-
}
3+
import (
4+
"github.com/dcssoftware/xdomea-golang-sdk/xdomea-v3.0.0/data-provider/interface/identifier"
5+
"github.com/dcssoftware/xdomea-golang-sdk/xdomea-v3.0.0/models"
6+
)
7+
8+
type EmailProvider struct{}
59

610
func NewEmailProvider() *EmailProvider {
711
return &EmailProvider{}
812
}
13+
14+
// GetInstanceIdentifier implements dataprovider.ProviderInterface
15+
func (p *EmailProvider) GetInstanceIdentifier() identifier.DataProviderIdentifier {
16+
return identifier.DataProviderTypeEmail
17+
}
18+
19+
// FetchTransportFiles implements dataprovider.ProviderInterface. To be implemented.
20+
func (p *EmailProvider) FetchTransportFiles() ([]models.File, error) {
21+
return []models.File{}, nil
22+
}

xdomea-v3.0.0/data-provider/interface/identifier/identifier.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ package identifier
33
type DataProviderIdentifier string
44

55
const (
6-
DataProviderTypeEmail DataProviderIdentifier = "MS_SHAREPOINT"
7-
DataProviderTypeMsSharePoint DataProviderIdentifier = "EMAIL"
6+
DataProviderTypeEmail DataProviderIdentifier = "EMAIL"
7+
DataProviderTypeMsSharePoint DataProviderIdentifier = "MS_SHAREPOINT"
88
)
99

1010
func (dataIdentifier DataProviderIdentifier) GetIdentifier() string {
Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,16 @@
11
package dataprovider
22

33
import (
4-
"github.com/dcssoftware/xdomea-golang-sdk/xdomea-v3.0.0/data-provider/email"
54
"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"
5+
"github.com/dcssoftware/xdomea-golang-sdk/xdomea-v3.0.0/models"
76
)
87

9-
type AuthenticatedProviderType interface {
10-
email.EmailProvider | mssharepoint.MsSharePointProvider
11-
}
12-
13-
type ProviderInterface[AuthenticatedInstance AuthenticatedProviderType] interface {
8+
// ProviderInterface is the common interface all data providers must implement.
9+
// It intentionally avoids generics so different provider kinds can be registered
10+
// on the same XdomeaInstance.
11+
type ProviderInterface interface {
12+
// GetInstanceIdentifier returns a stable identifier for the provider kind.
1413
GetInstanceIdentifier() identifier.DataProviderIdentifier
15-
GetAuthenticatedInstance() AuthenticatedInstance
16-
FetchTransportFiles() ([][]byte, error)
14+
// FetchTransportFiles returns transport-layer files to be processed.
15+
FetchTransportFiles() ([]models.File, error)
1716
}

xdomea-v3.0.0/data-provider/ms-sharepoint/provider.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package mssharepoint
22

33
import (
4+
"github.com/dcssoftware/xdomea-golang-sdk/xdomea-v3.0.0/data-provider/interface/identifier"
5+
"github.com/dcssoftware/xdomea-golang-sdk/xdomea-v3.0.0/models"
46
"github.com/koltyakov/gosip"
57
"github.com/koltyakov/gosip/api"
68
strategy "github.com/koltyakov/gosip/auth/addin"
@@ -59,3 +61,13 @@ func newMsSharePointProvider(
5961
SharePoint: sharePointInstance,
6062
}
6163
}
64+
65+
// GetInstanceIdentifier implements dataprovider.ProviderInterface
66+
func (p *MsSharePointProvider) GetInstanceIdentifier() identifier.DataProviderIdentifier {
67+
return identifier.DataProviderTypeMsSharePoint
68+
}
69+
70+
// FetchTransportFiles implements dataprovider.ProviderInterface. To be implemented.
71+
func (p *MsSharePointProvider) FetchTransportFiles() ([]models.File, error) {
72+
return []models.File{}, nil
73+
}
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package xdomeav300
2+
3+
import (
4+
"encoding/xml"
5+
6+
"github.com/dcssoftware/xdomea-golang-sdk/xdomea-v3.0.0/models"
7+
xdomeamodels "github.com/dcssoftware/xdomea-golang-sdk/xdomea-v3.0.0/xdomea-models"
8+
)
9+
10+
// Code 0401
11+
func (xInstance *XdomeaInstance) abgabeEmpfangen(transportFile models.File, documents []models.File) error {
12+
13+
var incomingData xdomeamodels.AbgabeAbgabe0401
14+
15+
unmarshalErr := xml.Unmarshal(transportFile.Content, &incomingData)
16+
if unmarshalErr != nil {
17+
return unmarshalErr
18+
}
19+
20+
empfangsbestätigungSenden := false
21+
if empfangsbestätigungSenden {
22+
23+
empfangBestätigungÜbergebenErr := xInstance.abgabeEmpfangsbestätigungÜbergeben()
24+
if empfangBestätigungÜbergebenErr != nil {
25+
return empfangBestätigungÜbergebenErr
26+
}
27+
28+
}
29+
30+
// abgabe übernehmen
31+
customHandlerErr := xInstance.eventHandlerAbgabeEmpfangen(incomingData, documents)
32+
if customHandlerErr != nil {
33+
return customHandlerErr
34+
}
35+
36+
// importbestätigung übergeben
37+
abgabebestätigungErr := xInstance.abgabeImportbestätigungÜbergeben()
38+
if abgabebestätigungErr != nil {
39+
return abgabebestätigungErr
40+
}
41+
42+
return nil
43+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package xdomeav300
2+
3+
// Code 0403
4+
func (xInstance *XdomeaInstance) abgabeEmpfangsbestätigungÜbergeben() error {
5+
// send incomingData models.AbgabeEmpfangBestaetigen0403
6+
return nil
7+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package xdomeav300
2+
3+
import (
4+
xdomeaconsts "github.com/dcssoftware/xdomea-golang-sdk/xdomea-v3.0.0/const"
5+
)
6+
7+
func (xInstance *XdomeaInstance) abgabeImportbestätigungÜbergeben() error {
8+
_ = xdomeaconsts.MessageType_Abgabe_ImportBestaetigen
9+
10+
// send models.AbgabeImportBestaetigen0402
11+
12+
return nil
13+
}

xdomea-v3.0.0/event_listener.go

Lines changed: 0 additions & 25 deletions
This file was deleted.

xdomea-v3.0.0/event_listener_register_abgabe.go

Lines changed: 0 additions & 31 deletions
This file was deleted.

xdomea-v3.0.0/event_listener_register_aktenplan.go

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
 (0)