示例#1
0
文件: tag.py 项目: MyGodIsHe/Blog
 def get(self, tag_id):
     author = g.user
     tag = TagModel.query.get(tag_id)
     if not tag:
         abort(404, error=f"Tag with id={tag_id} not found")
     if tag.author != author:
         abort(403, error=f"Access denied to tag with id={tag_id}")
     return tag, 200
示例#2
0
文件: note.py 项目: MyGodIsHe/Blog
 def get(self, note_id):
     author = g.user
     note = NoteModel.query.get(note_id)
     if not note:
         abort(404, error=f"Note with id={note_id} not found")
     if note.author != author:
         abort(403, error=f"Access denied to note with id={note_id}")
     return note, 200
示例#3
0
 def post(self, **kwargs):
     user = UserModel(**kwargs)
     try:
         user.save()
         return user, 201
     except:
         abort(404, error=f"An error occurred while adding new user" \
                          "or a user with such name is already exist. " \
                          "You can only add a unique name")
示例#4
0
 def get(self):
     """
     Возвращает все публичные заметки пользователя
     :return: заметки
     """
     notes = NoteModel.get_all_public_notes()
     if not notes:
         abort(404, error=f"Public notes not found")
     return notes, 200
示例#5
0
 def get(self):
     """
     Возвращает всех пользователей
     :return: пользователи
     """
     users = UserModel.query.all()
     if not users:
         abort(404, error=f"No users yet")
     return users, 200
示例#6
0
文件: user.py 项目: MyGodIsHe/Blog
 def delete(self, user_id):
     user = UserModel.query.get(user_id)
     if not user:
         abort(404, error=f"User with id={user_id} is not exists")
     try:
         user.delete()
         return f"User with id={user_id} deleted", 200
     except:
         abort(404, error=f"An error occurred while deleting the user")
示例#7
0
 def get(self, user_id):
     """
     Возвращает пользователя по id.
     :param user_id: id пользователя
     :return: пользователя
     """
     user = UserModel.query.get(user_id)
     if not user:
         abort(404, error=f"No user with id={user_id}")
     return user, 200
示例#8
0
文件: user.py 项目: MyGodIsHe/Blog
 def put(self, user_id, **kwargs):
     user = UserModel.query.get(user_id)
     if not user:
         abort(404, error=f"No user with id={user_id}")
     user.username = kwargs["username"]
     try:
         user.save()
         return user, 200
     except:
         abort(404, error=f"An error occurred while changing the user")
示例#9
0
 def put(self, note_id, **kwargs):
     note = NoteModel.query.get(note_id)
     if not note:
         abort(404, error=f"note {note_id} not found")
     print("note kwargs = ", kwargs)
     for tag_id in kwargs["tags"]:
         tag = TagModel.query.get(tag_id)
         note.tags.append(tag)
     note.save()
     return note, 200
示例#10
0
 def put(self, note_id, **kwargs):
     author = g.user
     note = NoteModel.query.get(note_id)
     if not note:
         abort(404, error=f"note {note_id} not found")
     if note.author != author:
         abort(403, error=_(f"Forbidden"))
     note.text = kwargs["text"]
     note.private = kwargs["private"]
     note.save()
     return note, 200
示例#11
0
文件: tag.py 项目: MyGodIsHe/Blog
 def post(self, **kwargs):
     author = g.user
     tag = TagModel(author_id=author.id, **kwargs)
     try:
         tag.save()
         return tag, 201
     except:
         abort(404,
               error=f"An error occurred while adding new tag"
               " or a tag with such name is already exist. "
               "You can only add a unique tag")
示例#12
0
文件: note.py 项目: MyGodIsHe/Blog
 def get(self, **kwargs):
     notes_lst = []
     for tag_name in kwargs["tags"]:
         #pdb.set_trace()
         notes = NoteModel.get_notes_filtered_by_tags(tag_name)
         if not notes:
             abort(404, error=f"Note with tag_name={tag_name} not found")
         for note in notes:
             if note not in notes_lst:
                 notes_lst.append(note)
     return notes_lst, 200
示例#13
0
 def get(self):
     """
     Возвращает все теги пользователя
     Требуется аутентификация.
     :return: теги
     """
     author = g.user
     tags = TagModel.query.filter_by(author_id=author.id).all()
     if not tags:
         abort(404, error=f"No tags yet")
     return tags, 200
