Skip to content

Commit

Permalink
Merge pull request #58 from scrolltech/SeparatedAdminService
Browse files Browse the repository at this point in the history
Separated admin service
  • Loading branch information
gauravr committed Aug 20, 2019
2 parents 6d297f8 + e96d110 commit 0408efd
Show file tree
Hide file tree
Showing 4 changed files with 88 additions and 23 deletions.
27 changes: 27 additions & 0 deletions admin_service.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import app.bootstrap

import hug

from apphelpers.rest.hug import APIFactory
from app.admin_endpoints import setup_routes

import app.models

from converge import settings


def make_app():
router = hug.route.API(__name__)

api_factory = APIFactory(router)
api_factory.setup_db_transaction(app.models.db)
sessiondb_conn = dict(host=settings.SESSIONSDB_HOST,
port=settings.SESSIONSDB_PORT,
password=settings.SESSIONSDB_PASSWD,
db=settings.SESSIONSDB_NO)
api_factory.setup_session_db(sessiondb_conn)

setup_routes(api_factory)


make_app()
53 changes: 53 additions & 0 deletions app/admin_endpoints.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
import app.libs.debug as debughelpers
import app.libs.asset_request as arlib
import app.libs.asset as assetlib
import app.libs.pending_comment as pclib
import app.libs.rejected_comment as rclib
import app.libs.comment as commentlib
import app.libs.comment_action_log as actionlog
import app.libs.member as memberlib
import app.libs.publication as publicationlib
import apphelpers.sessions as sessionlib


def setup_routes(factory):

factory.get('/echo/{word}')(debughelpers.echo)
factory.get('/whoami')(sessionlib.whoami)

ar_handlers = (arlib.list_, arlib.create, None, arlib.get, arlib.update, None)
factory.map_resource('/assetrequests/', handlers=ar_handlers)
factory.post('/assetrequests/{id}/approve')(arlib.approve)
factory.post('/assetrequests/{id}/reject')(arlib.reject)
factory.post('/assetrequests/{id}/cancel')(arlib.cancel)

asset_handlers = (assetlib.list_, arlib.create_and_approve, None, assetlib.get, None, None)
factory.map_resource('/assets/', handlers=asset_handlers)
factory.get('/assets/{id}/comments/count')(assetlib.get_comments_count)
factory.get('/assets/{id}/replies')(assetlib.get_replies)
factory.get('/assets/{id}/meta')(assetlib.get_meta)
factory.get('/assets/meta')(assetlib.get_assets_meta)

comment_handlers = (commentlib.list_, None, None, commentlib.get, commentlib.update, None)
factory.map_resource('/comments/', handlers=comment_handlers)

actionlog_handlers = (None, actionlog.create, None, None, None, None)
factory.map_resource('/actionlog/comments/', handlers=actionlog_handlers)
factory.get('/actionlog/comments/{comment_id}')(actionlog.list_by_comment)

factory.get('/publications/')(publicationlib.list_)
factory.get('/publications/{id}/assets')(publicationlib.get_assets)

pc_handlers = (pclib.list_, None, None, pclib.get, None, None)
factory.map_resource('/comments/pending/', handlers=pc_handlers)

factory.post('/comments/pending/{id}/approve')(pclib.approve)
factory.post('/comments/pending/{id}/reject')(pclib.reject)
factory.get('/comments/rejected/')(rclib.list_)
factory.post('/comments/rejected/{id}/revert')(rclib.revert)

member_handlers = (memberlib.list_, None, None, None, memberlib.update, None)
factory.map_resource('/users/', handlers=member_handlers)

factory.post('/assets/{id}/stop')(assetlib.stop)
factory.post('/assets/{id}/restart')(assetlib.restart)
25 changes: 2 additions & 23 deletions app/endpoints.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,6 @@ def setup_routes(factory):
factory.get('/echo/{word}')(debughelpers.echo)
factory.get('/whoami')(sessionlib.whoami)

ar_handlers = (arlib.list_, arlib.create, None, arlib.get, arlib.update, None)
factory.map_resource('/assetrequests/', handlers=ar_handlers)
factory.post('/assetrequests/{id}/approve')(arlib.approve)
factory.post('/assetrequests/{id}/reject')(arlib.reject)
factory.post('/assetrequests/{id}/cancel')(arlib.cancel)

asset_handlers = (assetlib.list_, arlib.create_and_approve, None, assetlib.get, None, None)
factory.map_resource('/assets/', handlers=asset_handlers)
factory.get('/assets/{id}/comments/count')(assetlib.get_comments_count)
factory.get('/assets/{id}/comments')(assetlib.get_comments_view)
factory.get('/assets/{id}/comments/{comment_id}')(assetlib.get_comment_view)
Expand All @@ -34,23 +26,10 @@ def setup_routes(factory):
comment_handlers = (commentlib.list_, None, None, commentlib.get, commentlib.update, None)
factory.map_resource('/comments/', handlers=comment_handlers)

actionlog_handlers = (None, actionlog.create, None, None, None, None)
factory.map_resource('/actionlog/comments/', handlers=actionlog_handlers)
factory.get('/actionlog/comments/{comment_id}')(actionlog.list_by_comment)

factory.get('/publications/')(publicationlib.list_)
factory.get('/publications/{id}/assets')(publicationlib.get_assets)

pc_handlers = (pclib.list_, pclib.create, None, pclib.get, None, None)
factory.map_resource('/comments/pending/', handlers=pc_handlers)

factory.post('/comments/pending/{id}/approve')(pclib.approve)
factory.post('/comments/pending/{id}/reject')(pclib.reject)
factory.get('/comments/rejected/')(rclib.list_)
factory.post('/comments/rejected/{id}/revert')(rclib.revert)

member_handlers = (memberlib.list_, None, None, None, memberlib.update, None)
factory.map_resource('/users/', handlers=member_handlers)

factory.post('/assets/{id}/stop')(assetlib.stop)
factory.post('/assets/{id}/restart')(assetlib.restart)
factory.get('/users/me')(memberlib.get_me)
factory.patch('/users/me')(memberlib.update_me)
6 changes: 6 additions & 0 deletions app/libs/member.py
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,12 @@ def update(id, **mod_data):
update.groups_required = [groups.moderator.value]


def get_me(id: user_id, fields=None):
fields = ['username', 'enabled', 'name', 'badges', 'bio', 'web']
return get(id, fields)
get_me.login_required = True


def update_me(id: user_id, **mod_data):
updatables = ('username', 'name', 'bio', 'web')
update_dict = dict((k, v) for (k, v) in list(mod_data.items()) if k in updatables)
Expand Down

0 comments on commit 0408efd

Please sign in to comment.