提交 b277ecbb 编写于 作者: Huan (李卓桓)'s avatar Huan (李卓桓)

refactoring FriendRequestPayload to use id instead of the instance

上级 82c5f729
...@@ -39,10 +39,10 @@ export enum FriendRequestType { ...@@ -39,10 +39,10 @@ export enum FriendRequestType {
} }
export interface FriendRequestPayload { export interface FriendRequestPayload {
contact? : Contact, contactId? : string,
hello? : string, hello? : string,
ticket? : string ticket? : string
type? : FriendRequestType, type? : FriendRequestType,
} }
/** /**
...@@ -69,8 +69,8 @@ export class FriendRequest extends PuppetAccessory { ...@@ -69,8 +69,8 @@ export class FriendRequest extends PuppetAccessory {
) )
const sentRequest = new this({ const sentRequest = new this({
type: FriendRequestType.Send, type : FriendRequestType.Send,
contact, contactId : contact.id,
hello, hello,
}) })
...@@ -85,8 +85,8 @@ export class FriendRequest extends PuppetAccessory { ...@@ -85,8 +85,8 @@ export class FriendRequest extends PuppetAccessory {
) )
const confirmedRequest = new this({ const confirmedRequest = new this({
type: FriendRequestType.Confirm, type : FriendRequestType.Confirm,
contact, contactId : contact.id,
}) })
return confirmedRequest return confirmedRequest
...@@ -104,8 +104,8 @@ export class FriendRequest extends PuppetAccessory { ...@@ -104,8 +104,8 @@ export class FriendRequest extends PuppetAccessory {
) )
const receivedRequest = new this({ const receivedRequest = new this({
type: FriendRequestType.Receive, type : FriendRequestType.Receive,
contact, contactId : contact.id,
hello, hello,
ticket, ticket,
}) })
...@@ -139,15 +139,15 @@ export class FriendRequest extends PuppetAccessory { ...@@ -139,15 +139,15 @@ export class FriendRequest extends PuppetAccessory {
public async send(): Promise<void> { public async send(): Promise<void> {
if (!this.payload) { if (!this.payload) {
throw new Error('no payload') throw new Error('no payload')
} else if (!this.payload.contact) { } else if (!this.payload.contactId) {
throw new Error('no contact') throw new Error('no contact')
} else if (this.payload.type !== FriendRequest.Type.Send) { } else if (this.payload.type !== FriendRequest.Type.Send) {
throw new Error('not a send request') throw new Error('not a send request')
} }
log.verbose('PuppeteerFriendRequest', 'send() to %s', this.payload.contact) log.verbose('PuppeteerFriendRequest', 'send() to %s', this.payload.contactId)
await this.puppet.friendRequestSend( await this.puppet.friendRequestSend(
this.payload.contact.id, this.payload.contactId,
this.payload.hello, this.payload.hello,
) )
} }
...@@ -155,16 +155,16 @@ export class FriendRequest extends PuppetAccessory { ...@@ -155,16 +155,16 @@ export class FriendRequest extends PuppetAccessory {
public async accept(): Promise<void> { public async accept(): Promise<void> {
if (!this.payload) { if (!this.payload) {
throw new Error('no payload') throw new Error('no payload')
} else if (!this.payload.contact) { } else if (!this.payload.contactId) {
throw new Error('no contact') throw new Error('no contactId')
} else if (!this.payload.ticket) { } else if (!this.payload.ticket) {
throw new Error('no ticket') throw new Error('no ticket')
} else if (this.payload.type !== FriendRequest.Type.Receive) { } else if (this.payload.type !== FriendRequest.Type.Receive) {
throw new Error('not a receive request, its a ' + FriendRequest.Type[this.payload.type!]) throw new Error('not a receive request, its a ' + FriendRequest.Type[this.payload.type!])
} }
log.verbose('FriendRequest', 'accept() to %s', this.payload.contact) log.verbose('FriendRequest', 'accept() to %s', this.payload.contactId)
await this.puppet.friendRequestAccept(this.payload.contact.id, this.payload.ticket) await this.puppet.friendRequestAccept(this.payload.contactId, this.payload.ticket)
const max = 20 const max = 20
const backoff = 300 const backoff = 300
...@@ -202,10 +202,12 @@ export class FriendRequest extends PuppetAccessory { ...@@ -202,10 +202,12 @@ export class FriendRequest extends PuppetAccessory {
public contact(): Contact { public contact(): Contact {
if (!this.payload) { if (!this.payload) {
throw new Error('no payload') throw new Error('no payload')
} else if (!this.payload.contact) { } else if (!this.payload.contactId) {
throw new Error('no contact') throw new Error('no contact')
} }
return this.payload.contact
const contact = this.puppet.Contact.load(this.payload.contactId)
return contact
} }
public async reject(): Promise<void> { public async reject(): Promise<void> {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册