Beispiel #1
0
    def put(self):
        try:
            user = current_identity.user()
            if user is None:
                return {
                    "message": "Unable to find user information"
                }, status.HTTP_401_UNAUTHORIZED

            parser = reqparse.RequestParser()
            parser.add_argument("event_id", type=str, location="json")
            parser.add_argument("text_context", type=str, location="json")
            body = parser.parse_args()

            event = BaseEvent.objects(id=body.event_id).first()
            if event is None or event not in user.posted_events:
                return {
                    "message": "no permission to delete"
                }, status.HTTP_203_NON_AUTHORITATIVE_INFORMATION

            event.update(text_context=body.text_context,
                         is_edited=True,
                         last_edit_at=datetime.utcnow())
            user.update(last_online=datetime.utcnow())
            return event.get_complete_json(), status.HTTP_200_OK
        except Exception as e:
            return {"error": str(e)}, status.HTTP_400_BAD_REQUEST
Beispiel #2
0
    def delete(self):
        try:
            # Parsing JSON
            body = parser.parse_args()
            friend_username = body.username

            user = current_identity.user()
            friend = User.objects(username=friend_username).first()

            if user is None or friend is None:
                return {"message": "failed to find user"}, status.HTTP_203_NON_AUTHORITATIVE_INFORMATION

            '''
                Checking if the requesting user is in the friend list
            '''
            if any(friend_username in sublist for sublist in user.friends) is True:
                # Getting the relationship object
                relationship = Relationship.objects(between_users=[user.username, friend_username]).first()
                if relationship is None:
                    relationship = Relationship.objects(between_users=[friend_username, user.username]).first()
                    if relationship is None:
                        return {"message": "unable to find relationship"}, status.HTTP_204_NO_CONTENT

                # If the friend request found
                user.update(pull__friends=relationship)
                friend.update(pull__friends=relationship)
                relationship.delete()
                return {"message": "success"}, status.HTTP_200_OK
            else:
                return {"message": "not active friend"}
        except Exception as e:
            return {"message": str(e)}, status.HTTP_400_BAD_REQUEST
    def post(self):
        try:
            body = parser.parse_args()
            username = body.username

            # Getting two users
            user = current_identity.user()
            blocking_user = User.objects(username=username).first()
            if user is None or blocking_user is None:
                return {"message": "failed to find user"}, status.HTTP_203_NON_AUTHORITATIVE_INFORMATION

            '''
                Getting the relationship between two users and go from there
                *** NOTES: need to sort the relationship twice because there might be the wrong other of between_users
            '''
            relationship = Relationship.objects(between_users=[user.username, username]).first()
            if relationship is None:
                relationship = Relationship.objects(between_users=[username, user.username]).first()

            if relationship is None or relationship.status != app_constant.user_blocked:
                return {"message": "you are not blocking this user"}, status.HTTP_204_NO_CONTENT

            user.update(pull__blocking=relationship)
            blocking_user.update(pull__blocked_by=relationship)
            relationship.delete()
            return {"message": "success"}, status.HTTP_200_OK
        except Exception as e:
            return {"message": str(e)}, status.HTTP_400_BAD_REQUEST
Beispiel #4
0
    def post(self):
        try:
            user = current_identity.user()
            if user is None:
                return {
                    "message": "Unable to find user information"
                }, status.HTTP_401_UNAUTHORIZED

            parser = reqparse.RequestParser()
            parser.add_argument("event_id", type=str, location="json")
            body = parser.parse_args()

            event = BaseEvent.objects(id=body.event_id).first()
            if event is None:
                return {
                    "message": "event does not exists"
                }, status.HTTP_501_NOT_IMPLEMENTED

            if event in user.posted_events:
                return {
                    "message": "can not report your own event"
                }, status.HTTP_203_NON_AUTHORITATIVE_INFORMATION

            # Enough permission and information -> remove event
            user.update(add_to_set__reported_events=event,
                        last_online=datetime.utcnow())
            event.update(add_to_set__reported_by=user)
            return {"message": "success"}, status.HTTP_200_OK
        except Exception as e:
            return {"error": str(e)}, status.HTTP_400_BAD_REQUEST
