Skip to content

Commit d4e74d2

Browse files
Adding account authorization collection
1 parent 886cf3e commit d4e74d2

File tree

4 files changed

+19
-4
lines changed

4 files changed

+19
-4
lines changed

src/collections.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
import { CHALLENGE_COLLECTION, CHALLENGE_COMPLETION_COLLECTION, SCENE_COLLECTION } from './model/constants';
1+
import { ACCOUNT_AUTHORIZATION_COLLECTION, CHALLENGE_COLLECTION, CHALLENGE_COMPLETION_COLLECTION, SCENE_COLLECTION } from './model/constants';
22

3-
export default new Set([ SCENE_COLLECTION, CHALLENGE_COLLECTION, CHALLENGE_COMPLETION_COLLECTION ]);
3+
export default new Set([ SCENE_COLLECTION, CHALLENGE_COLLECTION, CHALLENGE_COMPLETION_COLLECTION, ACCOUNT_AUTHORIZATION_COLLECTION ]);

src/db.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import Error from './model/Error';
77
import List from './model/List';
88
import firestore from './firestore';
99
import Cache from './Cache';
10-
import { CHALLENGE_COMPLETION_COLLECTION } from './model/constants';
10+
import { CHALLENGE_COMPLETION_COLLECTION, ACCOUNT_AUTHORIZATION_COLLECTION } from './model/constants';
1111

1212
const USER_ID_REQUIRED = new Set([
1313
CHALLENGE_COMPLETION_COLLECTION,
@@ -36,7 +36,15 @@ class Db {
3636

3737
return `user/${userId}/${selector.collection}`;
3838
}
39+
if (selector.collection === ACCOUNT_AUTHORIZATION_COLLECTION) {
40+
if (!userId) throw {
41+
type: 'error',
42+
message: 'User ID is required for this collection.',
43+
code: Error.CODE_NOT_AUTHORIZED,
44+
} as Error;
3945

46+
return `user/${userId}/${selector.collection}`;
47+
}
4048
return selector.collection;
4149
}
4250

src/model/Selector.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import {
33
CHALLENGE_COLLECTION,
44
CHALLENGE_COMPLETION_COLLECTION,
55
BIG_STORE_COLLECTION,
6+
ACCOUNT_AUTHORIZATION_COLLECTION
67
} from './constants';
78

89
interface Selector {
@@ -30,6 +31,11 @@ namespace Selector {
3031
collection: BIG_STORE_COLLECTION,
3132
id,
3233
});
34+
35+
export const accountAuthorization = (id: string): Selector => ({
36+
collection: ACCOUNT_AUTHORIZATION_COLLECTION,
37+
id,
38+
});
3339
}
3440

3541
export default Selector;

src/model/constants.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
export const BIG_STORE_COLLECTION = 'big_store';
22
export const SCENE_COLLECTION = 'scene';
33
export const CHALLENGE_COLLECTION = 'challenge';
4-
export const CHALLENGE_COMPLETION_COLLECTION = 'challenge_completion';
4+
export const CHALLENGE_COMPLETION_COLLECTION = 'challenge_completion';
5+
export const ACCOUNT_AUTHORIZATION_COLLECTION = 'account_authorization';

0 commit comments

Comments
 (0)