diff --git a/assets/public/list.html b/assets/public/list.html
index d2d49bf..c9f948e 100644
--- a/assets/public/list.html
+++ b/assets/public/list.html
@@ -83,7 +83,6 @@
Your friends list
function sendDelete(event, pokemonID) {
event.preventDefault();
console.log(String(pokemonID))
- console.log(Number(pokemonID))
let url = (pokemonID === "/") ? "/" : String("/?id=" + pokemonID)
let xhttp = new XMLHttpRequest();
xhttp.open("DELETE", url, true);
diff --git a/databaseUser/HandlerDatabase.py b/databaseUser/HandlerDatabase.py
index 5153888..1283793 100644
--- a/databaseUser/HandlerDatabase.py
+++ b/databaseUser/HandlerDatabase.py
@@ -1,7 +1,8 @@
from message.StatusCode import StatusCode
import json
from databaseUser.ObjectUser import UserObj
-
+from handler.HandlerImage import HandlerImage
+import pathlib
class HandlerDatabase:
pokemonDatabasePath: str = 'databaseUser/database.json'
@@ -14,14 +15,24 @@ def insertPokemon(obj: UserObj):
if database is None:
return StatusCode.INTERNAL_SERVER_ERROR
+ obj.id = int(obj.id)
pokemonID = obj.id
+ HandlerImage.saveImg(obj)
+
+ extensionImage = pathlib.Path(obj.image).suffix
+ urlImage = "/" + str(obj.id) + extensionImage
+
pokemonData = {
"name": obj.name,
"phone": obj.phone,
"pokemon": obj.pokemon,
- "image": obj.image
+ "image": urlImage
}
-
+ try:
+ HandlerImage.addLinkImage(urlImage, extensionImage)
+ except:
+ print("erro in link image")
+
isPokemonRegistered, pokemonIndex = HandlerDatabase.isPokemonRegistered(pokemonID)
if isPokemonRegistered:
database["users"][pokemonIndex] = pokemonData
@@ -39,13 +50,21 @@ def updatePokemonByID(pokemonID: str, pokemonData: UserObj):
print(f"isPokemonID a string: {isinstance(pokemonID, str)}")
print(f"pokemonData: {pokemonData}\n")
+ HandlerImage.saveImg(pokemonData)
+
+ extensionImage = pathlib.Path(pokemonData.image).suffix
+ urlImage = "/" + str(pokemonData.id) + extensionImage
+
+ pokemonData.image = urlImage
+ try:
+ HandlerImage.addLinkImage(urlImage, extensionImage)
+ except:
+ print("erro in link image")
database: dict = HandlerDatabase.getData()
if database is None:
return StatusCode.INTERNAL_SERVER_ERROR
-
status = StatusCode.OK
-
isPokemonRegistered, pokemonIndex = HandlerDatabase.isPokemonRegistered(pokemonID)
if isPokemonRegistered:
arePokemonEqual = HandlerDatabase.arePokemonsEqual(
@@ -67,6 +86,7 @@ def updatePokemonByID(pokemonID: str, pokemonData: UserObj):
@staticmethod
def deletePokemonByID(pokemonID: str):
+ #delete img
database = HandlerDatabase.getData()
if database is None:
@@ -75,18 +95,24 @@ def deletePokemonByID(pokemonID: str):
status = StatusCode.OK
isPokemonRegistered, pokemonIndex = HandlerDatabase.isPokemonRegistered(pokemonID)
+ imageLink = ''
if isPokemonRegistered:
+ print(pokemonID)
+ imageLink = database["users"][pokemonIndex][str(pokemonID)]['image']
database["users"].pop(pokemonIndex)
+ HandlerImage.deleteImg(pokemonID, imageLink)
else:
status = StatusCode.NOT_FOUND
if HandlerDatabase.setData(database):
return status
+
return StatusCode.INTERNAL_SERVER_ERROR
@staticmethod
def deleteAllPokemons():
+ #delete links
database = HandlerDatabase.getData()
if database is None:
@@ -100,7 +126,7 @@ def deleteAllPokemons():
return StatusCode.INTERNAL_SERVER_ERROR
@staticmethod
- def isPokemonRegistered(pokemonID: str):
+ def isPokemonRegistered(pokemonID: int):
database = HandlerDatabase.getData()
if database is None:
@@ -109,7 +135,7 @@ def isPokemonRegistered(pokemonID: str):
index: int
element: dict
for index, element in enumerate(database["users"]):
- if pokemonID == list(element.keys())[0]:
+ if pokemonID == int(list(element.keys())[0]):
return True, index
return False, None
@@ -135,7 +161,6 @@ def getData():
@staticmethod
def setData(data: dict):
HandlerDatabase.pokemonDatabase = data
- print(data)
try:
with open(HandlerDatabase.pokemonDatabasePath, 'w+') as file:
file.seek(0)
@@ -149,6 +174,8 @@ def setData(data: dict):
@staticmethod
def arePokemonsEqual(pokemonA: dict, pokemonB: dict):
+ print(pokemonA)
+ print(pokemonB)
for k, v in pokemonA.items():
if v != pokemonB[k]:
return False
diff --git a/handler/HandlerImage.py b/handler/HandlerImage.py
new file mode 100644
index 0000000..f8f51aa
--- /dev/null
+++ b/handler/HandlerImage.py
@@ -0,0 +1,53 @@
+from server import *
+from threading import Thread
+from message.Request import Request
+from message import Response, StatusCode
+from databaseUser.ObjectUser import UserObj
+from string import Template
+import requests
+import pathlib
+from methods import GET
+import json
+import os
+
+class HandlerImage:
+
+ @staticmethod
+ def saveImg(objUser: UserObj):
+ try:
+ if(len(objUser.image) > 22):
+ img_data = requests.get(objUser.image).content
+ fileName = str(objUser.id) + str((pathlib.Path(objUser.image).suffix))
+
+ fileImg = "databaseUser/" + fileName
+ with open(fileImg, 'wb') as handler:
+ handler.write(img_data)
+ except:
+ print("erro when save img")
+
+ @staticmethod
+ def deleteImg(objId, imageLink):
+ try:
+ HandlerImage.deleteLinkImage(imageLink)
+ os.remove('databaseUser/' + str(objId) + ".*")
+ except:
+ print("erro when delete img")
+
+ @staticmethod
+ def addLinkImage(urlImage, extensionImage):
+ GET.GET.addImageLinkInGetList(urlImage, extensionImage)
+
+ try:
+ with open('databaseUser/imagesLink.json', 'w') as f:
+ json.dump(GET.GET.imagesTable, f)
+ except:
+ print("new image link not save")
+
+ @staticmethod
+ def deleteLinkImage(urlImage):
+ GET.GET.deleteImageLinkInGetList(urlImage)
+ try:
+ with open('databaseUser/imagesLink.json', 'w') as f:
+ json.dump(GET.GET.imagesTable, f)
+ except:
+ print("new image link not save")
diff --git a/methods/DELETE.py b/methods/DELETE.py
index 9faaa69..819549a 100644
--- a/methods/DELETE.py
+++ b/methods/DELETE.py
@@ -2,8 +2,6 @@
from databaseUser.HandlerDatabase import HandlerDatabase
from message.Response import Response
-
-
class DELETE:
@staticmethod
def response(request):
@@ -32,5 +30,5 @@ def response(request):
@staticmethod
def getIdOfUrl(URI):
if len(URI) > 5 and URI.rfind("/?id=") != -1:
- return URI[5: len(URI)]
+ return int(URI[5: len(URI)])
return -1
diff --git a/methods/GET.py b/methods/GET.py
index 11b158d..37e3844 100644
--- a/methods/GET.py
+++ b/methods/GET.py
@@ -4,7 +4,7 @@
import os
from handler.HandlerErrors import HandlerErrors
from databaseUser.HandlerDatabase import HandlerDatabase
-
+import json
class GET:
urlTable = {
@@ -17,8 +17,9 @@ class GET:
"/dashboard.css": {"type": "text/css", "filePath": "./assets/dashboard.css"},
"/popper.min.js": {"type": "text/css", "filePath": "./assets/popper.min.js"},
"/bootstrap.min.js": {"type": "text/css", "filePath": "./assets/bootstrap.min.js"},
- "/edit": {"type": "text/html", "filePath": "./assets/put.html"},
+ "/edit": {"type": "text/html", "filePath": "./assets/public/put.html"},
}
+
imagesTable = {
"/deusgrego.jpeg": {"type": "image/jpeg", "filePath": "./assets/static/deusgrego.jpeg"},
@@ -40,6 +41,12 @@ class GET:
@staticmethod
def response(request: Request):
+ #att list
+ try:
+ with open('databaseUser/imagesLink.json') as f:
+ GET.imagesTable = json.load(f)
+ except:
+ print("erro in list of links")
if request.URI.find('database') != -1 or request.URI.find('edit') != -1 or request.URI in GET.urlTable:
response: Response = Response(status_code=StatusCode.OK, body="", header={})
if request.URI.find('database') != -1:
@@ -87,3 +94,11 @@ def getParamsFromURL(url):
parsedParams[splitElem[0]] = splitElem[1]
return parsedParams
+
+ @staticmethod
+ def addImageLinkInGetList(newImg, extension):
+ GET.imagesTable[newImg] = {"type": "image/" + extension[1:], "filePath": "./databaseUser" + newImg}
+
+ @staticmethod
+ def deleteImageLinkInGetList(newImg):
+ del GET.imagesTable[newImg]
\ No newline at end of file
diff --git a/methods/POST.py b/methods/POST.py
index b285cf0..77e4511 100644
--- a/methods/POST.py
+++ b/methods/POST.py
@@ -2,10 +2,12 @@
from databaseUser.HandlerDatabase import HandlerDatabase
from databaseUser.ObjectUser import UserObj
from handler.HandlerErrors import HandlerErrors
+from handler.HandlerImage import HandlerImage
from message.Response import Response
from message.StatusCode import StatusCode
import json
-
+import requests
+import pathlib
class POST:
@@ -16,8 +18,6 @@ def response(request):
if data["name"] != "" and data["phone"] != "" and data["pokemon"] != "" and data["image"] != "":
obj = UserObj.fromDict(data)
- print(obj)
-
obj.setId(datetime.datetime.now().strftime("%d%m%Y%H%M%S"))
status = HandlerDatabase.insertPokemon(obj)
diff --git a/methods/PUT.py b/methods/PUT.py
index da39b3b..479a1e9 100644
--- a/methods/PUT.py
+++ b/methods/PUT.py
@@ -5,7 +5,7 @@
from message.StatusCode import StatusCode
import json
import datetime
-
+from handler.HandlerImage import HandlerImage
class PUT:
@staticmethod
@@ -13,7 +13,6 @@ def response(request):
try:
requestData = json.loads(request.body)
pokemonRequestData = list(requestData.values())[0]
- print(f"pokemonRequestData: {pokemonRequestData}")
if pokemonRequestData["name"] != ""\
and pokemonRequestData["phone"] != ""\
and pokemonRequestData["pokemon"] != ""\
pFad - Phonifier reborn
Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies:
Alternative Proxy
pFad Proxy
pFad v3 Proxy
pFad v4 Proxy