36 lines
1.3 KiB
Python
36 lines
1.3 KiB
Python
from sqlalchemy.orm import Session
|
|
from models import CityWeather
|
|
from schemas import CityWeatherCreate
|
|
|
|
def get_city_weather(db: Session, city_id: int):
|
|
return db.query(CityWeather).filter(CityWeather.id == city_id).first()
|
|
|
|
def get_city_weather_by_name(db: Session, city_name: str):
|
|
return db.query(CityWeather).filter(CityWeather.city_name == city_name).first()
|
|
|
|
def get_city_weathers(db: Session, skip: int = 0, limit: int = 10):
|
|
return db.query(CityWeather).offset(skip).limit(limit).all()
|
|
|
|
def create_city_weather(db: Session, city_weather: CityWeatherCreate):
|
|
db_city_weather = CityWeather(**city_weather.dict())
|
|
db.add(db_city_weather)
|
|
db.commit()
|
|
db.refresh(db_city_weather)
|
|
return db_city_weather
|
|
|
|
def update_city_weather(db: Session, city_id: int, city_weather: CityWeatherCreate):
|
|
db_city = db.query(CityWeather).filter(CityWeather.id == city_id).first()
|
|
if db_city:
|
|
for key, value in city_weather.dict(exclude_unset=True).items():
|
|
setattr(db_city, key, value)
|
|
db.commit()
|
|
db.refresh(db_city)
|
|
return db_city
|
|
|
|
def delete_city_weather(db: Session, city_id: int):
|
|
db_city = db.query(CityWeather).filter(CityWeather.id == city_id).first()
|
|
if db_city:
|
|
db.delete(db_city)
|
|
db.commit()
|
|
return db_city
|