Beispiel #5
0
    def delete(self):
        try:
            user = current_identity.user()
            if user is None:
                return {
                    "message": "Unable to find user information"
                }, status.HTTP_401_UNAUTHORIZED

            parser = reqparse.RequestParser()
            parser.add_argument("comment_id", type=str, location="json")
            body = parser.parse_args()

            comment_id = body.comment_id

            comment = BaseComment.objects(id=comment_id).first()
            if comment is None:
                return {
                    "message": "unable to fine event"
                }, status.HTTP_204_NO_CONTENT

            comment.update(pull__liked_by=user)
            user.update(last_online=datetime.utcnow())
            return {"message": "request success"}, status.HTTP_200_OK
        except ValueError as err:
            return {"error": str(err)}, status.HTTP_400_BAD_REQUEST
        except Exception as e:
            return {"error": str(e)}, status.HTTP_400_BAD_REQUEST
Beispiel #6
0
    def post(self):
        try:
            # Parsing JSON
            body = parser.parse_args()
            from_username = body.username

            user = current_identity.user()
            from_user = User.objects(username=from_username).first()

            if user is None or from_user is None:
                return {"message": "failed to find user"}, status.HTTP_203_NON_AUTHORITATIVE_INFORMATION

            # Checking if this user requested friend yet
            if any(from_username in sublist for sublist in user.friends_request_from) is True:
                # Getting the relationship object
                relationship = Relationship.objects(between_users=[user.username, from_username]).first()
                if relationship is None:
                    relationship = Relationship.objects(between_users=[from_username, user.username]).first()
                    if relationship is None:
                        return {"message": "unable to find friend request"}, status.HTTP_204_NO_CONTENT

                # If the friend request found
                user.update(pull__friends_request_from=relationship)
                from_user.update(pull__friends_request_to=relationship)

                relationship.update(time_of_action=datetime.utcnow(), status=app_constant.is_friend)
                user.update(add_to_set__friends=relationship)
                from_user.update(add_to_set__friends=relationship)
                return {"message": "success"}, status.HTTP_200_OK
            else:
                return {"message": "unable to find user request"}, status.HTTP_204_NO_CONTENT
        except Exception as e:
            return {"message": str(e)}, status.HTTP_400_BAD_REQUEST
    def post(self):
        try:
            body = parser.parse_args()
            username = body.username

            # Getting two users
            user = current_identity.user()
            blocking_user = User.objects(username=username).first()
            if user is None or blocking_user is None:
                return {"message": "failed to find user"}, status.HTTP_203_NON_AUTHORITATIVE_INFORMATION

            '''
                Getting the relationship between two users and go from there
                *** NOTES: need to sort the relationship twice because there might be the wrong other of between_users
            '''
            relationship = Relationship.objects(between_users=[user.username, username]).first()
            if relationship is None:
                relationship = Relationship.objects(between_users=[username, user.username]).first()

            # if there is no relationship, simply add both users to the relationship
            if relationship is None:
                blocked_request = Relationship(between_users=[user.username, username],
                                               status=app_constant.user_blocked).save()
                user.update(add_to_set__blocking=blocked_request)
                blocking_user.update(add_to_set__blocked_by=blocked_request)
                return {"message": "success"}, status.HTTP_200_OK

            '''
                If this the relationship exists, we have a friend request from them
                -- Blocking will also remove the user's request
            '''
            if relationship in user.friends_request_from:
                user.update(pull__friends_request_from=relationship)
                blocking_user.update(pull__friends_request_to=relationship)
                relationship.update(status=app_constant.user_blocked,
                                    time_of_action=datetime.utcnow())
                user.update(add_to_set__blocking=relationship)
                blocking_user.update(add_to_set__blocked_by=relationship)
                return {"message": "success"}, status.HTTP_200_OK

            if relationship in user.friends_request_to:
                user.update(pull__friends_request_to=relationship)
                blocking_user.update(pull__friends_request_from=relationship)
                relationship.update(status=app_constant.user_blocked,
                                    time_of_action=datetime.utcnow())
                user.update(add_to_set__blocking=relationship)
                blocking_user.update(add_to_set__blocked_by=relationship)
                return {"message": "success"}, status.HTTP_200_OK

            if relationship in user.friends:
                user.update(pull__friends=relationship)
                blocking_user.update(pull__friends=relationship)
                relationship.update(status=app_constant.user_blocked,
                                    time_of_action=datetime.utcnow())
                user.update(add_to_set__blocking=relationship)
                blocking_user.update(add_to_set__blocked_by=relationship)
                return {"message": "success"}, status.HTTP_200_OK
        except Exception as e:
            return {"error": str(e)}, status.HTTP_400_BAD_REQUEST
