Skip to content

Commit aa85a49

Browse files
committed
one table approach - API for 360 return contacts. still missing shifts/donations/adoptions
1 parent 2549e7b commit aa85a49

File tree

1 file changed

+23
-51
lines changed

1 file changed

+23
-51
lines changed

src/server/api/common_api.py

Lines changed: 23 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ def get_contacts(search_text):
1111

1212
names = search_text.split(" ")
1313
if len(names) == 2:
14-
query = text("select * from pdp_contacts \
14+
query = text("select * from pdp_contacts where archived_date is null AND\
1515
where lower(first_name) like lower(:name1) and lower(last_name) like lower(:name2) \
1616
OR lower(first_name) like lower(:name2) and lower(last_name) like lower(:name1)")
1717
query_result = connection.execute(query, name1='{}%'.format(names[0]), name2='{}%'.format(names[1]))
@@ -28,61 +28,33 @@ def get_contacts(search_text):
2828
return results
2929

3030

31-
@common_api.route('/api/360/<master_id>', methods=['GET'])
32-
def get_360(master_id):
31+
@common_api.route('/api/360/<matching_id>', methods=['GET'])
32+
def get_360(matching_id):
3333
result = {}
3434

3535
with engine.connect() as connection:
36-
#Master Table
37-
query = text("select * from master where _id = :master_id")
38-
query_result = connection.execute(query, master_id=master_id)
39-
#todo: this shouldn't loop so eliminate the for
40-
master_row = query_result.fetchone()
41-
42-
if master_row:
43-
#Salesforce
44-
salesforcecontacts_id = master_row['salesforcecontacts_id']
45-
46-
if salesforcecontacts_id:
47-
query = text("select * from salesforcecontacts where contact_id = :salesforcecontacts_id")
48-
query_result = connection.execute(query, salesforcecontacts_id=salesforcecontacts_id)
49-
salesforce_results = [dict(row) for row in query_result]
50-
51-
if salesforce_results:
52-
result['salesforcecontacts'] = salesforce_results[0]
53-
54-
query = text("select * from salesforcedonations where contact_id = :salesforcecontacts_id")
55-
query_result = connection.execute(query, salesforcecontacts_id=salesforcecontacts_id)
56-
salesforcedonations_results = [dict(row) for row in query_result]
57-
58-
if salesforcedonations_results:
59-
result['salesforcedonations'] = salesforcedonations_results
36+
query = text("select * from pdp_contacts where matching_id = :matching_id and archived_date is null")
37+
query_result = connection.execute(query, matching_id=matching_id)
6038

61-
#Shelterluv
62-
shelterluvpeople_id = master_row['shelterluvpeople_id']
63-
64-
if shelterluvpeople_id:
65-
query = text("select * from shelterluvpeople where id = :shelterluvpeople_id")
66-
query_result = connection.execute(query, shelterluvpeople_id=shelterluvpeople_id)
67-
shelterluvpeople_results = [dict(row) for row in query_result]
68-
69-
if shelterluvpeople_results:
70-
result['shelterluvpeople'] = shelterluvpeople_results
71-
72-
#Volgistics
73-
volgistics_id = master_row['volgistics_id']
74-
75-
if volgistics_id:
76-
query = text("select * from volgistics where number = :volgistics_id")
77-
query_result = connection.execute(query, volgistics_id=volgistics_id)
78-
volgistics_results = [dict(row) for row in query_result]
39+
result["contact_details"] = [dict(row) for row in query_result]
40+
result["shifts"] = []
41+
result["donations"] = []
42+
result["adoptions"] = []
7943

44+
# todo: complete retrieving details for response
45+
for row in query_result:
46+
if row["source_type"] == "volgistics":
8047
query = text("select * from volgisticsshifts where number = :volgistics_id")
81-
query_result = connection.execute(query, volgistics_id=volgistics_id)
82-
volgistics_shifts_results = [dict(row) for row in query_result]
48+
query_result = connection.execute(query, volgistics_id=row["source_id"])
49+
result["shifts"] += [dict(row) for row in query_result]
50+
51+
'''
52+
query = text("select * from salesforcedonations where contact_id = :salesforcecontacts_id")
53+
query_result = connection.execute(query, salesforcecontacts_id=salesforcecontacts_id)
54+
salesforcedonations_results = [dict(row) for row in query_result]
8355
84-
if volgistics_results:
85-
result['volgistics'] = volgistics_results[0]
86-
result['volgistics_shifts_results'] = volgistics_shifts_results
56+
if salesforcedonations_results:
57+
result['salesforcedonations'] = salesforcedonations_results
58+
'''
8759

88-
return jsonify(result)
60+
return jsonify({'result': result})

0 commit comments

Comments
 (0)