forked from mitch000001/go-hbci
/
dialog.go
104 lines (90 loc) · 3.24 KB
/
dialog.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
package message
import "github.com/mitch000001/go-hbci/segment"
// NewDialogInitializationClientMessage creates a basic client message used for DialogInitialization
func NewDialogInitializationClientMessage(hbciVersion segment.HBCIVersion) *DialogInitializationClientMessage {
d := &DialogInitializationClientMessage{
hbciVersion: hbciVersion,
}
d.BasicMessage = NewBasicMessage(d)
return d
}
// DialogInitializationClientMessage represents a client message used to initialize a dialog
type DialogInitializationClientMessage struct {
*BasicMessage
Identification *segment.IdentificationSegment
ProcessingPreparation *segment.ProcessingPreparationSegment
PublicSigningKeyRequest *segment.PublicKeyRequestSegment
PublicEncryptionKeyRequest *segment.PublicKeyRequestSegment
PublicKeyRequest *segment.PublicKeyRequestSegment
hbciVersion segment.HBCIVersion
}
// HBCIVersion returns the version used for this message
func (d *DialogInitializationClientMessage) HBCIVersion() segment.HBCIVersion {
return d.hbciVersion
}
// HBCISegments returns all segment from this message
func (d *DialogInitializationClientMessage) HBCISegments() []segment.ClientSegment {
return []segment.ClientSegment{
d.Identification,
d.ProcessingPreparation,
d.PublicSigningKeyRequest,
d.PublicEncryptionKeyRequest,
d.PublicKeyRequest,
}
}
func (d *DialogInitializationClientMessage) jobs() []segment.Segment {
return []segment.Segment{
d.Identification,
d.ProcessingPreparation,
d.PublicSigningKeyRequest,
d.PublicEncryptionKeyRequest,
}
}
// NewDialogFinishingMessage creates a message used to finish a dialog
func NewDialogFinishingMessage(hbciVersion segment.HBCIVersion, dialogID string) *DialogFinishingMessage {
d := &DialogFinishingMessage{
DialogEnd: segment.NewDialogEndSegment(dialogID),
hbciVersion: hbciVersion,
}
d.BasicMessage = NewBasicMessage(d)
return d
}
// DialogFinishingMessage represents a message used to finish a dialog
type DialogFinishingMessage struct {
*BasicMessage
DialogEnd *segment.DialogEndSegment
hbciVersion segment.HBCIVersion
}
// HBCIVersion returns the version used for this message
func (d *DialogFinishingMessage) HBCIVersion() segment.HBCIVersion {
return d.hbciVersion
}
// HBCISegments returns all segment from this message
func (d *DialogFinishingMessage) HBCISegments() []segment.ClientSegment {
return []segment.ClientSegment{
d.DialogEnd,
}
}
func (d *DialogFinishingMessage) jobs() []segment.ClientSegment {
return []segment.ClientSegment{
d.DialogEnd,
}
}
// NewDialogCancellationMessage creates a message to cancel a dialog
func NewDialogCancellationMessage(messageAcknowledgement *segment.MessageAcknowledgement) *DialogCancellationMessage {
d := &DialogCancellationMessage{
MessageAcknowledgements: messageAcknowledgement,
}
return d
}
// DialogCancellationMessage represents a message used to cancel a dialog
type DialogCancellationMessage struct {
*BasicMessage
MessageAcknowledgements *segment.MessageAcknowledgement
}
// AnonymousDialogMessage represents a message used by anonymous dialogs
type AnonymousDialogMessage struct {
*BasicMessage
Identification *segment.IdentificationSegment
ProcessingPreparation *segment.ProcessingPreparationSegment
}