Skip to content

Commit 37faf92

Browse files
bryanjnelsonCarsonF
authored andcommitted
Add seed data for Project Members
1 parent 722acc5 commit 37faf92

File tree

1 file changed

+47
-0
lines changed

1 file changed

+47
-0
lines changed
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
with
2+
projectMembersJson := to_json('[
3+
{
4+
"project": "Misty Mountains",
5+
"members": ["Bilbo", "Frodo"]
6+
},
7+
{
8+
"project": "Arnor Lake",
9+
"members": ["Bilbo", "Gandalf"]
10+
},
11+
{
12+
"project": "Lothlorien",
13+
"members": ["Bilbo"]
14+
},
15+
{
16+
"project": "Emyn Muil",
17+
"members": ["Bilbo", "Frodo", "Samwise", "Meriadoc", "Peregrin"]
18+
},
19+
{
20+
"project": "South Downs",
21+
"members": ["Bilbo", "Peregrin"]
22+
}
23+
]'),
24+
newMembers := (
25+
for projectMembers in json_array_unpack(projectMembersJson)
26+
union (
27+
for member in json_array_unpack(projectMembers['members'])
28+
union (
29+
with
30+
existingUser := assert_single((select User filter .realFirstName = <str>member)),
31+
existingProject := assert_single((select TranslationProject filter .name = <str>projectMembers['project'])),
32+
select (
33+
(select Project::Member filter .user = existingUser and .project = existingProject) ??
34+
(insert Project::Member {
35+
user := existingUser,
36+
roles := existingUser.roles,
37+
project := existingProject,
38+
projectContext := existingProject.projectContext
39+
})
40+
)
41+
)
42+
)
43+
),
44+
new := (select newMembers filter .createdAt = datetime_of_statement())
45+
select { `Added Project Members: Member -> Project`
46+
:= new.user.realFirstName ++ ' ' ++ new.user.realLastName ++ ' -> ' ++ new.project.name }
47+
filter count(new) > 0;

0 commit comments

Comments
 (0)