def parseFile(json_url, begin, end, args): resp = requests.get(url=json_url) data = resp.json() cols = max([int(i['gs$cell']['col']) for i in data['feed']['entry']]) rows = max([int(i['gs$cell']['row']) for i in data['feed']['entry']]) df = [['' for i in range(cols)] for j in range(rows)] for i in data['feed']['entry']: col = int(i['gs$cell']['col']) row = int(i['gs$cell']['row']) #print(i['gs$cell']) df[row - 1][col - 1] = i['gs$cell']['inputValue'] lb = [df[1][i] if df[0][i] == '' else df[0][i] for i in range(cols)] lb = [i[:15] for i in lb] rr = [{lb[i]: v for i, v in enumerate(j)} for j in df[2:]] ids = [] begin = int(begin) end = int(end) for row in rr[begin:end]: #add item = parseRow(row) #if args.get('legitimatie') is not None and item['received_contract']: item['is_active'] = True ob = Volunteer.objects(phone=item['phone']).first() if not ob: comment = Volunteer(**item) comment.save() ids.append(comment.clean_data()['_id']) #return jsonify(comment.clean_data()['_id']) elif 'latitude' in item: data = ob.clean_data() if 'latitude' not in data or data['latitude'] == '': ob.update(latitude=item['latitude'], longitude=item['longitude'], address=item['address']) return jsonify(ids)
def register_volunteer(request_json, created_by): """Creates and persists a new volunteer into database. Parameters ---------- request_json : dict A dictionary representing the volunteer profile details. created_by : str A string representing either name of user who is going to create a new volunteer, or the token Returns ------- 200: If the volunteer was successful created and saved. 400: If the volunteer wasn't created or saved, and there was raised some exception. """ log.debug("Relay offer for req:%s from ", request_json) try: if not vu.is_email(created_by): user = Operator.verify_auth_token(created_by) created_by = user.get().clean_data()['email'] if created_by == os.getenv("COVID_BACKEND_USER"): vu.exists_by_telegram_chat_id(request_json["chat_id"]) new_volunteer_data = process_volunteer_data_from_telegram(request_json) else: vu.exists_by_email(request_json["email"]) new_volunteer_data = request_json new_volunteer_data["password"] = PassHash.hash(new_volunteer_data["password"]) new_volunteer_data['created_by'] = created_by new_volunteer = Volunteer(**new_volunteer_data) new_volunteer.save() return jsonify({"response": "success", 'user': new_volunteer.clean_data()}) except Exception as error: return jsonify({"error": str(error)}), 400