Add revalidateConvo method
This commit is contained in:
@@ -97,6 +97,7 @@ export class Convo {
|
|||||||
this.sendMessage = this.sendMessage.bind(this)
|
this.sendMessage = this.sendMessage.bind(this)
|
||||||
this.deleteMessage = this.deleteMessage.bind(this)
|
this.deleteMessage = this.deleteMessage.bind(this)
|
||||||
this.fetchMessageHistory = this.fetchMessageHistory.bind(this)
|
this.fetchMessageHistory = this.fetchMessageHistory.bind(this)
|
||||||
|
this.revalidateConvo = this.revalidateConvo.bind(this)
|
||||||
this.ingestFirehose = this.ingestFirehose.bind(this)
|
this.ingestFirehose = this.ingestFirehose.bind(this)
|
||||||
this.onFirehoseConnect = this.onFirehoseConnect.bind(this)
|
this.onFirehoseConnect = this.onFirehoseConnect.bind(this)
|
||||||
this.onFirehoseError = this.onFirehoseError.bind(this)
|
this.onFirehoseError = this.onFirehoseError.bind(this)
|
||||||
@@ -148,6 +149,7 @@ export class Convo {
|
|||||||
deleteMessage: undefined,
|
deleteMessage: undefined,
|
||||||
sendMessage: undefined,
|
sendMessage: undefined,
|
||||||
fetchMessageHistory: undefined,
|
fetchMessageHistory: undefined,
|
||||||
|
revalidateConvo: undefined,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
case ConvoStatus.Suspended:
|
case ConvoStatus.Suspended:
|
||||||
@@ -164,6 +166,7 @@ export class Convo {
|
|||||||
deleteMessage: this.deleteMessage,
|
deleteMessage: this.deleteMessage,
|
||||||
sendMessage: this.sendMessage,
|
sendMessage: this.sendMessage,
|
||||||
fetchMessageHistory: this.fetchMessageHistory,
|
fetchMessageHistory: this.fetchMessageHistory,
|
||||||
|
revalidateConvo: this.revalidateConvo,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
case ConvoStatus.Error: {
|
case ConvoStatus.Error: {
|
||||||
@@ -178,6 +181,7 @@ export class Convo {
|
|||||||
deleteMessage: undefined,
|
deleteMessage: undefined,
|
||||||
sendMessage: undefined,
|
sendMessage: undefined,
|
||||||
fetchMessageHistory: undefined,
|
fetchMessageHistory: undefined,
|
||||||
|
revalidateConvo: undefined,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
default: {
|
default: {
|
||||||
@@ -192,6 +196,7 @@ export class Convo {
|
|||||||
deleteMessage: undefined,
|
deleteMessage: undefined,
|
||||||
sendMessage: undefined,
|
sendMessage: undefined,
|
||||||
fetchMessageHistory: undefined,
|
fetchMessageHistory: undefined,
|
||||||
|
revalidateConvo: undefined,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -489,7 +494,7 @@ export class Convo {
|
|||||||
return this.pendingFetchConvo
|
return this.pendingFetchConvo
|
||||||
}
|
}
|
||||||
|
|
||||||
async refreshConvo() {
|
private async refreshConvo() {
|
||||||
try {
|
try {
|
||||||
const {convo, sender, recipients} = await this.fetchConvo()
|
const {convo, sender, recipients} = await this.fetchConvo()
|
||||||
// throw new Error('UNCOMMENT TO TEST REFRESH FAILURE')
|
// throw new Error('UNCOMMENT TO TEST REFRESH FAILURE')
|
||||||
@@ -512,6 +517,20 @@ export class Convo {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async revalidateConvo() {
|
||||||
|
try {
|
||||||
|
const {convo, sender, recipients} = await this.fetchConvo()
|
||||||
|
// throw new Error('UNCOMMENT TO TEST REFRESH FAILURE')
|
||||||
|
this.convo = convo || this.convo
|
||||||
|
this.sender = sender || this.sender
|
||||||
|
this.recipients = recipients || this.recipients
|
||||||
|
} catch (e: any) {
|
||||||
|
logger.error(e, {context: `Convo: failed to revalidate convo`})
|
||||||
|
} finally {
|
||||||
|
this.commit()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
async fetchMessageHistory() {
|
async fetchMessageHistory() {
|
||||||
logger.debug('Convo: fetch message history', {}, logger.DebugContext.convo)
|
logger.debug('Convo: fetch message history', {}, logger.DebugContext.convo)
|
||||||
|
|
||||||
|
|||||||
@@ -124,6 +124,7 @@ export type ConvoStateUninitialized = {
|
|||||||
deleteMessage: undefined
|
deleteMessage: undefined
|
||||||
sendMessage: undefined
|
sendMessage: undefined
|
||||||
fetchMessageHistory: undefined
|
fetchMessageHistory: undefined
|
||||||
|
revalidateConvo: undefined
|
||||||
}
|
}
|
||||||
export type ConvoStateInitializing = {
|
export type ConvoStateInitializing = {
|
||||||
status: ConvoStatus.Initializing
|
status: ConvoStatus.Initializing
|
||||||
@@ -136,6 +137,7 @@ export type ConvoStateInitializing = {
|
|||||||
deleteMessage: undefined
|
deleteMessage: undefined
|
||||||
sendMessage: undefined
|
sendMessage: undefined
|
||||||
fetchMessageHistory: undefined
|
fetchMessageHistory: undefined
|
||||||
|
revalidateConvo: undefined
|
||||||
}
|
}
|
||||||
export type ConvoStateReady = {
|
export type ConvoStateReady = {
|
||||||
status: ConvoStatus.Ready
|
status: ConvoStatus.Ready
|
||||||
@@ -148,6 +150,7 @@ export type ConvoStateReady = {
|
|||||||
deleteMessage: DeleteMessage
|
deleteMessage: DeleteMessage
|
||||||
sendMessage: SendMessage
|
sendMessage: SendMessage
|
||||||
fetchMessageHistory: FetchMessageHistory
|
fetchMessageHistory: FetchMessageHistory
|
||||||
|
revalidateConvo: () => void
|
||||||
}
|
}
|
||||||
export type ConvoStateBackgrounded = {
|
export type ConvoStateBackgrounded = {
|
||||||
status: ConvoStatus.Backgrounded
|
status: ConvoStatus.Backgrounded
|
||||||
@@ -160,6 +163,7 @@ export type ConvoStateBackgrounded = {
|
|||||||
deleteMessage: DeleteMessage
|
deleteMessage: DeleteMessage
|
||||||
sendMessage: SendMessage
|
sendMessage: SendMessage
|
||||||
fetchMessageHistory: FetchMessageHistory
|
fetchMessageHistory: FetchMessageHistory
|
||||||
|
revalidateConvo: () => void
|
||||||
}
|
}
|
||||||
export type ConvoStateSuspended = {
|
export type ConvoStateSuspended = {
|
||||||
status: ConvoStatus.Suspended
|
status: ConvoStatus.Suspended
|
||||||
@@ -172,6 +176,7 @@ export type ConvoStateSuspended = {
|
|||||||
deleteMessage: DeleteMessage
|
deleteMessage: DeleteMessage
|
||||||
sendMessage: SendMessage
|
sendMessage: SendMessage
|
||||||
fetchMessageHistory: FetchMessageHistory
|
fetchMessageHistory: FetchMessageHistory
|
||||||
|
revalidateConvo: () => void
|
||||||
}
|
}
|
||||||
export type ConvoStateError = {
|
export type ConvoStateError = {
|
||||||
status: ConvoStatus.Error
|
status: ConvoStatus.Error
|
||||||
@@ -184,6 +189,7 @@ export type ConvoStateError = {
|
|||||||
deleteMessage: undefined
|
deleteMessage: undefined
|
||||||
sendMessage: undefined
|
sendMessage: undefined
|
||||||
fetchMessageHistory: undefined
|
fetchMessageHistory: undefined
|
||||||
|
revalidateConvo: undefined
|
||||||
}
|
}
|
||||||
export type ConvoState =
|
export type ConvoState =
|
||||||
| ConvoStateUninitialized
|
| ConvoStateUninitialized
|
||||||
|
|||||||
Reference in New Issue
Block a user