Esempio n. 1
0
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"})
Esempio n. 2
0
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"})
Esempio n. 3
0
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"})
Esempio n. 4
0
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]
Esempio n. 5
0
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}
Esempio n. 6
0
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]