$json_arr = json_decode($json_string, true); if (!does_map_exist_by_id($student_id, $map_id)) { deliver_response(200, "Map with id={$map_id} does not exist"); break; } if ($map_id != $json_arr['id']) { deliver_response(200, "You cannot update map's id"); break; } if (!does_map_exist_by_id($student_id, $map_id)) { deliver_response(200, "Map with id={$map_id} does not exist"); break; } if (is_array($json_arr)) { update_map($student_id, $map_id, $json_string); $map = get_user_maps($student_id, $map_id); $map = xml_maps_to_json($map); $map = json_decode($map, true); deliver_response(200, "The map has been updated", $map); } else { deliver_response(400, "The request cannot be fulfilled due to bad syntax"); } break; case "DELETE": if (!does_map_exist_by_id($student_id, $map_id)) { deliver_response(200, "Map with id={$map_id} does not exist"); break; } delete_map($student_id, $map_id); deliver_response(200, "The map has been deleted"); break;
function delete_map($student_id, $map_id) { $maps = get_user_maps($student_id); foreach ($maps as $map) { if ($map->id == $map_id) { $dom = dom_import_simplexml($map); $dom->parentNode->removeChild($dom); } } $maps_as_string = xml_to_string($maps); $query = "UPDATE Students SET MAPS='{$maps_as_string}' WHERE STUDENT_ID={$student_id};"; exec_query($query); }