def searchUser(self, args): phone = args.get("phone") email = args.get("email") fName = args.get("fName") userName = args.get("userName") dao = UserDAO() user_list = [] if (len(args) == 3) and phone and email and fName: user_list = dao.getUsersByPhoneEmailAndfName(phone, email, fName) elif (len(args) == 2) and phone and email: user_list = dao.getUsersByPhoneAndEmail(phone, email) elif (len(args) == 2) and phone and fName: user_list = dao.getUsersByPhoneAndFname(phone, fName) elif (len(args) == 2) and email and fName: user_list = dao.getUsersByEmailAndFname(email, fName) elif (len(args) == 1) and phone: user_list = dao.getUserByPhone(phone) elif (len(args) == 1) and email: user_list = dao.getUserByEmail(email) elif (len(args) == 1) and fName: user_list = dao.getUserByfName(fName) elif (len(args) == 1) and userName: user_list = dao.getUserByUserName(userName) else: return jsonify(Error="Malformed query string"), 400 result_list = [] for row in user_list: result = self.nameToDict(row) result_list.append(result) return jsonify(Users=result_list)
def insertUser(self, form): print("form: ", form) if len(form) != 6: return jsonify(Error="Malformed post request"), 400 else: fName = form['fName'] lName = form['lName'] username = form['username'] email = form['email'] phone = form['phone'] password = form['password'] if fName and lName and username and email and phone and password: dao = UserDAO() if dao.validateInsert(username, email, phone): userId = dao.insert(fName, lName, username, email, phone, password) result = self.build_user_attributes( userId, fName, lName, username, email, phone, password) return jsonify(User=result), 201 else: return jsonify( Error="Username, email or phone already exists"), 400 else: return jsonify( Error="Unexpected attributes in post request"), 400
def getUserContacts(self, userID): dao = UserDAO() result = dao.getUserContacts(userID) mapped_results = [] for r in result: mapped_results.append(self.contactsToDict(r)) return jsonify(Contacts=mapped_results)
def getUserByEmail(self, email): dao = UserDAO() result = dao.getUserByEmail(email) if result is None: return jsonify(Error="NOT FOUND"), 404 else: mapped = self.mapToDict(result) return jsonify(User=mapped)
def profileInfoById(self, id): dao = UserDAO() result = dao.profileInfoById(id) if result is None: return jsonify(Error="NOT FOUND"), 404 else: mapped = self.fullInfoToDict(result) return jsonify(User=mapped)
def getAllUsers(self): dao = UserDAO() result = dao.getAllUsers() mapped_results = [] for r in result: mapped_results.append(self.nameToDict(r)) return jsonify(Users=mapped_results)
def getUserById(self, form): print(form) dao = UserDAO() result = dao.getUserById(id) if result is None: return jsonify(Error="NOT FOUND"), 404 else: mapped = self.mapToDict(result) return jsonify(User=mapped)
def insertUserToGroup(self, userName, groupID, ownerID): gdao = GroupDAO() cdao = ContactDAO() udao = UserDAO() userID = udao.getUserIdByUserName(userName) result = [] if int(ownerID) in (gdao.getOwnerId(groupID)) and cdao.isContact(userID, ownerID) and \ not userID in (self.getAllUsersIdOnGroup(groupID)): cursor =self.conn.cursor() query = "INSERT INTO Participants(groupid,userid) values(%s,%s) returning userid;" cursor.execute(query,(groupID,userID,)) result.append(cursor.fetchone()) self.conn.commit() return result
def insertContact(self, userId, phone): dao = UserDAO() cursor = self.conn.cursor() contactTobeAdded = dao.getUserIdByPhone(phone) result = [] if len(contactTobeAdded) != 0: if contactTobeAdded[0] not in (self.getAllContactsForId( userId)) and contactTobeAdded[0] in (dao.getAllUsersId()): query = "INSERT INTO contacts(contactOfId, contactId) values(%s,%s) returning contactId;" cursor.execute(query, (userId, contactTobeAdded[0])) for row in cursor: result.append(row) self.conn.commit() return result
class UserService(object): __dao = None def __init__(self): self.__dao = UserDAO() def find_all(self): rows = self.__dao.find_all() return [UserDto(*row) for row in rows] def find_by_id(self, user_id): row = self.__dao.find_by_id(user_id) return UserDto(*row) def add(self, user: UserUpdateDto): user_entity = User(id=None, username=user.username, address=user.address, phone=user.phone) row = self.__dao.create(user_entity) return UserDto(*row) def update(self, user_id, user: UserUpdateDto): user_entity = User(id=user_id, username=user.username, address=user.address, phone=user.phone) row = self.__dao.update(user_entity) return UserDto(*row) def delete(self, user_id: int): self.__dao.delete(user_id)
def login(self, form): print("form: ", form) if len(form) != 2: return jsonify(Error="Malformed post request"), 400 else: username = form['username'] password = form['password'] if username and password: dao = UserDAO() userId = dao.validateLogin(username, password) print(userId) if userId is None: return jsonify( Error="User has not been authenticated"), 400 elif len(userId) == 1: result = self.build_user_login(userId) return jsonify(User_Logged_In=result), 201 else: return jsonify( Error="Username or password do not exist"), 400 else: return jsonify( Error="Unexpected attributes in post request"), 400
def __init__(self): self.__dao = UserDAO()