Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

changed #5527

Open
wants to merge 234 commits into
base: master
Choose a base branch
from
Open

changed #5527

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
234 commits
Select commit Hold shift + click to select a range
b8d0b66
add
Kasia24 Jan 6, 2025
00c2ffa
add
Kasia24 Jan 6, 2025
9ff7bcb
Merge pull request #1 from Kasia24/hw02
Kasia24 Jan 6, 2025
7ed0142
add
Kasia24 Jan 6, 2025
1c2d214
add
Kasia24 Jan 6, 2025
6ddc040
add
Kasia24 Jan 6, 2025
e28f862
add
Kasia24 Jan 6, 2025
49513e1
add
Kasia24 Jan 6, 2025
ef1728d
add
Kasia24 Jan 6, 2025
006c1ad
add
Kasia24 Jan 6, 2025
753fa0b
add
Kasia24 Jan 6, 2025
7e16b29
add
Kasia24 Jan 6, 2025
ce084c0
add
Kasia24 Jan 6, 2025
78cdded
add
Kasia24 Jan 6, 2025
c96c6f8
add
Kasia24 Jan 6, 2025
1edd416
add
Kasia24 Jan 6, 2025
85c64ad
add
Kasia24 Jan 6, 2025
95c3d7f
add
Kasia24 Jan 6, 2025
2a535b0
Merge branch 'master' into hw02-express
Kasia24 Jan 6, 2025
16c6a4c
Merge pull request #2 from Kasia24/hw02-express
Kasia24 Jan 12, 2025
8e00b62
add
Kasia24 Jan 12, 2025
f24b7a9
add
Kasia24 Jan 12, 2025
bc6d9d1
add
Kasia24 Jan 12, 2025
8c386f4
add
Kasia24 Jan 12, 2025
22e2278
add
Kasia24 Jan 12, 2025
63e835d
add
Kasia24 Jan 12, 2025
c58469e
add
Kasia24 Jan 12, 2025
9e16781
add
Kasia24 Jan 12, 2025
2f25e7d
add
Kasia24 Jan 12, 2025
47da926
add
Kasia24 Jan 12, 2025
deebaad
add
Kasia24 Jan 12, 2025
ad086cd
add
Kasia24 Jan 12, 2025
75e3fa6
add
Kasia24 Jan 12, 2025
a5d03fe
Merge pull request #3 from Kasia24/hw02-express
Kasia24 Jan 12, 2025
0fe8620
add
Kasia24 Jan 12, 2025
42efd70
Merge pull request #4 from Kasia24/hw02-express
Kasia24 Jan 12, 2025
14c0920
add
Kasia24 Jan 12, 2025
abdcff4
add
Kasia24 Jan 12, 2025
3ffd73a
add
Kasia24 Jan 12, 2025
6fba0be
Merge pull request #5 from Kasia24/hw03-mongodb
Kasia24 Jan 12, 2025
54a58de
add
Kasia24 Jan 12, 2025
5304d90
add
Kasia24 Jan 12, 2025
79ddccd
add
Kasia24 Jan 18, 2025
121573c
add
Kasia24 Jan 18, 2025
bad29ba
add
Kasia24 Jan 18, 2025
200fafe
add
Kasia24 Jan 18, 2025
a21a3e5
add
Kasia24 Jan 18, 2025
6efdf63
add
Kasia24 Jan 18, 2025
e3fd711
add
Kasia24 Jan 18, 2025
b182fec
add
Kasia24 Jan 18, 2025
89dfd03
Merge pull request #6 from Kasia24/hw03-mongodb
Kasia24 Jan 19, 2025
2ae3fe3
add
Kasia24 Jan 19, 2025
d7a32fc
add
Kasia24 Jan 19, 2025
75ea133
add
Kasia24 Jan 19, 2025
0e1f85d
add
Kasia24 Jan 19, 2025
a9f8257
add
Kasia24 Jan 19, 2025
70b508f
add
Kasia24 Jan 19, 2025
9d37bb4
add
Kasia24 Jan 19, 2025
fb4b2cd
add
Kasia24 Jan 19, 2025
c391795
add
Kasia24 Jan 19, 2025
7719bde
add
Kasia24 Jan 19, 2025
d0d67f1
add
Kasia24 Jan 19, 2025
86a6750
add
Kasia24 Jan 19, 2025
d664054
add
Kasia24 Jan 19, 2025
ed28228
add
Kasia24 Jan 19, 2025
8a65455
add
Kasia24 Jan 19, 2025
90092ff
add
Kasia24 Jan 19, 2025
be0c9e6
add
Kasia24 Jan 19, 2025
12c7ad4
add
Kasia24 Jan 19, 2025
280c519
add
Kasia24 Jan 19, 2025
2b74ce3
add
Kasia24 Jan 19, 2025
b83e75e
add
Kasia24 Jan 19, 2025
c38f198
add
Kasia24 Jan 19, 2025
56e9f68
add
Kasia24 Jan 19, 2025
fb2fd25
add
Kasia24 Jan 19, 2025
2b36200
add
Kasia24 Jan 19, 2025
0c9673b
add
Kasia24 Jan 19, 2025
a091b47
add
Kasia24 Jan 19, 2025
2025577
add
Kasia24 Jan 19, 2025
73ba09d
add
Kasia24 Jan 19, 2025
826a829
add
Kasia24 Jan 19, 2025
9bb3b8d
add
Kasia24 Jan 19, 2025
47d8a7d
add
Kasia24 Jan 19, 2025
533ecdd
add
Kasia24 Jan 19, 2025
2408900
add
Kasia24 Jan 19, 2025
ef5fe0a
add
Kasia24 Jan 22, 2025
6b5d699
add
Kasia24 Jan 22, 2025
08acf53
add
Kasia24 Jan 22, 2025
f77f58e
add
Kasia24 Jan 22, 2025
87ad2b3
add
Kasia24 Jan 22, 2025
058db5d
add
Kasia24 Jan 22, 2025
309b3be
add
Kasia24 Jan 22, 2025
d9564c1
add
Kasia24 Jan 22, 2025
32494e8
add
Kasia24 Jan 22, 2025
37b8d46
add
Kasia24 Jan 22, 2025
b760bbb
add
Kasia24 Jan 22, 2025
4089b23
add
Kasia24 Jan 22, 2025
871ee52
add
Kasia24 Jan 25, 2025
f398515
add
Kasia24 Jan 25, 2025
4d38985
add
Kasia24 Jan 25, 2025
da60262
add
Kasia24 Jan 25, 2025
1f1186e
add
Kasia24 Jan 25, 2025
7f9adaf
add
Kasia24 Jan 25, 2025
298622a
add
Kasia24 Jan 25, 2025
e2486e2
add
Kasia24 Jan 25, 2025
3caab2c
add
Kasia24 Jan 25, 2025
bb262c0
add
Kasia24 Jan 25, 2025
a64373c
add
Kasia24 Jan 25, 2025
34221f2
add
Kasia24 Jan 25, 2025
fdde696
add
Kasia24 Jan 25, 2025
e71e894
add
Kasia24 Jan 25, 2025
e0804b6
add
Kasia24 Jan 25, 2025
2aa5edd
add
Kasia24 Jan 25, 2025
32e7eae
add
Kasia24 Jan 25, 2025
769a8af
add
Kasia24 Jan 25, 2025
a9b3981
add
Kasia24 Jan 25, 2025
5a93024
add
Kasia24 Jan 25, 2025
141e4cf
add
Kasia24 Jan 25, 2025
3f5e7b4
add
Kasia24 Jan 25, 2025
b4b0ab6
add
Kasia24 Jan 25, 2025
1cf7b26
add
Kasia24 Jan 25, 2025
2554dcb
add
Kasia24 Jan 25, 2025
56d76ab
add
Kasia24 Jan 25, 2025
63a5efb
add
Kasia24 Jan 25, 2025
2ea04c5
add
Kasia24 Jan 25, 2025
59d4bba
add
Kasia24 Jan 25, 2025
8a3728e
add
Kasia24 Jan 25, 2025
1d82bbd
add
Kasia24 Jan 25, 2025
bc6aba5
add
Kasia24 Jan 25, 2025
3e6365a
add
Kasia24 Jan 29, 2025
f9f5532
add
Kasia24 Jan 29, 2025
6a389bf
add
Kasia24 Jan 29, 2025
11b3881
add
Kasia24 Jan 29, 2025
6f214e4
add
Kasia24 Jan 29, 2025
3104d3c
add
Kasia24 Jan 29, 2025
892fb58
add
Kasia24 Jan 29, 2025
217215d
add
Kasia24 Jan 29, 2025
684f4b2
add
Kasia24 Jan 29, 2025
39476bc
add
Kasia24 Jan 29, 2025
f97f404
add
Kasia24 Jan 29, 2025
58ef9e1
add
Kasia24 Jan 29, 2025
77bb309
add
Kasia24 Jan 29, 2025
128c229
add
Kasia24 Jan 29, 2025
99a7900
add
Kasia24 Jan 29, 2025
80cc245
add
Kasia24 Jan 29, 2025
cd86418
add
Kasia24 Jan 29, 2025
79cbe45
add
Kasia24 Jan 29, 2025
a30c0e2
add
Kasia24 Jan 29, 2025
5cb308d
add
Kasia24 Jan 29, 2025
4b7d491
add
Kasia24 Jan 29, 2025
08ee033
add
Kasia24 Jan 29, 2025
742d918
add
Kasia24 Jan 29, 2025
5baf8fd
add
Kasia24 Jan 29, 2025
31615bc
add
Kasia24 Jan 29, 2025
4a5cd8b
add
Kasia24 Jan 29, 2025
94d67ad
add
Kasia24 Jan 29, 2025
5a67b91
add
Kasia24 Jan 29, 2025
027c717
add
Kasia24 Jan 29, 2025
2b96a48
add
Kasia24 Jan 29, 2025
dc8bbcb
add
Kasia24 Jan 29, 2025
0812ead
add
Kasia24 Jan 29, 2025
4327c1a
add
Kasia24 Jan 29, 2025
9d7db02
add
Kasia24 Jan 29, 2025
c8de01f
add
Kasia24 Jan 29, 2025
0bb9f8c
Merge branch 'master' into hw04-auth
Kasia24 Feb 1, 2025
62a8541
Merge pull request #7 from Kasia24/hw04-auth
Kasia24 Feb 1, 2025
e3bfbe8
add
Kasia24 Feb 1, 2025
f0a6b29
add
Kasia24 Feb 1, 2025
7c7700d
add
Kasia24 Feb 1, 2025
80162fe
add
Kasia24 Feb 1, 2025
1ee48b2
add
Kasia24 Feb 1, 2025
30d481b
add
Kasia24 Feb 1, 2025
d89b35c
add
Kasia24 Feb 1, 2025
0c1e414
add
Kasia24 Feb 1, 2025
5af6ded
add
Kasia24 Feb 1, 2025
86c0981
add
Kasia24 Feb 1, 2025
ec55a3e
add
Kasia24 Feb 1, 2025
09a7703
add
Kasia24 Feb 1, 2025
d00fadc
add
Kasia24 Feb 1, 2025
d1b1184
add
Kasia24 Feb 1, 2025
7cdfac1
add
Kasia24 Feb 1, 2025
9f53b6e
add
Kasia24 Feb 1, 2025
a7ce756
add
Kasia24 Feb 1, 2025
5034587
add
Kasia24 Feb 1, 2025
4a55cde
add
Kasia24 Feb 1, 2025
20ea6cb
add
Kasia24 Feb 1, 2025
c06d7bc
add
Kasia24 Feb 1, 2025
1e4e7c6
add
Kasia24 Feb 1, 2025
61f8e12
add
Kasia24 Feb 1, 2025
388fa5c
add
Kasia24 Feb 1, 2025
7278cba
add
Kasia24 Feb 1, 2025
83b1e0e
add
Kasia24 Feb 1, 2025
eff4dd6
add
Kasia24 Feb 1, 2025
64db9e2
add
Kasia24 Feb 1, 2025
a818917
add
Kasia24 Feb 1, 2025
15e0f66
add
Kasia24 Feb 1, 2025
a7da9ba
add
Kasia24 Feb 1, 2025
b3f226e
add
Kasia24 Feb 1, 2025
94c80cf
add
Kasia24 Feb 1, 2025
a544a67
add
Kasia24 Feb 1, 2025
fe748e1
add
Kasia24 Feb 1, 2025
efa1306
add
Kasia24 Feb 1, 2025
3c55103
add
Kasia24 Feb 1, 2025
eed0fa3
add
Kasia24 Feb 1, 2025
f88b332
add
Kasia24 Feb 1, 2025
bee97d3
add
Kasia24 Feb 1, 2025
0be7ccb
add
Kasia24 Feb 1, 2025
87384b7
add
Kasia24 Feb 1, 2025
2d9a8a4
add
Kasia24 Feb 1, 2025
b8b215c
add
Kasia24 Feb 1, 2025
590080d
add
Kasia24 Feb 1, 2025
7068e57
add
Kasia24 Feb 1, 2025
191ce60
add
Kasia24 Feb 1, 2025
def2691
add
Kasia24 Feb 1, 2025
3ad19c6
add
Kasia24 Feb 1, 2025
b0cff1d
add
Kasia24 Feb 1, 2025
e11e0b4
add
Kasia24 Feb 1, 2025
65a157b
add
Kasia24 Feb 1, 2025
42fd2c7
add
Kasia24 Feb 1, 2025
a763af9
add
Kasia24 Feb 1, 2025
03b8cf3
add
Kasia24 Feb 1, 2025
a623e0b
add
Kasia24 Feb 1, 2025
0458bad
add
Kasia24 Feb 1, 2025
d5937f8
add
Kasia24 Feb 2, 2025
0497060
add
Kasia24 Feb 2, 2025
f69d206
add
Kasia24 Feb 2, 2025
fdaae7e
add
Kasia24 Feb 2, 2025
6c7673d
add
Kasia24 Feb 2, 2025
85efe32
add
Kasia24 Feb 2, 2025
4a32235
add
Kasia24 Feb 2, 2025
324513e
add
Kasia24 Feb 2, 2025
dc83d1b
Merge branch 'master' into hw05-avatars
Kasia24 Feb 2, 2025
5c49e0a
Merge pull request #8 from Kasia24/hw05-avatars
Kasia24 Feb 2, 2025
91a73cc
add
Kasia24 Feb 2, 2025
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
25 changes: 0 additions & 25 deletions app.js

