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