Skip to content

Commit 470e845

Browse files
committed
Update Resources to be "user-stamped" (created/modifiedBy)
1 parent 26e5811 commit 470e845

File tree

6 files changed

+24
-13
lines changed

6 files changed

+24
-13
lines changed

dbschema/engagement.esdl

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,8 @@ module default {
7676
insert Engagement::DedicationCeremony {
7777
createdAt := datetime_of_statement(),
7878
modifiedAt := datetime_of_statement(),
79+
createdBy := assert_exists(currentUser),
80+
modifiedBy := assert_exists(currentUser),
7981
engagement := __new__,
8082
project := __new__.project,
8183
projectContext := __new__.projectContext,
@@ -128,6 +130,8 @@ module default {
128130
insert Engagement::CertificationCeremony {
129131
createdAt := datetime_of_statement(),
130132
modifiedAt := datetime_of_statement(),
133+
createdBy := assert_exists(currentUser),
134+
modifiedBy := assert_exists(currentUser),
131135
engagement := __new__,
132136
project := __new__.project,
133137
projectContext := __new__.projectContext,

dbschema/file.esdl

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -25,15 +25,9 @@ module File {
2525
# optional to have tri-state. idk if needed but that's what I implemented in neo4j
2626
public: bool;
2727

28-
required createdBy: default::User {
29-
default := default::currentUser;
30-
};
31-
required modifiedBy: default::User {
32-
default := default::currentUser;
33-
rewrite update using (default::currentUser);
34-
# TODO trigger change up the tree
35-
# TODO trigger re-eval on node delete?
36-
};
28+
# TODO trigger change up the tree
29+
# TODO trigger re-eval on node delete?
30+
# modifiedBy: default::User
3731

3832
# TODO trigger directories evaluate
3933
required size: int64;

dbschema/project.esdl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,8 @@ module default {
106106
insert default::Budget {
107107
createdAt := datetime_of_statement(),
108108
modifiedAt := datetime_of_statement(),
109+
createdBy := assert_exists(currentUser),
110+
modifiedBy := assert_exists(currentUser),
109111
project := __new__,
110112
projectContext := __new__.projectContext,
111113
}

dbschema/prompt-variant-response.esdl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
module Prompt {
2-
abstract type PromptVariantResponse extending Mixin::Embedded, Mixin::Timestamped, Mixin::Owned {
2+
abstract type PromptVariantResponse extending default::Resource, Mixin::Embedded {
33
annotation description := "An instance of a prompt and the responses per variant.";
44

55
promptId: default::nanoid;
66
responses := .<pvr[is VariantResponse];
77
}
88

9-
type VariantResponse extending Mixin::Timestamped, Mixin::Owned {
9+
type VariantResponse extending Mixin::UserStamped, Mixin::Timestamped {
1010
annotation description := "A response (for a variant) to an instance of a prompt.";
1111

1212
required pvr: PromptVariantResponse;

dbschema/resource.esdl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
module default {
2-
abstract type Resource extending Mixin::Timestamped {}
2+
abstract type Resource extending Mixin::UserStamped, Mixin::Timestamped;
33
}

dbschema/z.timestamped.esdl renamed to dbschema/z.stamped.esdl

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,15 @@
11
module Mixin {
2+
abstract type UserStamped {
3+
required createdBy: default::User {
4+
readonly := true;
5+
default := default::currentUser;
6+
};
7+
required modifiedBy: default::User {
8+
default := default::currentUser;
9+
rewrite update using (default::currentUser);
10+
};
11+
}
12+
213
abstract type Timestamped {
314
required createdAt: datetime {
415
default := datetime_of_statement();
@@ -8,5 +19,5 @@ module Mixin {
819
default := datetime_of_statement(); # default here helps editor know it's not required.
920
rewrite update using (datetime_of_statement());
1021
};
11-
};
22+
}
1223
}

0 commit comments

Comments
 (0)