def details(request): __cursor = connection.cursor() if request.method != 'GET': __cursor.close() return HttpResponse(dumps({'code': codes.INVALID_QUERY, 'response': 'request method should be GET'})) email = request.GET.get('user') # validate user try: user_id_qs = __cursor.execute(SELECT_USER_BY_EMAIL, [email, ]) except DatabaseError as db_err: __cursor.close() return HttpResponse(dumps({'code': codes.UNKNOWN_ERR, 'response': unicode(db_err)})) if not __cursor.rowcount: __cursor.close() return HttpResponse(dumps({'code': codes.NOT_FOUND, 'response': 'user not found'})) user_id = __cursor.fetchone()[0] try: user, related_ids = get_user_by_id(__cursor, user_id) except DatabaseError as db_err: __cursor.close() return HttpResponse(dumps({'code': codes.UNKNOWN_ERR, 'response': unicode(db_err)})) __cursor.close() return HttpResponse(dumps({'code': codes.OK, 'response': user}))
def listUsers(request): __cursor = connection.cursor() if request.method != "GET": __cursor.close() return HttpResponse(dumps({"code": codes.INVALID_QUERY, "response": "request method should be GET"})) short_name = request.GET.get("forum") if not short_name: __cursor.close() return HttpResponse(dumps({"code": codes.INCORRECT_QUERY, "response": "forum name not found"})) try: forum_qs = __cursor.execute(SELECT_FORUM_BY_SHORT_NAME, [short_name]) if not __cursor.rowcount: __cursor.close() return HttpResponse(dumps({"code": codes.NOT_FOUND, "response": "forum not found"})) except DatabaseError as db_err: __cursor.close() return HttpResponse(dumps({"code": codes.UNKNOWN_ERR, "response": unicode(db_err)})) forum_id = __cursor.fetchone()[0] get_all_forum_users_specified_query = SELECT_USER_ID_BY_FORUM query_params = [forum_id] since_id = general_utils.validate_id(request.GET.get("since_id")) if since_id: get_all_forum_users_specified_query += """AND user_id >= %s """ query_params.append(since_id) elif since_id == False and since_id is not None: __cursor.close() return HttpResponse(dumps({"code": codes.INCORRECT_QUERY, "response": "since_id should be int"})) order = request.GET.get("order", "desc") if order.lower() not in ("asc", "desc"): __cursor.close() return HttpResponse( dumps({"code": codes.INCORRECT_QUERY, "response": "incorrect order parameter: {}".format(order)}) ) get_all_forum_users_specified_query += """ORDER BY user_name """ + order limit = request.GET.get("limit") if limit: try: limit = int(limit) except ValueError: __cursor.close() return HttpResponse(dumps({"code": codes.INCORRECT_QUERY, "response": "limit should be int"})) get_all_forum_users_specified_query += """ LIMIT %s""" query_params.append(limit) try: users_qs = __cursor.execute(get_all_forum_users_specified_query, query_params) except DatabaseError as db_err: __cursor.close() return HttpResponse(dumps({"code": codes.UNKNOWN_ERR, "response": unicode(db_err)})) users = [] for user in __cursor.fetchall(): users.append(get_user_by_id(__cursor, user[0])[0]) __cursor.close() return HttpResponse(dumps({"code": codes.OK, "response": users}))
def follow(request): __cursor = connection.cursor() try: json_request = loads(request.body) except ValueError as value_err: __cursor.close() return HttpResponse(dumps({'code': codes.INVALID_QUERY, 'response': str(value_err)})) try: follower = unicode(json_request['follower']) followee = unicode(json_request['followee']) except KeyError as key_err: __cursor.close() return HttpResponse(dumps({'code': codes.INCORRECT_QUERY, 'response': 'Not found: {}'.format(str(key_err))})) # validate users users = [] for email in [follower, followee]: try: user_id_qs = __cursor.execute(SELECT_USER_BY_EMAIL, [email, ]) except DatabaseError as db_err: __cursor.close() return HttpResponse(dumps({'code': codes.UNKNOWN_ERR, 'response': unicode(db_err)})) if not __cursor.rowcount: __cursor.close() return HttpResponse(dumps({'code': codes.NOT_FOUND, 'response': 'user with not found'})) user_id = __cursor.fetchone()[0] users.append(user_id) try: __cursor.execute(INSERT_FOLLOWER, users) except IntegrityError: pass except DatabaseError as db_err: __cursor.close() return HttpResponse(dumps({'code': codes.UNKNOWN_ERR, 'response': unicode(db_err)})) try: user, related_ids = get_user_by_id(__cursor, users[0]) except DatabaseError as db_err: __cursor.close() return HttpResponse(dumps({'code': codes.UNKNOWN_ERR, 'response': unicode(db_err)})) __cursor.close() return HttpResponse(dumps({'code': codes.OK, 'response': user}))
def details(request): __cursor = connection.cursor() if request.method != 'GET': __cursor.close() return HttpResponse(dumps({'code': codes.INVALID_QUERY, 'response': 'request method should be GET'})) short_name = request.GET.get('forum') if not short_name: __cursor.close() return HttpResponse(dumps({'code': codes.INVALID_QUERY, 'response': 'forum name not found'})) try: __cursor.execute(SELECT_FORUM_BY_SHORT_NAME_FULL, [short_name, ]) if not __cursor.rowcount: __cursor.close() return HttpResponse(dumps({'code': codes.NOT_FOUND, 'response': 'forum not found'})) except DatabaseError as db_err: __cursor.close() return HttpResponse(dumps({'code': codes.UNKNOWN_ERR, 'response': unicode(db_err)})) forum = __cursor.fetchone() response = {"id": forum[0], "name": forum[1], "short_name": forum[2] } related = request.GET.get('related') if related: if related != 'user': __cursor.close() return HttpResponse(dumps({'code': codes.INCORRECT_QUERY, 'response': 'incorrect related parameter: {}'.format(related)})) user_id = forum[4] try: user, related_ids = get_user_by_id(__cursor, user_id) except DatabaseError as db_err: __cursor.close() return HttpResponse(dumps({'code': codes.UNKNOWN_ERR, 'response': unicode(db_err)})) response['user'] = user else: response["user"] = forum[3] __cursor.close() return HttpResponse(dumps({'code': codes.OK, 'response': response}))
def updateProfile(request): cursor = connection.cursor() try: json_request = loads(request.body) except ValueError as value_err: cursor.close() return HttpResponse(dumps({'code': codes.INVALID_QUERY, 'response': str(value_err)})) try: name = json_request['name'] email = json_request['user'] about = json_request['about'] except KeyError as key_err: cursor.close() return HttpResponse(dumps({'code': codes.INCORRECT_QUERY, 'response': 'Not found: {}'.format(str(key_err))})) try: cursor.execute(SELECT_USER_BY_EMAIL, [email, ]) if cursor.rowcount == 0: return HttpResponse(dumps({'code': codes.INVALID_QUERY, 'response': 'user does not exist'})) except DatabaseError as db_err: cursor.close() return HttpResponse(dumps({'code': codes.UNKNOWN_ERR, 'response': str(db_err)})) userId = cursor.fetchone()[0] try: cursor.execute(UPDATE_USER, [about, name, userId]) except DatabaseError as db_err: cursor.close() return HttpResponse(dumps({'code': codes.UNKNOWN_ERR, 'response': str(db_err)})) try: user, related_ids = get_user_by_id(cursor, userId) except DatabaseError as db_err: cursor.close() return HttpResponse(dumps({'code': codes.UNKNOWN_ERR, 'response': unicode(db_err)})) cursor.close() return HttpResponse(dumps({'code': codes.OK, 'response': user}))
def details(request): cursor = connection.cursor() if request.method != "GET": cursor.close() return HttpResponse(dumps({"code": general_utils.INVALID_QUERY, "response": "request method should be GET"})) short_name = request.GET.get("forum") if not short_name: cursor.close() return HttpResponse(dumps({"code": general_utils.INVALID_QUERY, "response": "forum name not found"})) try: cursor.execute(SELECT_FORUM_BY_SHORT_NAME_FULL, [short_name]) if cursor.rowcount == 0: cursor.close() return HttpResponse(dumps({"code": general_utils.NOT_FOUND, "response": "forum not found"})) except DatabaseError as db_err: cursor.close() return HttpResponse(dumps({"code": general_utils.UNKNOWN_ERR, "response": unicode(db_err)})) forum = cursor.fetchone() response = {"id": forum[0], "name": forum[1], "short_name": forum[2]} related = request.GET.get("related") if related: if related != "user": cursor.close() return HttpResponse( dumps( { "code": general_utils.INCORRECT_QUERY, "response": "incorrect related parameter: {}".format(related), } ) ) user_id = forum[4] try: user, related_itemids = get_user_by_id(cursor, user_id) except DatabaseError as db_err: cursor.close() return HttpResponse(dumps({"code": general_utils.UNKNOWN_ERR, "response": unicode(db_err)})) response["user"] = user else: response["user"] = forum[3] cursor.close() return HttpResponse(dumps({"code": general_utils.OK, "response": response}))
def listUsers(request): __cursor = connection.cursor() if request.method != 'GET': __cursor.close() return HttpResponse(dumps({'code': codes.INVALID_QUERY, 'response': 'request method should be GET'})) short_name = request.GET.get('forum') if not short_name: __cursor.close() return HttpResponse(dumps({'code': codes.INCORRECT_QUERY, 'response': 'forum name not found'})) try: forum_qs = __cursor.execute(SELECT_FORUM_BY_SHORT_NAME, [short_name, ]) if not __cursor.rowcount: __cursor.close() return HttpResponse(dumps({'code': codes.NOT_FOUND, 'response': 'forum not found'})) except DatabaseError as db_err: __cursor.close() return HttpResponse(dumps({'code': codes.UNKNOWN_ERR, 'response': unicode(db_err)})) forum_id = __cursor.fetchone()[0] get_all_forum_users_specified_query = SELECT_USER_ID_BY_FORUM query_params = [forum_id, ] since_id = general_utils.validate_id(request.GET.get('since_id')) if since_id: get_all_forum_users_specified_query += '''AND user.id >= %s ''' query_params.append(since_id) elif since_id == False and since_id is not None: __cursor.close() return HttpResponse(dumps({'code': codes.INCORRECT_QUERY, 'response': 'since_id should be int'})) order = request.GET.get('order', 'desc') if order.lower() not in ('asc', 'desc'): __cursor.close() return HttpResponse(dumps({'code': codes.INCORRECT_QUERY, 'response': 'incorrect order parameter: {}'.format(order)})) get_all_forum_users_specified_query += '''ORDER BY user.name ''' + order limit = request.GET.get('limit') if limit: try: limit = int(limit) except ValueError: __cursor.close() return HttpResponse(dumps({'code': codes.INCORRECT_QUERY, 'response': 'limit should be int'})) get_all_forum_users_specified_query += ''' LIMIT %s''' query_params.append(limit) try: users_qs = __cursor.execute(get_all_forum_users_specified_query, query_params) except DatabaseError as db_err: __cursor.close() return HttpResponse(dumps({'code': codes.UNKNOWN_ERR, 'response': unicode(db_err)})) users = [] for user in __cursor.fetchall(): users.append(get_user_by_id(__cursor, user[0])[0]) __cursor.close() return HttpResponse(dumps({'code': codes.OK, 'response': users }))
def list_follow_relationship(request): __cursor = connection.cursor() if request.method != 'GET': __cursor.close() return HttpResponse(dumps({'code': codes.INVALID_QUERY, 'response': 'request method should be GET'})) email = request.GET.get('user') # validate user try: __cursor.execute(SELECT_USER_BY_EMAIL, [email, ]) except DatabaseError as db_err: __cursor.close() return HttpResponse(dumps({'code': codes.UNKNOWN_ERR, 'response': unicode(db_err)})) if not __cursor.rowcount: __cursor.close() return HttpResponse(dumps({'code': codes.NOT_FOUND, 'response': 'user not found'})) user_id = __cursor.fetchone()[0] if relationship == 'follower': partner_relationship = 'following' else: partner_relationship = 'follower' query = SELECT_FOLLOW_RELATIONS.format(relationship, partner_relationship) query_params = [user_id, ] since_id = general_utils.validate_id(request.GET.get('id')) if since_id: query += '''AND {}_id >= %s '''.format(relationship) query_params.append(since_id) elif since_id == False and since_id is not None: __cursor.close() return HttpResponse(dumps({'code': codes.INCORRECT_QUERY, 'response': 'incorrect since_id fromat'})) order = request.GET.get('order', 'desc') if order.lower() not in ('asc', 'desc'): __cursor.close() return HttpResponse(dumps({'code': codes.INCORRECT_QUERY, 'response': 'incorrect order parameter: {}'.format(order)})) query += '''ORDER BY user.name ''' + order limit = request.GET.get('limit') if limit: try: limit = int(limit) except ValueError: __cursor.close() return HttpResponse(dumps({'code': codes.INCORRECT_QUERY, 'response': 'limit should be int'})) query += ''' LIMIT %s''' query_params.append(limit) try: __cursor.execute(query, query_params) except DatabaseError as db_err: __cursor.close() return HttpResponse(dumps({'code': codes.UNKNOWN_ERR, 'response': unicode(db_err)})) followers = [] for user_id in __cursor.fetchall(): try: user, related_ids = get_user_by_id(__cursor, user_id[0]) except DatabaseError as db_err: __cursor.close() return HttpResponse(dumps({'code': codes.UNKNOWN_ERR, 'response': unicode(db_err)})) followers.append(user) __cursor.close() return HttpResponse(dumps({'code': codes.OK, 'response': followers}))