This file was deleted.

13 changes: 13 additions & 0 deletions db.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
const mongoose = require("mongoose");

const connectDB = async () => {
try {
const conn = await mongoose.connect(process.env.MONGO_URI);
console.log(`Połączono z MongoDB: ${conn.connection.host}`);
} catch (error) {
console.error(`Błąd połączenia z MongoDB: ${error.message}`);
process.exit(1); // Zakończ proces w przypadku błędu
}
};

module.exports = connectDB;
31 changes: 31 additions & 0 deletions middlewares/auth.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
const jwt = require("jsonwebtoken");
const User = require("../models/user.js");

const dotenv = require("dotenv");
dotenv.config();

const SECRET_KEY = process.env.JWT_SECRET;

const auth = async (req, res, next) => {
const { authorization = "" } = req.headers;
const token = authorization.replace("Bearer ", "");

if (!token) {
return res.status(401).json({ message: "Not authorized" });
}

try {
const { id } = jwt.verify(token, SECRET_KEY);
const user = await User.findById(id);

if (!user || user.token !== token) {
return res.status(401).json({ message: "Not authorized" });
}

req.user = user;
next();
} catch (error) {
return res.status(401).json({ message: "Not authorized" });
}
};
module.exports = auth;
12 changes: 12 additions & 0 deletions middlewares/errorHandler.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
const chalk = require("chalk");
const { HttpError } = require("../models/HttpError.js");