示例#14
0
 def get(self, note_id):
     author = g.user
     note = NoteModel.query.get(note_id)
     if not note:
         # app.logger.warning("Кто-то пытается получить нечто")
         # abort(404, error=f"Note with id={note_id} not found")
         abort(404,
               error=_("Note with id=%(note_id) not found"),
               note_id=note_id)
     if note.author != author:
         abort(403, error=_("Forbidden"))
     return note, 200
示例#15
0
 def get(self):
     """
     Возвращает все архивные заметки пользователя.
     Используется фильтр - "архивные".
     Требуется аутентификация.
     :return:
     """
     author = g.user
     notes = NoteModel.get_all_notes(author, archive="archive")
     if not notes:
         abort(404, error=f"You have no notes yet")
     return notes, 200
示例#16
0
 def get(self):
     """
     Возвращает все заметки пользователя.
     Фильтры поиска не применяются.
     Требуется аутентификация.
     :return: все заметки
     """
     author = g.user
     notes = NoteModel.get_all_notes(author, archive="all")
     if not notes:
         abort(404, error=f"You have no notes yet")
     return notes, 200
示例#17
0
 def delete(self, user_id):
     """
     Удаляет пользователя по id.
     :param user_id: id пользователя
     :return: пользователя
     """
     user = UserModel.query.get(user_id)
     if not user:
         abort(404, error=f"User with id={user_id} is not exists")
     try:
         user.delete()
         return f"User with id={user_id} deleted", 200
     except:
         abort(404, error=f"An error occurred while deleting the user")
示例#18
0
 def get(self, note_id):
     """
     Возвращает заметку пользователя.
     Требуется аутентификация.
     :param note_id: id заметки
     :return: замтку
     """
     author = g.user
     note = NoteModel.query.get(note_id)
     if not note:
         abort(404, error=f"Note with id={note_id} not found")
     if note.author != author:
         abort(403, error=f"Access denied to note with id={note_id}")
     return note, 200
示例#19
0
 def get(self, tag_id):
     """
     Возвращает тег по id.
     Требуется аутентификация.
     :param tag_id: id тега
     :return: тег
     """
     author = g.user
     tag = TagModel.query.get(tag_id)
     if not tag:
         abort(404, error=f"Tag with id={tag_id} not found")
     if tag.author != author:
         abort(403, error=f"Access denied to tag with id={tag_id}")
     return tag, 200
示例#20
0
 def put(self, user_id, **kwargs):
     """
     Изменяет пользователя по id.
     :param user_id: id пользователя
     :param kwargs: параметры для изменения пользователя
     :return: пользователя
     """
     user = UserModel.query.get(user_id)
     if not user:
         abort(404, error=f"No user with id={user_id}")
     user.username = kwargs["username"]
     try:
         user.save()
         return user, 200
     except:
         abort(404, error=f"An error occurred while changing the user")
示例#21
0
 def get(self, **kwargs):
     """
     Возвращает заметки, фильтруя по привязанным тегам.
     :param kwargs: теги в формате списка
     :return: заметки
     """
     notes_lst = []
     for tag_name in kwargs["tags"]:
         #pdb.set_trace()
         notes = NoteModel.get_notes_filtered_by_tags(tag_name)
         if not notes:
             abort(404, error=f"Note with tag_name={tag_name} not found")
         for note in notes:
             if note not in notes_lst:
                 notes_lst.append(note)
     return notes_lst, 200
示例#22
0
 def put(self, note_id):
     """
     Изменяет статус заметки на "не архивная".
     Требуется аутентификация.
     :param note_id: id заметки
     :return: заметку
     """
     author = g.user
     note = NoteModel.query.get(note_id)
     if not note:
         abort(404, error=f"Note with id={note_id} not found")
     if note.author != author:
         abort(403, error=f"Access denied to note with id={note_id}")
     note.archive = False
     note.save()
     return note, 200
示例#23
0
 def post(self, **kwargs):
     """
     Создает тег пользователя.
     Требуется аутентификация.
     :param kwargs: параметры для создания тега
     :return: тег
     """
     author = g.user
     tag = TagModel(author_id=author.id, **kwargs)
     try:
         tag.save()
         return tag, 201
     except:
         abort(404,
               error=f"An error occurred while adding new tag"
               " or a tag with such name is already exist. "
               "You can only add a unique tag")
