def get_satisfactions(): print("Starting Satisfactions ThreadPoolExecutor") futures = [] start_date = request.args.get('start_date') end_date = request.args.get('end_date') start_date, end_date = send_dates(start_date, end_date) query ="*%3A*&wt=json&fl=type&fq=date%3A%5B"+start_date+"%20TO%20"+end_date+"%5D&indent=true&facet=true&stats=true&stats.field=status&facet.pivot" \ "=userID,status " result = SolrURLConnection.execute_facet_query(query) print("Satisfactions complete") director = Director() builder = ConcreteDashboardBuilder() director.builder = builder # print(result[0]) director.build_NPS_score( result['facet_counts']['facet_pivot']['userID,status'], ['OK', 'UF', 'IF']) nps_scores = builder.customerData.getNPSScore() month_scores = [] for nps1 in nps_scores: for nps in nps1: if nps in 'score': month_scores.append(nps1[nps]) return jsonify( {'satisfactions': calculate_satisfaction_score(month_scores)})
def get_scores(): facet_query = [ "*%3A*&wt=json&wt=json&fl=type&indent=true&facet=true&stats=true&stats.field=status&facet.pivot" "=userID,status ", "*%3A*&wt=json&wt=json&fl=type&indent=true&facet=true&stats=true" "&stats.field=status&facet.pivot=type ", "*%3A*&wt=json&wt=json&fl=type&indent=true&facet=true&stats=true&stats.field=status" "&facet.range={!tag=r1}date&f.date.facet.range.start=2020-11-01T23:59:59Z" "&f.date.facet.range.end=2020-12-01T23:59:59Z&f.date.facet.range.gap=%2B1DAY" "&facet.pivot={!range=r1}status", "*%3A*&wt=json&wt=json&fl=type&indent=true&facet=true&stats=true&stats.field=status" "&facet.range={!tag=r1}date&f.date.facet.range.start=2020-10-01T23:59:59Z" "&f.date.facet.range.end=2020-11-01T23:59:59Z&f.date.facet.range.gap=%2B1DAY" "&facet.pivot={!range=r1}status" ] agents = 4 chunksize = 3 with Pool(processes=agents) as pool: result = pool.map(execute_solr_url_query_by_facet, facet_query, chunksize) # Output the result print('Result: ' + str(result[0])) director = Director() builder = ConcreteDashboardBuilder() director.builder = builder director.build_NPS_score( result[0]['facet_counts']['facet_pivot']['userID,status'], ['OK', 'UF', 'IF']) director.build_activity_by_action( result[1]['facet_counts']['facet_pivot']['type'], ['type']) director.build_customer_experience( result[2]['facet_counts']['facet_pivot'], 'current') director.build_customer_experience( result[3]['facet_counts']['facet_pivot'], 'previous') print("All tasks complete") nps_scores = builder.customerData.getNPSScore() customer_experience = builder.customerData.getCustomerExperience() activityByAction = builder.customerData.getActivityByApi() month_scores = [] for nps1 in nps_scores: for nps in nps1: if nps in 'score': month_scores.append(nps1[nps]) return jsonify({ 'satisfactions': calculate_satisfaction_score(month_scores), 'activityByAction': user_activity_by_apy(activityByAction), 'experience': customer_experience, 'npsScore': calculate_nps(month_scores), 'monthScore': calculate_month_score(month_scores) })
def get_reliability(): print("Starting Reliability ThreadPoolExecutor") futures = [] start_date = request.args.get('start_date') end_date = request.args.get('end_date') start_date, end_date, range_gap = send_dates_with_range( start_date, end_date) print(start_date) print(end_date) query = [ "status%3AUF&wt=json&fl=type&indent=true&facet=true&facet.range=date" "&f.date.facet.range.start=" + start_date + "&f.date.facet.range.end=" + end_date + "&f.date.facet.range.gap=%2b1" + range_gap + "&facet.range=date", "status%3AIF&wt=json&fl=type&indent=true&facet=true&facet.range=date" "&f.date.facet.range.start=" + start_date + "&f.date.facet.range.end=" + end_date + "&f.date.facet.range.gap=%2b1" + range_gap + "&facet.range=date", "status%3AOK&wt=json&fl=type&indent=true&facet=true&facet.range=date" "&f.date.facet.range.start=" + start_date + "&f.date.facet.range.end=" + end_date + "&f.date.facet.range.gap=%2b1" + range_gap + "&facet.range=date" ] # Run this with a pool of 5 agents having a chunksize of 3 until finished agents = 3 chunksize = 3 with Pool(processes=agents) as pool: result = pool.map(execute_solr_url_query_by_facet, query, chunksize) print("Reliability complete") director = Director() builder = ConcreteDashboardBuilder() director.builder = builder # print(result[0]) director.build_UF( result[0]['facet_counts']['facet_ranges']['date']['counts'], ['OK', 'UF', 'IF']) director.build_IF( result[1]['facet_counts']['facet_ranges']['date']['counts'], ['OK', 'UF', 'IF']) director.build_OK( result[2]['facet_counts']['facet_ranges']['date']['counts'], ['OK', 'UF', 'IF']) return jsonify({'reliability': builder.customerData.getReliabilityData()})
def get_response(): print("Starting Response ThreadPoolExecutor") futures = [] start_date = request.args.get('start_date') end_date = request.args.get('end_date') start_date, end_date = send_dates(start_date, end_date) query = "*%3A*&fl=date%2C%20response_time&fq=date%3A%5B" + start_date + "%20TO%20" + end_date + "%5D&sort=date%20asc" print(query) result = SolrURLConnection.execute_facet_query(query) print("Response complete") director = Director() builder = ConcreteDashboardBuilder() director.builder = builder # print(result[0]) director.build_response(result['response']["docs"], ['mean']) return jsonify({'response': builder.customerData.getResponseData()})
def get_customerExperience(): print("Starting ThreadPoolExecutor") futures = [] start_date = request.args.get('start_date') end_date = request.args.get('end_date') start_date, end_date, range_gap = send_dates_with_range( start_date, end_date) print(range_gap) query = [ "*%3A*&wt=json&wt=json&fl=type&indent=true&facet=true&stats=true&stats.field=status" "&facet.range={!tag=r1}date&f.date.facet.range.start=" + start_date + "&f.date.facet.range.end=" + end_date + "&f.date.facet.range.gap=%2B1" + range_gap + "&facet.pivot={!range=r1}status", "*%3A*&wt=json&wt=json&fl=type&indent=true&facet=true&stats=true&stats.field=status" "&facet.range={!tag=r1}date&f.date.facet.range.start=" + start_date + "&f.date.facet.range.end=" + end_date + "&f.date.facet.range.gap=%2B1" + range_gap + "&facet.pivot={!range=r1}status" ] # Run this with a pool of 5 agents having a chunksize of 3 until finished agents = 2 chunksize = 2 with Pool(processes=agents) as pool: result = pool.map(execute_solr_url_query_by_facet, query, chunksize) print("All tasks complete") director = Director() builder = ConcreteDashboardBuilder() director.builder = builder director.build_customer_experience( result[0]['facet_counts']['facet_pivot'], 'current') director.build_customer_experience( result[1]['facet_counts']['facet_pivot'], 'previous') customer_experience = builder.customerData.getCustomerExperience() return jsonify({'experience': customer_experience})
def get_activityByAction(): print("Starting ActivityByAction ThreadPoolExecutor") futures = [] start_date = request.args.get('start_date') end_date = request.args.get('end_date') start_date, end_date = send_dates(start_date, end_date) query ="*%3A*&wt=json&fl=type&fq=date%3A%5B"+start_date+"%20TO%20"+end_date+"%5D&indent=true&facet=true&stats=true" \ "&stats.field=status&facet.pivot=type " result = SolrURLConnection.execute_facet_query(query) print("ActivityByAction complete") director = Director() builder = ConcreteDashboardBuilder() director.builder = builder director.build_activity_by_action( result['facet_counts']['facet_pivot']['type'], ['type']) activityByAction = builder.customerData.getActivityByApi() return jsonify( {'activityByAction': user_activity_by_apy(activityByAction)})
def get_tasks(): print("Starting ThreadPoolExecutor") futures = [] query = [ "status%3AUF&wt=json&fl=type&indent=true&facet=true&facet.range=date" "&f.date.facet.range.start=2020-12-01T23%3A59%3A59Z&f.date.facet.range.end=2020-12-07T23%3A59%3A59Z" "&f.date.facet.range.gap=%2b1DAY&facet.range=date", "status%3AIF&wt=json&fl=type&indent=true&facet=true&facet.range=date" "&f.date.facet.range.start=2020-12-01T23%3A59%3A59Z&f.date.facet.range.end=2020-12-07T23%3A59%3A59Z" "&f.date.facet.range.gap=%2b1DAY&facet.range=date", "status%3AOK&wt=json&fl=type&indent=true&facet=true&facet.range=date" "&f.date.facet.range.start=2020-12-01T23%3A59%3A59Z&f.date.facet.range.end=2020-12-07T23%3A59%3A59Z" "&f.date.facet.range.gap=%2b1DAY&facet.range=date", "*%3A*&fl=date%2Cresponse_time&sort=date%20asc", "*%3A*&wt=json&wt=json&fl=type&indent=true&facet=true&stats=true&stats.field=status&facet.pivot" "=userID,status ", "*%3A*&wt=json&wt=json&fl=type&indent=true&facet=true&stats=true" "&stats.field=status&facet.pivot=type ", "*%3A*&wt=json&wt=json&fl=type&indent=true&facet=true&stats=true&stats.field=status" "&facet.range={!tag=r1}date&f.date.facet.range.start=2020-11-01T23:59:59Z" "&f.date.facet.range.end=2020-12-01T23:59:59Z&f.date.facet.range.gap=%2B1DAY" "&facet.pivot={!range=r1}status", "*%3A*&wt=json&wt=json&fl=type&indent=true&facet=true&stats=true&stats.field=status" "&facet.range={!tag=r1}date&f.date.facet.range.start=2020-10-01T23:59:59Z" "&f.date.facet.range.end=2020-11-01T23:59:59Z&f.date.facet.range.gap=%2B1DAY" "&facet.pivot={!range=r1}status" ] # Run this with a pool of 5 agents having a chunksize of 3 until finished agents = 8 chunksize = 8 with Pool(processes=agents) as pool: result = pool.map(execute_solr_url_query_by_facet, query, chunksize) print("All tasks complete") director = Director() builder = ConcreteDashboardBuilder() director.builder = builder # print(result[0]) director.build_UF( result[0]['facet_counts']['facet_ranges']['date']['counts'], ['OK', 'UF', 'IF']) director.build_IF( result[1]['facet_counts']['facet_ranges']['date']['counts'], ['OK', 'UF', 'IF']) director.build_OK( result[2]['facet_counts']['facet_ranges']['date']['counts'], ['OK', 'UF', 'IF']) director.build_response(result[3]['response']["docs"], ['mean']) director.build_NPS_score( result[4]['facet_counts']['facet_pivot']['userID,status'], ['OK', 'UF', 'IF']) director.build_activity_by_action( result[5]['facet_counts']['facet_pivot']['type'], ['type']) director.build_customer_experience( result[6]['facet_counts']['facet_pivot'], 'current') director.build_customer_experience( result[7]['facet_counts']['facet_pivot'], 'previous') print("All tasks complete") nps_scores = builder.customerData.getNPSScore() customer_experience = builder.customerData.getCustomerExperience() activityByAction = builder.customerData.getActivityByApi() month_scores = [] for nps1 in nps_scores: for nps in nps1: if nps in 'score': month_scores.append(nps1[nps]) return jsonify({ 'reliability': builder.customerData.getReliabilityData(), 'availability': builder.customerData.getAvailabilityData(), 'response': builder.customerData.getResponseData(), 'satisfactions': calculate_satisfaction_score(month_scores), 'activityByAction': user_activity_by_apy(activityByAction), 'experience': customer_experience, 'npsScore': calculate_nps(month_scores), 'monthScore': calculate_month_score(month_scores) })