API v11 implemented: Study Templates support added
This commit is contained in:
parent
9fb16c71a1
commit
4db1008890
|
@ -1,19 +1,24 @@
|
||||||
from django.http import HttpResponse
|
from django.http import HttpResponse
|
||||||
from model import models
|
|
||||||
import json
|
import json
|
||||||
from datetime import datetime
|
|
||||||
import time
|
import time
|
||||||
import common
|
from datetime import datetime
|
||||||
|
|
||||||
|
from model import models
|
||||||
|
from api.v11 import common
|
||||||
|
|
||||||
|
|
||||||
def processRequest(request):
|
def processRequest(request):
|
||||||
parsedRequest = common.parseRequest(request)
|
parsedRequest = common.parseRequest(request)
|
||||||
|
|
||||||
if !(parsedRequest.error is None):
|
if parsedRequest['error'] is not None:
|
||||||
return parsedRequest.error
|
return parsedRequest['error']
|
||||||
|
|
||||||
clientId = parsedRequest.clientId
|
if parsedRequest['response'] is not None:
|
||||||
userId = parsedRequest.userId
|
return parsedRequest['response']
|
||||||
|
|
||||||
|
|
||||||
|
clientId = parsedRequest["clientId"]
|
||||||
|
userId = parsedRequest['userId']
|
||||||
chartId = request.GET.get('chart', '')
|
chartId = request.GET.get('chart', '')
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,7 @@
|
||||||
|
from django.http import HttpResponse
|
||||||
|
import json
|
||||||
|
|
||||||
|
|
||||||
def response(content):
|
def response(content):
|
||||||
result = HttpResponse(content)
|
result = HttpResponse(content)
|
||||||
result["Access-Control-Allow-Origin"] = "*"
|
result["Access-Control-Allow-Origin"] = "*"
|
||||||
|
@ -5,13 +9,12 @@ def response(content):
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def error(text):
|
def error(text):
|
||||||
return response(json.dumps({'status': 'error','message': text}))
|
return response(json.dumps({'status': 'error','message': text}))
|
||||||
|
|
||||||
|
|
||||||
def respondToOptionsRequest(requestHeaders):
|
def respondToOptionsRequest(requestHeaders):
|
||||||
result = common.response(json.dumps({'status': "ok"}))
|
result = response(json.dumps({'status': "ok"}))
|
||||||
result["Access-Control-Allow-Headers"] = requestHeaders["HTTP_ACCESS_CONTROL_REQUEST_HEADERS"]
|
result["Access-Control-Allow-Headers"] = requestHeaders["HTTP_ACCESS_CONTROL_REQUEST_HEADERS"]
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
@ -20,15 +23,19 @@ def parseRequest(request):
|
||||||
clientId = request.GET.get('client', '')
|
clientId = request.GET.get('client', '')
|
||||||
userId = request.GET.get('user', '')
|
userId = request.GET.get('user', '')
|
||||||
|
|
||||||
err = ''
|
err = None
|
||||||
|
response = None
|
||||||
|
|
||||||
if (clientId == ''):
|
if (clientId == ''):
|
||||||
err = error('Wrong client id')
|
err = error('Wrong client id')
|
||||||
|
elif (userId == ''):
|
||||||
if (userId == ''):
|
|
||||||
err = error('Wrong user id')
|
err = error('Wrong user id')
|
||||||
|
elif request.method == 'OPTIONS':
|
||||||
if request.method == 'OPTIONS':
|
|
||||||
response = respondToOptionsRequest(request.META)
|
response = respondToOptionsRequest(request.META)
|
||||||
|
|
||||||
return dict(error=err, response=response, clientId=clientId, iserId=userId)
|
return {
|
||||||
|
"error": err,
|
||||||
|
"response": response,
|
||||||
|
"clientId": clientId,
|
||||||
|
"userId": userId
|
||||||
|
}
|
||||||
|
|
|
@ -1,47 +1,47 @@
|
||||||
from django.http import HttpResponse
|
from django.http import HttpResponse
|
||||||
from model import models
|
|
||||||
import json
|
import json
|
||||||
from datetime import datetime
|
|
||||||
import time
|
import time
|
||||||
from . import common
|
from datetime import datetime
|
||||||
|
|
||||||
|
from model import models
|
||||||
|
from api.v11 import common
|
||||||
|
|
||||||
|
|
||||||
def processRequest(request):
|
def processRequest(request):
|
||||||
parsedRequest = common.parseRequest(request)
|
parsedRequest = common.parseRequest(request)
|
||||||
|
|
||||||
if !(parsedRequest.error is None):
|
if parsedRequest['error'] is not None:
|
||||||
return parsedRequest.error
|
return parsedRequest['error']
|
||||||
|
|
||||||
clientId = parsedRequest.clientId
|
if parsedRequest['response'] is not None:
|
||||||
userId = parsedRequest.userId
|
return parsedRequest['response']
|
||||||
templateId = request.GET.get('template', '')
|
|
||||||
|
clientId = parsedRequest["clientId"]
|
||||||
|
userId = parsedRequest['userId']
|
||||||
|
templateName = request.GET.get('template', '')
|
||||||
|
|
||||||
|
|
||||||
if request.method == 'GET':
|
if request.method == 'GET':
|
||||||
if templateId == '':
|
if templateName == '':
|
||||||
return getAllTemplatesList(clientId, userId)
|
return getAllTemplatesList(clientId, userId)
|
||||||
else:
|
else:
|
||||||
return getTemplate(clientId, userId, templateId)
|
return getTemplate(clientId, userId, templateName)
|
||||||
|
|
||||||
elif request.method == 'DELETE':
|
elif request.method == 'DELETE':
|
||||||
if templateId == '':
|
if templateName == '':
|
||||||
return common.error('Wrong template id')
|
return common.error('Wrong template id')
|
||||||
else:
|
else:
|
||||||
return removeTemplate(clientId, userId, templateId)
|
return removeTemplate(clientId, userId, templateName)
|
||||||
|
|
||||||
elif request.method == 'POST':
|
elif request.method == 'POST':
|
||||||
chartName = request.POST.get('name')
|
templateName = request.POST.get('name')
|
||||||
symbol = request.POST.get('symbol')
|
|
||||||
resoluion = request.POST.get('resolution')
|
|
||||||
content = request.POST.get('content')
|
content = request.POST.get('content')
|
||||||
if templateId == '':
|
return createTemplate(clientId, userId, templateName, content)
|
||||||
return saveChart(clientId, userId, chartName, symbol, resoluion, content)
|
|
||||||
else:
|
|
||||||
return rewriteChart(clientId, userId, templateId, chartName, symbol, resoluion, content)
|
|
||||||
|
|
||||||
else:
|
else:
|
||||||
return common.error('Wrong request')
|
return common.error('Wrong request')
|
||||||
|
|
||||||
|
|
||||||
#-----------------------------------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------------------------------
|
||||||
#-----------------------------------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------------------------------
|
||||||
#-----------------------------------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------------------------------
|
||||||
|
@ -83,9 +83,9 @@ def createTemplate(clientId, userId, name, content):
|
||||||
return common.response(json.dumps({'status': 'ok'}))
|
return common.response(json.dumps({'status': 'ok'}))
|
||||||
|
|
||||||
|
|
||||||
def rewriteTemplate(clientId, userId, name, content):
|
def rewriteTemplate(clientId, userId, templateId, name, content):
|
||||||
try:
|
try:
|
||||||
chart = models.StudyTemplate.objects.get(ownerSource = clientId, ownerId = userId, id = chartId)
|
chart = models.StudyTemplate.objects.get(ownerSource = clientId, ownerId = userId, id = templateId)
|
||||||
chart.lastModified = datetime.utcnow()
|
chart.lastModified = datetime.utcnow()
|
||||||
chart.content = content
|
chart.content = content
|
||||||
chart.name = chartName
|
chart.name = chartName
|
||||||
|
|
|
@ -1,13 +1,10 @@
|
||||||
from django.conf.urls import patterns, url
|
from django.conf.urls import patterns, url
|
||||||
import charts
|
from api.v11 import studyTemplates
|
||||||
import studyTemplates
|
from api.v11 import charts
|
||||||
from django.views.decorators.csrf import csrf_exempt
|
from django.views.decorators.csrf import csrf_exempt
|
||||||
|
|
||||||
|
|
||||||
urlpatterns = patterns('',
|
urlpatterns = patterns('',
|
||||||
url(r'^charts$', csrf_exempt(charts.processRequest)),
|
url(r'^charts$', csrf_exempt(charts.processRequest)),
|
||||||
)
|
|
||||||
|
|
||||||
urlpatterns = patterns('',
|
|
||||||
url(r'^study_templates$', csrf_exempt(studyTemplates.processRequest)),
|
url(r'^study_templates$', csrf_exempt(studyTemplates.processRequest)),
|
||||||
)
|
)
|
||||||
|
|
|
@ -12,11 +12,11 @@ MANAGERS = ADMINS
|
||||||
DATABASES = {
|
DATABASES = {
|
||||||
'default': {
|
'default': {
|
||||||
'ENGINE': 'django.db.backends.postgresql_psycopg2',
|
'ENGINE': 'django.db.backends.postgresql_psycopg2',
|
||||||
'NAME': 'charting_library_charts',
|
'NAME': 'charting_library',
|
||||||
'USER': 'postgres',
|
'USER': 'postgres',
|
||||||
'PASSWORD': '12345', ### Put your Postgres password here
|
'PASSWORD': 'postgres', ### Put your Postgres password here
|
||||||
'HOST': 'localhost',
|
'HOST': 'localhost',
|
||||||
'PORT': '5433',
|
'PORT': '5432',
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -120,7 +120,7 @@ INSTALLED_APPS = (
|
||||||
# 'django.contrib.admin',
|
# 'django.contrib.admin',
|
||||||
# Uncomment the next line to enable admin documentation:
|
# Uncomment the next line to enable admin documentation:
|
||||||
# 'django.contrib.admindocs',
|
# 'django.contrib.admindocs',
|
||||||
'charts',
|
'model',
|
||||||
)
|
)
|
||||||
|
|
||||||
# A sample logging configuration. The only tangible logging
|
# A sample logging configuration. The only tangible logging
|
||||||
|
|
|
@ -2,4 +2,5 @@ from django.conf.urls import patterns, include, url
|
||||||
|
|
||||||
urlpatterns = patterns('',
|
urlpatterns = patterns('',
|
||||||
url(r'^1\.0/', include('api.v10.urls')),
|
url(r'^1\.0/', include('api.v10.urls')),
|
||||||
|
url(r'^1\.1/', include('api.v11.urls')),
|
||||||
)
|
)
|
||||||
|
|
|
@ -8,7 +8,7 @@ import datetime
|
||||||
class Migration(migrations.Migration):
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
dependencies = [
|
dependencies = [
|
||||||
('charts', '0001_initial'),
|
('model', '0001_initial'),
|
||||||
]
|
]
|
||||||
|
|
||||||
operations = [
|
operations = [
|
||||||
|
|
|
@ -7,7 +7,7 @@ from django.db import models, migrations
|
||||||
class Migration(migrations.Migration):
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
dependencies = [
|
dependencies = [
|
||||||
('charts', '0002_auto_20141007_1601'),
|
('model', '0002_auto_20141007_1601'),
|
||||||
]
|
]
|
||||||
|
|
||||||
operations = [
|
operations = [
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
from django.db import models, migrations
|
||||||
|
import jsonfield.fields
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('model', '0003_auto_20141008_1252'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='StudyTemplate',
|
||||||
|
fields=[
|
||||||
|
('id', models.AutoField(primary_key=True, auto_created=True, serialize=False, verbose_name='ID')),
|
||||||
|
('ownerSource', models.CharField(max_length=200)),
|
||||||
|
('ownerId', models.CharField(max_length=200)),
|
||||||
|
('name', models.CharField(max_length=200)),
|
||||||
|
('content', jsonfield.fields.JSONField()),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
]
|
Loading…
Reference in New Issue