Beispiel #8
0
 def get(self):
     try:
         user = current_identity.user()
         if user is not None:
             user.update(last_online=datetime.utcnow())
             return user.get_json(), status.HTTP_200_OK
         return {"message": "Unable to find user information"}, status.HTTP_401_UNAUTHORIZED
     except Exception as e:
         return {"message": str(e)}
Beispiel #9
0
    def get(self, task_id):
        args = parser.parse_args()
        user = current_identity.user()
        task = Task.objects(local_id=task_id, user=user).first()

        if task is None:
            return {"code": 0, "message": "Not found"}, 404
        else:
            return task.get_json(), 200
Beispiel #10
0
    def put(self):
        # Getting current identified user
        parser = reqparse.RequestParser()
        user = current_identity.user()
        if user is None:
            return {"message": "null"}, status.HTTP_401_UNAUTHORIZED

        try:
            # Update user info
            parser.add_argument("profile_url", type=str, location="json")
            parser.add_argument("gender", type=str, location="json")
            parser.add_argument("display_name", type=str, location="json")
            parser.add_argument("nickname", type=str, location="json")
            parser.add_argument("birthday", type=str, location="json")
            parser.add_argument("longitude", type=float, location="json")
            parser.add_argument("latitude", type=float, location="json")
            body = parser.parse_args()

            # Getting the gender
            gender = body.gender
            if gender is not None and len(gender) > 0:
                user.gender = gender

            # Getting profile Url
            profile_url = body.profile_url
            if profile_url is not None and len(profile_url) > 0:
                user.profile_url = profile_url

            # Getting display name
            display_name = body.display_name
            if display_name is not None and len(display_name) > 0:
                user.display_name = display_name

            # Getting nickname
            nickname = body.nickname
            if nickname is not None and len(nickname) > 0:
                user.nickname = nickname

            # Getting user birthday
            birthday = body.birthday
            if birthday is not None and len(birthday) > 0:
                user.birthday = utils.date_from_iso8601(birthday)

            # Getting the location
            latitude = body.latitude
            longitude = body.longitude
            if latitude is not None and latitude > -181 and (longitude is not None and longitude > -181):
                user.location = [longitude, latitude]

            user.save()
            user.update(last_online=datetime.utcnow())
            return user.get_json(), status.HTTP_200_OK
        except Exception as e:
            print(str(e))
            return {"message": str(e)}, status.HTTP_400_BAD_REQUEST
Beispiel #11
0
    def delete(self, task_id):
        args = parser.parse_args()
        user = current_identity.user()
        task = Task.objects(local_id=task_id, user=user).first()

        if task is None:
            return {"code": 0, "message": "Not found"}, 404
        else:
            for task_progress in TaskProgress.objects(task=task):
                task_progress.delete()
            task.delete()
            return {"code": 1, "message": "Deleted"}, 200
