init commit

This commit is contained in:
2025-08-31 17:55:26 +03:00
commit 876ddec94a
78 changed files with 11999 additions and 0 deletions

View File

@@ -0,0 +1,73 @@
from flask import Blueprint, request, jsonify
from models.destinations import Destinations
from flask_jwt_extended import jwt_required, get_jwt_identity
from utils.maps import AdressCoordinates
destinations_bp = Blueprint("destinations", __name__, url_prefix="/destinations")
@destinations_bp.route("/", methods=["GET"])
@jwt_required()
def list_destinations():
destinations_db = Destinations()
user_id = get_jwt_identity()
destinations = destinations_db.get_all_by_user(user_id)
return jsonify([dict(d) for d in destinations]), 200
@destinations_bp.route("/", methods=["POST"])
@jwt_required()
def create_destination():
destinations_db = Destinations()
user_id = get_jwt_identity()
data = request.get_json()
destination_id = destinations_db.create(user_id, data.get("name"), data.get("address"))
# coordinates = AdressCoordinates(data.get("address"))
# lat_log = coordinates.open_Maps_by_address()
# if lat_log:
# latitude = lat_log['latitude']
# longitude = lat_log['longitude']
# destinations_db.add_gps_coordinates(destination_id, latitude, longitude)
return jsonify({"id": destination_id, "message": "Destination created"}), 201
@destinations_bp.route("/<int:id>", methods=["PUT"])
@jwt_required()
def update_destination(id):
destinations_db = Destinations()
user_id = get_jwt_identity()
data = request.get_json()
destinations_db.update(id, user_id, data.get("name"), data.get("address"))
coordinates = AdressCoordinates(data.get("address"))
lat_log = coordinates.open_Maps_by_address()
if lat_log:
latitude = lat_log['latitude']
longitude = lat_log['longitude']
destinations_db.add_gps_coordinates(id, latitude, longitude)
return jsonify({"message": "Destination updated"}), 200
@destinations_bp.route("/<int:id>", methods=["DELETE"])
@jwt_required()
def delete_destination(id):
destinations_db = Destinations()
success = destinations_db.delete(id)
if not success:
return jsonify({"message": "Destination not found or unauthorized"}), 404
return "", 204
# New route to update GPS coordinates of a destination
@destinations_bp.route("/<int:id>/coordinates", methods=["PUT"])
@jwt_required()
def update_coordinates(id):
destinations_db = Destinations()
data = request.get_json()
latitude = data.get("latitude")
longitude = data.get("longitude")
if latitude is None or longitude is None:
return jsonify({"message": "Latitude and longitude are required"}), 400
success = destinations_db.add_gps_coordinates(id, latitude, longitude)
if not success:
return jsonify({"message": "Failed to update coordinates"}), 404
return jsonify({"message": "Coordinates updated"}), 200