Skip to content

Instantly share code, notes, and snippets.

View oreoluwade's full-sized avatar

Oreoluwa Aboluwarin oreoluwade

View GitHub Profile

Keybase proof

I hereby claim:

  • I am oreoluwade on github.
  • I am oreoluwade (https://keybase.io/oreoluwade) on keybase.
  • I have a public key ASDQedWqAUAbzPshWwyzYANtZ7ZUKmVPNuB-lnPVfmt7oAo

To claim this, I am signing this object:

@oreoluwade
oreoluwade / server.js
Last active July 12, 2019 16:39
Express app that runs the application
const express = require('express');
const logger = require('morgan');
const mongoose = require('mongoose');
const dotenv = require('dotenv');
const userRoutes = require('./user.route');
dotenv.config();
const app = express();
@oreoluwade
oreoluwade / user.route.js
Last active July 12, 2019 16:40
User Route
const express = require('express');
const multer = require('multer');
const UserController = require('./user.controller');
const { signup } = UserController;
const router = express.Router();
router.route('/signup').post(
multer({ dest: 'temp/', limits: { fieldSize: 8 * 1024 * 1024 } }).fields([
@oreoluwade
oreoluwade / user.schema.js
Last active July 12, 2019 16:40
Mongoose schema for users
const mongoose = require('mongoose');
const UserSchema = new mongoose.Schema({
email: {
type: String,
required: true,
unique: true
},
firstname: {
type: String
@oreoluwade
oreoluwade / user.controller.js
Last active July 12, 2019 21:00
Handles the crud operation for users
const Users = require('./user.schema');
const uploadToS3 = require('./upload-to-s3');
module.exports = {
signup(req, res) {
let userRequestObject = req.body;
// The actual create user operation abstracted to be used in the different possible scenarios
const createUser = () =>
Users.create(userRequestObject).then(user => {
@oreoluwade
oreoluwade / check-multer-params.js
Last active July 12, 2019 16:41
Checks the type and number of files we intend to upload and returns a value based on the specific type
module.exports = input => {
let filePath;
let filename;
let storage = [];
switch (Array.isArray(input)) {
case true:
input.forEach(element => {
filePath = element.path;
filename = element.originalname;
@oreoluwade
oreoluwade / upload-to-s3.js
Last active July 12, 2019 16:42
Uploading an asset to an s3 bucket and getting back a URL
const aws = require('aws-sdk');
const dotenv = require('dotenv');
const fs = require('fs');
const checkMulterParams = require('./check-multer-params');
dotenv.config();
aws.config.setPromisesDependency();
aws.config.update({
accessKeyId: process.env.ACCESS_KEY_ID,