Beispiel #12
0
    def post(self):
        try:
            # Parsing JSON
            body = parser.parse_args()
            to_username = body.username

            user = current_identity.user()
            to_user = User.objects(username=to_username).first()

            if user is None or to_user is None:
                return {"message": "failed to find user"}, status.HTTP_203_NON_AUTHORITATIVE_INFORMATION

            ''' 
            **********
                If this user already sent you a request -- sent back to him a request means accept friendship
            **********
            '''
            if any(to_username in sublist for sublist in user.friends_request_from) is True:
                # Getting the relationship object
                relationship = Relationship.objects(between_users=[user.username, to_username]).first()
                if relationship is None:
                    relationship = Relationship.objects(between_users=[to_username, user.username]).first()
                    if relationship is None:
                        return {"message": "unable to find friend request"}, status.HTTP_204_NO_CONTENT

                # If the friend request found
                user.update(pull__friends_request_from=relationship)
                to_user.update(pull__friends_request_to=relationship)

                relationship.update(time_of_action=datetime.utcnow(), status=app_constant.is_friend)
                user.update(add_to_set__friends=relationship)
                to_user.update(add_to_set__friends=relationship)

            ''' 
            **********
                If you already sent this user a friend request before
            **********
            '''
            if any(to_username in sublist for sublist in user.friends_request_to) is True:
                return {"message": "request already sent"}, status.HTTP_201_CREATED

            '''
            **********
                Nothing happened before, send branch new request to the user
            **********
            '''
            friend_request = Relationship(between_users=[user.username, to_username],
                                          status=app_constant.friend_requesting).save()
            user.update(add_to_set__friends_request_to=friend_request)
            to_user.update(add_to_set__friends_request_from=friend_request)
            return {"message": "success"}, status.HTTP_200_OK
        except Exception as e:
            return {"message": str(e)}, status.HTTP_400_BAD_REQUEST
Beispiel #13
0
    def put(self):
        # Getting current identified user
        parser = reqparse.RequestParser()
        user = current_identity.user()

        try:
            # Getting new password and update
            parser.add_argument("password", type=str, location="json")
            body = parser.parse_args()
            password = body.password
            if password is not None and len(password) > 0:
                user.update(last_online=datetime.utcnow(), password=password)
                return {"message": "success"}, status.HTTP_200_OK
            return {"message": "invalid password"}, 204
        except Exception as e:
            return {"message": str(e)}, 401
Beispiel #14
0
    def post(self):
        try:
            user = current_identity.user()
            if user is None:
                return {
                    "message": "Unable to find user information"
                }, status.HTTP_401_UNAUTHORIZED

            parser = reqparse.RequestParser()
            parser.add_argument("event_id", type=str, location="json")
            parser.add_argument("text_content", type=str, location="json")
            parser.add_argument("image", type=str, location="json")
            body = parser.parse_args()

            event_id = body.event_id
            text_content = body.text_content
            image = body.image

            # Now file the event and then add comment to it
            event = BaseEvent.objects(id=event_id).first()
            if event is None:
                return {
                    "message": "event not found"
                }, status.HTTP_204_NO_CONTENT

            comment = BaseComment(create_by=user,
                                  text_content=text_content,
                                  image=image).save()
            event.update(add_to_set__comments=comment)

            # Now create an action
            action = BaseAction(
                by_user=user,
                action_type=app_constant.action_comment_event,
                target=event.id,
                content=comment.id,
                action_priority=app_constant.priority_low).save()
            user.update(last_online=datetime.utcnow(),
                        add_to_set__recent_actions=action)

            return {"message": "request success"}, status.HTTP_200_OK
        except ValueError as err:
            return {"error": str(err)}, status.HTTP_400_BAD_REQUEST
        except Exception as e:
            return {"error": str(e)}, status.HTTP_400_BAD_REQUEST
    def post(self):
        try:
            body = parser.parse_args()
            username = body.username

            # Getting current user
            user = current_identity.user()
            ignore_ppl = User.objects(username=username).first()
            if user is None or ignore_ppl is None:
                return {
                    "message": "failed to find user"
                }, status.HTTP_203_NON_AUTHORITATIVE_INFORMATION

            if ignore_ppl in user.ignoring:
                return {"message": "already ignored"}, status.HTTP_201_CREATED

            user.update(add_to_set__ignoring=ignore_ppl)
            return {"message": "success"}, status.HTTP_200_OK
        except Exception as e:
            return {"error": str(e)}, status.HTTP_400_BAD_REQUEST