示例#24
0
文件: note.py 项目: MyGodIsHe/Blog
 def put(self, note_id, **kwargs):
     author = g.user
     note = NoteModel.query.get(note_id)
     if not note:
         abort(404, error=f"note with id={note_id} not found")
     if note.author != author:
         abort(403, error=f"Access denied to note with id={note_id}")
     for tag_id in kwargs["tags"]:
         tag = TagModel.query.get(tag_id)
         if not tag:
             abort(404, error=f"Tag with id={tag_id} not found")
         if tag.author != author:
             abort(403, error=f"Access denied to tag with id={tag_id}")
         note.tags.append(tag)
     note.save()
     return note, 200
示例#25
0
文件: note.py 项目: MyGodIsHe/Blog
 def delete(self, note_id):
     author = g.user
     note = NoteModel.query.get(note_id)
     if not note:
         abort(404, error=f"Note with id={note_id} not found")
     if note.author != author:
         abort(403, error=f"Access denied to note with id={note_id}")
     try:
         note.delete()
         return f"Note with id={note_id} deleted", 200
     except:
         abort(404, error=f"An error occurred while changing note")
示例#26
0
文件: tag.py 项目: MyGodIsHe/Blog
 def delete(self, tag_id):
     author = g.user
     tag = TagModel.query.get(tag_id)
     if not tag:
         abort(404, error=f"Tag with id={tag_id} not found")
     if tag.author != author:
         abort(403, error=f"Access denied to tag with id={tag_id}")
     try:
         tag.delete()
         return f"Tag with id={tag_id} deleted", 200
     except:
         abort(404, error=f"An error occurred while changing note")
示例#27
0
文件: note.py 项目: MyGodIsHe/Blog
 def put(self, note_id, **kwargs):
     author = g.user
     note = NoteModel.query.get(note_id)
     if not note:
         abort(404, error=f"Note with id={note_id} not found")
     if note.author != author:
         abort(403, error=f"Access denied to note with id={note_id}")
     for key in kwargs.keys():
         setattr(note, key, kwargs[key])
     try:
         note.save()
         return note, 200
     except:
         abort(404, error=f"An error occurred while changing note")
示例#28
0
文件: tag.py 项目: MyGodIsHe/Blog
 def put(self, tag_id, **kwargs):
     author = g.user
     tag = TagModel.query.get(tag_id)
     if not tag:
         abort(404, error=f"Tag with id={tag_id} not found")
     if tag.author != author:
         abort(403, error=f"Access denied to tag with id={tag_id}")
     tag.name = kwargs["name"]
     try:
         tag.save()
         return tag, 200
     except:
         abort(404,
               error=f"An error occurred while changing tag"
               f" or a tag with such name is already exist.")
示例#29
0
 def put(self, note_id, **kwargs):
     """
     Присваивает теги к заметке.
     Требуется аутентификация.
     :param note_id: id заметки
     :param kwargs: id тегов в формате списка
     :return: заметку
     """
     author = g.user
     note = NoteModel.query.get(note_id)
     if not note:
         abort(404, error=f"note with id={note_id} not found")
     if note.author != author:
         abort(403, error=f"Access denied to note with id={note_id}")
     for tag_id in kwargs["tags"]:
         tag = TagModel.query.get(tag_id)
         if not tag:
             abort(404, error=f"Tag with id={tag_id} not found")
         if tag.author != author:
             abort(403, error=f"Access denied to tag with id={tag_id}")
         note.tags.append(tag)
     note.save()
     return note, 200
示例#30
0
 def delete(self, tag_id):
     """
     Удаляет тег по id.
     Требуется аутентификация.
     :param tag_id: id тега
     :return: тег
     """
     author = g.user
     tag = TagModel.query.get(tag_id)
     if not tag:
         abort(404, error=f"Tag with id={tag_id} not found")
     if tag.author != author:
         abort(403, error=f"Access denied to tag with id={tag_id}")
     try:
         tag.delete()
         return f"Tag with id={tag_id} deleted", 200
     except:
         abort(404, error=f"An error occurred while changing note")