@stevenkellner/team-conduct-api 1.0.31 → 1.0.32

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.
@@ -23,7 +23,14 @@ class UserKickoutFunction extends firebase_function_1.FirebaseFunction {
23
23
  const userTeamProperties = user.teams.getOptional(parameters.teamId);
24
24
  if (userTeamProperties === null)
25
25
  throw new firebase_function_1.FunctionsError('not-found', 'User is not a member of the team.');
26
- await Firestore_1.Firestore.shared.person(parameters.teamId, userTeamProperties.personId).remove();
26
+ const personSnapshot = await Firestore_1.Firestore.shared.person(parameters.teamId, userTeamProperties.personId).snapshot();
27
+ if (!personSnapshot.exists)
28
+ throw new firebase_function_1.FunctionsError('not-found', 'Person not found.');
29
+ const person = types_1.Person.builder.build(personSnapshot.data);
30
+ person.signInProperties = null;
31
+ await Firestore_1.Firestore.shared.person(parameters.teamId, userTeamProperties.personId).set(person);
32
+ user.teams.delete(parameters.teamId);
33
+ await Firestore_1.Firestore.shared.user(parameters.userId).set(user);
27
34
  }
28
35
  }
29
36
  exports.UserKickoutFunction = UserKickoutFunction;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stevenkellner/team-conduct-api",
3
- "version": "1.0.31",
3
+ "version": "1.0.32",
4
4
  "description": "Firebase API for Team Conduct",
5
5
  "license": "MIT",
6
6
  "author": "Steven Kellner",
@@ -23,20 +23,20 @@
23
23
  },
24
24
  "dependencies": {
25
25
  "@stevenkellner/firebase-function": "^1.4.140",
26
- "@stevenkellner/typescript-common-functionality": "^1.0.56"
26
+ "@stevenkellner/typescript-common-functionality": "^1.0.61"
27
27
  },
28
28
  "devDependencies": {
29
29
  "@assertive-ts/core": "^2.1.0",
30
- "@eslint/compat": "^1.2.9",
30
+ "@eslint/compat": "^1.3.1",
31
31
  "@eslint/eslintrc": "^3.3.1",
32
- "@eslint/js": "^9.27.0",
32
+ "@eslint/js": "^9.29.0",
33
33
  "@types/mocha": "^10.0.10",
34
- "@typescript-eslint/eslint-plugin": "^8.32.1",
35
- "@typescript-eslint/parser": "^8.32.1",
36
- "eslint": "^9.27.0",
34
+ "@typescript-eslint/eslint-plugin": "^8.35.0",
35
+ "@typescript-eslint/parser": "^8.35.0",
36
+ "eslint": "^9.29.0",
37
37
  "eslint-config-google": "^0.14.0",
38
- "eslint-plugin-import": "^2.31.0",
39
- "mocha": "^11.3.0",
38
+ "eslint-plugin-import": "^2.32.0",
39
+ "mocha": "^11.7.1",
40
40
  "ts-node": "^10.9.2",
41
41
  "typescript": "^5.8.3"
42
42
  }
@@ -1,5 +1,5 @@
1
1
  import { FirebaseFunction, FunctionsError } from '@stevenkellner/firebase-function';
2
- import { Team, User } from '../../types';
2
+ import { Person, Team, User } from '../../types';
3
3
  import { Flattable, ObjectTypeBuilder, ValueTypeBuilder } from '@stevenkellner/typescript-common-functionality';
4
4
  import { Firestore } from '../../Firestore';
5
5
  import { checkAuthentication } from '../../checkAuthentication';
@@ -37,6 +37,15 @@ export class UserKickoutFunction extends FirebaseFunction<UserKickoutFunction.Pa
37
37
  if (userTeamProperties === null)
38
38
  throw new FunctionsError('not-found', 'User is not a member of the team.');
39
39
 
40
- await Firestore.shared.person(parameters.teamId, userTeamProperties.personId).remove();
40
+ const personSnapshot = await Firestore.shared.person(parameters.teamId, userTeamProperties.personId).snapshot();
41
+ if (!personSnapshot.exists)
42
+ throw new FunctionsError('not-found', 'Person not found.');
43
+ const person = Person.builder.build(personSnapshot.data);
44
+
45
+ person.signInProperties = null;
46
+ await Firestore.shared.person(parameters.teamId, userTeamProperties.personId).set(person);
47
+
48
+ user.teams.delete(parameters.teamId);
49
+ await Firestore.shared.user(parameters.userId).set(user);
41
50
  }
42
51
  }