def person(request): if request.method == 'GET': # get one person by name name = request.GET.get('name', ' ') try: person = Person.nodes.get(name=name) response = { "name": person.name, } return JsonResponse(response, safe=False) except: response = {"error": "Error occurred"} return JsonResponse(response, safe=False) if request.method == 'POST': content = request.POST name = content.get('name') password = content.get('password') try: person = Person(name=name, password=password) token = uuid4() person.token = token person.save() response = { "name": person.name, } return JsonResponse(response) except: response = {"error": "Error occurred"} return JsonResponse(response, safe=False)
def get_or_create_person(name): qs = Person.objects.filter(name=name) if qs.count() > 0: return qs[0] else: new_person = Person() new_person.name = name new_person.save() return new_person
def post(self, request, *args, **kwargs): user_data = self.do_graph_request('me') user_friends = self.do_graph_request('me/friends')['data'] ll_access_token_data = self.exchange_long_lived_access_token() # Parse multi level friends dict into single level dict friend_list = {} for friend in user_friends: friend_list[friend['id']] = friend['name'] history = {} existing_friend_list = {} existing_new_friend_list = {} existing_lost_friend_list = {} try: user = Person.objects.get(facebook_id=user_data['id']) history = user.history existing_friend_list = user.friends existing_lost_friend_list = user.lost_friends existing_new_friend_list = user.new_friends except Person.DoesNotExist: user = Person(facebook_id=user_data['id']) # Save long lived access token now = datetime.datetime.now() token_expires = now + datetime.timedelta( seconds=int(ll_access_token_data['expires'])) user.access_token = ll_access_token_data['access_token'] user.access_token_expires_at = token_expires if existing_friend_list: compare_result = compare_dictionaries(existing_friend_list, friend_list) # Merge new and old losts and put them back into the model user.lost_friends = dict( compare_result['removed_entries'].items() + existing_lost_friend_list.items()) user.new_friends = dict(compare_result['added_entries'].items() + existing_new_friend_list.items()) add_entry_to_history(history, len(friend_list)) user.friends = friend_list user.history = history user.save() return HttpResponse(status=200, content=json.dumps({ 'new_friends': user.new_friends, 'lost_friends': user.lost_friends, 'history': user.history }), content_type='application/json')
def create(self,validated_data): name = validated_data.pop('name') qs = Person.objects.filter(name=name) if qs.count() > 0: return qs[0] else: new_person = Person() new_person.name = name new_person.save() print('created person with name %s'%name) return new_person
def create(self, validated_data): name = validated_data.pop('name') qs = Person.objects.filter(name=name) if qs.count() > 0: return qs[0] else: new_person = Person() new_person.name = name new_person.save() logger.info('created person {}' % new_person.id) return new_person
def post(self, request, *args, **kwargs): user_data = self.do_graph_request('me') user_friends = self.do_graph_request('me/friends')['data'] ll_access_token_data = self.exchange_long_lived_access_token() # Parse multi level friends dict into single level dict friend_list = {} for friend in user_friends: friend_list[friend['id']] = friend['name'] history = {} existing_friend_list = {} existing_new_friend_list = {} existing_lost_friend_list = {} try: user = Person.objects.get(facebook_id=user_data['id']) history = user.history existing_friend_list = user.friends existing_lost_friend_list = user.lost_friends existing_new_friend_list = user.new_friends except Person.DoesNotExist: user = Person(facebook_id=user_data['id']) # Save long lived access token now = datetime.datetime.now() token_expires = now + datetime.timedelta(seconds=int(ll_access_token_data['expires'])) user.access_token = ll_access_token_data['access_token'] user.access_token_expires_at = token_expires if existing_friend_list: compare_result = compare_dictionaries(existing_friend_list, friend_list) # Merge new and old losts and put them back into the model user.lost_friends = dict(compare_result['removed_entries'].items() + existing_lost_friend_list.items()) user.new_friends = dict(compare_result['added_entries'].items() + existing_new_friend_list.items()) add_entry_to_history(history, len(friend_list)) user.friends = friend_list user.history = history user.save() return HttpResponse(status=200, content=json.dumps({'new_friends': user.new_friends, 'lost_friends': user.lost_friends, 'history': user.history}), content_type='application/json')
def update(self, instance, validated_data): name = validated_data.pop('person')['name'] p = Person.objects.filter(name=name) if p.count() > 0: instance.person = p[0] else: p = Person() p.name = name p.save() instance.person = p print('created person with name %s' % name) if instance.person.name == 'unknown': instance.person_label_is_inferred = None else: instance.person_label_is_inferred = False print('updated label for face %d to %s' % (instance.id, instance.person.name)) instance.save() return instance
def update(self, instance, validated_data): name = validated_data.pop('person')['name'] p = Person.objects.filter(name=name) if p.count() > 0: instance.person = p[0] else: p = Person() p.name = name p.save() instance.person = p print('created person with name %s'%name) if instance.person.name == 'unknown': instance.person_label_is_inferred = None instance.person_label_probability = 0. else: instance.person_label_is_inferred = False instance.person_label_probability = 1. print('updated label for face %d to %s'%(instance.id, instance.person.name)) instance.save() return instance
def update(self, instance, validated_data): name = validated_data.pop('person')['name'] p = Person.objects.filter(name=name) if p.count() > 0: instance.person = p[0] else: p = Person() p.name = name p.save() instance.person = p logger.info('created person with name %s' % name) if instance.person.name == 'unknown': instance.person_label_is_inferred = None instance.person_label_probability = 0. else: instance.person_label_is_inferred = False instance.person_label_probability = 1. logger.info('updated label for face %d to %s' % (instance.id, instance.person.name)) cache.clear() instance.save() return instance
def create_person(): data = request.get_json() logger.info("Data recieved: %s", data) if "name" not in data: msg = "No name provided for person." logger.info(msg) return create_response(status=422, message=msg) if "emails" not in data: msg = "No email provided for person." logger.info(msg) return create_response(status=422, message=msg) # create MongoEngine objects new_person = Person(name=data["name"]) for email in data["emails"]: email_obj = Email(email=email) new_person.emails.append(email_obj) new_person.save() return create_response( message=f"Successfully created person {new_person.name} with id: {new_person.id}" )
def load_fake_data(): Person.objects.all().delete() data = [ { "name": "Tiger Nixon", "position": "System Architect", "salary": "$320,800", "start_date": "2011\/04\/25", "office": "Edinburgh", "extn": "5421" }, { "name": "Garrett Winters", "position": "Accountant", "salary": "$170,750", "start_date": "2011\/07\/25", "office": "Tokyo", "extn": "8422" }, { "name": "Ashton Cox", "position": "Junior Technical Author", "salary": "$86,000", "start_date": "2009\/01\/12", "office": "San Francisco", "extn": "1562" }, { "name": "Cedric Kelly", "position": "Senior Javascript Developer", "salary": "$433,060", "start_date": "2012\/03\/29", "office": "Edinburgh", "extn": "6224" }, { "name": "Airi Satou", "position": "Accountant", "salary": "$162,700", "start_date": "2008\/11\/28", "office": "Tokyo", "extn": "5407" }, { "name": "Brielle Williamson", "position": "Integration Specialist", "salary": "$372,000", "start_date": "2012\/12\/02", "office": "New York", "extn": "4804" }, { "name": "Herrod Chandler", "position": "Sales Assistant", "salary": "$137,500", "start_date": "2012\/08\/06", "office": "San Francisco", "extn": "9608" }, { "name": "Rhona Davidson", "position": "Integration Specialist", "salary": "$327,900", "start_date": "2010\/10\/14", "office": "Tokyo", "extn": "6200" }, { "name": "Colleen Hurst", "position": "Javascript Developer", "salary": "$205,500", "start_date": "2009\/09\/15", "office": "San Francisco", "extn": "2360" }, { "name": "Sonya Frost", "position": "Software Engineer", "salary": "$103,600", "start_date": "2008\/12\/13", "office": "Edinburgh", "extn": "1667" }, { "name": "Jena Gaines", "position": "Office Manager", "salary": "$90,560", "start_date": "2008\/12\/19", "office": "London", "extn": "3814" }, { "name": "Quinn Flynn", "position": "Support Lead", "salary": "$342,000", "start_date": "2013\/03\/03", "office": "Edinburgh", "extn": "9497" }, { "name": "Charde Marshall", "position": "Regional Director", "salary": "$470,600", "start_date": "2008\/10\/16", "office": "San Francisco", "extn": "6741" }, { "name": "Haley Kennedy", "position": "Senior Marketing Designer", "salary": "$313,500", "start_date": "2012\/12\/18", "office": "London", "extn": "3597" }, { "name": "Tatyana Fitzpatrick", "position": "Regional Director", "salary": "$385,750", "start_date": "2010\/03\/17", "office": "London", "extn": "1965" }, { "name": "Michael Silva", "position": "Marketing Designer", "salary": "$198,500", "start_date": "2012\/11\/27", "office": "London", "extn": "1581" }, { "name": "Paul Byrd", "position": "Chief Financial Officer (CFO)", "salary": "$725,000", "start_date": "2010\/06\/09", "office": "New York", "extn": "3059" }, { "name": "Gloria Little", "position": "Systems Administrator", "salary": "$237,500", "start_date": "2009\/04\/10", "office": "New York", "extn": "1721" }, { "name": "Bradley Greer", "position": "Software Engineer", "salary": "$132,000", "start_date": "2012\/10\/13", "office": "London", "extn": "2558" }, { "name": "Dai Rios", "position": "Personnel Lead", "salary": "$217,500", "start_date": "2012\/09\/26", "office": "Edinburgh", "extn": "2290" }, { "name": "Jenette Caldwell", "position": "Development Lead", "salary": "$345,000", "start_date": "2011\/09\/03", "office": "New York", "extn": "1937" }, { "name": "Yuri Berry", "position": "Chief Marketing Officer (CMO)", "salary": "$675,000", "start_date": "2009\/06\/25", "office": "New York", "extn": "6154" }, { "name": "Caesar Vance", "position": "Pre-Sales Support", "salary": "$106,450", "start_date": "2011\/12\/12", "office": "New York", "extn": "8330" }, { "name": "Doris Wilder", "position": "Sales Assistant", "salary": "$85,600", "start_date": "2010\/09\/20", "office": "Sidney", "extn": "3023" }, { "name": "Angelica Ramos", "position": "Chief Executive Officer (CEO)", "salary": "$1,200,000", "start_date": "2009\/10\/09", "office": "London", "extn": "5797" }, { "name": "Gavin Joyce", "position": "Developer", "salary": "$92,575", "start_date": "2010\/12\/22", "office": "Edinburgh", "extn": "8822" }, { "name": "Jennifer Chang", "position": "Regional Director", "salary": "$357,650", "start_date": "2010\/11\/14", "office": "Singapore", "extn": "9239" }, { "name": "Brenden Wagner", "position": "Software Engineer", "salary": "$206,850", "start_date": "2011\/06\/07", "office": "San Francisco", "extn": "1314" }, { "name": "Fiona Green", "position": "Chief Operating Officer (COO)", "salary": "$850,000", "start_date": "2010\/03\/11", "office": "San Francisco", "extn": "2947" }, { "name": "Shou Itou", "position": "Regional Marketing", "salary": "$163,000", "start_date": "2011\/08\/14", "office": "Tokyo", "extn": "8899" }, { "name": "Michelle House", "position": "Integration Specialist", "salary": "$95,400", "start_date": "2011\/06\/02", "office": "Sidney", "extn": "2769" }, { "name": "Suki Burks", "position": "Developer", "salary": "$114,500", "start_date": "2009\/10\/22", "office": "London", "extn": "6832" }, { "name": "Prescott Bartlett", "position": "Technical Author", "salary": "$145,000", "start_date": "2011\/05\/07", "office": "London", "extn": "3606" }, { "name": "Gavin Cortez", "position": "Team Leader", "salary": "$235,500", "start_date": "2008\/10\/26", "office": "San Francisco", "extn": "2860" }, { "name": "Martena Mccray", "position": "Post-Sales support", "salary": "$324,050", "start_date": "2011\/03\/09", "office": "Edinburgh", "extn": "8240" }, { "name": "Unity Butler", "position": "Marketing Designer", "salary": "$85,675", "start_date": "2009\/12\/09", "office": "San Francisco", "extn": "5384" }, { "name": "Howard Hatfield", "position": "Office Manager", "salary": "$164,500", "start_date": "2008\/12\/16", "office": "San Francisco", "extn": "7031" }, { "name": "Hope Fuentes", "position": "Secretary", "salary": "$109,850", "start_date": "2010\/02\/12", "office": "San Francisco", "extn": "6318" }, { "name": "Vivian Harrell", "position": "Financial Controller", "salary": "$452,500", "start_date": "2009\/02\/14", "office": "San Francisco", "extn": "9422" }, { "name": "Timothy Mooney", "position": "Office Manager", "salary": "$136,200", "start_date": "2008\/12\/11", "office": "London", "extn": "7580" }, { "name": "Jackson Bradshaw", "position": "Director", "salary": "$645,750", "start_date": "2008\/09\/26", "office": "New York", "extn": "1042" }, { "name": "Olivia Liang", "position": "Support Engineer", "salary": "$234,500", "start_date": "2011\/02\/03", "office": "Singapore", "extn": "2120" }, { "name": "Bruno Nash", "position": "Software Engineer", "salary": "$163,500", "start_date": "2011\/05\/03", "office": "London", "extn": "6222" }, { "name": "Sakura Yamamoto", "position": "Support Engineer", "salary": "$139,575", "start_date": "2009\/08\/19", "office": "Tokyo", "extn": "9383" }, { "name": "Thor Walton", "position": "Developer", "salary": "$98,540", "start_date": "2013\/08\/11", "office": "New York", "extn": "8327" }, { "name": "Finn Camacho", "position": "Support Engineer", "salary": "$87,500", "start_date": "2009\/07\/07", "office": "San Francisco", "extn": "2927" }, { "name": "Serge Baldwin", "position": "Data Coordinator", "salary": "$138,575", "start_date": "2012\/04\/09", "office": "Singapore", "extn": "8352" }, { "name": "Zenaida Frank", "position": "Software Engineer", "salary": "$125,250", "start_date": "2010\/01\/04", "office": "New York", "extn": "7439" }, { "name": "Zorita Serrano", "position": "Software Engineer", "salary": "$115,000", "start_date": "2012\/06\/01", "office": "San Francisco", "extn": "4389" }, { "name": "Jennifer Acosta", "position": "Junior Javascript Developer", "salary": "$75,650", "start_date": "2013\/02\/01", "office": "Edinburgh", "extn": "3431" }, { "name": "Cara Stevens", "position": "Sales Assistant", "salary": "$145,600", "start_date": "2011\/12\/06", "office": "New York", "extn": "3990" }, { "name": "Hermione Butler", "position": "Regional Director", "salary": "$356,250", "start_date": "2011\/03\/21", "office": "London", "extn": "1016" }, { "name": "Lael Greer", "position": "Systems Administrator", "salary": "$103,500", "start_date": "2009\/02\/27", "office": "London", "extn": "6733" }, { "name": "Jonas Alexander", "position": "Developer", "salary": "$86,500", "start_date": "2010\/07\/14", "office": "San Francisco", "extn": "8196" }, { "name": "Shad Decker", "position": "Regional Director", "salary": "$183,000", "start_date": "2008\/11\/13", "office": "Edinburgh", "extn": "6373" }, { "name": "Michael Bruce", "position": "Javascript Developer", "salary": "$183,000", "start_date": "2011\/06\/27", "office": "Singapore", "extn": "5384" }, { "name": "Donna Snider", "position": "Customer Support", "salary": "$112,000", "start_date": "2011\/01\/25", "office": "New York", "extn": "4226" } ] for p in data: print "p", p new_p = Person(**p) new_p.save()
def create(self, validated_data): person = Person(**validated_data) password = self.validated_data['password'] person.set_password(password) person.save() return person