http responses are entirely rewritten #6

Merged
kristy-fournier merged 6 commits from responseCodes into main 2026-01-26 12:31:24 -05:00
2 changed files with 19 additions and 15 deletions
Showing only changes of commit 0b64a6f297 - Show all commits

View file

@ -59,10 +59,8 @@ async function getFromServer(bodyInfo, source="",password=adminPass) {
} catch(e) {
console.log("error print here:");
console.log(e);
if (e == "TypeError: Failed to fetch"){
if (e.contains("TypeError: Failed to fetch")){
alertText("Error: Can't Connect to Server (is the ip set?)")
} else if(e === "") {
} else {
alertText("Error: " + e);
}
@ -133,7 +131,8 @@ function searchSongsEnter(e) {
async function searchSongs(searchTerm){
document.getElementById("songlist").innerHTML = ""
searchResults = await getFromServer({search:searchTerm},"search").then()
let fetchResults = await getFromServer({search:searchTerm},"search").then();
let searchResults = fetchResults.data;
//generate the visual song list
for(var fileName in searchResults) {
let currentSongInJSON = searchResults[fileName]

View file

@ -11,8 +11,8 @@ args = parser.parse_args()
dotenv.load_dotenv()
portTheUserPicked=os.getenv("SERVER_PORT")
ERR_NO_ADMIN = ({"error":"no-admin"},401)
ERR_200 = ({"error":"OK"},200)
ERR_NO_ADMIN = ({"error":"no-admin","data":None},401)
ERR_200 = ({"error":"OK","data":None},200)
if args.admin:
ADMIN_PASS = hashlib.sha256(bytes(args.admin,'utf-8')).hexdigest()
else:
@ -130,9 +130,9 @@ def playerControls():
else:
return ERR_NO_ADMIN
else:
return {"error":"Not a valid control"},400
return {"error":"Not a valid control","data":None},400
else:
return {"error":"No control sent"},400
return {"error":"No control sent","data":None},400
@app.route("/settings", methods=['POST'])
def settingsControl():
@ -143,8 +143,11 @@ def settingsControl():
recieveData = request.get_json(force=True)
if recieveData["setting"] == "volume":
if ADMIN_PASS == recieveData['password'] or controlPerms["VOL"]:
volumePassed = player.audio_set_volume(int(recieveData["level"]))
return {"volumePassed":volumePassed}
if(recieveData["level"] <= 100 and recieveData["level"] >= 0):
volumePassed = player.audio_set_volume(int(recieveData["level"]))
return {"error":"ok","data":{"volumePassed":volumePassed}},200
else:
return {"error":"Invalid volume level","data":None}
else:
return ERR_NO_ADMIN
elif recieveData["setting"] == "partymode-toggle":
@ -161,9 +164,9 @@ def settingsControl():
return ERR_NO_ADMIN
elif recieveData["setting"] == "getsettings":
# probably should have made this a different request type or something but it works
return {"partymode":partyMode,"volume":player.audio_get_volume(),"admin":controlPerms}
return {"error":"ok","data":{"partymode":partyMode,"volume":player.audio_get_volume(),"admin":controlPerms}},200
else:
return "400"
return {"error":"Not a valid setting","data":None},400
@app.route("/search", methods=['POST'])
def searchSongDB():
@ -188,12 +191,13 @@ def searchSongDB():
"lossless":i[5]
}
fileofDB.close()
return tempdata
return {"error":"ok","data":tempdata},200
@app.route("/songadd", methods=["POST"])
def songadd():
recieveData=request.get_json(force=True)
if (ADMIN_PASS and ADMIN_PASS == recieveData['password']) or controlPerms["AS"]:
if (ADMIN_PASS == recieveData['password']) or controlPerms["AS"]:
# Password exists and is correct, or it's not restricted
# if (recieveData['song'] in playlist):
# return {"error":"song-in-queue"}
@ -239,7 +243,8 @@ def getPlaylist():
}
tempPlaylist.append({i:k})
fileofDB.close()
return tempPlaylist
return {"error":"ok","data":tempPlaylist}
if __name__ == "__main__":
# There's not really a whole lot of point to a main function for something like this, you'd never use any of these methods