#routes/post.py
from bottle import Bottle, redirect
from controllers.login import checkLogged

import bottle
bottle.BaseRequest.MEMFILE_MAX = 1024 * 1024

app = Bottle()

@app.route('/', method='post')
def index():
    if checkLogged.call():
        from controllers.dashboard.post import create
        return create.call()
    else:
        redirect('/')

@app.route('/edit/<id>')
def edit(id):
    if checkLogged.call():
        from controllers.dashboard.post import edit
        return edit.call(id)
    else:
        redirect('/')

@app.route('/delete/<id>')
def delete(id):
    if checkLogged.call():
        from controllers.dashboard.post import delete
        return delete.call(id)
    else:
        redirect('/')

@app.route('/paginate/<page>')
def paginate(page):
    if checkLogged.call():
        from controllers.dashboard.post import paginate
        return paginate.call(int(page))
    else:
        redirect('/')

 

#controllers/dashboard/post/paginate.py
import config
from bottle import request
from copy import deepcopy
from models.postdb import paginatedb

def call(page):
    kdict = deepcopy(config.kdict)
    posts = paginatedb.call(page, kdict['maxItemList'])
    
    return {'items':posts}

 

#models/postdb/paginatedb.py
import setConnection

def call(page, amount):
    cursor, connection = setConnection.call()

    sql = "SELECT * FROM post ORDER BY DATETIME(datetime) DESC, rowid DESC LIMIT ? OFFSET ?"
    cursor.execute(sql, (amount, page*amount))
    posts = cursor.fetchall()
    cursor.close()

    return posts

 

GitHub: https://github.com/Sokhavuth/REST-API

Vercel: https://rest-api-zeta.vercel.app