Python SQL with NoSQL

From DreamFactory
Jump to: navigation, search
DreamFactoryTutorialsPython SQL with NoSQL
# script db._table.contact.get.post_process

# for each record in the MySQL db service, query the MongoDB service to get the Twitter handle for that contact

import httplib;
import json;

content = event['response']['content'];
host = event['request']['headers']['host'][0];
headers = {
    'x-dreamfactory-api-key':platform['session']['api_key'],
    'x-dreamfactory-session-token':platform['session']['session_token']
    };
    
connection = httplib.HTTPConnection(host);

if content['resource'] != "":
    records = content['resource'];
    for (i, record) in enumerate(records):
        # filter by email
        filter = "filter=" + "email=" + record['email'];
        
        # get matching record from MongoDB service
        connection.request('GET', '/api/v2/mongodb/_table/contact?'+filter, '', headers);
        response = connection.getresponse();
        result = json.loads(response.read());
        
        # from_mongo_twitter can be a field in MySQL schema, but it doesn't have to be 
        record['from_mongo_twitter'] = result['resource'][0]['name'].encode('utf-8');
        records[i] = record;

event['response']['content']['resource'] = records;

# set this flag if you change the response content
# you can also set event['response']['status_code'] and event['response']['content_type']
event['response']['content_changed'] = True;