Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions client
Submodule client added at 721845
3 changes: 3 additions & 0 deletions server/.env-raw
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
PORT=
URL=
SECREAT_KEY=
2 changes: 2 additions & 0 deletions server/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
node_modules
.env
19 changes: 19 additions & 0 deletions server/Routers/activity.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
"use strict";

const activity = require("express").Router();
const activityController = require("../controllers/activity");
const auth = require("../middlewares/authentication");

//subject
activity.post("/subject", auth, activityController.subjectAdd);
activity.get("/subject", auth, activityController.subjectGet);
activity.post("/subject", auth, activityController.subjectChange);

activity.post("/upcomingexam", auth, activityController.upcomingexam);
activity.post("/seminar", auth, activityController.seminar);
activity.post("/workshop", auth, activityController.workshop);
activity.post("/competition", auth, activityController.competition);

activity.get("/subject", auth, activityController.subjectGet);

module.exports = activity;
10 changes: 10 additions & 0 deletions server/Routers/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
"use stroct";

const mainRouter = require("express").Router();
const userRouter = require("./user");
const activity = require("./activity");

mainRouter.use(userRouter);
mainRouter.use(activity);

module.exports = mainRouter;
63 changes: 63 additions & 0 deletions server/Routers/user.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
"use strict";

const multer = require("multer");
const path = require("path");
const user = require("express").Router();
const userController = require("../controllers/user");
const userModel = require("../models/user");
const auth = require("../middlewares/authentication");

const storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, `./public/upload`);
},

filename: function (req, file, cb) {
cb(
null,
path.parse(file.originalname).name +
"-" +
Date.now() +
path.extname(file.originalname)
);
},
});

const upload = multer({
storage: storage,
limits: {
fileSize: 1024 * 1024 * 2,
},
});

user.post("/users/register", userController.reg);
user.post("/users/login", userController.log);
user.post("/users/update", auth, userController.update);
user.patch(
"/users/upload",
auth,
upload.single("picture"),
async (req, res, next) => {
const currentUser = req.currentUser;
let finalUrlImage =
"http://localhost:8888" + "/upload/" + req.file.filename;
const user = await userModel.findOne({ _id: currentUser._id });
if (!user) {
next({ code: 404, message: "User tidak ditemukan" });
}

const avatar = await userModel.updateOne(
{ _id: currentUser._id },
{
$set: { avatar: req.file.filename },
}
);

res.status(200).json({
status: "success",
image: "http://localhost:8888/upload/" + user.avatar,
});
}
);

module.exports = user;
181 changes: 181 additions & 0 deletions server/controllers/activity.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,181 @@
"use strict";

const userModel = require("../models/user");

class activity {
//subject
static subjectAdd = async (req, res, next) => {
try {
const currentUser = req.currentUser;
const data = req.body;

const user = await userModel.findOne({ _id: currentUser._id });

if (!user) {
next({ code: 404, message: "User Not Found" });
return;
}

const lastdata = [...user.activity.subject];

const update = await userModel.updateOne(
{ _id: user._id },
{ $set: { "activity.subject": [...user.activity.subject, data] } }
);

res.status(200).json({ message: "created" });
} catch (error) {
next(error);
}
};

static subjectGet = async (req, res, next) => {
try {
const currentUser = req.currentUser;

const user = await userModel.findOne({ _id: currentUser._id });

if (!user) {
next({ code: 404, message: "User Not Found" });
return;
}

res.status(200).json({ data: user.activity.subject });
} catch (error) {
next(error);
}
};

static subjectChange = async (req, res, next) => {
try {
const currentUser = req.currentUser;
const data = req.body;

const user = userModel.findOne({ _id: currentUser._id });
if (!user) {
next({ code: 404, message: "User Not Found" });
return;
}

let update = [];
user.activity.subject.map((sub) =>
sub.id === data.id ? [...update, data] : [...update, sub]
);

const newSubject = await userModel.findOne(
{ _id: currentUser._id },
{
$set: { "activity.subject": update },
}
);

res.status(200).json({
subject: update,
});
} catch (error) {
next(error);
}
};

static subjectDelete = async (req, res, next) => {
try {
const currentUser = req.currentUser;
} catch (error) {
next(error);
}
};

static upcomingexam = async (req, res, next) => {
try {
const currentUser = req.currentUser;
const exams = req.body;

const user = await userModel.findOne({ _id: currentUser._id });

if (!user) {
next({ code: 404, message: "User Not Found" });
return;
}

const update = await userModel.updateOne(
{ _id: currentUser._id },
{ $set: { "activity.upcomingexam": exams } }
);

res.status(200).json({ update });
} catch (error) {
next(error);
}
};

static seminar = async (req, res, next) => {
try {
const currentUser = req.currentUser;
const seminars = req.body;

const user = await userModel.findOne({ _id: currentUser._id });

if (!user) {
next({ code: 404, message: "User Not Found" });
return;
}

const update = await userModel.updateOne(
{ _id: currentUser._id },
{ $set: { "activity.seminar": seminars } }
);

res.status(200).json({ update });
} catch (error) {
next(error);
}
};

static workshop = async (req, res, next) => {
try {
const currentUser = req.currentUser;
const workshops = req.body;

const user = await userModel.findOne({ _id: currentUser._id });

if (!user) {
next({ code: 404, message: "User Not Found" });
return;
}

const update = await userModel.updateOne(
{ _id: currentUser._id },
{ $set: { "activity.workshop": workshops } }
);

res.status(200).json({ update });
} catch (error) {
next(error);
}
};

static competition = async (req, res, next) => {
try {
const currentUser = req.currentUser;
const competitions = req.body;

const user = await userModel.findOne({ _id: currentUser._id });

if (!user) {
next({ code: 404, message: "User Not Found" });
return;
}

const update = await userModel.updateOne(
{ _id: currentUser._id },
{ $set: { "activity.competition": competitions } }
);

res.status(200).json({ update });
} catch (error) {
next(error);
}
};
}

module.exports = activity;
Loading