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 javax.ejb.LocalBean;
19 import javax.ejb.Stateless;
20 import javax.persistence.EntityManager;
21 import javax.persistence.NoResultException;
22 import javax.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
234
235
236
237
238
239 public void persistToken(Token token) {
240 logger.trace("persist token {}", token);
241
242 em.persist(token);
243 }
244
245
246
247
248
249
250 public void deleteToken(Token token) {
251 logger.trace("delete token {}", token);
252
253 em.remove(token);
254 }
255
256 }