def remove_filing(db_session, filing_id): res = db_session.execute( select(FilingSubType).filter( FilingSubtype.filing_id == filing_id)).unique().scalars().all() for subtype in res: db_session.delete(res) res = db_session.execute( select(FilingRaw)\ .filter(FilingRaw.filing_id == filing_id) ).unique().scalars().all() for raw in res: db_session.delete(res) res = db_session.execute( select(Filing)\ .filter(Filing.filing_id == filing_id) ).unique().scalars().all() for filing in res: db_session.delete(res) db_session.commit()
def refresh_partner_urls(): try: print('Refreshing partner images...') req = { 'username': os.getenv("CCB_USER"), 'password': os.getenv("CCB_PASS"), 'keep_me_logged_in': True } session = requests.Session() login_res = session.post('https://thirdave.ccbchurch.com/api/login', json=req) if login_res.status_code == 200: partners = db_session.query(Partners).all() for partner in partners: res = session.get( 'https://thirdave.ccbchurch.com/api/individuals/%s' % partner.ccbid) ccb_partner = json.loads(res.text) partner.image_url = get_image(ccb_partner.get('images')) db_session.commit() else: return 200 else: print( 'Failed to authenticate with CCB while refreshing partner images' ) return 401 except Exception as e: db_session.close() print(e) print('Failed to refresh partner images') return 500 finally: db_session.close()
def add_iata_to_db(iata): if db_session.query(IATA).filter_by(code=iata).count() == 0: iata_model = IATA(code=iata) db_session.add(iata_model) db_session.commit() return iata_model else: return db_session.query(IATA).filter_by(code=iata)[0]
def create(args: CreateParams): hotels = Hotels(name=args.name, address=args.address, created_at=datetime.now(), updated_at=datetime.now()) db_session.add(hotels) db_session.commit() db_session.refresh(hotels) return hotels
def queue_partner_emails(): try: users = db_session.query(Users).filter( Users.wants_emails == True).all() for user in users: print("Sending email to {}...".format(user.email)) partner = get_next_partner(user.uuid) if not partner: print("Reseting prayers for {}!".format(user.email)) db_session.query(Prayers).filter( Prayers.user_id == str(user.uuid)).filter( Prayers.partner_id != None).delete( synchronize_session=False) db_session.commit() partner = get_next_partner(user.uuid) message = Mail(from_email=From('*****@*****.**', '3ABC Prayer Reminders'), to_emails=user.email) message.dynamic_template_data = { 'user_name': user.name, 'email': partner.email, 'name': partner.name, 'type': partner.type, 'image': partner.image_url if partner.image_url is not None else None, 'description': partner.description if partner.description is not None else None, 'location': partner.location if partner.location is not None else None, } message.template_id = 'd-5f8116bd407849d5a06e66d586354bdb' sg = SendGridAPIClient( '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' ) response = sg.send(message) print(response.status_code) new_prayer = Prayers(member_id=None, partner_id=partner.ccbid, user_id=user.uuid) db_session.add(new_prayer) db_session.commit() return 200 except Exception as e: print('Failed sending partner emails') print(e) return 500 finally: db_session.close()
def add_content_server(hostname, name, host_url): """Add a new content server to the database""" content_server = ContentServers(hostname=hostname, name=name, host_url=host_url) db_session.add(content_server) db_session.commit() click.echo(f'Content server added\n' f'hostname: {hostname}\nname:{name}\nurl:{host_url}')
def clear_tables(): """ This fixture will be executed after every test, clearing the given table. You can remove the autouse, and specify when it executed whenever you want. """ yield # db_session.autocommit = True db_session.execute("TRUNCATE TABLE item CASCADE") db_session.commit()
def create_monitor(): """generate monitor data""" # logger logger = logging.getLogger("monitors") codes = [200, 200, 200, 500, 404] for i in range(5): mon = MonitorFactory( endpoint=f"http://apidash.dev:8000/api/v1/status/{codes[i]}") logger.info(f"Adding monitor {mon.name}") db_session.add(mon) db_session.commit()
def queue_emails(): try: users = db_session.query(Users).filter( Users.wants_emails == True).all() for user in users: print("Sending email to {}...".format(user.email)) member = get_next_member(user.uuid) if not member: print("Reseting prayers for {}!".format(user.email)) db_session.query(Prayers).filter( Prayers.user_id == str(user.uuid)).filter( Prayers.member_id != None).delete( synchronize_session=False) db_session.commit() member = get_next_member(user.uuid) message = Mail(from_email=From('*****@*****.**', '3ABC Prayer Reminders'), to_emails=user.email) member_since = member.member_since.strftime('%B %Y') message.dynamic_template_data = { 'email': member.email, 'name': member.name, 'member_since': member_since, 'image': member.image_url if member.image_url is not None else None, 'username': user.name if user.name is not None else user.username } message.template_id = 'd-0a35a380ad214eb0b6152ddaa961f420' sg = SendGridAPIClient( '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' ) response = sg.send(message) print(response.status_code) new_prayer = Prayers(member_id=member.ccbid, partner_id=None, user_id=user.uuid) db_session.add(new_prayer) db_session.commit() return 200 except Exception as e: print('Failed sending all emails') print(e) return 500 finally: db_session.close()
def add_ticket_to_db(ticket, date_search, iata_from_model, iata_to_model): ticket_info = check_ticket(ticket) if ticket_info["flights"][0]["invalid"] == 1: return ticket["price"] = ticket_info["flights_price"] new_ticket = Ticket( fly_from=iata_from_model, fly_to=iata_to_model, date_from=ticket["date_from"], date_to=ticket["date_to"], date_search=date_search, booking_token=ticket["booking_token"], price=ticket["price"], ) db_session.add(new_ticket) db_session.commit()
def reload_cache(): tickets = db_session.query(Ticket).all() for ticket in tickets: db_session.delete(ticket) db_session.commit() caching()
def sync_members(): try: print('Starting to sync members from CCB into members table...') req = { 'username': os.getenv("CCB_USER"), 'password': os.getenv("CCB_PASS"), 'keep_me_logged_in': True } session = requests.Session() login_res = session.post('https://thirdave.ccbchurch.com/api/login', json=req) if login_res.status_code == 200: pages_res = session.get( 'https://thirdave.ccbchurch.com/api/individuals?page=1&per_page=100' ) if pages_res.status_code == 200: pages = pages_res.headers['X-Total-Pages'] db_session.execute('''TRUNCATE TABLE members''') db_session.commit() for page in range(1, int(pages) + 1): res = session.get( 'https://thirdave.ccbchurch.com/api/individuals?page=%s&per_page=100' % page) members = json.loads(res.text) objects = [] for member in members: if member['family_position'] != 'CHILD' and member[ 'last_name'] != '.Org' and member[ 'last_name'] != 'Fellowship': objects.append( Members( ccbid=member.get("id"), name=member.get("name"), email=member.get("email"), phone=member.get("phone").get("mobile"), member_since=member.get("created"), image_url=get_image(member.get("images")))) else: continue else: print('Bulk saving CCB members to members table') db_session.bulk_save_objects(objects) db_session.commit() continue db_session.close() else: db_session.close() return 200 else: print('Failed retrieving members from CCB') return 400 else: print('Failed authenticating with CCB while syncing members') return 404 except Exception as e: db_session.close() print(e) return 500 finally: db_session.close()