def register(): try: username = request.json["username"] name = request.json["name"] phone = request.json["phone"] email = request.json["email"] email = email.lower() pwd = encpwd(request.json["pwd"]) email = email.lower() users = getUsers() if len(list(filter(lambda x: x["username"] == username, users))) == 1 or \ len(list(filter(lambda x: dec(x["email"]) == email, users))) == 1 or \ len(list(filter(lambda x: dec(x["phone"]) == phone, users))) == 1: return jsonify({"error": "Username/phone/email is in use."}) if not re.match(r"[\w\._]{5,}@\w{3,}.\w{2,4}", email): return jsonify({"error": "Invalid email"}) if not validSpanishNumber(phone) and not validInternationalNumber(phone): return jsonify({"error": "Invalid phone number - Please ensure in format of 'XXX XXX XXX' for spanish numbers (No country code required) or include country code for international numbers"}) if addUser(username, name, phone, email, pwd): return jsonify({"success": True}) else: return jsonify({"error": "Invalid Form"}) except Exception as e: print(e) return jsonify({"error": "Invalid Form"})
def register(): try: pwd = encpwd(request.json['pwd']) username = request.json['username'] email = request.json["email"] email = email.lower() users = getUsers() if len(list(filter(lambda x: dec(x["email"]) == email, users))) == 1: return jsonify({"error": "Invalid Form"}) if not re.match(r"[\w\._]{5,}@\w{3,}.\w{2,4}", email): return jsonify({"error": "Invalid form"}) # secure details validate username addUser(username, enc(email), pwd) return jsonify({"success": True}) except: return jsonify({"error": "Invalid form"})
def login(): try: email = request.json["email"] pwd = request.json["pwd"] if email and pwd: user = list( filter( lambda x: dec(x["email"]) == email and checkpwd( pwd, x["pwd"]), getUsers())) if len(user) == 1: token = create_access_token(identity=user[0]["id"]) refresh_token = create_refresh_token(identity=user[0]["id"]) return jsonify({"token": token, "refreshToken": refresh_token}) else: return jsonify({"error": "Invalid credentials"}) else: return jsonify({"error": "Invalid Form"}) except: return jsonify({"error": "Invalid Form"})
def searchContacts(username, name, surname, phone, email, company): """ Function intended to query database for contact by search parameters """ user = Users.objects.get(username=username) query_string = { 'regex': { 'name' : re.compile('.*' + name + '.*', re.IGNORECASE) if name != '' else 0, 'surname' : re.compile('.*' + surname + '.*', re.IGNORECASE) if surname != '' else 0, 'phone' : re.compile('.*' + phone + '.*', re.IGNORECASE) if phone != '' else 0, 'email' : re.compile('.*' + email + '.*', re.IGNORECASE) if email != '' else 0, 'company' : re.compile('.*' + company + '.*', re.IGNORECASE) if company != '' else 0 } } contacts = Contacts.objects.filter( Q(name=query_string['regex']['name']) | Q(surname=query_string['regex']['surname']) | Q(company=query_string['regex']['company']) ).order_by('name') ''' Q(phone=query_string['regex']['phone']) | Q(email=query_string['regex']['email']) | ''' if contacts: contacts = list(filter(lambda x: x["uid"] == JSONEncoder().encode(user.id), contacts)) return [{"id": JSONEncoder().encode(i.id), "name": i.name, "surname": i.surname,"phone": dec(i.phone), "email": dec(i.email), "company": i.company} for i in contacts]
def getContact(cid): """ Function intended to query database for contact by id """ contacts = Contacts.objects.all() contact = list(filter(lambda x: JSONEncoder().encode(x["id"]) == cid, contacts))[0] return {"id": JSONEncoder().encode(contact.id), "name": contact.name, "surname": contact.surname, "phone": dec(contact.phone), "email": dec(contact.email), "company": contact.company}
def getContacts(username): """ Function intended to query database for all contacts for user """ user = Users.objects.get(username=username) contacts = Contacts.objects(uid=JSONEncoder().encode(user.id)).all() return [{"id": JSONEncoder().encode(i.id), "name": i.name, "surname": i.surname,"phone": dec(i.phone), "email": dec(i.email), "company": i.company} for i in contacts]