@stevenkellner/team-conduct-api 1.0.35 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (218) hide show
  1. package/lib/src/firebase/FirebaseConfiguration.d.ts +45 -1
  2. package/lib/src/firebase/FirebaseConfiguration.js +44 -0
  3. package/lib/src/firebase/Firestore.d.ts +196 -0
  4. package/lib/src/firebase/Firestore.js +235 -0
  5. package/lib/src/{FirestoreScheme.d.ts → firebase/FirestoreScheme.d.ts} +15 -1
  6. package/lib/src/firebase/Messaging.d.ts +64 -0
  7. package/lib/src/firebase/checkAuthentication.d.ts +37 -0
  8. package/lib/src/{checkAuthentication.js → firebase/checkAuthentication.js} +26 -1
  9. package/lib/src/firebase/index.d.ts +4 -0
  10. package/lib/src/firebase/index.js +4 -0
  11. package/lib/src/firebase/pushNotification.d.ts +39 -0
  12. package/lib/src/firebase/pushNotification.js +88 -0
  13. package/lib/src/functions/fine/add.d.ts +10 -13
  14. package/lib/src/functions/fine/add.js +3 -30
  15. package/lib/src/functions/fine/delete.d.ts +10 -13
  16. package/lib/src/functions/fine/delete.js +3 -27
  17. package/lib/src/functions/fine/update.d.ts +10 -13
  18. package/lib/src/functions/fine/update.js +3 -28
  19. package/lib/src/functions/fineTemplate/add.d.ts +6 -9
  20. package/lib/src/functions/fineTemplate/add.js +3 -12
  21. package/lib/src/functions/fineTemplate/delete.d.ts +6 -9
  22. package/lib/src/functions/fineTemplate/delete.js +3 -12
  23. package/lib/src/functions/fineTemplate/update.d.ts +6 -9
  24. package/lib/src/functions/fineTemplate/update.js +3 -12
  25. package/lib/src/functions/invitation/getInvitation.d.ts +41 -42
  26. package/lib/src/functions/invitation/getInvitation.js +58 -81
  27. package/lib/src/functions/invitation/invite.d.ts +1 -2
  28. package/lib/src/functions/invitation/invite.js +3 -18
  29. package/lib/src/functions/invitation/register.d.ts +6 -11
  30. package/lib/src/functions/invitation/register.js +3 -39
  31. package/lib/src/functions/invitation/withdraw.d.ts +1 -2
  32. package/lib/src/functions/invitation/withdraw.js +3 -13
  33. package/lib/src/functions/notification/register.d.ts +7 -10
  34. package/lib/src/functions/notification/register.js +3 -15
  35. package/lib/src/functions/notification/subscribe.d.ts +8 -11
  36. package/lib/src/functions/notification/subscribe.js +3 -14
  37. package/lib/src/functions/paypalMe/edit.d.ts +6 -9
  38. package/lib/src/functions/paypalMe/edit.js +3 -14
  39. package/lib/src/functions/person/add.d.ts +7 -10
  40. package/lib/src/functions/person/add.js +3 -12
  41. package/lib/src/functions/person/delete.d.ts +6 -9
  42. package/lib/src/functions/person/delete.js +3 -14
  43. package/lib/src/functions/person/update.d.ts +7 -10
  44. package/lib/src/functions/person/update.js +3 -13
  45. package/lib/src/functions/team/new.d.ts +9 -12
  46. package/lib/src/functions/team/new.js +3 -22
  47. package/lib/src/functions/user/kickout.d.ts +6 -9
  48. package/lib/src/functions/user/kickout.js +3 -25
  49. package/lib/src/functions/user/login.d.ts +1 -2
  50. package/lib/src/functions/user/login.js +3 -13
  51. package/lib/src/functions/user/roleEdit.d.ts +8 -11
  52. package/lib/src/functions/user/roleEdit.js +3 -18
  53. package/lib/src/index.d.ts +0 -5
  54. package/lib/src/index.js +0 -5
  55. package/lib/src/locales/de.d.ts +10 -67
  56. package/lib/src/locales/de.js +8 -0
  57. package/lib/src/locales/en.d.ts +10 -0
  58. package/lib/src/locales/en.js +19 -2
  59. package/lib/src/types/Configuration.d.ts +33 -15
  60. package/lib/src/types/Configuration.js +24 -12
  61. package/lib/src/types/Currency.d.ts +20 -0
  62. package/lib/src/types/Currency.js +19 -0
  63. package/lib/src/types/Fine.d.ts +41 -0
  64. package/lib/src/types/Fine.js +32 -0
  65. package/lib/src/types/FineAmount.d.ts +160 -9
  66. package/lib/src/types/FineAmount.js +128 -7
  67. package/lib/src/types/FineTemplate.d.ts +41 -0
  68. package/lib/src/types/FineTemplate.js +32 -0
  69. package/lib/src/types/FineTemplateRepetition.d.ts +72 -10
  70. package/lib/src/types/FineTemplateRepetition.js +66 -12
  71. package/lib/src/types/Invitation.d.ts +48 -0
  72. package/lib/src/types/Invitation.js +39 -0
  73. package/lib/src/types/Locale.d.ts +16 -0
  74. package/lib/src/types/Locale.js +16 -0
  75. package/lib/src/types/Localization.d.ts +74 -74
  76. package/lib/src/types/Localization.js +80 -41
  77. package/lib/src/types/MoneyAmount.d.ts +67 -1
  78. package/lib/src/types/MoneyAmount.js +62 -0
  79. package/lib/src/types/NotificationProperties.d.ts +70 -9
  80. package/lib/src/types/NotificationProperties.js +49 -5
  81. package/lib/src/types/PayedState.d.ts +25 -9
  82. package/lib/src/types/PayedState.js +17 -27
  83. package/lib/src/types/Person.d.ts +45 -0
  84. package/lib/src/types/Person.js +36 -0
  85. package/lib/src/types/PersonPrivateProperties.d.ts +28 -0
  86. package/lib/src/types/PersonPrivateProperties.js +25 -0
  87. package/lib/src/types/PersonSignInProperties.d.ts +30 -0
  88. package/lib/src/types/PersonSignInProperties.js +27 -0
  89. package/lib/src/types/Pluralization.d.ts +46 -0
  90. package/lib/src/types/Pluralization.js +46 -0
  91. package/lib/src/types/Team.d.ts +38 -0
  92. package/lib/src/types/Team.js +29 -0
  93. package/lib/src/types/User.d.ts +68 -3
  94. package/lib/src/types/User.js +59 -5
  95. package/lib/src/types/UserRole.d.ts +26 -4
  96. package/lib/src/types/UserRole.js +25 -9
  97. package/lib/src/types/index.d.ts +2 -0
  98. package/lib/src/types/index.js +2 -0
  99. package/lib/test/firebase/FirebaseConfiguration.test.js +155 -0
  100. package/lib/test/firebase/Firestore.test.js +46 -0
  101. package/lib/test/firebase/checkAuthentication.test.d.ts +1 -0
  102. package/lib/test/firebase/checkAuthentication.test.js +305 -0
  103. package/lib/test/firebase/firebase-utils.d.ts +32 -0
  104. package/lib/test/firebase/firebase-utils.js +131 -0
  105. package/lib/test/firebase/pushNotification.test.d.ts +1 -0
  106. package/lib/test/firebase/pushNotification.test.js +300 -0
  107. package/lib/test/locales/localization.de.test.d.ts +1 -0
  108. package/lib/test/locales/localization.de.test.js +144 -0
  109. package/lib/test/locales/localization.en.test.d.ts +1 -0
  110. package/lib/test/locales/localization.en.test.js +144 -0
  111. package/lib/test/types/Configuration.test.d.ts +1 -0
  112. package/lib/test/types/Configuration.test.js +84 -0
  113. package/lib/test/types/Currency.test.d.ts +1 -0
  114. package/lib/test/types/Currency.test.js +41 -0
  115. package/lib/test/types/Fine.test.d.ts +1 -0
  116. package/lib/test/types/Fine.test.js +265 -0
  117. package/lib/test/types/FineAmount.test.d.ts +1 -0
  118. package/lib/test/types/FineAmount.test.js +445 -0
  119. package/lib/test/types/FineTemplate.test.d.ts +1 -0
  120. package/lib/test/types/FineTemplate.test.js +271 -0
  121. package/lib/test/types/FineTemplateRepetition.test.d.ts +1 -0
  122. package/lib/test/types/FineTemplateRepetition.test.js +361 -0
  123. package/lib/test/types/Invitation.test.d.ts +1 -0
  124. package/lib/test/types/Invitation.test.js +269 -0
  125. package/lib/test/types/Locale.test.d.ts +1 -0
  126. package/lib/test/types/Locale.test.js +46 -0
  127. package/lib/test/types/Localization.test.d.ts +1 -0
  128. package/lib/test/types/Localization.test.js +241 -0
  129. package/lib/test/types/MoneyAmount.test.d.ts +1 -0
  130. package/lib/test/types/MoneyAmount.test.js +276 -0
  131. package/lib/test/types/NotificationProperties.test.d.ts +1 -0
  132. package/lib/test/types/NotificationProperties.test.js +258 -0
  133. package/lib/test/types/PayedState.test.d.ts +1 -0
  134. package/lib/test/types/PayedState.test.js +105 -0
  135. package/lib/test/types/Person.test.d.ts +1 -0
  136. package/lib/test/types/Person.test.js +266 -0
  137. package/lib/test/types/PersonPrivateProperties.test.d.ts +1 -0
  138. package/lib/test/types/PersonPrivateProperties.test.js +155 -0
  139. package/lib/test/types/PersonSignInProperties.test.d.ts +1 -0
  140. package/lib/test/types/PersonSignInProperties.test.js +208 -0
  141. package/lib/test/types/Pluralization.test.d.ts +1 -0
  142. package/lib/test/types/Pluralization.test.js +206 -0
  143. package/lib/test/types/Team.test.d.ts +1 -0
  144. package/lib/test/types/Team.test.js +145 -0
  145. package/lib/test/types/User.test.d.ts +1 -0
  146. package/lib/test/types/User.test.js +232 -0
  147. package/lib/test/types/UserRole.test.d.ts +1 -0
  148. package/lib/test/types/UserRole.test.js +140 -0
  149. package/lib/tsconfig.tsbuildinfo +1 -1
  150. package/package.json +10 -9
  151. package/src/firebase/FirebaseConfiguration.ts +49 -1
  152. package/src/firebase/Firestore.ts +248 -0
  153. package/src/{FirestoreScheme.ts → firebase/FirestoreScheme.ts} +15 -1
  154. package/src/firebase/Messaging.ts +64 -0
  155. package/src/{checkAuthentication.ts → firebase/checkAuthentication.ts} +39 -1
  156. package/src/firebase/index.ts +5 -0
  157. package/src/firebase/pushNotification.ts +90 -0
  158. package/src/functions/fine/add.ts +10 -48
  159. package/src/functions/fine/delete.ts +9 -43
  160. package/src/functions/fine/update.ts +10 -44
  161. package/src/functions/fineTemplate/add.ts +7 -23
  162. package/src/functions/fineTemplate/delete.ts +7 -23
  163. package/src/functions/fineTemplate/update.ts +7 -24
  164. package/src/functions/index.ts +0 -1
  165. package/src/functions/invitation/getInvitation.ts +83 -109
  166. package/src/functions/invitation/invite.ts +2 -25
  167. package/src/functions/invitation/register.ts +9 -60
  168. package/src/functions/invitation/withdraw.ts +2 -16
  169. package/src/functions/notification/register.ts +7 -26
  170. package/src/functions/notification/subscribe.ts +8 -26
  171. package/src/functions/paypalMe/edit.ts +7 -25
  172. package/src/functions/person/add.ts +8 -24
  173. package/src/functions/person/delete.ts +6 -25
  174. package/src/functions/person/update.ts +8 -25
  175. package/src/functions/team/new.ts +12 -42
  176. package/src/functions/user/kickout.ts +8 -41
  177. package/src/functions/user/login.ts +2 -16
  178. package/src/functions/user/roleEdit.ts +8 -32
  179. package/src/index.ts +0 -5
  180. package/src/locales/de.ts +10 -1
  181. package/src/locales/en.ts +21 -2
  182. package/src/types/Configuration.ts +33 -23
  183. package/src/types/Currency.ts +24 -0
  184. package/src/types/Fine.ts +41 -0
  185. package/src/types/FineAmount.ts +162 -11
  186. package/src/types/FineTemplate.ts +41 -0
  187. package/src/types/FineTemplateRepetition.ts +75 -17
  188. package/src/types/Invitation.ts +48 -0
  189. package/src/types/Locale.ts +20 -0
  190. package/src/types/Localization.ts +96 -41
  191. package/src/types/MoneyAmount.ts +67 -1
  192. package/src/types/NotificationProperties.ts +67 -9
  193. package/src/types/PayedState.ts +25 -30
  194. package/src/types/Person.ts +45 -0
  195. package/src/types/PersonPrivateProperties.ts +28 -1
  196. package/src/types/PersonSignInProperties.ts +30 -0
  197. package/src/types/Pluralization.ts +46 -0
  198. package/src/types/Team.ts +38 -0
  199. package/src/types/User.ts +70 -4
  200. package/src/types/UserRole.ts +32 -16
  201. package/src/types/index.ts +2 -0
  202. package/lib/src/Firestore.d.ts +0 -24
  203. package/lib/src/Firestore.js +0 -62
  204. package/lib/src/checkAuthentication.d.ts +0 -6
  205. package/lib/src/firebaseFunctionsContext.d.ts +0 -39
  206. package/lib/src/firebaseFunctionsContext.js +0 -43
  207. package/lib/src/pushNotification.d.ts +0 -3
  208. package/lib/src/pushNotification.js +0 -35
  209. package/lib/test/localization-utils.d.ts +0 -1
  210. package/lib/test/localization-utils.js +0 -24
  211. package/lib/test/localization.de.test.js +0 -151
  212. package/lib/test/localization.en.test.js +0 -145
  213. package/src/Firestore.ts +0 -75
  214. package/src/firebaseFunctionsContext.ts +0 -48
  215. package/src/pushNotification.ts +0 -37
  216. /package/lib/src/{FirestoreScheme.js → firebase/FirestoreScheme.js} +0 -0
  217. /package/lib/test/{localization.de.test.d.ts → firebase/FirebaseConfiguration.test.d.ts} +0 -0
  218. /package/lib/test/{localization.en.test.d.ts → firebase/Firestore.test.d.ts} +0 -0
