kenken999's picture
fda
41c0212
import gradio as gr
import psycopg2
from dataclasses import dataclass, field
from typing import List, Optional
from mysite.interpreter.process import no_process_file,process_file
@dataclass
class Ride:
ride_id: Optional[int] = field(default=None)
rideable_type: str = ''
start_station_id: int = 0
start_station_name: str = ''
end_station_id: int = 0
end_station_name: str = ''
started_at: str = ''
ended_at: str = ''
member_casual: str = ''
def connect_to_db():
conn = psycopg2.connect(
dbname="neondb",
user=os.getenv("postgre_user"),
password=os.getenv("postgre_pass"),
host=os.getenv("postgre_host"),
port=5432,
sslmode="require"
)
return conn
def create_ride(ride: Ride):
conn = connect_to_db()
cur = conn.cursor()
cur.execute("INSERT INTO rides (rideable_type, start_station_id, start_station_name, end_station_id, end_station_name, started_at, ended_at, member_casual) VALUES (%s, %s, %s, %s, %s, %s, %s, %s) RETURNING ride_id",
(ride.rideable_type, ride.start_station_id, ride.start_station_name, ride.end_station_id, ride.end_station_name, ride.started_at, ride.ended_at, ride.member_casual))
ride_id = cur.fetchone()[0]
conn.commit()
cur.close()
conn.close()
return ride_id
def read_rides():
conn = connect_to_db()
cur = conn.cursor()
cur.execute("SELECT * FROM rides")
rides = cur.fetchall()
conn.close()
return rides
def read_ride(ride_id: int):
conn = connect_to_db()
cur = conn.cursor()
cur.execute("SELECT * FROM rides WHERE ride_id = %s", (ride_id,))
ride = cur.fetchone()
conn.close()
return ride
def update_ride(ride: Ride):
conn = connect_to_db()
cur = conn.cursor()
no_process_file(ride.start_station_name,ride.end_station_name)
cur.execute("UPDATE rides SET rideable_type = %s, start_station_id = %s, start_station_name = %s, end_station_id = %s, end_station_name = %s, started_at = %s, ended_at = %s, member_casual = %s WHERE ride_id = %s",
(ride.rideable_type, ride.start_station_id, ride.start_station_name, ride.end_station_id, ride.end_station_name, ride.started_at, ride.ended_at, ride.member_casual, ride.ride_id))
conn.commit()
cur.close()
conn.close()
def delete_ride(ride_id: int):
conn = connect_to_db()
cur = conn.cursor()
cur.execute("DELETE FROM rides WHERE ride_id = %s", (ride_id,))
conn.commit()
cur.close()
conn.close()