export const errorHandler = (error, req, res, next) => {
console.error(chalk.red(error));

if (error instanceof HttpError) {
return res.status(error.statusCode).json({ error: error.message });
}

return res.status(500).json({ error: "Internal server error" });
};
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
39 changes: 39 additions & 0 deletions middlewares/upload.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
const fs = require("fs").promises;
const path = require("path");

// Ścieżka do folderu tmp w folderze middlewares
const tmpDir = path.join(__dirname, "../tmp"); // Ścieżka do folderu tmp

// Sprawdzamy, czy folder tmp istnieje, jeśli nie - tworzymy go
async function ensureTmpDirExists() {
try {
// Próba dostępu do folderu
await fs.access(tmpDir);
} catch (error) {
// Jeśli folder nie istnieje, utwórz go
await fs.mkdir(tmpDir);
console.log("Folder tmp został utworzony.");
}
}

// Konfiguracja multer do zapisywania plików w folderze tmp
const multer = require("multer");

const storage = multer.diskStorage({
destination: async (req, file, cb) => {
// Upewniamy się, że folder tmp istnieje
await ensureTmpDirExists();
cb(null, tmpDir); // Zapisz plik w folderze tmp
},
filename: (req, file, cb) => {
const uniqueSuffix = Date.now() + "-" + Math.round(Math.random() * 1e9);
cb(
null,
file.fieldname + "-" + uniqueSuffix + path.extname(file.originalname)
);
},
});

