예제 #1
0
파일: messages.py 프로젝트: szkocka/api
    def post(self, current_user, forum):
        message = Message(
                creator_key=current_user.key,
                forum_key=forum.key,
                status=StatusType.ACTIVE,
                text=request.json['message'])

        message_key = message.put()
        current_user.posted_messages += 1
        current_user.put()

        add_task(message_key.id())

        return created(MessageIdJson(message_key))
예제 #2
0
파일: insert_wraps.py 프로젝트: szkocka/api
    def wrapper(*args, **kwargs):
        if 'message_id' not in kwargs:
            return bad_request('To use insert_message wrapper message_id must be in url.')

        _id = kwargs['message_id']
        message = Message.get(int(_id))

        if message is None:
            return message_not_found(_id)

        del kwargs['message_id']
        kwargs['message'] = message

        return func(*args, **kwargs)
예제 #3
0
파일: researches.py 프로젝트: szkocka/api
    def delete(self, research, current_user):
        research.status = StatusType.DELETED
        research.put()

        forums = Forum.by_research2(research.key)

        for forum in forums:
            forum.status = StatusType.DELETED
            forum.put()

            messages = Message.by_forum2(forum.key)

            for message in messages:
                message.status = StatusType.DELETED
                message.put()

        ResearchIndex(research).delete()

        return ok_msg('Research is deleted.')
예제 #4
0
파일: tasks.py 프로젝트: szkocka/api
    def post(self):
        message_id = int(request.json['message_id'])
        message = Message.get(message_id)

        message_creator_key = message.creator_key
        message_creator = message_creator_key.get()
        forum = message.forum_key.get()
        research = forum.research_key.get()

        for researcher_key in research.researchers_keys:
            if researcher_key != message_creator_key:
                researcher = researcher_key.get()

                subj = NewMessageSubj(forum.subject, research.title)
                body = NewMessage(researcher.name, message_creator.name,
                                  forum.subject, message.text,
                                  research.key.id(), forum.key.id())

                send_email(subj, body, researcher.email)

        return ok_msg('Notification sent.')
예제 #5
0
파일: messages.py 프로젝트: szkocka/api
 def get(self, current_user, forum):
     cursor = request.args.get('cursor')
     messages, cursor, _ = Message.by_forum(forum.key, cursor)
     return ok(ListMessagesJson(messages, cursor))
예제 #6
0
파일: users.py 프로젝트: szkocka/api
def update_messages_status(user, status):
    messages = Message.by_creator2(user.key)

    for message in messages:
        message.status = status
        message.put()
예제 #7
0
파일: users.py 프로젝트: szkocka/api
    def get(self, current_user, user):
        cursor = request.args.get('cursor')
        messages, cursor, _ = Message.by_creator(user.key, cursor)

        return ok(ListMessagesJson(messages, cursor))