create org

This commit is contained in:
xfarrow 2023-10-13 11:47:53 +02:00
parent 190313f1b1
commit 0593b0fb01
2 changed files with 54 additions and 1 deletions

View File

@ -21,9 +21,14 @@ const port = process.env.API_SERVER_PORT;
// Middleware which parses JSON for POST requests
app.use(express.json());
// Register a Person
app.post('/blinkapi/register', api_controller.register);
// Login
app.post('/blinkapi/login', api_controller.login);
// Obtain Person's details
app.get('/blinkapi/person/:id', api_controller.verifyToken, api_controller.person);
// Create organization
app.post('/blinkapi/organization', api_controller.verifyToken, api_controller.organization);
// Start the server
app.listen(port, () => {

View File

@ -124,6 +124,53 @@ async function person(req, res){
}
}
// POST
async function organization(req, res){
const organizationData = req.body;
// Ensure that the required fields are present before proceeding
if (!organizationData.name) {
return res.status(400).json("Invalid request.");
}
try{
// Begin transaction
await db.tx(async (t) => {
// Inserting in the "Organization" table
const OrganizationInsertQuery = `
INSERT INTO "Organization" (name, location, description, is_hiring)
VALUES ($1, $2, $3, $4)
RETURNING *`;
const organizationResult = await t.one(OrganizationInsertQuery, [
organizationData.name,
organizationData.location,
organizationData.description,
organizationData.is_hiring
]);
// Inserting in the "OrganizationAdministrator" table
const OrganizationAdministratorInsertQuery = `
INSERT INTO "OrganizationAdministrator" (id_person, id_organization)
VALUES ($1, $2)`;
await t.none(OrganizationAdministratorInsertQuery, [
req.jwt.person_id,
organizationResult.id
]);
return res.status(200).json({ "Organization" : organizationResult});
});
}
catch (error){
console.error('Error inserting data:', error);
res.status(500).json("Internal server error");
}
}
// ======== END API ENDPOINTS ========
async function checkUserCredentials(email, password){
@ -178,5 +225,6 @@ module.exports = {
register,
login,
person,
verifyToken
verifyToken,
organization
};