This repository has been archived by the owner on Nov 9, 2017. It is now read-only.
/
SampleProjectResourceImpl.java
94 lines (83 loc) · 2.82 KB
/
SampleProjectResourceImpl.java
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
package org.zanata.rest;
import java.util.List;
import java.util.Set;
import javax.persistence.EntityManager;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.Response;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Transactional;
import org.jboss.seam.security.RunAsOperation;
import org.zanata.common.LocaleId;
import org.zanata.model.HLocale;
import org.zanata.model.HPerson;
import org.zanata.util.SampleProjectProfile;
/**
* @author Patrick Huang <a
* href="mailto:pahuang@redhat.com">pahuang@redhat.com</a>
*/
@Path("/test/data/sample")
@Name("sampleProjectResourceImpl")
public class SampleProjectResourceImpl implements SampleProjectResource {
@In(create = true)
private SampleProjectProfile sampleProjectProfile;
@In
private EntityManager entityManager;
@Override
public Response makeSampleLanguages() {
new RunAsOperation() {
@Override
public void execute() {
sampleProjectProfile.makeSampleLanguages();
}
}.addRole("admin").run();
return Response.ok().build();
}
@Override
public Response makeSampleUsers() {
new RunAsOperation() {
public void execute() {
sampleProjectProfile.makeSampleUsers();
}
}.addRole("admin").run();
return Response.ok().build();
}
@Override
@Transactional
public Response userJoinsLanguageTeams(
@PathParam("username") String username,
@QueryParam("locales") Set<LocaleId> locales) {
final HPerson hPerson = entityManager
.createQuery("from HPerson p where p.account.username = :username",
HPerson.class).setParameter("username", username).getSingleResult();
final List<HLocale> hLocales = entityManager
.createQuery("from HLocale where localeId in (:locales)",
HLocale.class).setParameter("locales", locales).getResultList();
new RunAsOperation() {
public void execute() {
sampleProjectProfile.addUsersToLanguage(hPerson, hLocales);
}
}.addRole("admin").run();
return Response.ok().build();
}
@Override
public Response makeSampleProject() {
new RunAsOperation() {
public void execute() {
sampleProjectProfile.makeSampleProject();
}
}.addRole("admin").run();
return Response.ok().build();
}
@Override
public Response deleteExceptEssentialData() {
new RunAsOperation() {
public void execute() {
sampleProjectProfile.deleteExceptEssentialData();
}
}.addRole("admin").run();
return Response.ok().build();
}
}