mirror of
https://code.equilibrium.co.ao/ITO/doneit-web.git
synced 2026-04-18 20:47:54 +00:00
add generic repository
This commit is contained in:
@@ -6,6 +6,7 @@ import { from, Observable, Subject } from 'rxjs';
|
||||
import { filter } from 'rxjs/operators';
|
||||
import { MessageInputDTO } from '../../dto/message/messageInputDtO';
|
||||
import { MessageEntity } from '../../../domain/entity/message';
|
||||
import { DexieRepository } from 'src/app/infra/repository/dexie/dexie-repository.service';
|
||||
|
||||
|
||||
const tableSchema = z.object({
|
||||
@@ -67,12 +68,12 @@ messageDataSource.message.mapToClass(MessageEntity);
|
||||
@Injectable({
|
||||
providedIn: 'root'
|
||||
})
|
||||
export class MessageLocalDataSourceService {
|
||||
export class MessageLocalDataSourceService extends DexieRepository<TableMessage> {
|
||||
|
||||
messageSubject = new Subject();
|
||||
|
||||
constructor() {
|
||||
|
||||
super(messageDataSource.message)
|
||||
// messageDataSource.message.hook('creating', (primKey, obj, trans) => {
|
||||
// // const newMessage = await trans.table('message').get(primKey);
|
||||
// this.messageSubject.next(obj);
|
||||
@@ -154,6 +155,17 @@ export class MessageLocalDataSourceService {
|
||||
|
||||
}
|
||||
|
||||
async createManyMessage(data: MessageInputDTO[]) {
|
||||
|
||||
try {
|
||||
const result = await messageDataSource.message.bulkAdd(data)
|
||||
this.messageSubject.next({roomId: data[0].roomId});
|
||||
return ok(result)
|
||||
} catch (e) {
|
||||
return err(false)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
async messageExist({id}) {
|
||||
try {
|
||||
@@ -177,19 +189,6 @@ export class MessageLocalDataSourceService {
|
||||
|
||||
}
|
||||
|
||||
async update(data: TableMessage ) {
|
||||
|
||||
try {
|
||||
console.log('update images 22222')
|
||||
const result = await messageDataSource.message.update(data.$id, data)
|
||||
return ok(result)
|
||||
} catch (e) {
|
||||
return err(false)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
// not used
|
||||
async updateByMessageId(data: TableMessage ) {
|
||||
|
||||
@@ -207,7 +206,7 @@ export class MessageLocalDataSourceService {
|
||||
const findResult = await this.findMessageById(data.id)
|
||||
|
||||
if(findResult.isOk()) {
|
||||
return this.update({...findResult.value, ...data})
|
||||
return this.update(findResult.value.$id, data)
|
||||
} else {
|
||||
return this.createMessage(data)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user