From 2392b19cc235764103df0f555553bf9fcfe5aea1 Mon Sep 17 00:00:00 2001 From: sourabhmodi20051 Date: Mon, 26 Aug 2019 14:44:52 +0530 Subject: [PATCH 1/3] Adds filter options to selectContacts and selectContact in SDK Issue #453 --- packages/launcher/src/main/rpc/app.js | 11 ++++++++++- packages/sdk/src/apis/Contacts.js | 10 ++++++---- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/packages/launcher/src/main/rpc/app.js b/packages/launcher/src/main/rpc/app.js index d382ba03..818d3ce5 100644 --- a/packages/launcher/src/main/rpc/app.js +++ b/packages/launcher/src/main/rpc/app.js @@ -213,7 +213,10 @@ export const sandboxed = { contacts_select: withPermission( 'CONTACTS_READ', - async (ctx: AppContext, params: { multi?: boolean }) => { + async ( + ctx: AppContext, + params: { multi?: boolean, options?: { withWallet?: boolean } }, + ) => { const res = await ctx.trustedRPC.request('user_request', { key: 'CONTACTS_SELECT', params: { CONTACTS_SELECT: params }, @@ -242,6 +245,12 @@ export const sandboxed = { userID, contactIDs: ids, }) + if (params.options && params.options.withWallet) { + const filteredContacts = contactsRes.contacts.filter(contact => + contact.data.profile.ethAddress + ) + return filteredContacts + } return contactsRes.contacts }, ), diff --git a/packages/sdk/src/apis/Contacts.js b/packages/sdk/src/apis/Contacts.js index 654c2785..639586a3 100644 --- a/packages/sdk/src/apis/Contacts.js +++ b/packages/sdk/src/apis/Contacts.js @@ -4,12 +4,14 @@ import ClientAPIs from '../ClientAPIs' import type { ContactID, Contact } from '../types' export default class ContactsAPIs extends ClientAPIs { - async selectContacts(): Promise> { - return this._rpc.request('contacts_select', { multi: true }) + async selectContacts(options?: { + withWallet?: boolean, + }): Promise> { + return this._rpc.request('contacts_select', { multi: true, options }) } - async selectContact(): Promise { - const contacts = await this._rpc.request('contacts_select', {}) + async selectContact(options?: { withWallet?: boolean }): Promise { + const contacts = await this._rpc.request('contacts_select', { options }) if (contacts && contacts.length) { return contacts[0] } From 97a645e45262715d988bb57ec57913345bee242c Mon Sep 17 00:00:00 2001 From: sourabhmodi20051 Date: Mon, 26 Aug 2019 15:02:12 +0530 Subject: [PATCH 2/3] Update arrow function to single line --- packages/launcher/src/main/rpc/app.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/launcher/src/main/rpc/app.js b/packages/launcher/src/main/rpc/app.js index 818d3ce5..095c8c4e 100644 --- a/packages/launcher/src/main/rpc/app.js +++ b/packages/launcher/src/main/rpc/app.js @@ -246,9 +246,7 @@ export const sandboxed = { contactIDs: ids, }) if (params.options && params.options.withWallet) { - const filteredContacts = contactsRes.contacts.filter(contact => - contact.data.profile.ethAddress - ) + const filteredContacts = contactsRes.contacts.filter(contact => contact.data.profile.ethAddress) return filteredContacts } return contactsRes.contacts From e7d0d7f16b88d30debbde56611451d430adb03d7 Mon Sep 17 00:00:00 2001 From: sourabhmodi20051 Date: Mon, 26 Aug 2019 15:21:11 +0530 Subject: [PATCH 3/3] eslint fix --- packages/launcher/src/main/rpc/app.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/launcher/src/main/rpc/app.js b/packages/launcher/src/main/rpc/app.js index 095c8c4e..890a80d7 100644 --- a/packages/launcher/src/main/rpc/app.js +++ b/packages/launcher/src/main/rpc/app.js @@ -246,7 +246,9 @@ export const sandboxed = { contactIDs: ids, }) if (params.options && params.options.withWallet) { - const filteredContacts = contactsRes.contacts.filter(contact => contact.data.profile.ethAddress) + const filteredContacts = contactsRes.contacts.filter( + contact => contact.data.profile.ethAddress, + ) return filteredContacts } return contactsRes.contacts