@@ -1,53 +1,52 @@
1
1
  import { FirebaseFunction } from '@stevenkellner/firebase-function';
2
2
  import { Invitation, Person, PersonPrivateProperties, Team } from '../../types';
3
3
  import { Flattable, ITypeBuilder } from '@stevenkellner/typescript-common-functionality';
4
- export declare class InvitationGetInvitationFunction extends FirebaseFunction<Invitation.Id, InvitationGetInvitationFunction.ReturnType> {
4
+ export declare abstract class InvitationGetInvitationFunctionBase extends FirebaseFunction<Invitation.Id, InvitationGetInvitationFunctionReturnType> {
5
5
  parametersBuilder: import("@stevenkellner/typescript-common-functionality").Tagged.TypeBuilder<string, "invitation">;
6
- returnTypeBuilder: InvitationGetInvitationFunction.ReturnType.TypeBuilder;
7
- execute(invitationId: Invitation.Id): Promise<InvitationGetInvitationFunction.ReturnType>;
6
+ returnTypeBuilder: InvitationGetInvitationFunctionReturnType.TypeBuilder;
8
7
  }
9
- export declare namespace InvitationGetInvitationFunction {
10
- type PersonIdOrPersons = {
11
- personId: Person.Id;
8
+ export type PersonIdOrPersons = {
9
+ personId: Person.Id;
10
+ } | {
11
+ persons: {
12
+ id: Person.Id;
13
+ properties: PersonPrivateProperties;
14
+ }[];
15
+ };
16
+ export declare namespace PersonIdOrPersons {
17
+ type Flatten = {
18
+ personId: Person.Id.Flatten;
12
19
  } | {
13
20
  persons: {
14
- id: Person.Id;
15
- properties: PersonPrivateProperties;
21
+ id: Person.Id.Flatten;
22
+ properties: PersonPrivateProperties.Flatten;
16
23
  }[];
17
24
  };
18
- namespace PersonIdOrPersons {
19
- type Flatten = {
20
- personId: Person.Id.Flatten;
21
- } | {
22
- persons: {
23
- id: Person.Id.Flatten;
24
- properties: PersonPrivateProperties.Flatten;
25
- }[];
26
- };
27
- }
28
- class ReturnType implements Flattable<ReturnType.Flatten> {
29
- teamId: Team.Id;
30
- private personIdOrPersons;
31
- private constructor();
32
- static from(teamId: Team.Id, personId: Person.Id): ReturnType;
33
- static from(teamId: Team.Id, persons: {
34
- id: Person.Id;
35
- properties: PersonPrivateProperties;
36
- }[]): ReturnType;
37
- get personId(): Person.Id | null;
38
- get persons(): {
39
- id: Person.Id;
40
- properties: PersonPrivateProperties;
41
- }[] | null;
42
- get flatten(): ReturnType.Flatten;
43
- }
44
- namespace ReturnType {
45
- type Flatten = {
46
- teamId: Team.Id.Flatten;
47
- } & InvitationGetInvitationFunction.PersonIdOrPersons.Flatten;
48
- class TypeBuilder implements ITypeBuilder<Flatten, ReturnType> {
49
- build(value: Flatten): ReturnType;
50
- }
51
- const builder: TypeBuilder;
25
+ }
26
+ export declare class InvitationGetInvitationFunctionReturnType implements Flattable<InvitationGetInvitationFunctionReturnType.Flatten> {
27
+ teamId: Team.Id;
28
+ teamName: string;
29
+ private personIdOrPersons;
30
+ private constructor();
31
+ static from(teamId: Team.Id, teamName: string, personId: Person.Id): InvitationGetInvitationFunctionReturnType;
32
+ static from(teamId: Team.Id, teamName: string, persons: {
33
+ id: Person.Id;
34
+ properties: PersonPrivateProperties;
35
+ }[]): InvitationGetInvitationFunctionReturnType;
36
+ get personId(): Person.Id | null;
37
+ get persons(): {
38
+ id: Person.Id;
39
+ properties: PersonPrivateProperties;
40
+ }[] | null;
41
+ get flatten(): InvitationGetInvitationFunctionReturnType.Flatten;
42
+ }
43
+ export declare namespace InvitationGetInvitationFunctionReturnType {
44
+ type Flatten = {
45
+ teamId: Team.Id.Flatten;
46
+ teamName: string;
47
+ } & PersonIdOrPersons.Flatten;
48
+ class TypeBuilder implements ITypeBuilder<Flatten, InvitationGetInvitationFunctionReturnType> {
49
+ build(value: Flatten): InvitationGetInvitationFunctionReturnType;
52
50
  }
51
+ const builder: TypeBuilder;
53
52
  }
@@ -1,96 +1,73 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.InvitationGetInvitationFunction = void 0;
3
+ exports.InvitationGetInvitationFunctionReturnType = exports.InvitationGetInvitationFunctionBase = void 0;
4
4
  const firebase_function_1 = require("@stevenkellner/firebase-function");
5
5
  const types_1 = require("../../types");
6
- const Firestore_1 = require("../../Firestore");
7
- const typescript_common_functionality_1 = require("@stevenkellner/typescript-common-functionality");
8
- class InvitationGetInvitationFunction extends firebase_function_1.FirebaseFunction {
6
+ class InvitationGetInvitationFunctionBase extends firebase_function_1.FirebaseFunction {
9
7
  parametersBuilder = types_1.Invitation.Id.builder;
10
- returnTypeBuilder = InvitationGetInvitationFunction.ReturnType.builder;
11
- async execute(invitationId) {
12
- if (this.userId === null)
13
- throw new firebase_function_1.FunctionsError('unauthenticated', 'User not authenticated');
14
- const invitationSnapshot = await Firestore_1.Firestore.shared.invitation(invitationId).snapshot();
15
- if (!invitationSnapshot.exists)
16
- throw new firebase_function_1.FunctionsError('not-found', 'Invitation not found');
17
- const invitation = types_1.Invitation.builder.build(invitationSnapshot.data);
18
- if (invitation.personId !== null)
19
- return InvitationGetInvitationFunction.ReturnType.from(invitation.teamId, invitation.personId);
20
- const personSnapshots = await Firestore_1.Firestore.shared.persons(invitation.teamId).documentSnapshots();
21
- const persons = (0, typescript_common_functionality_1.compactMap)(personSnapshots, personSnapshot => {
22
- if (!personSnapshot.exists)
23
- return null;
24
- const person = types_1.Person.builder.build(personSnapshot.data);
25
- if (person.signInProperties !== null)
26
- return null;
27
- return {
28
- id: person.id,
29
- properties: person.properties
30
- };
31
- });
32
- return InvitationGetInvitationFunction.ReturnType.from(invitation.teamId, persons);
33
- }
8
+ returnTypeBuilder = InvitationGetInvitationFunctionReturnType.builder;
34
9
  }
35
- exports.InvitationGetInvitationFunction = InvitationGetInvitationFunction;
36
- (function (InvitationGetInvitationFunction) {
37
- class ReturnType {
38
- teamId;
39
- personIdOrPersons;
40
- constructor(teamId, personIdOrPersons) {
41
- this.teamId = teamId;
42
- this.personIdOrPersons = personIdOrPersons;
43
- }
44
- static from(teamId, personIdOrPersons) {
45
- if (Array.isArray(personIdOrPersons)) {
46
- return new ReturnType(teamId, {
47
- persons: personIdOrPersons
48
- });
49
- }
50
- return new ReturnType(teamId, {
51
- personId: personIdOrPersons
10
+ exports.InvitationGetInvitationFunctionBase = InvitationGetInvitationFunctionBase;
11
+ class InvitationGetInvitationFunctionReturnType {
12
+ teamId;
13
+ teamName;
14
+ personIdOrPersons;
15
+ constructor(teamId, teamName, personIdOrPersons) {
16
+ this.teamId = teamId;
17
+ this.teamName = teamName;
18
+ this.personIdOrPersons = personIdOrPersons;
19
+ }
20
+ static from(teamId, teamName, personIdOrPersons) {
21
+ if (Array.isArray(personIdOrPersons)) {
22
+ return new InvitationGetInvitationFunctionReturnType(teamId, teamName, {
23
+ persons: personIdOrPersons
52
24
  });
53
25
  }
54
- get personId() {
55
- if (!('personId' in this.personIdOrPersons))
56
- return null;
57
- return this.personIdOrPersons.personId;
58
- }
59
- get persons() {
60
- if (!('persons' in this.personIdOrPersons))
61
- return null;
62
- return this.personIdOrPersons.persons;
63
- }
64
- get flatten() {
65
- if ('personId' in this.personIdOrPersons) {
66
- return {
67
- teamId: this.teamId.flatten,
68
- personId: this.personIdOrPersons.personId.flatten
69
- };
70
- }
26
+ return new InvitationGetInvitationFunctionReturnType(teamId, teamName, {
27
+ personId: personIdOrPersons
28
+ });
29
+ }
30
+ get personId() {
31
+ if (!('personId' in this.personIdOrPersons))
32
+ return null;
33
+ return this.personIdOrPersons.personId;
34
+ }
35
+ get persons() {
36
+ if (!('persons' in this.personIdOrPersons))
37
+ return null;
38
+ return this.personIdOrPersons.persons;
39
+ }
40
+ get flatten() {
41
+ if ('personId' in this.personIdOrPersons) {
71
42
  return {
72
43
  teamId: this.teamId.flatten,
73
- persons: this.personIdOrPersons.persons.map(person => ({
74
- id: person.id.flatten,
75
- properties: person.properties.flatten
76
- }))
44
+ teamName: this.teamName,
45
+ personId: this.personIdOrPersons.personId.flatten
77
46
  };
78
47
  }
48
+ return {
49
+ teamId: this.teamId.flatten,
50
+ teamName: this.teamName,
51
+ persons: this.personIdOrPersons.persons.map(person => ({
52
+ id: person.id.flatten,
53
+ properties: person.properties.flatten
54
+ }))
55
+ };
79
56
  }
80
- InvitationGetInvitationFunction.ReturnType = ReturnType;
81
- (function (ReturnType) {
82
- class TypeBuilder {
83
- build(value) {
84
- if ('personId' in value) {
85
- return ReturnType.from(types_1.Team.Id.builder.build(value.teamId), types_1.Person.Id.builder.build(value.personId));
86
- }
87
- return ReturnType.from(types_1.Team.Id.builder.build(value.teamId), value.persons.map(person => ({
88
- id: types_1.Person.Id.builder.build(person.id),
89
- properties: types_1.PersonPrivateProperties.builder.build(person.properties)
90
- })));
57
+ }
58
+ exports.InvitationGetInvitationFunctionReturnType = InvitationGetInvitationFunctionReturnType;
59
+ (function (InvitationGetInvitationFunctionReturnType) {
60
+ class TypeBuilder {
61
+ build(value) {
62
+ if ('personId' in value) {
63
+ return InvitationGetInvitationFunctionReturnType.from(types_1.Team.Id.builder.build(value.teamId), value.teamName, types_1.Person.Id.builder.build(value.personId));
91
64
  }
65
+ return InvitationGetInvitationFunctionReturnType.from(types_1.Team.Id.builder.build(value.teamId), value.teamName, value.persons.map(person => ({
66
+ id: types_1.Person.Id.builder.build(person.id),
67
+ properties: types_1.PersonPrivateProperties.builder.build(person.properties)
68
+ })));
92
69
  }
93
- ReturnType.TypeBuilder = TypeBuilder;
94
- ReturnType.builder = new TypeBuilder();
95
- })(ReturnType = InvitationGetInvitationFunction.ReturnType || (InvitationGetInvitationFunction.ReturnType = {}));
96
- })(InvitationGetInvitationFunction || (exports.InvitationGetInvitationFunction = InvitationGetInvitationFunction = {}));
70
+ }
71
+ InvitationGetInvitationFunctionReturnType.TypeBuilder = TypeBuilder;
72
+ InvitationGetInvitationFunctionReturnType.builder = new TypeBuilder();
73
+ })(InvitationGetInvitationFunctionReturnType || (exports.InvitationGetInvitationFunctionReturnType = InvitationGetInvitationFunctionReturnType = {}));
@@ -1,7 +1,6 @@
1
1
  import { FirebaseFunction } from '@stevenkellner/firebase-function';
2
2
  import { Invitation } from '../../types';
3
- export declare class InvitationInviteFunction extends FirebaseFunction<Invitation, Invitation.Id> {
3
+ export declare abstract class InvitationInviteFunctionBase extends FirebaseFunction<Invitation, Invitation.Id> {
4
4
  parametersBuilder: Invitation.TypeBuilder;
5
5
  returnTypeBuilder: import("@stevenkellner/typescript-common-functionality").Tagged.TypeBuilder<string, "invitation">;
6
- execute(invitation: Invitation): Promise<Invitation.Id>;
7
6
  }
@@ -1,25 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.InvitationInviteFunction = void 0;
3
+ exports.InvitationInviteFunctionBase = void 0;
4
4
  const firebase_function_1 = require("@stevenkellner/firebase-function");
5
5
  const types_1 = require("../../types");
6
- const checkAuthentication_1 = require("../../checkAuthentication");
7
- const Firestore_1 = require("../../Firestore");
8
- class InvitationInviteFunction extends firebase_function_1.FirebaseFunction {
6
+ class InvitationInviteFunctionBase extends firebase_function_1.FirebaseFunction {
9
7
  parametersBuilder = types_1.Invitation.builder;
10
8
  returnTypeBuilder = types_1.Invitation.Id.builder;
11
- async execute(invitation) {
12
- await (0, checkAuthentication_1.checkAuthentication)(this.userId, invitation.teamId, 'team-manager');
13
- if (invitation.personId !== null) {
14
- const personSnapshot = await Firestore_1.Firestore.shared.person(invitation.teamId, invitation.personId).snapshot();
15
- if (!personSnapshot.exists)
16
- throw new firebase_function_1.FunctionsError('not-found', 'Person not found');
17
- if (personSnapshot.data.signInProperties !== null)
18
- throw new firebase_function_1.FunctionsError('already-exists', 'Person already has an account');
19
- }
20
- const invitationId = invitation.createId();
21
- await Firestore_1.Firestore.shared.invitation(invitationId).set(invitation);
22
- return invitationId;
23
- }
24
9
  }
25
- exports.InvitationInviteFunction = InvitationInviteFunction;
10
+ exports.InvitationInviteFunctionBase = InvitationInviteFunctionBase;
@@ -1,19 +1,14 @@
1
1
  import { FirebaseFunction } from '@stevenkellner/firebase-function';
2
2
  import { Person, Team, User } from '../../types';
3
3
  import { ObjectTypeBuilder } from '@stevenkellner/typescript-common-functionality';
4
- export declare namespace InvitationRegisterFunction {
5
- type Parameters = {
6
- teamId: Team.Id;
7
- personId: Person.Id;
8
- };
9
- }
10
- export declare class InvitationRegisterFunction extends FirebaseFunction<InvitationRegisterFunction.Parameters, User> {
4
+ export type InvitationRegisterFunctionParameters = {
5
+ teamId: Team.Id;
6
+ personId: Person.Id;
7
+ };
8
+ export declare abstract class InvitationRegisterFunctionBase extends FirebaseFunction<InvitationRegisterFunctionParameters, User> {
11
9
  parametersBuilder: ObjectTypeBuilder<{
12
10
  teamId: string;
13
11
  personId: string;
14
- }, InvitationRegisterFunction.Parameters>;
12
+ }, InvitationRegisterFunctionParameters>;
15
13
  returnTypeBuilder: User.TypeBuilder;
16
- execute(parameters: InvitationRegisterFunction.Parameters): Promise<User>;
17
- private getUser;
18
- private removeUserInvitation;
19
14
  }
@@ -1,50 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.InvitationRegisterFunction = void 0;
3
+ exports.InvitationRegisterFunctionBase = void 0;
4
4
  const firebase_function_1 = require("@stevenkellner/firebase-function");
5
5
  const types_1 = require("../../types");
6
- const Firestore_1 = require("../../Firestore");
7
6
  const typescript_common_functionality_1 = require("@stevenkellner/typescript-common-functionality");
8
- class InvitationRegisterFunction extends firebase_function_1.FirebaseFunction {
7
+ class InvitationRegisterFunctionBase extends firebase_function_1.FirebaseFunction {
9
8
  parametersBuilder = new typescript_common_functionality_1.ObjectTypeBuilder({
10
9
  teamId: types_1.Team.Id.builder,
11
10
  personId: types_1.Person.Id.builder
12
11
  });
13
12
  returnTypeBuilder = types_1.User.builder;
14
- async execute(parameters) {
15
- if (this.userId === null)
16
- throw new firebase_function_1.FunctionsError('unauthenticated', 'User not authenticated');
17
- const userId = types_1.User.Id.builder.build(this.userId);
18
- const user = await this.getUser(userId);
19
- if (user.teams.has(parameters.teamId))
20
- throw new firebase_function_1.FunctionsError('already-exists', 'User already in team');
21
- const teamSnapshot = await Firestore_1.Firestore.shared.team(parameters.teamId).snapshot();
22
- if (!teamSnapshot.exists)
23
- throw new firebase_function_1.FunctionsError('not-found', 'Team not found');
24
- const team = types_1.Team.builder.build(teamSnapshot.data);
25
- const personSnapshot = await Firestore_1.Firestore.shared.person(parameters.teamId, parameters.personId).snapshot();
26
- if (!personSnapshot.exists)
27
- throw new firebase_function_1.FunctionsError('not-found', 'Person not found');
28
- const person = types_1.Person.builder.build(personSnapshot.data);
29
- if (person.signInProperties !== null)
30
- throw new firebase_function_1.FunctionsError('already-exists', 'Person already registered');
31
- await this.removeUserInvitation(parameters.teamId, parameters.personId);
32
- user.teams.set(parameters.teamId, new types_1.User.TeamProperties(team.name, parameters.personId));
33
- await Firestore_1.Firestore.shared.user(userId).set(user);
34
- person.signInProperties = new types_1.PersonSignInProperties(userId, typescript_common_functionality_1.UtcDate.now);
35
- await Firestore_1.Firestore.shared.person(parameters.teamId, parameters.personId).set(person);
36
- return user;
37
- }
38
- async getUser(userId) {
39
- const userSnapshot = await Firestore_1.Firestore.shared.user(userId).snapshot();
40
- if (userSnapshot.exists)
41
- return types_1.User.builder.build(userSnapshot.data);
42
- return new types_1.User(userId);
43
- }
44
- async removeUserInvitation(teamId, personId) {
45
- const invitation = new types_1.Invitation(teamId, personId);
46
- const invitationId = invitation.createId();
47
- await Firestore_1.Firestore.shared.invitation(invitationId).remove();
48
- }
49
13
  }
50
- exports.InvitationRegisterFunction = InvitationRegisterFunction;
14
+ exports.InvitationRegisterFunctionBase = InvitationRegisterFunctionBase;
@@ -1,8 +1,7 @@
1
1
  import { FirebaseFunction } from '@stevenkellner/firebase-function';
2
2
  import { Invitation } from '../../types';
3
3
  import { ValueTypeBuilder } from '@stevenkellner/typescript-common-functionality';
4
- export declare class InvitationWithdrawFunction extends FirebaseFunction<Invitation, void> {
4
+ export declare abstract class InvitationWithdrawFunctionBase extends FirebaseFunction<Invitation, void> {
5
5
  parametersBuilder: Invitation.TypeBuilder;
6
6
  returnTypeBuilder: ValueTypeBuilder<void>;
7
- execute(invitation: Invitation): Promise<void>;
8
7
  }
@@ -1,21 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.InvitationWithdrawFunction = void 0;
3
+ exports.InvitationWithdrawFunctionBase = void 0;
4
4
  const firebase_function_1 = require("@stevenkellner/firebase-function");
5
5
  const types_1 = require("../../types");
6
- const checkAuthentication_1 = require("../../checkAuthentication");
7
- const Firestore_1 = require("../../Firestore");
8
6
  const typescript_common_functionality_1 = require("@stevenkellner/typescript-common-functionality");
9
- class InvitationWithdrawFunction extends firebase_function_1.FirebaseFunction {
7
+ class InvitationWithdrawFunctionBase extends firebase_function_1.FirebaseFunction {
10
8
  parametersBuilder = types_1.Invitation.builder;
11
9
  returnTypeBuilder = new typescript_common_functionality_1.ValueTypeBuilder();
12
- async execute(invitation) {
13
- await (0, checkAuthentication_1.checkAuthentication)(this.userId, invitation.teamId, 'team-manager');
14
- const invitationId = invitation.createId();
15
- const invitationSnapshot = await Firestore_1.Firestore.shared.invitation(invitationId).snapshot();
16
- if (!invitationSnapshot.exists)
17
- throw new firebase_function_1.FunctionsError('not-found', 'Invitation not found');
18
- await Firestore_1.Firestore.shared.invitation(invitationId).remove();
19
- }
20
10
  }
21
- exports.InvitationWithdrawFunction = InvitationWithdrawFunction;
11
+ exports.InvitationWithdrawFunctionBase = InvitationWithdrawFunctionBase;
@@ -1,19 +1,16 @@
1
1
  import { FirebaseFunction } from '@stevenkellner/firebase-function';
2
2
  import { Person, Team } from '../../types';
3
3
  import { ObjectTypeBuilder, ValueTypeBuilder } from '@stevenkellner/typescript-common-functionality';
4
- export declare namespace NotificationRegisterFunction {
5
- type Parameters = {
6
- teamId: Team.Id;
7
- personId: Person.Id;
8
- token: string;
9
- };
10
- }
11
- export declare class NotificationRegisterFunction extends FirebaseFunction<NotificationRegisterFunction.Parameters, void> {
4
+ export type NotificationRegisterFunctionParameters = {
5
+ teamId: Team.Id;
6
+ personId: Person.Id;
7
+ token: string;
8
+ };
9
+ export declare abstract class NotificationRegisterFunctionBase extends FirebaseFunction<NotificationRegisterFunctionParameters, void> {
12
10
  parametersBuilder: ObjectTypeBuilder<{
13
11
  teamId: string;
14
12
  personId: string;
15
13
  token: string;
16
- }, NotificationRegisterFunction.Parameters>;
14
+ }, NotificationRegisterFunctionParameters>;
17
15
  returnTypeBuilder: ValueTypeBuilder<void>;
18
- execute(parameters: NotificationRegisterFunction.Parameters): Promise<void>;
19
16
  }
@@ -1,27 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.NotificationRegisterFunction = void 0;
4
- const NotificationProperties_1 = require("../../types/NotificationProperties");
3
+ exports.NotificationRegisterFunctionBase = void 0;
5
4
  const firebase_function_1 = require("@stevenkellner/firebase-function");
6
5
  const types_1 = require("../../types");
7
6
  const typescript_common_functionality_1 = require("@stevenkellner/typescript-common-functionality");
8
- const Firestore_1 = require("../../Firestore");
9
- class NotificationRegisterFunction extends firebase_function_1.FirebaseFunction {
7
+ class NotificationRegisterFunctionBase extends firebase_function_1.FirebaseFunction {
10
8
  parametersBuilder = new typescript_common_functionality_1.ObjectTypeBuilder({
11
9
  teamId: types_1.Team.Id.builder,
12
10
  personId: types_1.Person.Id.builder,
13
11
  token: new typescript_common_functionality_1.ValueTypeBuilder()
14
12
  });
15
13
  returnTypeBuilder = new typescript_common_functionality_1.ValueTypeBuilder();
16
- async execute(parameters) {
17
- const personSnapshot = await Firestore_1.Firestore.shared.person(parameters.teamId, parameters.personId).snapshot();
18
- if (!personSnapshot.exists)
19
- throw new firebase_function_1.FunctionsError('not-found', 'Person not found');
20
- const person = types_1.Person.builder.build(personSnapshot.data);
21
- if (person.signInProperties === null)
22
- throw new firebase_function_1.FunctionsError('unauthenticated', 'Person not signed in');
23
- person.signInProperties.notificationProperties.tokens.set(NotificationProperties_1.NotificationProperties.TokenId.create(parameters.token), parameters.token);
24
- await Firestore_1.Firestore.shared.person(parameters.teamId, parameters.personId).set(person);
25
- }
26
14
  }
27
- exports.NotificationRegisterFunction = NotificationRegisterFunction;
15
+ exports.NotificationRegisterFunctionBase = NotificationRegisterFunctionBase;
@@ -1,19 +1,16 @@
1
1
  import { FirebaseFunction } from '@stevenkellner/firebase-function';
2
2
  import { NotificationProperties, Person, Team } from '../../types';
3
3
  import { ObjectTypeBuilder, ValueTypeBuilder } from '@stevenkellner/typescript-common-functionality';
4
- export declare namespace NotificationSubscribeFunction {
5
- type Parameters = {
6
- teamId: Team.Id;
7
- personId: Person.Id;
8
- subscriptions: NotificationProperties.Subscription[];
9
- };
10
- }
11
- export declare class NotificationSubscribeFunction extends FirebaseFunction<NotificationSubscribeFunction.Parameters, void> {
4
+ export type NotificationSubscribeFunctionParameters = {
5
+ teamId: Team.Id;
6
+ personId: Person.Id;
7
+ subscriptions: NotificationProperties.Subscription[];
8
+ };
9
+ export declare abstract class NotificationSubscribeFunctionBase extends FirebaseFunction<NotificationSubscribeFunctionParameters, void> {
12
10
  parametersBuilder: ObjectTypeBuilder<{
13
11
  teamId: string;
14
12
  personId: string;
15
- subscriptions: NotificationProperties.Subscription[];
16
- }, NotificationSubscribeFunction.Parameters>;
13
+ subscriptions: ("new-fine" | "fine-reminder" | "fine-state-change")[];
14
+ }, NotificationSubscribeFunctionParameters>;
17
15
  returnTypeBuilder: ValueTypeBuilder<void>;
18
- execute(parameters: NotificationSubscribeFunction.Parameters): Promise<void>;
19
16
  }
@@ -1,26 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.NotificationSubscribeFunction = void 0;
3
+ exports.NotificationSubscribeFunctionBase = void 0;
4
4
  const firebase_function_1 = require("@stevenkellner/firebase-function");
5
5
  const types_1 = require("../../types");
6
6
  const typescript_common_functionality_1 = require("@stevenkellner/typescript-common-functionality");
7
- const Firestore_1 = require("../../Firestore");
8
- class NotificationSubscribeFunction extends firebase_function_1.FirebaseFunction {
7
+ class NotificationSubscribeFunctionBase extends firebase_function_1.FirebaseFunction {
9
8
  parametersBuilder = new typescript_common_functionality_1.ObjectTypeBuilder({
10
9
  teamId: types_1.Team.Id.builder,
11
10
  personId: types_1.Person.Id.builder,
12
11
  subscriptions: new typescript_common_functionality_1.ArrayTypeBuilder(new typescript_common_functionality_1.ValueTypeBuilder())
13
12
  });
14
13
  returnTypeBuilder = new typescript_common_functionality_1.ValueTypeBuilder();
15
- async execute(parameters) {
16
- const personSnapshot = await Firestore_1.Firestore.shared.person(parameters.teamId, parameters.personId).snapshot();
17
- if (!personSnapshot.exists)
18
- throw new firebase_function_1.FunctionsError('not-found', 'Person not found');
19
- const person = types_1.Person.builder.build(personSnapshot.data);
20
- if (person.signInProperties === null)
21
- throw new firebase_function_1.FunctionsError('unauthenticated', 'Person not signed in');
22
- person.signInProperties.notificationProperties.subscriptions = parameters.subscriptions;
23
- await Firestore_1.Firestore.shared.person(parameters.teamId, parameters.personId).set(person);
24
- }
25
14
  }
26
- exports.NotificationSubscribeFunction = NotificationSubscribeFunction;
15
+ exports.NotificationSubscribeFunctionBase = NotificationSubscribeFunctionBase;
@@ -1,17 +1,14 @@
1
1
  import { ObjectTypeBuilder, ValueTypeBuilder } from '@stevenkellner/typescript-common-functionality';
2
2
  import { FirebaseFunction } from '@stevenkellner/firebase-function';
3
3
  import { Team } from '../../types';
4
- export declare namespace PaypalMeEditFunction {
5
- type Parameters = {
6
- teamId: Team.Id;
7
- paypalMeLink: string | null;
8
- };
9
- }
10
- export declare class PaypalMeEditFunction extends FirebaseFunction<PaypalMeEditFunction.Parameters, void> {
4
+ export type PaypalMeEditFunctionParameters = {
5
+ teamId: Team.Id;
6
+ paypalMeLink: string | null;
7
+ };
8
+ export declare abstract class PaypalMeEditFunctionBase extends FirebaseFunction<PaypalMeEditFunctionParameters, void> {
11
9
  parametersBuilder: ObjectTypeBuilder<{
12
10
  teamId: string;
13
11
  paypalMeLink: string | null;
14
- }, PaypalMeEditFunction.Parameters>;
12
+ }, PaypalMeEditFunctionParameters>;
15
13
  returnTypeBuilder: ValueTypeBuilder<void>;
16
- execute(parameters: PaypalMeEditFunction.Parameters): Promise<void>;
17
14
  }
@@ -1,25 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PaypalMeEditFunction = void 0;
3
+ exports.PaypalMeEditFunctionBase = void 0;
4
4
  const typescript_common_functionality_1 = require("@stevenkellner/typescript-common-functionality");
5
5
  const firebase_function_1 = require("@stevenkellner/firebase-function");
6
6
  const types_1 = require("../../types");
7
- const checkAuthentication_1 = require("../../checkAuthentication");
8
- const Firestore_1 = require("../../Firestore");
9
- class PaypalMeEditFunction extends firebase_function_1.FirebaseFunction {
7
+ class PaypalMeEditFunctionBase extends firebase_function_1.FirebaseFunction {
10
8
  parametersBuilder = new typescript_common_functionality_1.ObjectTypeBuilder({
11
9
  teamId: types_1.Team.Id.builder,
12
10
  paypalMeLink: new typescript_common_functionality_1.ValueTypeBuilder()
13
11
  });
14
12
  returnTypeBuilder = new typescript_common_functionality_1.ValueTypeBuilder();
15
- async execute(parameters) {
16
- await (0, checkAuthentication_1.checkAuthentication)(this.userId, parameters.teamId, 'team-manager');
17
- const teamSnapshot = await Firestore_1.Firestore.shared.team(parameters.teamId).snapshot();
18
- if (!teamSnapshot.exists)
19
- throw new firebase_function_1.FunctionsError('not-found', 'Team not found');
20
- const team = types_1.Team.builder.build(teamSnapshot.data);
21
- team.paypalMeLink = parameters.paypalMeLink;
22
- await Firestore_1.Firestore.shared.team(parameters.teamId).set(team);
23
- }
24
13
  }
25
- exports.PaypalMeEditFunction = PaypalMeEditFunction;
14
+ exports.PaypalMeEditFunctionBase = PaypalMeEditFunctionBase;
@@ -1,14 +1,12 @@
1
1
  import { FirebaseFunction } from '@stevenkellner/firebase-function';
2
2
  import { Person, PersonPrivateProperties, Team } from '../../types';
3
3
  import { ObjectTypeBuilder, ValueTypeBuilder } from '@stevenkellner/typescript-common-functionality';
4
- export declare namespace PersonAddFunction {
5
- type Parameters = {
6
- teamId: Team.Id;
7
- id: Person.Id;
8
- properties: PersonPrivateProperties;
9
- };
10
- }
11
- export declare class PersonAddFunction extends FirebaseFunction<PersonAddFunction.Parameters, void> {
4
+ export type PersonAddFunctionParameters = {
5
+ teamId: Team.Id;
6
+ id: Person.Id;
7
+ properties: PersonPrivateProperties;
8
+ };
9
+ export declare abstract class PersonAddFunctionBase extends FirebaseFunction<PersonAddFunctionParameters, void> {
12
10
  parametersBuilder: ObjectTypeBuilder<{
13
11
  teamId: string;
14
12
  id: string;
@@ -16,7 +14,6 @@ export declare class PersonAddFunction extends FirebaseFunction<PersonAddFunctio
16
14
  firstName: string;
17
15
  lastName: string | null;
18
16
  };
19
- }, PersonAddFunction.Parameters>;
17
+ }, PersonAddFunctionParameters>;
20
18
  returnTypeBuilder: ValueTypeBuilder<void>;
21
- execute(parameters: PersonAddFunction.Parameters): Promise<void>;
22
19
  }