Skip to content

Instantly share code, notes, and snippets.

@dayhaysoos
Created March 1, 2022 19:52
Show Gist options
  • Save dayhaysoos/ffc2dda1b6b12c88f1e9cde9c8629fb7 to your computer and use it in GitHub Desktop.
Save dayhaysoos/ffc2dda1b6b12c88f1e9cde9c8629fb7 to your computer and use it in GitHub Desktop.
const AWS = require('aws-sdk')
const faker = require('@faker-js/faker').faker
const docClient = new AWS.DynamoDB.DocumentClient({
accessKeyId: process.env.DYNAMO_ACCESS_KEY,
secretAccessKey: process.env.DYNAMO_SECRET_KEY,
region: process.env.REGION,
params: {
TableName: process.env.TABLE_NAME
}
})
function selectRandomElement(arr) {
const result = arr[Math.floor(Math.random() * arr.length)]
return result
}
function createMockData(numOfItems) {
if (numOfItems > 25) numOfItems = 25
let items = []
for (let i = 0; i < numOfItems; i++) {
let candidate = {
PutRequest: {
Item: {
linkedin: 'https://linkedin.com/in/ndejesus1227',
preferred_contact_method: 'E-mail',
contributions: [
{
value: "I've built a recruiting platform",
text: ''
},
{
value: 'I am an open source maintainer',
text: ''
},
{
value: "I've lead projects",
text: ''
}
],
email: 'ndejesus1227@gmail.com',
country: 'United States',
state: 'MA',
city: 'Roslindale',
location_preference: 'Remote',
resume: {
bucket: 'btpresume204410-dev',
region: 'us-east-1',
key: 'resume/1bf2afc2-12c0-424d-a397-8a6337813927/baby goat.jpeg'
},
phone: '6179108710',
disability_assistance: '',
open_to_relocation: 'No',
preferred_work_type: 'Contract',
years_of_exp: 5,
last_name: 'DeJesus',
first_name: 'Nick',
username: 'candidatenick3',
skills: [
'JavaScript',
'Redux',
'React',
'AWS',
'Amplify',
'DynamoDB',
'MongoDB',
'Firebase',
'Next.js',
'Prismic',
'Jamstack',
'Testing'
],
seeking_opportunity: '',
visa_assistance: 'No'
}
}
// PutRequest: {
// Item: {
// username: `${faker.name.firstName()}${faker.name.lastName()}`,
// first_name: faker.name.firstName(),
// last_name: faker.name.lastName(),
// email: faker.internet.email(),
// phone: '8575555555',
// country: faker.address.country(),
// state: faker.address.state(),
// city: faker.address.city(),
// preferred_contact_method: selectRandomElement([
// 'Phone',
// 'E-mail',
// 'Either'
// ]),
// seeking_opportunity: selectRandomElement(['Yes', 'No']),
// location_preference: selectRandomElement([
// 'Remote',
// 'On Site',
// 'Either'
// ]),
// open_to_relocation: selectRandomElement(['Yes', 'No']),
// year_of_exp: 5,
// skills: [
// selectRandomElement(['JavaScript', 'Redux', 'AWS', 'Stripe']),
// selectRandomElement(['Mongo', 'DynamoDB', 'Supabase', 'Firebase'])
// ],
// linkedin: 'https://linkedin.com/in/ndejesus1227',
// contributions: [
// {
// text: '',
// value: selectRandomElement([
// 'Very awesome individual',
// 'FE developer at big tech start ups',
// 'Made an app for gaming community',
// 'Really good at leading projects'
// ])
// },
// {
// text: '',
// value: selectRandomElement([
// 'I did amazing things',
// "I'm literally great",
// 'The best CTO ever',
// 'Open Source Maintainer'
// ])
// }
// ]
// }
// }
}
items.push(candidate)
}
return items
}
export default async function handler(req, res) {
const result = await docClient
.batchWrite({
RequestItems: {
[process.env.TABLE_NAME]: createMockData(1)
}
})
.promise()
res.status(200).json(result)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment