100 lines
1.8 KiB
JavaScript
100 lines
1.8 KiB
JavaScript
|
let STORE = {
|
||
|
posts: [],
|
||
|
users: [],
|
||
|
nextFreeUserId: 0,
|
||
|
nextFreePostId: 0
|
||
|
}
|
||
|
|
||
|
function resetStore() {
|
||
|
STORE = {
|
||
|
posts: [],
|
||
|
users: [],
|
||
|
nextFreeUserId: 1,
|
||
|
nextFreePostId: 1
|
||
|
};
|
||
|
|
||
|
addPost("IGCTF{BigTechWillnOtSiLenceUs}", 1);
|
||
|
addUser("moderator", "916027bd3a6e3d7131f98d9997db1931a146c2b97f2eb7de75b9bbfb9ed91fb432742e7aea628eafb5ad56027132f7b71fa0");
|
||
|
}
|
||
|
|
||
|
function createPost(body, by, id) {
|
||
|
return {
|
||
|
id,
|
||
|
by,
|
||
|
body
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function createUser(username, password, id) {
|
||
|
return {
|
||
|
username,
|
||
|
password,
|
||
|
id
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function addPost(body, by) {
|
||
|
STORE.posts.push(createPost(body, by, STORE.nextFreePostId))
|
||
|
STORE.nextFreePostId += 1
|
||
|
}
|
||
|
|
||
|
function addUser(username, password) {
|
||
|
STORE.users.push(createUser(username, password, STORE.nextFreeUserId))
|
||
|
STORE.nextFreeUserId += 1
|
||
|
}
|
||
|
|
||
|
function checkLogin(username, password) {
|
||
|
let found = false;
|
||
|
STORE.users.forEach((user) => {
|
||
|
if (user.username === username && user.password === password) {
|
||
|
found = user.id;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
return found;
|
||
|
}
|
||
|
|
||
|
function registerUser(username, password) {
|
||
|
let found = false;
|
||
|
STORE.users.forEach((user) => {
|
||
|
if (user.username == username) {
|
||
|
found = true;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
if (found) {
|
||
|
return "user already exists";
|
||
|
} else {
|
||
|
addUser(username, password);
|
||
|
return null;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function getPostsBy(userId) {
|
||
|
return STORE.posts.filter((post) => post.by === userId);
|
||
|
}
|
||
|
|
||
|
function getPostById(id) {
|
||
|
return STORE.posts.filter((post) => post.id == id)[0]
|
||
|
}
|
||
|
|
||
|
function isModerator(id) {
|
||
|
return id === 1;
|
||
|
}
|
||
|
|
||
|
function getAllPosts() {
|
||
|
return STORE.posts;
|
||
|
}
|
||
|
|
||
|
module.exports = {
|
||
|
resetStore,
|
||
|
addPost,
|
||
|
addUser,
|
||
|
checkLogin,
|
||
|
registerUser,
|
||
|
getPostsBy,
|
||
|
getPostById,
|
||
|
isModerator,
|
||
|
getAllPosts,
|
||
|
}
|