PhoneDB
PhoneDB is a database backed by Redis to store user contact lists. It allows you to easily find which of a user's contacts are also registered with your app. PhoneDB validates phone numbers before they are added.
Installation
npm install phonedb
Run Redis server
Check out Redis quickstart to install for your platform, or use one of the many cloud providers.
A convenience script is provided for macOS default Homebrew Redis installs:
npm run redis-start
Usage
Require PhoneDB:
const PhoneDB = require('phonedb');
Initialize PhoneDB, connecting to a Redis client:
const phoneDB = new PhoneDB(redisClient);
Register a user's phone number with PhoneDB:
phoneDB.register('+14157775555');
Add a user's contacts:
const result = await phoneDB.addContacts(userId, ['+18473335555', '+12127775555']);
Get a user's contacts:
const contacts = await phoneDB.getContacts(userId);
Get a user's contacts who are also registered with PhoneDB (set registered = true
):
const registeredContacts = await phoneDB.getContacts(userId, true);
Get mutual contacts between two users:
const mutualContacts = await phoneDB.getMutualContacts(userId, otherUserId);
Get mutual contacts between two users who are registered:
const mutualRegisteredContacts = await phoneDB.getMutualContacts(userId, otherUserId, true);
Debugging
Add DEBUG=phonedb
to the node start script in package.json
to see debug output. i.e:
DEBUG=phonedb node server.js
Tests
npm install
npm test
npm run coverage