예제 #1
0
def get_species() -> list:
    session = db.create_session()
    try:
        species = session.query(Species).all()
    finally:
        session.close()
    return species
예제 #2
0
def get_breeds() -> list:
    session = db.create_session()
    try:
        breeds = session.query(Breed).all()
    finally:
        session.close()
    return breeds
예제 #3
0
def delete_pet(pet_id):
    session = db.create_session()
    try:
        pet = db.get_db_obj(pet_id, Pet)
        session.delete(pet)
        session.commit()
    finally:
        session.close()
예제 #4
0
def get_pet_by_name(pet_name, owner_id) -> Pet:
    session = db.create_session()
    try:
        # pet = session.query(Pet).filter(and_(Pet.name == pet_name, Pet.owner.id == owner_id))
        pet = session.query(Pet, User).filter(Pet.name == pet_name).filter(
            User.id == owner_id).first()
    finally:
        session.close()
    return pet
예제 #5
0
def insert_operations(data):
    session = db.create_session()
    for row in data:
        o = Operation()
        o.id = row.strip()
        session.add(o)

    session.commit()
    session.close()
예제 #6
0
def insert_test_user(username="******"):
    session = db.create_session()
    user = User()
    user.id = 3  # TODO: Get rid of magic user id
    user.username = username
    user.email = "fake"
    user.password = "******"
    session.add(user)
    session.commit()
    session.close()
예제 #7
0
def authenticate(username: str, password: str) -> Optional[User]:
    session = db.create_session()

    user = session.query(User).filter(User.username == username).first()
    if not user:
        return None

    if not crypto.verify(password, user.password):
        return None

    return user
예제 #8
0
def insert_dog_breeds(data, species_id=1):
    session = db.create_session()
    s = db.get_db_obj(species_id, Species)
    for row in data:
        b = Breed()
        b.name = row.strip()
        b.species = s
        session.add(b)

    session.commit()
    session.close()
예제 #9
0
def insert(obj):
    print("--Commiting into database:", obj, obj.birthday, obj.breed,
          obj.owner)
    session = db.create_session()
    try:
        if obj.id is None:
            session.add(obj)
        else:
            session.merge(obj)
        session.commit()
    finally:
        session.close()

    return obj
예제 #10
0
def insert_species():
    session = db.create_session()
    dog = Species()
    dog.name = "koira"
    session.add(dog)
    cat = Species()
    cat.name = "kissa"
    session.add(cat)
    session.commit()

    sps_dog = dog.id
    sps_cat = cat.id
    session.close()

    return sps_dog, sps_cat
예제 #11
0
def create_user(username: str, name: str, email: str,
                password: str) -> Optional[User]:
    if get_user_by_username_or_email(username, email):
        return None

    user = User()
    user.username = username
    user.email = email
    user.name = name
    user.password = crypto.encrypt(password, rounds=CRYPTO_ROUNDS)

    session = db.create_session()
    session.add(user)
    session.commit()

    return user
예제 #12
0
def get_user_by_username_or_email(username: str, email: str) -> Optional[User]:
    session = db.create_session()
    return session.query(User).filter(User.username == username).first() \
           or session.query(User).filter(User.email == email).first()
예제 #13
0
def get_pets_for_user(user_id):
    session = db.create_session()
    return session.query(Pet, Breed, Species).select_from(Pet).\
        join(Breed).\
        join(Species).\
        filter(Pet.user_id == user_id).order_by(Species.id).all()