From ee18b5535c633c167b9925c212d9e465c0f9d18f Mon Sep 17 00:00:00 2001 From: Lulzette Date: Fri, 17 Sep 2021 14:29:32 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9F=D1=80=D0=B8=D0=B2=D0=B5=D1=82,=20=D0=BA?= =?UTF-8?q?=D0=BB=D0=B0=D1=81=D1=81=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.py | 95 ++++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 60 insertions(+), 35 deletions(-) diff --git a/main.py b/main.py index 99d29a6..ccd4e4c 100755 --- a/main.py +++ b/main.py @@ -1,5 +1,5 @@ #!/usr/bin/python3 -from bottle import abort, route, run, template, debug, request +from bottle import abort, route, run, request import pymongo mongoclient = pymongo.MongoClient('localhost', 27017) @@ -7,41 +7,83 @@ database = mongoclient['pycms'] posts = database['posts'] +class Init: + def readConfig(): + """ + Read config file, if not exists - call Init.createConfig() + """ + pass + + def createConfig(): + """ + Create config file + """ + pass + + def setupConnect(): + """ + Setup MongoDB connection + """ + pass + + +class Back: + """ + All actions that will be triggered by http + """ + def getRootPost(): + try: + return posts.find_one({'name': '_root_'})['text'] + except TypeError: + return abort(404, 'No such page') + + def getPost(name): + try: + return posts.find_one({'name': name})['text'] + except TypeError: + return abort(404, 'No such page') + + def updatePost(name, body): + # If post exists, update it + if posts.find_one({'name': name}): + newPost = {'$set': {'text': body}} + return str(posts.update_one({'name': name}, newPost)) + # Else - create new + else: + newPost = {'name': name, 'text': body} + return str(posts.insert_one(newPost).inserted_id) + + def deletePost(name): + return posts.delete_one({'name': name}) + + @route('/post/') def post(name): ''' Get post ''' - try: - return posts.find_one({'name':name})['text'] - except TypeError: - return abort(404, 'No such page') + return Back.getPost(name) @route('/post/', method='POST') -def post(name): +def postUpd(name): ''' Insert/Update post ''' body = request.forms.get('body') - # If post exists, update it - if posts.find_one({'name': name}): - newPost = {'$set': {'text': body}} - return str(posts.update_one({'name': name}, newPost)) - # Else - create new - else: - newPost = {'name': name, 'text': body} - return str(posts.insert_one(newPost).inserted_id) + return Back.updatePost(name=name, body=body) @route('/post/', method='DELETE') -def post(name): +def postDel(name): ''' Delete post by name ''' - return str(posts.delete_one({'name':name})) + # return str(posts.delete_one({'name':name})) + return str(Back.deletePost(name)) -@route('/posts') + +@route('/post') def all_posts(): ''' Returns all posts @@ -55,25 +97,8 @@ def all_posts(): @route('/') def index(): - try: - return posts.find_one({'name':'/'})['text'] - except TypeError: - return abort(404, 'No such page') + return Back.getRootPost() -@route('/', method='POST') -def post(): - ''' - Insert/Update post - ''' - body = request.forms.get('body') - # If post exists, update it - if posts.find_one({'name': '/'}): - newPost = {'$set': {'text': body}} - return str(posts.update_one({'name': '/'}, newPost)) - # Else - create new - else: - newPost = {'name': '/', 'text': body} - return str(posts.insert_one(newPost).inserted_id) if __name__ == '__main__': run(host='0.0.0.0', port=8081, reloader=True, debug=True)