1
2
3
4
5
6
7 package ch.colabproject.colab.api.persistence.jpa.token;
8
9 import ch.colabproject.colab.api.model.card.Card;
10 import ch.colabproject.colab.api.model.project.InstanceMaker;
11 import ch.colabproject.colab.api.model.project.Project;
12 import ch.colabproject.colab.api.model.team.TeamMember;
13 import ch.colabproject.colab.api.model.token.*;
14 import ch.colabproject.colab.api.model.user.LocalAccount;
15 import org.slf4j.Logger;
16 import org.slf4j.LoggerFactory;
17
18 import jakarta.ejb.LocalBean;
19 import jakarta.ejb.Stateless;
20 import jakarta.persistence.EntityManager;
21 import jakarta.persistence.NoResultException;
22 import jakarta.persistence.PersistenceContext;
23 import java.util.ArrayList;
24 import java.util.List;
25
26
27
28
29
30
31
32
33 @Stateless
34 @LocalBean
35 public class TokenDao {
36
37
38
39
40 private static final Logger logger = LoggerFactory.getLogger(TokenDao.class);
41
42
43
44
45 @PersistenceContext(unitName = "COLAB_PU")
46 private EntityManager em;
47
48
49
50
51
52
53
54 public Token findToken(Long id) {
55 logger.trace("find token #{}", id);
56
57 return em.find(Token.class, id);
58 }
59
60
61
62
63
64
65
66 public VerifyLocalAccountToken findVerifyTokenByAccount(LocalAccount account) {
67 try {
68 return em.createNamedQuery("VerifyLocalAccountToken.findByAccountId",
69 VerifyLocalAccountToken.class)
70
71 .setParameter("id", account.getId())
72
73 .getSingleResult();
74 } catch (NoResultException ex) {
75 return null;
76 }
77 }
78
79
80
81
82
83
84
85 public ResetLocalAccountPasswordToken findResetTokenByAccount(LocalAccount account) {
86 try {
87 return em.createNamedQuery("ResetLocalAccountPasswordToken.findByAccountId",
88 ResetLocalAccountPasswordToken.class)
89
90 .setParameter("id", account.getId())
91
92 .getSingleResult();
93 } catch (NoResultException ex) {
94 return null;
95 }
96 }
97
98
99
100
101
102
103
104
105 public InvitationToken findInvitationByProjectAndRecipient(Project project, String recipient) {
106 try {
107 return em
108 .createNamedQuery("InvitationToken.findByProjectAndRecipient",
109 InvitationToken.class)
110
111 .setParameter("projectId", project.getId())
112 .setParameter("recipient", recipient)
113
114 .getSingleResult();
115 } catch (NoResultException ex) {
116 return null;
117 }
118 }
119
120
121
122
123
124
125
126 public List<InvitationToken> findInvitationByTeamMember(TeamMember teamMember) {
127 return em.createNamedQuery("InvitationToken.findByTeamMember", InvitationToken.class)
128
129 .setParameter("teamMemberId", teamMember.getId())
130
131 .getResultList();
132 }
133
134
135
136
137
138
139
140
141 public ModelSharingToken findModelSharingByProjectAndRecipient(Project project,
142 String recipient) {
143 try {
144 return em.createNamedQuery("ModelSharingToken.findByProjectAndRecipient",
145 ModelSharingToken.class)
146
147 .setParameter("projectId", project.getId())
148 .setParameter("recipient", recipient)
149
150 .getSingleResult();
151 } catch (NoResultException ex) {
152 return null;
153 }
154 }
155
156
157
158
159
160
161
162 public List<ModelSharingToken> findModelSharingByInstanceMaker(InstanceMaker instanceMaker) {
163 try {
164 return em.createNamedQuery("ModelSharingToken.findByInstanceMaker",
165 ModelSharingToken.class)
166
167 .setParameter("instanceMakerId", instanceMaker.getId())
168 .getResultList();
169 } catch (NoResultException ex) {
170 return null;
171 }
172 }
173
174
175
176
177
178
179
180
181 public List<SharingLinkToken> findSharingLinkByProject(Project project) {
182 try {
183 return em.createNamedQuery("SharingLinkToken.findByProject",
184 SharingLinkToken.class)
185 .setParameter("projectId", project.getId())
186 .getResultList();
187 } catch (NoResultException ex) {
188 return new ArrayList<SharingLinkToken>();
189 }
190 }
191
192
193
194
195
196
197
198
199 public List<SharingLinkToken> findSharingLinkByCard(Card card) {
200 try {
201 return em.createNamedQuery("SharingLinkToken.findByCard", SharingLinkToken.class)
202 .setParameter("cardId", card.getId())
203 .getResultList();
204 } catch (NoResultException ex) {
205 return new ArrayList<SharingLinkToken>();
206 }
207 }
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233 public void persistToken(Token token) {
234 logger.trace("persist token {}", token);
235
236 em.persist(token);
237 }
238
239
240
241
242
243
244 public void deleteToken(Token token) {
245 logger.trace("delete token {}", token);
246
247 em.remove(token);
248 }
249
250 }