const upload = multer({ storage: storage });

module.exports = upload;
7 changes: 7 additions & 0 deletions models/HttpError.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
export class HttpError extends Error {
constructor(statusCode, message) {
super(message);
this.name = "HttpError";
this.statusCode = statusCode;
}
}
44 changes: 27 additions & 17 deletions models/contacts.js
Original file line number Diff line number Diff line change
@@ -1,19 +1,29 @@
// const fs = require('fs/promises')
const mongoose = require("mongoose");
const gravatar = require("gravatar");

const listContacts = async () => {}
const contactSchema = new mongoose.Schema(
{
name: { type: String, required: true },
email: { type: String, required: true, unique: true },
phone: { type: String, required: true, unique: true },
favorite: { type: Boolean, default: false },
avatarURL: {
type: String,
default: function () {
return gravatar.url(this.email, { s: "250", d: "retro" }, true);
},
},
token: {
type: String,
default: null,
},
owner: {
type: mongoose.Schema.Types.ObjectId,
ref: "User",
},
},
{ timestamps: true }
);

const getContactById = async (contactId) => {}

const removeContact = async (contactId) => {}

const addContact = async (body) => {}

const updateContact = async (contactId, body) => {}

module.exports = {
listContacts,
getContactById,
removeContact,
addContact,
updateContact,
}
const Contact = mongoose.model("Contact", contactSchema);
module.exports = Contact;
40 changes: 20 additions & 20 deletions models/contacts.json
Original file line number Diff line number Diff line change
@@ -1,62 +1,62 @@
[
{
"id": "AeHIrLTr6JkxGE6SN-0Rw",
"name": "Allen Raymond",
"email": "[email protected]",
"phone": "(992) 914-3792"
"phone": "(992) 914-3792",
"favorite": false
},
{
"id": "qdggE76Jtbfd9eWJHrssH",
"name": "Chaim Lewis",
"email": "[email protected]",
"phone": "(294) 840-6685"
"phone": "(294) 840-6685",
"favorite": true
},
{
"id": "drsAJ4SHPYqZeG-83QTVW",
"name": "Kennedy Lane",
"email": "[email protected]",
"phone": "(542) 451-7038"
"phone": "(542) 451-7038",
"favorite": false
},
{
"id": "vza2RIzNGIwutCVCs4mCL",
"name": "Wylie Pope",
"email": "[email protected]",
"phone": "(692) 802-2949"
"phone": "(692) 802-2949",
"favorite": true
},
{
"id": "05olLMgyVQdWRwgKfg5J6",
"name": "Cyrus Jackson",
"email": "[email protected]",
"phone": "(501) 472-5218"
"phone": "(501) 472-5218",
"favorite": true
},
{
"id": "1DEXoP8AuCGYc1YgoQ6hw",
"name": "Abbot Franks",
"email": "[email protected]",
"phone": "(186) 568-3720"
"phone": "(186) 568-3720",
"favorite": true
},
{
"id": "Z5sbDlS7pCzNsnAHLtDJd",
"name": "Reuben Henry",
"email": "[email protected]",
"phone": "(715) 598-5792"
"phone": "(715) 598-5792",
"favorite": true
},
{
"id": "C9sjBfCo4UJCWjzBnOtxl",
"name": "Simon Morton",
"email": "[email protected]",
"phone": "(233) 738-2360"
"phone": "(233) 738-2360",
"favorite": true
},
{
"id": "e6ywwRe4jcqxXfCZOj_1e",
"name": "Thomas Lucas",
"email": "[email protected]",
"phone": "(704) 398-7993"
"phone": "(704) 398-7993",
"favorite": false
},
{
"id": "rsKkOQUi80UsgVPCcLZZW",
"name": "Alec Howard",
"email": "[email protected]",
"phone": "(748) 206-2688"
"phone": "(748) 206-2688",
"favorite": true
}
]
37 changes: 37 additions & 0 deletions models/user.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
const mongoose = require("mongoose");
const gravatar = require("gravatar");

const userSchema = new mongoose.Schema(
{
password: {
type: String,
required: [true, "Password is required"],
},
email: {
type: String,
required: [true, "Email is required"],
unique: true,
},
subscription: {
type: String,
enum: ["starter", "pro", "business"],
default: "starter",
},
token: {
type: String,
default: null,
},
avatarURL: {
type: String,
default: function () {
// Generowanie awatara na podstawie emaila użytkownika
return gravatar.url(this.email, { s: "250", d: "retro" }, true);
},
},
},
{ timestamps: true }
);

const User = mongoose.model("User", userSchema);

module.exports = User;
2 changes: 1 addition & 1 deletion nodemon.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
"ignore": ["node_modules", "models/contacts.json"]
"ignore": ["node_modules"]
}
Loading