Beispiel #16
0
    def post(self):
        args = parser.parse_args()

        user = current_identity.user()
        local_id = args["local_id"]
        name = args["name"]
        due_date = utils.date_from_iso8601(args["due_date"])
        color = args["color"]
        payment_per_hour = args["payment_per_hour"]

        task = Task(user=user,
                    local_id=local_id,
                    name=name,
                    due_date=due_date,
                    color=color,
                    payment_per_hour=payment_per_hour,
                    done=False)

        task.save()
        return task.get_json(), 201
    def post(self):
        try:
            user = current_identity.user()
            if user is None:
                return {
                    "message": "Unable to find user information"
                }, status.HTTP_401_UNAUTHORIZED

            parser = reqparse.RequestParser()
            parser.add_argument("name", type=str, location="json")
            parser.add_argument("subname", type=str, location="json")
            parser.add_argument("profile_url", type=str, location="json")
            parser.add_argument("wallpaper_url", type=str, location="json")
            parser.add_argument("description", type=str, location="json")
            parser.add_argument("tags", type=list, location="json")
            body = parser.parse_args()

            name = body.name
            subname = body.subname
            description = body.description
            profile_url = body.profile_url
            wallpaper_url = body.wallpaper_url
            tags = body.tags

            channel = BaseChannel(created_by=user,
                                  owner=user,
                                  name=name,
                                  subname=subname,
                                  description=description,
                                  profile_url=profile_url,
                                  wallpaper_url=wallpaper_url,
                                  tags=tags).save()

            user.update(last_online=datetime.utcnow(),
                        add_to_set__owner_channels=channel,
                        add_to_set__created_channels=channel)
            return {"message": "request success"}, status.HTTP_200_OK
        except ValueError as err:
            return {"error": str(err)}, status.HTTP_400_BAD_REQUEST
        except Exception as e:
            return {"error": str(e)}, status.HTTP_400_BAD_REQUEST
Beispiel #18
0
    def delete(self):
        try:
            user = current_identity.user()
            if user is None:
                return {"message": "Unable to find user information"}, status.HTTP_401_UNAUTHORIZED

            # Delete everything created by the current user
            # Todo: Need to delete references of things created by this user
            for action in BaseAction.objects(by_user=user):
                action.delete()

            for comment in BaseComment.objects(create_by=user):
                comment.delete()

            for event in BaseEvent.objects(create_by=user):
                event.delete()

            user.delete()
            return {"message": "delete account complete"}, status.HTTP_200_OK
        except Exception as e:
            return {"message": str(e)}
Beispiel #19
0
    def get(self, _from, _to):
        try:
            user = current_identity.user()
            if user is None:
                return {"message": "Unable to find user information"}, status.HTTP_401_UNAUTHORIZED

            try:
                _from = int(_from)
                _to = int(_to)
            except ValueError as err:
                pass

            user.update(last_online=datetime.utcnow())
            if _from > len(user.posted_events):
                return [], status.HTTP_200_OK
            elif _to >= len(user.posted_events):
                return [event.get_complete_json() for event in user.posted_events[_from:]], status.HTTP_200_OK
            else:
                return [event.get_complete_json() for event in user.posted_events[_from:_to]], status.HTTP_200_OK
        except Exception as e:
            return {"error": str(e)}, status.HTTP_400_BAD_REQUEST
