Skip to content

Instantly share code, notes, and snippets.

@vedranjukic
vedranjukic / userRepositoryDynamoDB.js
Last active December 14, 2017 23:21
User repository DynamoDB adapter factory
export default client => {
const create = user => {
return new Promise((resolve, reject) => {
client.put({
TableName: 'users',
Item: user
}, (err, data) => {
if (err) {
return reject(err)
}
@vedranjukic
vedranjukic / deepstreamExample.js
Last active December 23, 2017 18:47
websocket implementation using deepstream client
//
// websocket implementation using deepstream client
//
const db = new Db('testdb')
const ds = deepstream( '<DEEPSTREAM SERVER URL>' )
ds.login()
const userRepository = UserRepositoryMongo(db)
@vedranjukic
vedranjukic / updateUser.js
Created December 23, 2017 19:00
Email service interface
//
// Email service interface implemented
//
async function updateUser ({userRepository, emailService, updateParams}) {
const { userId, userName, userEmail } = updateParams
// validate params
if (!userId || !userName || !userEmail) {
throw new InvalidParamsException('Missing required params')
}
@vedranjukic
vedranjukic / emailServiceSES.js
Created December 23, 2017 19:06
Email service SES adapter factory
export default ses => {
const send = params => {
return new Promise((resolve, reject) => {
const params = {
Destination: {
ToAddresses: [params.to]
},
Message: {
Body: {
Text: {
@vedranjukic
vedranjukic / userController.js
Last active December 29, 2017 13:46
Implemented EmailServiceSES adapter
//
// Express controller
// EmailServiceSES adapter
//
router.put('/user', async (req, res) => {
const conn = req.conn
// ses - aws ses instance (AWS.SES)
const ses = req.ses
const { userId, userName, userEmail } = req.body