Exemple #1
0
def update_request_status(r_uuid, status, status_message, volunteer_id):
    reqStatus = status
    if status == 'completed externally':
        reqStatus, status_message = 'completed', 'completed externally'
    if status == 'cancelled':
        reqStatus = 'verified'
    status_message = sanitise_for_sql({
        'message': status_message
    }).get('message', '')
    request_update_query = f""" insert into request_updates (request_uuid, status, status_message,v_id) values ('{r_uuid}', '{status}', '{status_message}','{volunteer_id}'); """
    # update request_updates
    try:
        write_query(request_update_query, 'prod_db_write')
    except:
        mailer.send_exception_mail()
        return 'Failed to add request update', False
    update_requests_db({'uuid': r_uuid}, {'status': reqStatus})
    # update request_matching
    if status == 'cancelled':
        r_id_query = f""" select id from requests where uuid = '{r_uuid}'"""
        r_id = pd.read_sql(r_id_query, connections('prod_db_read')).loc[0,
                                                                        'id']
        request_matching_query = f""" update request_matching set is_active=False where request_id={r_id}"""
        try:
            write_query(request_matching_query, 'prod_db_write')
        except:
            mailer.send_exception_mail()
            return 'Failed to cancel request matching', False
    return 'Updated request status', True
Exemple #2
0
def update_request_updates_db(ru_dict_where, ru_dict_set):
    try:
        ru_dict_where, ru_dict_set = sanitise_for_sql(
            ru_dict_where), sanitise_for_sql(ru_dict_set)
        set_sql_format = ",".join(
            ("`{column_name}`='{value}'".format(column_name=x,
                                                value=ru_dict_set[x])
             for x in ru_dict_set))
        where_sql_format = " and ".join(
            ("`{column_name}`='{value}'".format(column_name=x,
                                                value=ru_dict_where[x])
             for x in ru_dict_where))
        query = """update request_updates set {set_str} where {where_str};""".format(
            set_str=set_sql_format, where_str=where_sql_format)
        write_query(query, 'prod_db_write')
        return {
            'Response': {},
            'string_response': 'Request Update info Updated',
            'status': True
        }
    except:
        mailer.send_exception_mail()
        return {
            'Response': {},
            'string_response': 'Request Update info updation failed',
            'status': False
        }
Exemple #3
0
def save_request_sms_url(request_uuid, url_type, url):
    query = f"""insert into request_sms_urls (r_uuid, url_type, url) values ('{request_uuid}', '{url_type}', '{url}');"""
    try:
        write_query(query, 'prod_db_write')
        return True
    except:
        mailer.send_exception_mail()
        return False
Exemple #4
0
def blacklist_token(token):
    query = f"""insert into token_blacklist (token) values ('{token}');"""
    try:
        write_query(query, 'prod_db_write')
        return True
    except:
        mailer.send_exception_mail()
        return False
Exemple #5
0
def save_request_sms_url(request_uuid, url_type, url):
    try:
        url = sanitise_for_sql({'message': url[:1000]}).get('message', '')
        query = f"""insert into request_sms_urls (r_uuid, url_type, url) values ('{request_uuid}', '{url_type}', '{url}');"""
        write_query(query, 'prod_db_write')
        return True
    except:
        print(url, flush=True)
        mailer.send_exception_mail()
        return False