implemented endpoint for expired origins (origins without active leases)

This commit is contained in:
Oscar Krause
2024-02-27 20:53:32 +01:00
parent 128425e057
commit ffcf0d084e
4 changed files with 28 additions and 3 deletions

View File

@@ -66,6 +66,16 @@ class Origin(Base):
session.close()
return deletions
@staticmethod
def delete_expired(engine: Engine) -> int:
session = sessionmaker(bind=engine)()
origins = session.query(Origin).join(Lease, Origin.origin_ref == Lease.origin_ref, isouter=True).filter(Lease.lease_ref.is_(None)).all()
origin_refs = [origin.origin_ref for origin in origins]
deletions = session.query(Origin).filter(Origin.origin_ref.in_(origin_refs)).delete()
session.commit()
session.close()
return deletions
class Lease(Base):
__tablename__ = "lease"