Skip to content

Commit 71ceb29

Browse files
committed
refactor: replace local storage methods with API updates and mark deprecated methods
- added base URL as a webpack plugin
1 parent c04e18e commit 71ceb29

2 files changed

Lines changed: 36 additions & 7 deletions

File tree

src/scripts/Modules/TodoApp.js

Lines changed: 30 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,34 @@ class TodoApp {
99
}
1010
}
1111

12+
/**
13+
* @deprecated This method is depracated and no longer used. use updateDataToAPI() instead.
14+
*/
1215
saveToLocalStorage() {
1316
localStorage.setItem('todoApp', JSON.stringify(this.projects));
1417
}
18+
async updateDataToAPI() {
19+
try {
20+
const response = await fetch(BASE_URL+'/api/Project/1', {
21+
method: 'PUT',
22+
headers: {
23+
'Content-Type': 'application/json'
24+
},
25+
body: JSON.stringify(this.projects) //this should be sent as json
26+
});
27+
if (!response.ok) {
28+
throw new Error('Failed to update data');
29+
}
30+
console.log('Data updated successfully:', response);
31+
} catch (error) {
32+
console.error('Error updating data to API:', error);
33+
}
34+
}
1535

1636
async loadFromAPI() {
1737
try {
18-
const response = await fetch('https://dummyjson.com/c/5542-d5f6-4d55-a1da');
38+
var base = BASE_URL;
39+
const response = await fetch(BASE_URL+'/api/Project/1');
1940
if (!response.ok) {
2041
throw new Error('Failed to fetch data');
2142
}
@@ -37,7 +58,9 @@ class TodoApp {
3758
}
3859
}
3960

40-
61+
/**
62+
* @deprecated This method is depracated and no longer used. Use loadFromAPI() instead.
63+
*/
4164
loadFromLocalStorage() {
4265
const data = localStorage.getItem('todoApp');
4366
if (data) {
@@ -57,12 +80,12 @@ class TodoApp {
5780
addProject(name) {
5881
const project = new Project(name);
5982
this.projects.push(project);
60-
this.saveToLocalStorage();
83+
this.updateDataToAPI();
6184
}
6285

6386
removeProject(name) {
6487
this.projects = this.projects.filter(project => project.name !== name);
65-
this.saveToLocalStorage();
88+
this.updateDataToAPI();
6689
}
6790

6891
getProject(name) {
@@ -77,7 +100,7 @@ class TodoApp {
77100
const project = this.getProject(projectName);
78101
if (project) {
79102
project.addTodo(todo);
80-
this.saveToLocalStorage();
103+
this.updateDataToAPI();
81104
} else {
82105
console.log(`Project ${projectName} does not exist.`);
83106
}
@@ -87,7 +110,7 @@ class TodoApp {
87110
const project = this.getProject(projectName);
88111
if (project) {
89112
project.removeTodo(todoIndex);
90-
this.saveToLocalStorage();
113+
this.updateDataToAPI();
91114
} else {
92115
console.log(`Project ${projectName} does not exist.`);
93116
}
@@ -115,7 +138,7 @@ class TodoApp {
115138
item.toggleComplete();
116139
}
117140
});
118-
this.saveToLocalStorage();
141+
this.updateDataToAPI();
119142
}
120143
}
121144
}

webpack.dev.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
// webpack.dev.js
22
const { merge } = require('webpack-merge');
33
const common = require('./webpack.common.js');
4+
const webpack = require('webpack');
45

56
module.exports = merge(common, {
67
mode: 'development',
@@ -9,4 +10,9 @@ module.exports = merge(common, {
910
static: './dist',
1011
hot: true,
1112
},
13+
plugins: [
14+
new webpack.DefinePlugin({
15+
BASE_URL: JSON.stringify('https://localhost:7072')
16+
}),
17+
],
1218
});

0 commit comments

Comments
 (0)