change creat to createOrUpdate

This commit is contained in:
Peter Maquiran
2024-06-05 11:55:38 +01:00
parent 1a319093ee
commit a8db36856c
3 changed files with 38 additions and 19 deletions
@@ -24,20 +24,13 @@ export const roomDataSource = new Dexie('FriendDatabase') as Dexie & {
room: EntityTable<TableRoom, 'id'>;
};
roomDataSource.version(1).stores({
room: '++id, createdBy, roomName, roomType, expirationDate'
room: 'id, createdBy, roomName, roomType, expirationDate'
});
interface CreateRoomParams {
id?: string;
roomName?: string;
createdBy?: any;
createdAt?: Date;
expirationDate?: Date;
roomType?: any;
}
@Injectable({
providedIn: 'root'
})
@@ -48,14 +41,42 @@ export class RoomLocalDataSourceService {
constructor() {}
async createRoom(data: CreateRoomParams) {
async createRoom(data: TableRoom) {
try {
const result = await roomDataSource.room.add(data)
return ok(result)
} catch (e) {
return err(false)
}
}
async updateRoom(data: TableRoom) {
try {
const result = await roomDataSource.room.update(data.id, data);
return ok(result)
} catch (e) {
return err(false)
}
}
async createOrUpdateRoom(data: TableRoom) {
const createResult = await this.createRoom(data)
if(createResult.isOk()) {
return this.updateRoom(data)
} else {
return createResult
}
}
async getRoomById(id: any) {
try {
const result = await roomDataSource.room.get(id)
return ok(result)
} catch (e) {
return err(false)
}
}