Beispiel #20
0
    def delete(self):
        try:
            user = current_identity.user()
            if user is None:
                return {"message": "Unable to find user information"}, status.HTTP_401_UNAUTHORIZED

            parser = reqparse.RequestParser()
            parser.add_argument("event_id", type=str, location="json")

            body = parser.parse_args()
            event = BaseEvent.objects(id=body.event_id).first()
            if event is None:
                return {"message": "failed to find event"}, status.HTTP_204_NO_CONTENT

            if user not in event.liked_by:
                return {"message": "you did not like the event"}, status.HTTP_204_NO_CONTENT

            event.update(pull__liked_by=user)
            user.update(last_online=datetime.utcnow())
        except Exception as e:
            return {"error": str(e)}, status.HTTP_400_BAD_REQUEST
Beispiel #21
0
    def put(self):
        # Getting current identified user
        user = current_identity.user()
        if user is None:
            return {"message": "Unable to find user information"}, status.HTTP_401_UNAUTHORIZED

        # Try to save user display name
        try:
            parser = reqparse.RequestParser()
            parser.add_argument("birthday", type=str, location="json")
            body = parser.parse_args()
            birthday = body.birthday
            if birthday is not None and len(birthday) > 0:
                user.birthday = utils.date_from_iso8601(birthday)
                user.save()
                user.update(last_online=datetime.utcnow())
                return status.HTTP_200_OK
            else:
                return {"message": "Invalid Birthday"}, status.HTTP_417_EXPECTATION_FAILED
        except Exception as e:
            return {"message": str(e)}, status.HTTP_400_BAD_REQUEST
Beispiel #22
0
    def post(self):
        try:
            user = current_identity.user()
            if user is None:
                return {"message": "Unable to find user information"}, status.HTTP_401_UNAUTHORIZED

            parser = reqparse.RequestParser()
            parser.add_argument("event_id", type=str, location="json")

            body = parser.parse_args()
            event = BaseEvent.objects(id=body.event_id).first()
            if event is None:
                return {"message": "failed to find event"}, status.HTTP_204_NO_CONTENT

            event.update(add_to_set__liked_by=user)

            # Now create an action
            action = BaseAction(by_user=user, action_type=app_constant.action_like_event, target=event.id,
                                action_priority=app_constant.priority_low).save()
            user.update(add_to_set__recent_actions=action, last_online=datetime.utcnow())
        except Exception as e:
            return {"error": str(e)}, status.HTTP_400_BAD_REQUEST
Beispiel #23
0
    def post(self):
        try:
            user = current_identity.user()
            if user is None:
                return {
                    "message": "Unable to find user information"
                }, status.HTTP_401_UNAUTHORIZED

            parser = reqparse.RequestParser()
            parser.add_argument("text_context", type=str, location="json")
            parser.add_argument("images", type=list, location="json")
            parser.add_argument("contain_event", type=str, location="json")
            parser.add_argument("privacy", type=str, location="json")
            parser.add_argument("longitude", type=float, location="json")
            parser.add_argument("latitude", type=float, location="json")
            parser.add_argument("tags", type=list, location="json")
            body = parser.parse_args()

            event = BaseEvent(create_by=user,
                              text_context=body.text_context,
                              images=body.images,
                              contain_event=body.contain_event,
                              privacy=body.privacy,
                              location=[body.longitude, body.latitude],
                              tags=body.tags).save()

            # Now create an action
            action = BaseAction(
                by_user=user,
                action_type=app_constant.action_create_new_event,
                target=event.id,
                action_priority=app_constant.priority_medium).save()
            user.update(add_to_set__posted_events=event,
                        add_toset__recent_actions=action,
                        last_online=datetime.utcnow())

            return event.get_initial_json(), status.HTTP_200_OK
        except Exception as e:
            return {"error": str(e)}, status.HTTP_400_BAD_REQUEST
    def delete(self):
        try:
            body = parser.parse_args()
            username = body.username

            # Getting current user
            user = current_identity.user()
            ignore_ppl = User.objects(username=username).first()
            if user is None or ignore_ppl is None:
                return {
                    "message": "failed to find user"
                }, status.HTTP_203_NON_AUTHORITATIVE_INFORMATION

            if ignore_ppl not in user.ignoring:
                return {
                    "message": "not ignore this person"
                }, status.HTTP_204_NO_CONTENT

            user.update(pull__ignoring=ignore_ppl)
            return {"message": "success"}, status.HTTP_200_OK
        except Exception as e:
            return {"error": str(e)}, status.HTTP_400_BAD_REQUEST
