# UpSkillME lambda functions setup (updated)
Ensure you have the below headed files saved in src/functions
## To run locally
To run locally, run the below in terminal
export API_URL=https://api.airtable.com/v0/
export BASE_ID=*your BaseID*
export API_KEY=*your API key*
Then:
npm run lambda-build
npm run lambda-serve
## GetUserData.js
```
const axios = require("axios");
exports.handler = (event, context, callback) => {
console.log("this is the event2", event.queryStringParameters.email);
// console.log("this is the event3", event.queryStringParameters);
// console.log("this is the event", context);
// console.log("this is the event", event);
let parsedEmail = JSON.parse(event.queryStringParameters.email);
console.log("this is the one boys", parsedEmail);
const { API_URL, BASE_ID, API_KEY } = process.env;
const SEARCH_FILTER = `&filterByFormula={schoolEmail}=`;
const SEARCH_INPUT = `"${parsedEmail}"`;
const URL = `${API_URL}${BASE_ID}${API_KEY}${SEARCH_FILTER}${SEARCH_INPUT}`;
const send = body => {
console.log('about to send body', body)
callback(null, {
statusCode: 200,
headers: {
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Headers":
"Origin, X-Requested-With, Content-Type, Accept"
},
body: JSON.stringify(body)
});
};
const getUserData = () => {
axios
.get(URL)
.then(res => {
console.log('axios request ', res);
send(res.data);
})
.catch(err => send(err));
};
// if (event.httpMethod == "GET") {
console.log('about to make getUserData request')
console.log(URL);
getUserData();
// } else {
// console.error(`Expected get request, but recieved ${event.httpMethod}`);
// }
};
```
## CreateUserActivity.js
```
const axios = require("axios");
exports.handler = (event, context, callback) => {
const { API_URL, BASE_ID, API_KEY } = process.env;
const data = JSON.parse(event.queryStringParameters.activityData);
const URL = `${API_URL}${BASE_ID}${API_KEY}`;
const send = body => {
callback(null, {
statusCode: 200,
headers: {
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Headers":
"Origin, X-Requested-With, Content-Type, Accept"
},
body: JSON.stringify(body)
});
};
const createUserActivity = () => {
axios
.post(URL, data)
.then(res => send(res.data))
.catch(err => send(err));
};
// We expected this to be a post request, but it is a get request.
// Need to investigate why.
if (event.httpMethod == "GET") {
createUserActivity();
} else {
console.error(`Expected get request, but recieved ${event.httpMethod}`);
}
};
```
## APICall.js
```
const axios = require("axios");
exports.handler = (event, context, callback) => {
const { API_URL, BASE_ID, API_KEY } = process.env;
const URL = `${API_URL}${BASE_ID}${API_KEY}`;
const send = body => {
callback(null, {
statusCode: 200,
headers: {
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Headers":
"Origin, X-Requested-With, Content-Type, Accept"
},
body: JSON.stringify(body)
});
};
const getMockData = () => {
axios
.get(URL)
.then(res => send(res.data))
.catch(err => send(err));
};
if (event.httpMethod == "GET") {
getMockData();
} else {
console.error(`Expected get request, but recieved ${event.httpMethod}`);
}
};
```
### GetOpportunitiesData.js
```
const axios = require("axios");
exports.handler = (event, context, callback) => {
const { API_URL, OPPS_ID, API_KEY } = process.env;
const URL = `${API_URL}${OPPS_ID}${API_KEY}`;
const send = body => {
callback(null, {
statusCode: 200,
headers: {
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Headers":
"Origin, X-Requested-With, Content-Type, Accept"
},
body: JSON.stringify(body)
});
};
const getOppsData = () => {
axios
.get(URL)
.then(res => send(res.data))
.catch(err => send(err));
};
if (event.httpMethod == "GET") {
getOppsData();
} else {
console.error(`Expected get request, but recieved ${event.httpMethod}`);
}
};
```