Skip to content

Commit 302df82

Browse files
committed
persist invitiation to store
Signed-off-by: Christian Richter <c.richter@opencloud.eu>
1 parent 1848608 commit 302df82

2 files changed

Lines changed: 21 additions & 2 deletions

File tree

services/invitations/pkg/service/v0/errors.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,7 @@ var (
77
ErrBadRequest = errors.New("bad request")
88
ErrMissingEmail = errors.New("missing email address")
99
ErrBackend = errors.New("backend error")
10+
11+
ErrSerialization = errors.New("serialization error")
12+
ErrPersistence = errors.New("persistence error")
1013
)

services/invitations/pkg/service/v0/service.go

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package service
22

33
import (
44
"context"
5+
"encoding/json"
56
"fmt"
67

78
"github.com/opencloud-eu/opencloud/pkg/log"
@@ -57,11 +58,13 @@ func New(opts ...Option) (Service, error) {
5758
options.Config.Keycloak.InsecureSkipVerify,
5859
)
5960

60-
return svc{
61+
s := svc{
6162
log: options.Logger,
6263
config: options.Config,
6364
backend: backend,
64-
}, nil
65+
}
66+
s.persistance.Init()
67+
return s, nil
6568
}
6669

6770
type svc struct {
@@ -96,6 +99,19 @@ func (s svc) Invite(ctx context.Context, invitation *invitations.Invitation) (*i
9699
}
97100
}
98101

102+
// serialize invitation
103+
invitationBytes, err := json.Marshal(invitation)
104+
if err != nil {
105+
return nil, fmt.Errorf("%w: %s", ErrSerialization, err)
106+
}
107+
108+
// persist invitation
109+
err = s.persistance.Write(&store.Record{Key: invitation.InvitedUserEmailAddress, Value: invitationBytes})
110+
111+
if err != nil {
112+
return nil, fmt.Errorf("%w: %s", ErrPersistence, err)
113+
}
114+
99115
return invitation, nil
100116
}
101117

0 commit comments

Comments
 (0)