# coding=utf-8
import re
import os
import json
import uuid
import random
from importlib import import_module
from django import http
from django.contrib import auth
from django.core.cache import cache
from django.shortcuts import render
from django.conf import settings
from common import core_views as cv
import common.models as cm
class DocView(cv.BaseView):
def get(self,request):
"""
"""
modules = list(cm.OperationLogConfig.objects.order_by("order").values())
apis = []
for mo in modules:
docstr = None
op_url = mo["op_url"]
response = mo["op_response"]
try:
cls = mo["op_view"].split(".")[-1]
mod = import_module(".".join(mo["op_view"].split(".")[:-1]))
cls = getattr(mod,cls)
op_action_flag = mo["op_action_flag"]
if op_action_flag == "GET":
docstr = cls.get.__doc__
if op_action_flag == "POST":
docstr = cls.post.__doc__
if op_action_flag == "PUT":
docstr = cls.put.__doc__
if op_action_flag == "DELETE":
docstr = cls.delete.__doc__
if docstr:
title = "".join(re.findall(r'#.*',docstr)).lstrip("#")
params = "\n".join([x.lstrip("@") for x in re.findall(r'@.*',docstr)]).strip()
request_note = "
".join([x.lstrip("<") for x in re.findall(r'<.*',docstr)]).strip()
response_note = "
".join([x.lstrip(">") for x in re.findall(r'>.*',docstr)]).strip()
apis.append({"id":mo["id"],"url":op_url,"title":title,"method":op_action_flag,
"params":params,"response":response,"response_note":response_note
})
except Exception as e:
cv.tracefail()
continue
isroot = request.GET.get("root",0)
if request.GET.get("json"):
return cv.to_suc(apis)
return render(request,"apidoc.html",{"apis":apis,"isroot":isroot,"project_name":settings.PROJECT_NAME})
def post(self,request):
"""
"""
qdata = request.json
ids = qdata.get("ids")
for dct in ids:
id = dct["id"]
order = dct["order"]
cm.OperationLogConfig.objects.filter(id=id).update(order=order)
return cv.to_suc()
def delete(self,request):
"""
"""
qdata = request.json
id = qdata.get("id")
cm.OperationLogConfig.objects.filter(id=id).delete()
return cv.to_suc()
class HookView(cv.BaseView):
def post(self,request):
"""
"""
cmdstr = "cd /mnt/gzyunweb/pc/gzyun_web & git pull origin master & cnpm run build"
os.system(cmdstr)
return cv.to_suc()
class CanvasView(cv.BaseView):
def get(self,request):
"""
"""
ret = {}
paper = {
"title":u"第一课、空间几何体",
"paperno":u"XZBRJB10001",
"paperimgs":["/static/test1.jpg","/static/test1.jpg"]
}
ret["paper"] = paper
return render(request,"canvas.html",ret)