Commit 11208776 authored by adam's avatar adam
parents 8c38aa39 5a4f7a51
......@@ -13,7 +13,7 @@ import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/1.7/howto/deployment/checklist/
......@@ -130,4 +130,6 @@ TEMPLATES = [
],
},
},
]
\ No newline at end of file
]
MEDIA_URL = '/media/'
\ No newline at end of file
......@@ -2,9 +2,11 @@ from django.conf.urls import patterns, include, url
from django.contrib import admin
from rest_framework.authtoken import views as token_view
from rest_framework import routers
from JoinTheCityREST import settings
router = routers.DefaultRouter()
from django.conf.urls.static import static
from app.API import views as api_views
from app.Discussion import views as discussion_views
from app.Event import views as event_views
......@@ -33,10 +35,10 @@ router.register(r'tag_discussion', tag_views.TagDiscussionViewSet, base_name="ta
urlpatterns = [
url(r'^api/api/(\d+)/(\w+)(|\/)$', api_views.APIViewSet.test),
#url(r'^api/api/(\d+)/(\w+)(|\/)$', api_views.APIViewSet.test),
url(r'^api/', include(router.urls)),
url(r'^api-auth/', include('rest_framework.urls',
namespace='rest_framework')),
url(r'^api-token-auth/', token_view.obtain_auth_token),
url(r'^admin/', include(admin.site.urls)),
]
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
from django.core.files import File
from app.API.models import API, APIType
from app.Tag.models import Tag
......@@ -10,20 +11,21 @@ class Command(BaseCommand):
def handle(self, *args, **options):
apis = [
['Apteki w Krakowie', 'Krakow', 'map', 'apteki'],
['Baseny w Krakowie', 'Krakow', 'map', 'baseny'],
['Hotele w Krakowie', 'Krakow', 'map',' hotele'],
['HotSpoty w Krakowie', 'Krakow', 'map',' mapaHotSpotow'],
['Utrudnienia w Krakowie', 'Krakow', 'map',' mapaUtrudnien'],
['Restauracje w Krakowie', 'Krakow', 'map',' restauracje'],
['Szpitale w Krakowie', 'Krakow', 'map',' szpitale'],
['Zdarzenia drogowe w Krakowie', 'Krakow', 'map',' zdarzeniaDrogowe'],
['Apteki w Krakowie', 'Krakow', 'map', 'apteki', 'image/icon.jpg', 'Opis API o aptekach w Krakowie'],
['Baseny w Krakowie', 'Krakow', 'map', 'baseny', 'image/icon.jpg', 'Opis API o aptekach w Krakowie'],
['Hotele w Krakowie', 'Krakow', 'map','hotele', 'image/icon.jpg', 'Opis API o aptekach w Krakowie'],
['HotSpoty w Krakowie', 'Krakow', 'map','mapaHotSpotow', 'image/icon.jpg', 'Opis API o aptekach w Krakowie'],
['Utrudnienia w Krakowie', 'Krakow', 'map','mapaUtrudnien', 'image/icon.jpg', 'Opis API o aptekach w Krakowie'],
['Restauracje w Krakowie', 'Krakow', 'map','restauracje', 'image/icon.jpg', 'Opis API o aptekach w Krakowie'],
['Szpitale w Krakowie', 'Krakow', 'map','szpitale', 'image/icon.jpg', 'Opis API o aptekach w Krakowie'],
['Zdarzenia drogowe w Krakowie', 'Krakow', 'map','zdarzeniaDrogowe', 'image/icon.jpg', 'Opis API o aptekach w Krakowie'],
]
print "Creating APIs"
for api in apis:
print "Create {0}".format(api[0])
tag = Tag.objects.filter(name=api[1])[0]
api_type = APIType.objects.filter(name=api[2])[0]
new_api = API.objects.create(name=api[0], type=api_type, source=api[3])
new_api = API.objects.create(name=api[0], type=api_type, source=api[3] , description = api[5])
new_api.tag = [tag, ]
new_api.icon = api[4]
new_api.save()
\ No newline at end of file
# -*- coding: utf-8 -*-
# Generated by Django 1.9.1 on 2016-01-13 10:25
from __future__ import unicode_literals
from django.db import models, migrations
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
initial = True
dependencies = [
('Tag', '0001_initial'),
]
operations = [
migrations.CreateModel(
name='API',
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=100)),
('source', models.CharField(max_length=100)),
('icon', models.ImageField(blank=True, null=True, upload_to=b'')),
('description', models.CharField(blank=True, default=None, max_length=300, null=True)),
('tag', models.ManyToManyField(default=None, related_name='API_tags', to='Tag.Tag')),
],
),
migrations.CreateModel(
name='APIType',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=100)),
],
options={
},
bases=(models.Model,),
),
migrations.AddField(
model_name='api',
name='type',
field=models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, related_name='API_type', to='API.APIType'),
),
]
......@@ -18,6 +18,9 @@ class API(models.Model):
type = models.ForeignKey(APIType, related_name='API_type',
blank=False, null=False, default=None)
source = models.CharField(max_length=100)
icon = models.ImageField(null=True, blank=True)
description = models.CharField(max_length=300, default=None, null=True, blank=True)
data = models.CharField(max_length=100, null=True, default='',blank=True)
def __str__(self):
......
......@@ -6,7 +6,7 @@ class APISerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = API
fields = ('url', 'name', 'tag' ,'type', 'source')
fields = ('url', 'id', 'name', 'tag' ,'type', 'source', 'icon', 'description', 'data')
class APITypeSerializer(serializers.HyperlinkedModelSerializer):
......
# Create your views here.
import json
from django.http import HttpResponse, Http404
from rest_framework import viewsets, permissions
import rest_framework
from rest_framework.decorators import detail_route
from rest_framework.response import Response
import sys
from app.API.models import API, APIType
from app.API.serializers import APISerializer, APITypeSerializer
from app.User.models import UserAPI
from django.shortcuts import get_object_or_404
class APIViewSet(viewsets.ModelViewSet):
"""
......@@ -15,17 +19,55 @@ class APIViewSet(viewsets.ModelViewSet):
serializer_class = APISerializer
permission_classes = (permissions.IsAuthenticatedOrReadOnly,)
@detail_route()
def add(self, request, pk=None):
api = get_object_or_404(APIViewSet.queryset, pk=pk)
user = request.user
user_api = UserAPI(user=user, api=api)
user_api.save()
return Response(status=rest_framework.status.HTTP_200_OK)
@detail_route()
def xd(self,request, pk=None):
api = get_object_or_404(APIViewSet.queryset, pk=pk)
api_data = json.loads(api.data)
return Response(status=rest_framework.status.HTTP_200_OK, data=api_data)
@staticmethod
def test(request, id, function, slash):
def test(request, id, function):
try:
object = API.objects.get(pk=id)
except Exception as e:
raise Http404
name = "lib.api.{0}".format(object.source)
name = "lib.api.{0}".format(object.source.strip())
mod = __import__(name, fromlist=['API'])
api = mod.API(request)
return HttpResponse(api.execute(function), content_type="application/json")
data = api.execute(function)
#data = json.dumps(data)
return data
#return Response(data=data, content_type="application/json")
def get_queryset(self):
queryset = API.objects.all()
username = self.request.query_params.get('only_new', None)
if username is not None:
user_api = UserAPI.objects.all()
user_api = [api.api for api in user_api]
queryset = [api for api in queryset if api not in user_api]
method = self.request.query_params.get('method', None)
if method:
r = self.request.GET.copy()
del(r['method'])
self.request.GET = r
response = APIViewSet.test(self.request, self.kwargs['pk'], method)
queryset=API.objects.filter(pk=self.kwargs['pk'])
api = queryset[0]
api.data = response
api.save()
queryset = []
return queryset
class APITypeViewSet(viewsets.ModelViewSet):
"""
......
......@@ -12,7 +12,10 @@ class Command(BaseCommand):
def handle(self, *args, **options):
discussions = [
['admin', 'Czy jest w okolicy jakis fryzjer?',['Nie znam','Polecam fryzjera w Kapitolu', 'Lol, on jest do dupy', '@_@'],'Miasteczko AGH'],
['admin', 'Czy jest w okolicy jakis fryzjer?',['Nie znam','Polecam fryzjera w Kapitolu', 'Lol, on jest do niczego. Nie polecam!', '@_@'],'Miasteczko AGH'],
['Klaudia', 'Zgubilam legitymacje w okolicy, prosze o kontakt kladudia@agh.pl.',['Bede tam dzisiaj przechodzil, rozgladne sie.', 'Ale z Ciebie gapa!:)', 'Znalazlem! Sprawdz poczte.'], 'Klub Studio'],
['Rafal', 'Hej. Wie ktos o ktorej gra Cracovia z Wisla?',['O 21', 'Wisla nie ma szans!haha', 'Jeszcze sie zdziwisz!'], 'Nowa Huta'],
['Antek', 'Nie moge znalezc dworca glownego, dojechalem juz na przystanek MEKSYK. Ktos wie gdzie mam zmierzac?',['Jestes calkowicie w zlym miejscu', 'Polecam aplikacje jakdojade', 'Dzieki, aplikacja jest super'], 'Nowa Huta'],
]
print "Creating Discussions"
for discussion in discussions:
......
......@@ -13,8 +13,20 @@ class Command(BaseCommand):
text_messages = [
['Rafal', 'Nie znam'],
['Klaudia', 'Polecam fryzjera w Kapitolu'],
['Antek', 'Lol, on jest do dupy'],
['Antek', 'Lol, on jest do niczego. Nie polecam!'],
['Rafal', '@_@'],
['Antek', 'Bede tam dzisiaj przechodzil, rozgladne sie.'],
['Rafal', 'Ale z Ciebie gapa!:)'],
['Antek', 'Znalazlem! Sprawdz poczte.'],
['Antek', 'O 21'],
['Klaudia', 'Wisla nie ma szans!haha'],
['Rafal', 'Jeszcze sie zdziwisz!'],
['admin','Jestes calkowicie w zlym miejscu'],
['Klaudia', 'Polecam aplikacje jakdojade'],
['Antek', 'Dzieki, aplikacja jest super'],
]
print "Creating Messages"
for text_message in text_messages:
......
# -*- coding: utf-8 -*-
# Generated by Django 1.9.1 on 2016-01-13 10:25
from __future__ import unicode_literals
from django.db import models, migrations
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
import django.utils.datetime_safe
class Migration(migrations.Migration):
initial = True
dependencies = [
('Tag', '0001_initial'),
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]
operations = [
migrations.CreateModel(
name='Discussion',
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('question', models.CharField(max_length=100)),
],
options={
},
bases=(models.Model,),
),
migrations.CreateModel(
name='Message',
name='TextMessage',
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('text', models.CharField(max_length=1000)),
('created_at', models.DateTimeField(default=django.utils.datetime_safe.datetime.now)),
('user', models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, related_name='user_creator_of_message', to=settings.AUTH_USER_MODEL)),
],
options={
},
bases=(models.Model,),
),
migrations.AddField(
model_name='discussion',
name='message',
field=models.ManyToManyField(blank=True, related_name='conversations_participant', to='Discussion.TextMessage'),
),
migrations.AddField(
model_name='discussion',
name='tag',
field=models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, related_name='place_of_discussion', to='Tag.Tag'),
),
migrations.AddField(
model_name='discussion',
name='user',
field=models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, related_name='user_creator_of_discussion', to=settings.AUTH_USER_MODEL),
),
]
......@@ -6,9 +6,9 @@ from app.User.serializers import UserSerializer
class DiscussionSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Discussion
fields = ('url', 'user', 'question', 'message', 'tag')
fields = ('url', 'id', 'user', 'question', 'message', 'tag')
class TextMessageSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = TextMessage
fields = ('url', 'user', 'text', 'created_at')
\ No newline at end of file
fields = ('url', 'id', 'user', 'text', 'created_at')
\ No newline at end of file
# -*- coding: utf-8 -*-
# Generated by Django 1.9.1 on 2016-01-13 10:25
from __future__ import unicode_literals
from django.db import models, migrations
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
initial = True
dependencies = [
('Tag', '0001_initial'),
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('Localization', '0001_initial'),
]
operations = [
migrations.CreateModel(
name='Event',
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=100)),
('private', models.BooleanField(default=False)),
('localization', models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, related_name='event_tag', to='Localization.Localization')),
('tag', models.ManyToManyField(default=None, related_name='event_tag', to='Tag.Tag')),
('user', models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, related_name='event_author', to=settings.AUTH_USER_MODEL)),
],
options={
},
bases=(models.Model,),
),
]
# -*- coding: utf-8 -*-
# Generated by Django 1.9.1 on 2016-01-13 10:25
from __future__ import unicode_literals
from django.db import models, migrations
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
initial = True
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]
operations = [
migrations.CreateModel(
name='Friendship',
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
],
options={
},
bases=(models.Model,),
),
migrations.CreateModel(
name='FriendshipRequest',
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('created_by', models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, related_name='user_friendship_request_creator', to=settings.AUTH_USER_MODEL)),
('user', models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, related_name='user_friendship_request_target', to=settings.AUTH_USER_MODEL)),
],
options={
},
bases=(models.Model,),
),
]
# -*- coding: utf-8 -*-
# Generated by Django 1.9.1 on 2016-01-13 10:25
from __future__ import unicode_literals
from django.db import models, migrations
from django.db import migrations, models
class Migration(migrations.Migration):
initial = True
dependencies = [
]
......@@ -13,10 +16,11 @@ class Migration(migrations.Migration):
migrations.CreateModel(
name='Localization',
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=300)),
('longitude', models.DecimalField(decimal_places=6, default=None, max_digits=9)),
('latitude', models.DecimalField(decimal_places=6, default=None, max_digits=9)),
('range', models.IntegerField(default=None)),
],
options={
},
bases=(models.Model,),
),
]
......@@ -12,6 +12,7 @@ class Command(BaseCommand):
tags = [
['Krakow', 'Krakow'],
['Miasteczko AGH', 'Miasteczko AGH'],
['Klub Studio', 'Klub Studio'],
['Nowa Huta', 'Nowa Huta'],
['Rozrywka','Swiat'],
['Turystyka','Swiat'],
......
# -*- coding: utf-8 -*-
# Generated by Django 1.9.1 on 2016-01-13 10:25
from __future__ import unicode_literals
from django.db import models, migrations
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
initial = True
dependencies = [
('Localization', '0001_initial'),
]
operations = [
migrations.CreateModel(
name='Tag',
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=300)),
('localization', models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, related_name='tag_localization', to='Localization.Localization')),
],
options={
},
bases=(models.Model,),
),
]
from django.contrib.auth.models import User
from rest_framework import serializers
from app.API.serializers import APISerializer
from app.Event.serializers import EventSerializer
from app.User.models import UserFriendship, UserAPI, UserEvent, UserEventRequest
......@@ -20,9 +21,11 @@ class UserEventRequestSerializer(serializers.HyperlinkedModelSerializer):
fields = ('url', 'event', 'created_by')
class UserAPISerializer(serializers.HyperlinkedModelSerializer):
api = APISerializer()
class Meta:
model = UserAPI
fields = ('url','api')
fields = ('api', )
class UserEventSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
......
#remove_migrations.py
"""
Run this file from a Django =1.7 project root.
Removes all migration files from all apps in a project.
"""
from unipath import Path
this_file = Path(__file__).absolute()
current_dir = this_file.parent
dir_list = current_dir.listdir()
for paths in dir_list:
migration_folder = paths.child('migrations')
if migration_folder.exists():
list_files = migration_folder.listdir()
for files in list_files:
split = files.components()
if split[-1] != Path('__init__.py'):
files.remove()
\ No newline at end of file
......@@ -10,7 +10,8 @@ class API(BaseAPI):
methods = ('default', 'object')
def default(self):
return json.dumps(self.GET(parameters=self.request.GET.dict()))
data = self.GET(parameters=self.request.GET.dict())
return json.dumps(data)
def object(self):
data = self.GET(parameters=self.request.GET.dict())
......@@ -31,4 +32,12 @@ class API(BaseAPI):
result['latitude'] = property['value']
elif property['key'] == 'OADR_GPS_D':
result['longitude'] = property['value']
elif property['key'] == 'OADR_MIASTO':
result['city'] = property['value']
elif property['key'] == 'OADR_ULICA':
result['street'] = property['value']
elif property['key'] == 'OADR_NR':
result['nr'] = property['value']
result['address'] = "{0} {1}, {2}".format(result['street'].encode("utf-8"), result['nr'].encode("utf-8"), result['city'].encode("utf-8"))
return result
......@@ -7,7 +7,36 @@ __author__ = 'Dominik Rosiek'
class API(BaseAPI):
resource = "6c8f204a-e061-4e64-945c-d07a41ea788a"
site = "https://api.bihapi.pl/dane/krakow"
methods = ('default')
methods = ('default', 'object')
def default(self):
return json.dumps(self.GET(parameters=self.request.GET.dict()))
return self.GET(parameters=self.request.GET.dict())
def object(self):
data = self.GET(parameters=self.request.GET.dict())
results = []
try:
for obj in data['results']:
results.append(self.unpack(obj))
except TypeError as e:
results.append(self.unpack(data['results']))
return results
def unpack(self, obj):
result = {}
for property in obj['properties']:
if property['key'] == 'BASENY':
result['name'] = property['value']
elif property['key'] == 'OADR_GPS_S':
result['latitude'] = property['value']
elif property['key'] == 'OADR_GPS_D':
result['longitude'] = property['value']
elif property['key'] == 'OADR_MIASTO':
result['city'] = property['value']
elif property['key'] == 'OADR_ULICA':
result['street'] = property['value']
elif property['key'] == 'OADR_NR':
result['nr'] = property['value']
result['address'] = "{0} {1}, {2}".format(result['street'].encode("utf-8"), result['nr'].encode("utf-8"), result['city'].encode("utf-8"))
return result
......@@ -7,7 +7,36 @@ __author__ = 'Dominik Rosiek'
class API(BaseAPI):
resource = "b02b0bb5-1197-4128-9e48-c679e07ba350"
site = "https://api.bihapi.pl/dane/krakow"
methods = ('default')
methods = ('default', 'object')
def default(self):
return json.dumps(self.GET(parameters=self.request.GET.dict()))
return self.GET(parameters=self.request.GET.dict())
def object(self):
data = self.GET(parameters=self.request.GET.dict())
results = []
try:
for obj in data['results']:
results.append(self.unpack(obj))
except TypeError as e:
results.append(self.unpack(data['results']))
return results
def unpack(self, obj):
result = {}
for property in obj['properties']:
if property['key'] == 'HOTEL_NAZWA':
result['name'] = property['value']
elif property['key'] == 'OADR_GPS_S':
result['latitude'] = property['value']
elif property['key'] == 'OADR_GPS_D':
result['longitude'] = property['value']
elif property['key'] == 'OADR_MIASTO':
result['city'] = property['value']
elif property['key'] == 'OADR_ULICA':
result['street'] = property['value']
elif property['key'] == 'OADR_NR':
result['nr'] = property['value']
result['address'] = "{0} {1}, {2}".format(result['street'].encode("utf-8"), result['nr'].encode("utf-8"), result['city'].encode("utf-8"))
return result
......@@ -7,7 +7,28 @@ __author__ = 'Dominik Rosiek'
class API(BaseAPI):
resource = "56c603a9-c4a8-4888-98c3-b5bebda65599"
site = "https://api.bihapi.pl/dane/krakow"
methods = ('default')
methods = ('default', 'object')
def default(self):
return json.dumps(self.GET(parameters=self.request.GET.dict()))
return self.GET(parameters=self.request.GET.dict())
def object(self):
data = self.GET(parameters=self.request.GET.dict())
results = []
try:
for obj in data['results']:
results.append(self.unpack(obj))
except TypeError as e:
results.append(self.unpack(data['results']))
return results
def unpack(self, obj):
result = {}
for property in obj['properties']:
if property['key'] == 'desc':
result['name'] = property['value']
elif property['key'] == 'lat':
result['latitude'] = property['value']
elif property['key'] == 'lon':
result['longitude'] = property['value']
return result
\ No newline at end of file
......@@ -7,7 +7,28 @@ __author__ = 'Dominik Rosiek'
class API(BaseAPI):
resource = "9a69b858-70aa-4f02-a38e-5de184417111"
site = "https://api.bihapi.pl/dane/krakow"
methods = ('default')
methods = ('default', 'object')
def default(self):
return json.dumps(self.GET(parameters=self.request.GET.dict()))
return self.GET(parameters=self.request.GET.dict())
def object(self):
data = self.GET(parameters=self.request.GET.dict())
results = []
try:
for obj in data['results']:
results.append(self.unpack(obj))
except TypeError as e:
results.append(self.unpack(data['results']))
return results
def unpack(self, obj):
result = {}
for property in obj['properties']:
if property['key'] == 'REST_NAZWA':
result['name'] = property['value']
elif property['key'] == 'OADR_GPS_S':
result['latitude'] = property['value']
elif property['key'] == 'OADR_GPS_D':
result['longitude'] = property['value']
return result
......@@ -7,7 +7,36 @@ __author__ = 'Dominik Rosiek'
class API(BaseAPI):
resource = "3812a858-7d72-48ff-b790-186fdd4be2a5"
site = "https://api.bihapi.pl/dane/krakow"
methods = ('default')
methods = ('default', 'object')
def default(self):
return json.dumps(self.GET(parameters=self.request.GET.dict()))
return self.GET(parameters=self.request.GET.dict())
def object(self):
data = self.GET(parameters=self.request.GET.dict())
results = []
try:
for obj in data['results']:
results.append(self.unpack(obj))
except TypeError as e:
results.append(self.unpack(data['results']))
return results
def unpack(self, obj):
result = {}
for property in obj['properties']:
if property['key'] == 'SZPITALE':
result['name'] = property['value']
elif property['key'] == 'OADR_GPS_S':
result['latitude'] = property['value']
elif property['key'] == 'OADR_GPS_D':
result['longitude'] = property['value']
elif property['key'] == 'OADR_MIASTO':
result['city'] = property['value']
elif property['key'] == 'OADR_ULICA':
result['street'] = property['value']
elif property['key'] == 'OADR_NR':
result['nr'] = property['value']
result['address'] = "{0} {1}, {2}".format(result['street'].encode("utf-8"), result['nr'].encode("utf-8"), result['city'].encode("utf-8"))
return result
......@@ -10,4 +10,4 @@ class API(BaseAPI):
methods = ('default')
def default(self):
return json.dumps(self.GET(parameters=self.request.GET.dict()))
return self.GET(parameters=self.request.GET.dict())
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment