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
8 changes: 8 additions & 0 deletions 05-node/00-basic files for all/dist/server.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const express_1 = __importDefault(require("express"));
const app = express_1.default();
const port = process.env.PORT || 3000;
3 changes: 3 additions & 0 deletions 05-node/00-basic files for all/server.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import express from "express"
const app = express()
const port = process.env.PORT || 3000
24 changes: 24 additions & 0 deletions 05-node/05-Routes/class puzzel/tamar_grop/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{
"name": "example",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"build": "tsc",
"dev": "nodemon server.ts",
"start": "node dist/server.js",
"update": "npm install -g npm-check-updates && ncu -u && npm install"
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
"nodemon": "^3.0.1",
"ts-node": "^10.9.1",
"typescript": "^5.1.6"
},
"dependencies": {
"express": "^4.18.2"
}
}
Empty file.
11 changes: 11 additions & 0 deletions 05-node/05-Routes/class puzzel/tamar_grop/tsconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"compilerOptions": {
"module": "commonjs",
"esModuleInterop": true,
"target": "es6",
"moduleResolution": "node",
"sourceMap": true,
"outDir": "dist"
},
"lib": ["es2015"]
}
56 changes: 56 additions & 0 deletions 05-node/05-Routes/example/API/users/dist/userCont.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
"use strict";
exports.__esModule = true;
exports.updateUser = exports.deleteUser = exports.getUsers = exports.addUser = void 0;
var userModel_1 = require("./userModel");
var users = [
new userModel_1.User({ name: "test", phoneNum: "052-5381648", imgUrl: "bla" })
];
//add user controler
exports.addUser = function (req, res) {
var user = req.body;
console.log(user);
//add to users array
users.push(new userModel_1.User(user)); // --> add to Database
console.log(users);
res.send({ user: user });
};
//get users
exports.getUsers = function (req, res) {
try {
res.send({ users: users });
}
catch (error) {
console.error(error);
}
};
exports.deleteUser = function (req, res) {
try {
var id_1 = req.body.id;
console.log(id_1);
if (!id_1)
throw new Error("there is no id");
users = users.filter(function (user) { return user.id !== id_1; }); //delete from the array
res.send({ users: users });
}
catch (error) {
console.error(error);
res.send({ error: error });
}
};
exports.updateUser = function (req, res) {
try {
var _a = req.body, phoneNum = _a.phoneNum, id_2 = _a.id;
console.log(req.body);
if (!phoneNum || !id_2)
throw new Error("Please complete all fields");
var user = users.find(function (user) { return user.id === id_2; });
if (!user)
throw new Error("user not found");
user.phoneNum = phoneNum;
res.send({ users: users });
}
catch (error) {
console.error(error);
res.send({ error: error });
}
};
14 changes: 14 additions & 0 deletions 05-node/05-Routes/example/API/users/dist/userModel.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
"use strict";
exports.__esModule = true;
exports.User = void 0;
var User = /** @class */ (function () {
function User(_a) {
var name = _a.name, phoneNum = _a.phoneNum, imgUrl = _a.imgUrl;
this.name = name;
this.phoneNum = phoneNum;
this.imgUrl = imgUrl;
this.id = Math.random().toString();
}
return User;
}());
exports.User = User;
10 changes: 10 additions & 0 deletions 05-node/05-Routes/example/API/users/dist/userRouter.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
"use strict";
exports.__esModule = true;
var express_1 = require("express");
var userCont_1 = require("./userCont");
var router = express_1["default"].Router();
router
.get('/get-users', userCont_1.getUsers)
.post("/add-user", userCont_1.addUser)["delete"]("/delete-user", userCont_1.deleteUser)
.patch('/update-user', userCont_1.updateUser);
exports["default"] = router;
54 changes: 54 additions & 0 deletions 05-node/05-Routes/example/API/users/userCont.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
import { User } from "./userModel";

let users: User[] = [
new User({name:"test", phoneNum:"052-5381648", imgUrl:"bla"})
];

//add user controler
export const addUser = (req: any, res: any) => {
const user: User = req.body;
console.log(user);
//add to users array
users.push(new User(user)); // --> add to Database
console.log(users);
res.send({ user });
}

//get users
export const getUsers = (req, res) => {
try {
res.send({ users });
} catch (error) {
console.error(error);
}
}

export const deleteUser = (req, res) => {
try {
const { id } = req.body;
console.log(id);
if (!id) throw new Error("there is no id");

users = users.filter((user) => user.id !== id); //delete from the array
res.send({ users });
} catch (error) {
console.error(error);
res.send({ error });
}
}

