Api v11 introduced
This commit is contained in:
parent
4c3bb8c6a4
commit
9fb16c71a1
|
@ -0,0 +1,102 @@
|
|||
from django.http import HttpResponse
|
||||
from model import models
|
||||
import json
|
||||
from datetime import datetime
|
||||
import time
|
||||
import common
|
||||
|
||||
|
||||
def processRequest(request):
|
||||
parsedRequest = common.parseRequest(request)
|
||||
|
||||
if !(parsedRequest.error is None):
|
||||
return parsedRequest.error
|
||||
|
||||
clientId = parsedRequest.clientId
|
||||
userId = parsedRequest.userId
|
||||
chartId = request.GET.get('chart', '')
|
||||
|
||||
|
||||
if request.method == 'GET':
|
||||
if chartId == '':
|
||||
return getAllUserCharts(clientId, userId)
|
||||
else:
|
||||
return getChartContent(clientId, userId, chartId)
|
||||
|
||||
elif request.method == 'DELETE':
|
||||
if chartId == '':
|
||||
return common.error('Wrong chart id')
|
||||
else:
|
||||
return removeChart(clientId, userId, chartId)
|
||||
|
||||
elif request.method == 'POST':
|
||||
chartName = request.POST.get('name')
|
||||
symbol = request.POST.get('symbol')
|
||||
resoluion = request.POST.get('resolution')
|
||||
content = request.POST.get('content')
|
||||
if chartId == '':
|
||||
return saveChart(clientId, userId, chartName, symbol, resoluion, content)
|
||||
else:
|
||||
return rewriteChart(clientId, userId, chartId, chartName, symbol, resoluion, content)
|
||||
|
||||
else:
|
||||
return common.error('Wrong request')
|
||||
|
||||
|
||||
#-----------------------------------------------------------------------------------------------------
|
||||
#-----------------------------------------------------------------------------------------------------
|
||||
#-----------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
def getAllUserCharts(clientId, userId):
|
||||
chartsList = models.Chart.objects.filter(ownerSource = clientId, ownerId = userId)
|
||||
result = map(lambda x : {'id': x.id, 'name': x.name, 'timestamp': time.mktime(x.lastModified.timetuple()), 'symbol': x.symbol, 'resolution': x.resolution} , chartsList)
|
||||
return common.response(json.dumps({'status': "ok", 'data': list(result)}))
|
||||
|
||||
|
||||
def getChartContent(clientId, userId, chartId):
|
||||
try:
|
||||
chart = models.Chart.objects.get(ownerSource = clientId, ownerId = userId, id = chartId)
|
||||
result = json.dumps({'status': 'ok', 'data': { 'id': chart.id, 'name': chart.name, 'timestamp': time.mktime(chart.lastModified.timetuple()), 'content': chart.content}})
|
||||
return common.response(result)
|
||||
except:
|
||||
return common.error('Chart not found')
|
||||
|
||||
|
||||
def removeChart(clientId, userId, chartId):
|
||||
try:
|
||||
chart = models.Chart.objects.get(ownerSource = clientId, ownerId = userId, id = chartId)
|
||||
chart.delete()
|
||||
return common.response(json.dumps({'status': 'ok'}))
|
||||
except:
|
||||
return common.error('Chart not found')
|
||||
|
||||
|
||||
def saveChart(clientId, userId, chartName, symbol, resolution, content):
|
||||
newChart = models.Chart(
|
||||
ownerSource = clientId,
|
||||
ownerId = userId,
|
||||
name = chartName,
|
||||
content = content,
|
||||
lastModified = datetime.utcnow(),
|
||||
symbol = symbol,
|
||||
resolution = resolution
|
||||
)
|
||||
|
||||
newChart.save()
|
||||
return common.response(json.dumps({'status': 'ok', 'id': newChart.id}))
|
||||
|
||||
|
||||
def rewriteChart(clientId, userId, chartId, chartName, symbol, resolution, content):
|
||||
try:
|
||||
chart = models.Chart.objects.get(ownerSource = clientId, ownerId = userId, id = chartId)
|
||||
chart.lastModified = datetime.utcnow()
|
||||
chart.content = content
|
||||
chart.name = chartName
|
||||
chart.symbol = symbol
|
||||
chart.resolution = resolution
|
||||
|
||||
chart.save()
|
||||
return common.response(json.dumps({'status': 'ok'}))
|
||||
except:
|
||||
return common.error('Chart not found')
|
|
@ -0,0 +1,34 @@
|
|||
def response(content):
|
||||
result = HttpResponse(content)
|
||||
result["Access-Control-Allow-Origin"] = "*"
|
||||
result["Access-Control-Allow-Methods"] = "GET, POST, DELETE, OPTIONS"
|
||||
return result
|
||||
|
||||
|
||||
|
||||
def error(text):
|
||||
return response(json.dumps({'status': 'error','message': text}))
|
||||
|
||||
|
||||
def respondToOptionsRequest(requestHeaders):
|
||||
result = common.response(json.dumps({'status': "ok"}))
|
||||
result["Access-Control-Allow-Headers"] = requestHeaders["HTTP_ACCESS_CONTROL_REQUEST_HEADERS"]
|
||||
return result
|
||||
|
||||
|
||||
def parseRequest(request):
|
||||
clientId = request.GET.get('client', '')
|
||||
userId = request.GET.get('user', '')
|
||||
|
||||
err = ''
|
||||
|
||||
if (clientId == ''):
|
||||
err = error('Wrong client id')
|
||||
|
||||
if (userId == ''):
|
||||
err = error('Wrong user id')
|
||||
|
||||
if request.method == 'OPTIONS':
|
||||
response = respondToOptionsRequest(request.META)
|
||||
|
||||
return dict(error=err, response=response, clientId=clientId, iserId=userId)
|
|
@ -0,0 +1,98 @@
|
|||
from django.http import HttpResponse
|
||||
from model import models
|
||||
import json
|
||||
from datetime import datetime
|
||||
import time
|
||||
from . import common
|
||||
|
||||
|
||||
def processRequest(request):
|
||||
parsedRequest = common.parseRequest(request)
|
||||
|
||||
if !(parsedRequest.error is None):
|
||||
return parsedRequest.error
|
||||
|
||||
clientId = parsedRequest.clientId
|
||||
userId = parsedRequest.userId
|
||||
templateId = request.GET.get('template', '')
|
||||
|
||||
|
||||
if request.method == 'GET':
|
||||
if templateId == '':
|
||||
return getAllTemplatesList(clientId, userId)
|
||||
else:
|
||||
return getTemplate(clientId, userId, templateId)
|
||||
|
||||
elif request.method == 'DELETE':
|
||||
if templateId == '':
|
||||
return common.error('Wrong template id')
|
||||
else:
|
||||
return removeTemplate(clientId, userId, templateId)
|
||||
|
||||
elif request.method == 'POST':
|
||||
chartName = request.POST.get('name')
|
||||
symbol = request.POST.get('symbol')
|
||||
resoluion = request.POST.get('resolution')
|
||||
content = request.POST.get('content')
|
||||
if templateId == '':
|
||||
return saveChart(clientId, userId, chartName, symbol, resoluion, content)
|
||||
else:
|
||||
return rewriteChart(clientId, userId, templateId, chartName, symbol, resoluion, content)
|
||||
|
||||
else:
|
||||
return common.error('Wrong request')
|
||||
|
||||
#-----------------------------------------------------------------------------------------------------
|
||||
#-----------------------------------------------------------------------------------------------------
|
||||
#-----------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
def getAllTemplatesList(clientId, userId):
|
||||
items = models.StudyTemplate.objects.filter(ownerSource = clientId, ownerId = userId)
|
||||
result = map(lambda x : {'name': x.name} , items)
|
||||
return common.response(json.dumps({'status': "ok", 'data': list(result)}))
|
||||
|
||||
|
||||
def getTemplate(clientId, userId, name):
|
||||
try:
|
||||
item = models.StudyTemplate.objects.get(ownerSource = clientId, ownerId = userId, name = name)
|
||||
result = json.dumps({'status': 'ok', 'data': { 'name': item.name, 'content': item.content}})
|
||||
return common.response(result)
|
||||
except:
|
||||
return common.error('StudyTemplate not found')
|
||||
|
||||
|
||||
def removeTemplate(clientId, userId, name):
|
||||
try:
|
||||
item = models.StudyTemplate.objects.get(ownerSource = clientId, ownerId = userId, name = name)
|
||||
item.delete()
|
||||
return common.response(json.dumps({'status': 'ok'}))
|
||||
except:
|
||||
return common.error('StudyTemplate not found')
|
||||
|
||||
|
||||
def createTemplate(clientId, userId, name, content):
|
||||
newItem = models.StudyTemplate(
|
||||
ownerSource = clientId,
|
||||
ownerId = userId,
|
||||
name = name,
|
||||
content = content
|
||||
)
|
||||
|
||||
newItem.save()
|
||||
return common.response(json.dumps({'status': 'ok'}))
|
||||
|
||||
|
||||
def rewriteTemplate(clientId, userId, name, content):
|
||||
try:
|
||||
chart = models.StudyTemplate.objects.get(ownerSource = clientId, ownerId = userId, id = chartId)
|
||||
chart.lastModified = datetime.utcnow()
|
||||
chart.content = content
|
||||
chart.name = chartName
|
||||
chart.symbol = symbol
|
||||
chart.resolution = resolution
|
||||
|
||||
chart.save()
|
||||
return common.response(json.dumps({'status': 'ok'}))
|
||||
except:
|
||||
return common.error('StudyTemplate not found')
|
|
@ -0,0 +1,13 @@
|
|||
from django.conf.urls import patterns, url
|
||||
import charts
|
||||
import studyTemplates
|
||||
from django.views.decorators.csrf import csrf_exempt
|
||||
|
||||
|
||||
urlpatterns = patterns('',
|
||||
url(r'^charts$', csrf_exempt(charts.processRequest)),
|
||||
)
|
||||
|
||||
urlpatterns = patterns('',
|
||||
url(r'^study_templates$', csrf_exempt(studyTemplates.processRequest)),
|
||||
)
|
Loading…
Reference in New Issue