Beispiel #25
0
    def put(self):
        # Getting current identified user
        user = current_identity.user()
        if user is None:
            return {"message": "Unable to find user information"}, status.HTTP_401_UNAUTHORIZED

        # Try to save user display name
        try:
            parser = reqparse.RequestParser()
            parser.add_argument("gender", type=str, location="json")
            body = parser.parse_args()
            gender = body.gender
            if gender is not None and len(gender) > 0 and gender in GENDER:
                user.gender = gender
                user.save()
                user.update(last_online=datetime.utcnow())
                return status.HTTP_200_OK
            else:
                return {"message": "Invalid gender! Gender must be one of 'Male', 'Female', 'Other'"},\
                       status.HTTP_417_EXPECTATION_FAILED
        except Exception as e:
            return {"message": str(e)}, status.HTTP_400_BAD_REQUEST
Beispiel #26
0
    def get(self, _from, _to):
        try:
            user = current_identity.user()
            if user is None:
                return {
                    "message": "Unable to find user information"
                }, status.HTTP_401_UNAUTHORIZED

            parser = reqparse.RequestParser()
            parser.add_argument("event_id", type=str, location="json")
            body = parser.parse_args()

            event_id = body.event_id

            event = BaseEvent.objects(id=event_id).first()
            if event is None:
                return {
                    "message": "event not found"
                }, status.HTTP_204_NO_CONTENT

            comments = event.comments
            comments.sort(operator.attrgetter('liked_by'))

            if _from > len(comments):
                return [], status.HTTP_200_OK
            elif _to >= len(comments):
                return [
                    comment.get_complete_json() for comment in comments[_from:]
                ], status.HTTP_200_OK
            else:
                return [
                    comment.get_complete_json()
                    for comment in comments[_from:_to]
                ], status.HTTP_200_OK
        except ValueError as err:
            return {"error": str(err)}, status.HTTP_400_BAD_REQUEST
        except Exception as e:
            return {"error": str(e)}, status.HTTP_400_BAD_REQUEST
Beispiel #27
0
    def put(self, task_id):
        args = parser.parse_args()
        user = current_identity.user()
        task = Task.objects(local_id=task_id, user=user).first()

        if task is None:
            return {"code": 0, "message": "Not found"}, 404
        else:
            args = parser.parse_args()
            local_id = args["local_id"]
            name = args["name"]
            due_date = utils.date_from_iso8601(args["due_date"])
            color = args["color"]
            done = args["done"]
            payment_per_hour = args["payment_per_hour"]

            task.update(set__local_id=local_id,
                        set__name=name,
                        set__due_date=due_date,
                        set__color=color,
                        set__done=done,
                        set__payment_per_hour=payment_per_hour)
            return Task.objects().with_id(task.id).get_json(), 200
    def post(self):
        try:
            user = current_identity.user()
            if user is None:
                return {
                    "message": "failed to find user"
                }, status.HTTP_401_UNAUTHORIZED

            parser = reqparse.RequestParser()
            parser.add_argument("from_pos", type=int, location="json")
            parser.add_argument("to_pos", type=int, location="json")
            body = parser.parse_args()

            # Getting the values
            _from_pos = body.from_pos
            _to_pos = body.to_pos

            return [
                friend.get_simple()
                for friend in user.friends[_from_pos:_to_pos]
            ]
        except Exception as e:
            return {"error": str(e)}, status.HTTP_400_BAD_REQUEST
Beispiel #29
0
 def get(self):
     user = current_identity.user()
     tasks = Task.objects(user=user)
     return [task.get_json() for task in tasks], 200