export const updateUser = (req: any, res: any) => {
try {
const { phoneNum, id } = req.body;
console.log(req.body);
if (!phoneNum || !id) throw new Error("Please complete all fields");
const user = users.find((user) => user.id === id);

if (!user) throw new Error("user not found");
user.phoneNum = phoneNum;
res.send({ users });
} catch (error) {
console.error(error);
res.send({ error });
}
}
12 changes: 12 additions & 0 deletions 05-node/05-Routes/example/API/users/userModel.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
export class User {
name: string;
phoneNum: string;
imgUrl: string;
id: string;
constructor({ name, phoneNum, imgUrl }: {name:string, phoneNum:string, imgUrl:string}) {
this.name = name;
this.phoneNum = phoneNum;
this.imgUrl = imgUrl;
this.id = Math.random().toString();
}
}
13 changes: 13 additions & 0 deletions 05-node/05-Routes/example/API/users/userRouter.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import express from 'express'
import { getUsers, addUser, deleteUser, updateUser } from './userCont';
const router = express.Router();


router
.get('/get-users', getUsers)
.post("/add-user", addUser)
.delete("/delete-user", deleteUser)
.patch('/update-user', updateUser)


export default router;
24 changes: 24 additions & 0 deletions 05-node/05-Routes/example/dist/server.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const express_1 = __importDefault(require("express"));
const app = express_1.default();
const port = process.env.PORT || 3000;
//static files
app.use(express_1.default.static("public"));
//body
app.use(express_1.default.json());
//router to products
// get router from productsRouter
const productsRouter_1 = __importDefault(require("./API/products/productsRouter"));
//tells express to use proudctsRouter on the intial route "/API/products"
app.use("/API/products", productsRouter_1.default);
// get router from userRouter
const userRouter_1 = __importDefault(require("./API/users/userRouter"));
//tells express to use userRouter on the intial route "/API/users"
app.use("/API/users", userRouter_1.default);
app.listen(port, () => {
console.log(`Example app listening on port ${port}`);
});
90 changes: 89 additions & 1 deletion 05-node/05-Routes/example/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions 05-node/05-Routes/example/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
"author": "",
"license": "ISC",
"devDependencies": {
"@types/express": "^4.17.17",
"nodemon": "^3.0.1",
"ts-node": "^10.9.1",
"typescript": "^5.1.6"
Expand Down
2 changes: 1 addition & 1 deletion 05-node/05-Routes/example/public/dist/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ function getproducts() {
}
function renderProductHTML(product) {
try {
var html = "<div class=\"product\">\n <img src=\"" + product.imgUrl + "\" />\n <h3>" + product.title + "</h3>\n <p>Price: " + product.price + "</p>\n <form id=\"" + product.id + "\" onsubmit=\"handleUpdateProduct(event)\"><input type=\"number\" name=\"price\" value=\"" + product.price + "\" placeholder=\"Price\" /><button type=\"submit\">Update</button></form>\n <button onclick=\"handleDeleteProduct('" + product.id + "')\">Delete</button>\n </div>";
var html = "<div class=\"product\">\n <img src=\"" + product.imgUrl + "\" />\n <h3>" + product.title + "</h3>\n <p>Price: " + product.price + "</p>\n <form id=\"" + product.id + "\" onsubmit=\"handleUpdateProduct(event)\">\n <input type=\"number\" name=\"price\" value=\"" + product.price + "\" placeholder=\"Price\" />\n <button type=\"submit\">Update</button>\n </form>\n <button onclick=\"handleDeleteProduct('" + product.id + "')\">Delete</button>\n </div>";
return html;
}
catch (error) {
Expand Down
5 changes: 5 additions & 0 deletions 05-node/05-Routes/example/public/dist/user.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
function handleGetUser() {
var toHtml = document.querySelector('#userRoot');
var html = "\n <h2>Add User</h2>\n <form onsubmit=\"handleAddUser(event)\">\n <input type=\"text\" name=\"name\" placeholder=\"user name\">\n <input type=\"number\" name='phoneNum' placeholder=\"phoneNum\">\n <input type=\"url\" name=\"imgUrl\" placeholder=\"Image URL\">\n <button type=\"submit\">ADD</button>\n </form>";
toHtml.innerHTML += html;
}
4 changes: 4 additions & 0 deletions 05-node/05-Routes/example/public/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -20,5 +20,9 @@ <h2>Add Product</h2>

<button onclick="handleGetProducts()">GET Products</button>
<div id="root"></div>
<!--user-->
<button onclick="handleGetUser()">ADD USER</button>
<div id="userRoot"></div>

</body>
</html>
5 changes: 4 additions & 1 deletion 05-node/05-Routes/example/public/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,10 @@ function renderProductHTML(product: Product) {
<img src="${product.imgUrl}" />
<h3>${product.title}</h3>
<p>Price: ${product.price}</p>
<form id="${product.id}" onsubmit="handleUpdateProduct(event)"><input type="number" name="price" value="${product.price}" placeholder="Price" /><button type="submit">Update</button></form>
<form id="${product.id}" onsubmit="handleUpdateProduct(event)">
<input type="number" name="price" value="${product.price}" placeholder="Price" />
<button type="submit">Update</button>
</form>
<button onclick="handleDeleteProduct('${product.id}')">Delete</button>
</div>`
return html;
Expand Down
Loading