Skip to content

Commit 4473511

Browse files
authored
Auth + identity bootstrap (#25)
* Auth + identity bootstrap * style: apply prettier formatting * return empty if not found
1 parent 854dcfe commit 4473511

5 files changed

Lines changed: 35 additions & 7 deletions

File tree

App.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
import { logger } from './src/utils/logger';
2+
import { syncAllData } from './src/services/sync';
23
import React, { useEffect, useState } from 'react';
3-
import { View, ActivityIndicator, Text, StyleSheet } from 'react-native';
44
import { initializeDatabase } from './src/db/index';
55
import AppNavigator from './src/navigation/AppNavigator';
66
import { NavigationContainer } from '@react-navigation/native';
77
import { SafeAreaProvider } from 'react-native-safe-area-context';
8-
import { syncAllData } from './src/services/sync';
8+
import { View, ActivityIndicator, Text, StyleSheet } from 'react-native';
99
import { FLUENT_USER_EMAIL } from '@env';
1010

1111
const log = logger.create('App');

src/db/queries.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ export async function getChapterAssignmentById(
8585
bibleId: row.bible_id,
8686
bookId: row.book_id,
8787
chapterNumber: row.chapter_number,
88-
assignedUserId: row.assigned_user_id ?? undefined,
88+
assignedUserId: row.assigned_user_id,
8989
status: row.status,
9090
submittedTime: row.submitted_time ?? undefined,
9191
updatedAt: row.updated_at,

src/services/storage.ts

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import { Storage } from '@op-engineering/op-sqlite';
2+
import { logger } from '../utils/logger';
3+
4+
const log = logger.create('KVStorage');
5+
6+
export const kvStorage = new Storage({
7+
location: 'kv',
8+
});
9+
10+
export const KV_KEYS = {
11+
USER_ID: 'userId',
12+
USER_EMAIL: 'userEmail',
13+
} as const;
14+
15+
export function getUserIdSync(): string {
16+
return kvStorage.getItemSync(KV_KEYS.USER_ID) ?? '';
17+
}
18+
19+
export function getUserEmailSync(): string {
20+
return kvStorage.getItemSync(KV_KEYS.USER_EMAIL) ?? '';
21+
}
22+
23+
export function setUserSync(userId: string, userEmail: string) {
24+
kvStorage.setItemSync(KV_KEYS.USER_ID, userId);
25+
kvStorage.setItemSync(KV_KEYS.USER_EMAIL, userEmail);
26+
log.info('User stored in KV', { userId, userEmail });
27+
}

src/services/sync.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import {
1212
} from '../db/repository';
1313
import { logger } from '../utils/logger';
1414
import { ApiBook, ApiVerse } from '../types/api/types';
15+
import { setUserSync } from '../services/storage';
1516

1617
const log = logger.create('SyncService');
1718

@@ -27,8 +28,8 @@ export async function syncUser(email: string) {
2728

2829
await insertUser(user);
2930

31+
setUserSync(String(user.id), user.email);
3032
log.info('User synced', { email: user.email });
31-
3233
return user;
3334
} catch (error) {
3435
log.error('User sync failed', { error });

src/types/db/types.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ export interface ChapterAssignmentData {
5757
bibleId: number;
5858
bookId: number;
5959
chapterNumber: number;
60-
assignedUserId?: number | null;
60+
assignedUserId?: number;
6161
status: string;
6262
submittedTime?: string | null;
6363
updatedAt?: string;
@@ -72,7 +72,7 @@ export interface ChapterAssignmentRow {
7272
bible_id: number;
7373
book_id: number;
7474
chapter_number: number;
75-
assigned_user_id?: number | null;
75+
assigned_user_id?: number;
7676
status: string;
7777
submitted_time?: string | null;
7878
updated_at?: string;
@@ -86,7 +86,7 @@ export interface ChapterListItem {
8686
chapter_number: number;
8787
status: string;
8888
book_name: string;
89-
assigned_user_id?: number | null;
89+
assigned_user_id?: number;
9090
}
9191

9292
export interface ChapterRow {

0 commit comments

Comments
 (0)