Commit 11208776 authored by adam's avatar adam
parents 8c38aa39 5a4f7a51
...@@ -13,7 +13,7 @@ import os ...@@ -13,7 +13,7 @@ import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__)) BASE_DIR = os.path.dirname(os.path.dirname(__file__))
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
# Quick-start development settings - unsuitable for production # Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/1.7/howto/deployment/checklist/ # See https://docs.djangoproject.com/en/1.7/howto/deployment/checklist/
...@@ -131,3 +131,5 @@ TEMPLATES = [ ...@@ -131,3 +131,5 @@ TEMPLATES = [
}, },
}, },
] ]
MEDIA_URL = '/media/'
\ No newline at end of file
...@@ -2,9 +2,11 @@ from django.conf.urls import patterns, include, url ...@@ -2,9 +2,11 @@ from django.conf.urls import patterns, include, url
from django.contrib import admin from django.contrib import admin
from rest_framework.authtoken import views as token_view from rest_framework.authtoken import views as token_view
from rest_framework import routers from rest_framework import routers
from JoinTheCityREST import settings
router = routers.DefaultRouter() router = routers.DefaultRouter()
from django.conf.urls.static import static
from app.API import views as api_views from app.API import views as api_views
from app.Discussion import views as discussion_views from app.Discussion import views as discussion_views
from app.Event import views as event_views from app.Event import views as event_views
...@@ -33,10 +35,10 @@ router.register(r'tag_discussion', tag_views.TagDiscussionViewSet, base_name="ta ...@@ -33,10 +35,10 @@ router.register(r'tag_discussion', tag_views.TagDiscussionViewSet, base_name="ta
urlpatterns = [ 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/', include(router.urls)),
url(r'^api-auth/', include('rest_framework.urls', url(r'^api-auth/', include('rest_framework.urls',
namespace='rest_framework')), namespace='rest_framework')),
url(r'^api-token-auth/', token_view.obtain_auth_token), url(r'^api-token-auth/', token_view.obtain_auth_token),
url(r'^admin/', include(admin.site.urls)), 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.API.models import API, APIType
from app.Tag.models import Tag from app.Tag.models import Tag
...@@ -10,20 +11,21 @@ class Command(BaseCommand): ...@@ -10,20 +11,21 @@ class Command(BaseCommand):
def handle(self, *args, **options): def handle(self, *args, **options):
apis = [ apis = [
['Apteki w Krakowie', 'Krakow', 'map', 'apteki'], ['Apteki w Krakowie', 'Krakow', 'map', 'apteki', 'image/icon.jpg', 'Opis API o aptekach w Krakowie'],
['Baseny w Krakowie', 'Krakow', 'map', 'baseny'], ['Baseny w Krakowie', 'Krakow', 'map', 'baseny', 'image/icon.jpg', 'Opis API o aptekach w Krakowie'],
['Hotele w Krakowie', 'Krakow', 'map',' hotele'], ['Hotele w Krakowie', 'Krakow', 'map','hotele', 'image/icon.jpg', 'Opis API o aptekach w Krakowie'],
['HotSpoty w Krakowie', 'Krakow', 'map',' mapaHotSpotow'], ['HotSpoty w Krakowie', 'Krakow', 'map','mapaHotSpotow', 'image/icon.jpg', 'Opis API o aptekach w Krakowie'],
['Utrudnienia w Krakowie', 'Krakow', 'map',' mapaUtrudnien'], ['Utrudnienia w Krakowie', 'Krakow', 'map','mapaUtrudnien', 'image/icon.jpg', 'Opis API o aptekach w Krakowie'],
['Restauracje w Krakowie', 'Krakow', 'map',' restauracje'], ['Restauracje w Krakowie', 'Krakow', 'map','restauracje', 'image/icon.jpg', 'Opis API o aptekach w Krakowie'],
['Szpitale w Krakowie', 'Krakow', 'map',' szpitale'], ['Szpitale w Krakowie', 'Krakow', 'map','szpitale', 'image/icon.jpg', 'Opis API o aptekach w Krakowie'],
['Zdarzenia drogowe w Krakowie', 'Krakow', 'map',' zdarzeniaDrogowe'], ['Zdarzenia drogowe w Krakowie', 'Krakow', 'map','zdarzeniaDrogowe', 'image/icon.jpg', 'Opis API o aptekach w Krakowie'],
] ]
print "Creating APIs" print "Creating APIs"
for api in apis: for api in apis:
print "Create {0}".format(api[0]) print "Create {0}".format(api[0])
tag = Tag.objects.filter(name=api[1])[0] tag = Tag.objects.filter(name=api[1])[0]
api_type = APIType.objects.filter(name=api[2])[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.tag = [tag, ]
new_api.icon = api[4]
new_api.save() new_api.save()
\ No newline at end of file
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Generated by Django 1.9.1 on 2016-01-13 10:25
from __future__ import unicode_literals 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): class Migration(migrations.Migration):
initial = True
dependencies = [ dependencies = [
('Tag', '0001_initial'),
] ]
operations = [ operations = [
migrations.CreateModel( migrations.CreateModel(
name='API', name='API',
fields=[ 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={ ),
}, migrations.AddField(
bases=(models.Model,), 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): ...@@ -18,6 +18,9 @@ class API(models.Model):
type = models.ForeignKey(APIType, related_name='API_type', type = models.ForeignKey(APIType, related_name='API_type',
blank=False, null=False, default=None) blank=False, null=False, default=None)
source = models.CharField(max_length=100) 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): def __str__(self):
......
...@@ -6,7 +6,7 @@ class APISerializer(serializers.HyperlinkedModelSerializer): ...@@ -6,7 +6,7 @@ class APISerializer(serializers.HyperlinkedModelSerializer):
class Meta: class Meta:
model = API model = API
fields = ('url', 'name', 'tag' ,'type', 'source') fields = ('url', 'id', 'name', 'tag' ,'type', 'source', 'icon', 'description', 'data')
class APITypeSerializer(serializers.HyperlinkedModelSerializer): class APITypeSerializer(serializers.HyperlinkedModelSerializer):
......
# Create your views here. # Create your views here.
import json
from django.http import HttpResponse, Http404 from django.http import HttpResponse, Http404
from rest_framework import viewsets, permissions from rest_framework import viewsets, permissions
import rest_framework import rest_framework
from rest_framework.decorators import detail_route
from rest_framework.response import Response from rest_framework.response import Response
import sys
from app.API.models import API, APIType from app.API.models import API, APIType
from app.API.serializers import APISerializer, APITypeSerializer 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): class APIViewSet(viewsets.ModelViewSet):
""" """
...@@ -15,17 +19,55 @@ class APIViewSet(viewsets.ModelViewSet): ...@@ -15,17 +19,55 @@ class APIViewSet(viewsets.ModelViewSet):
serializer_class = APISerializer serializer_class = APISerializer
permission_classes = (permissions.IsAuthenticatedOrReadOnly,) 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 @staticmethod
def test(request, id, function, slash): def test(request, id, function):
try: try:
object = API.objects.get(pk=id) object = API.objects.get(pk=id)
except Exception as e: except Exception as e:
raise Http404 raise Http404
name = "lib.api.{0}".format(object.source) name = "lib.api.{0}".format(object.source.strip())
mod = __import__(name, fromlist=['API']) mod = __import__(name, fromlist=['API'])
api = mod.API(request) 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): class APITypeViewSet(viewsets.ModelViewSet):
""" """
......
...@@ -12,7 +12,10 @@ class Command(BaseCommand): ...@@ -12,7 +12,10 @@ class Command(BaseCommand):
def handle(self, *args, **options): def handle(self, *args, **options):
discussions = [ 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" print "Creating Discussions"
for discussion in discussions: for discussion in discussions:
......
...@@ -13,8 +13,20 @@ class Command(BaseCommand): ...@@ -13,8 +13,20 @@ class Command(BaseCommand):
text_messages = [ text_messages = [
['Rafal', 'Nie znam'], ['Rafal', 'Nie znam'],
['Klaudia', 'Polecam fryzjera w Kapitolu'], ['Klaudia', 'Polecam fryzjera w Kapitolu'],
['Antek', 'Lol, on jest do dupy'], ['Antek', 'Lol, on jest do niczego. Nie polecam!'],
['Rafal', '@_@'], ['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" print "Creating Messages"
for text_message in text_messages: for text_message in text_messages:
......
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Generated by Django 1.9.1 on 2016-01-13 10:25
from __future__ import unicode_literals 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): class Migration(migrations.Migration):
initial = True
dependencies = [ dependencies = [
('Tag', '0001_initial'),
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
] ]
operations = [ operations = [
migrations.CreateModel( migrations.CreateModel(
name='Discussion', name='Discussion',
fields=[ 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( migrations.CreateModel(
name='Message', name='TextMessage',
fields=[ 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={ ),
}, migrations.AddField(
bases=(models.Model,), 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 ...@@ -6,9 +6,9 @@ from app.User.serializers import UserSerializer
class DiscussionSerializer(serializers.HyperlinkedModelSerializer): class DiscussionSerializer(serializers.HyperlinkedModelSerializer):
class Meta: class Meta:
model = Discussion model = Discussion
fields = ('url', 'user', 'question', 'message', 'tag') fields = ('url', 'id', 'user', 'question', 'message', 'tag')
class TextMessageSerializer(serializers.HyperlinkedModelSerializer): class TextMessageSerializer(serializers.HyperlinkedModelSerializer):
class Meta: class Meta:
model = TextMessage model = TextMessage
fields = ('url', 'user', 'text', 'created_at') fields = ('url', 'id', 'user', 'text', 'created_at')
\ No newline at end of file \ No newline at end of file
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Generated by Django 1.9.1 on 2016-01-13 10:25
from __future__ import unicode_literals 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): class Migration(migrations.Migration):
initial = True
dependencies = [ dependencies = [
('Tag', '0001_initial'),
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('Localization', '0001_initial'),
] ]
operations = [ operations = [
migrations.CreateModel( migrations.CreateModel(
name='Event', name='Event',
fields=[ 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 -*- # -*- coding: utf-8 -*-
# Generated by Django 1.9.1 on 2016-01-13 10:25
from __future__ import unicode_literals 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): class Migration(migrations.Migration):
initial = True
dependencies = [ dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
] ]
operations = [ 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( migrations.CreateModel(
name='FriendshipRequest', name='FriendshipRequest',
fields=[ 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 -*- # -*- coding: utf-8 -*-
# Generated by Django 1.9.1 on 2016-01-13 10:25
from __future__ import unicode_literals from __future__ import unicode_literals
from django.db import models, migrations from django.db import migrations, models
class Migration(migrations.Migration): class Migration(migrations.Migration):
initial = True
dependencies = [ dependencies = [
] ]
...@@ -13,10 +16,11 @@ class Migration(migrations.Migration): ...@@ -13,10 +16,11 @@ class Migration(migrations.Migration):
migrations.CreateModel( migrations.CreateModel(
name='Localization', name='Localization',
fields=[ 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): ...@@ -12,6 +12,7 @@ class Command(BaseCommand):
tags = [ tags = [
['Krakow', 'Krakow'], ['Krakow', 'Krakow'],
['Miasteczko AGH', 'Miasteczko AGH'], ['Miasteczko AGH', 'Miasteczko AGH'],
['Klub Studio', 'Klub Studio'],
['Nowa Huta', 'Nowa Huta'], ['Nowa Huta', 'Nowa Huta'],
['Rozrywka','Swiat'], ['Rozrywka','Swiat'],
['Turystyka','Swiat'], ['Turystyka','Swiat'],
......
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Generated by Django 1.9.1 on 2016-01-13 10:25
from __future__ import unicode_literals 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): class Migration(migrations.Migration):
initial = True
dependencies = [ dependencies = [
('Localization', '0001_initial'),
] ]
operations = [ operations = [
migrations.CreateModel( migrations.CreateModel(
name='Tag', name='Tag',
fields=[ 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 django.contrib.auth.models import User
from rest_framework import serializers from rest_framework import serializers
from app.API.serializers import APISerializer
from app.Event.serializers import EventSerializer from app.Event.serializers import EventSerializer
from app.User.models import UserFriendship, UserAPI, UserEvent, UserEventRequest from app.User.models import UserFriendship, UserAPI, UserEvent, UserEventRequest
...@@ -20,9 +21,11 @@ class UserEventRequestSerializer(serializers.HyperlinkedModelSerializer): ...@@ -20,9 +21,11 @@ class UserEventRequestSerializer(serializers.HyperlinkedModelSerializer):
fields = ('url', 'event', 'created_by') fields = ('url', 'event', 'created_by')
class UserAPISerializer(serializers.HyperlinkedModelSerializer): class UserAPISerializer(serializers.HyperlinkedModelSerializer):
api = APISerializer()
class Meta: class Meta:
model = UserAPI model = UserAPI
fields = ('url','api') fields = ('api', )
class UserEventSerializer(serializers.HyperlinkedModelSerializer): class UserEventSerializer(serializers.HyperlinkedModelSerializer):
class Meta: 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): ...@@ -10,7 +10,8 @@ class API(BaseAPI):
methods = ('default', 'object') methods = ('default', 'object')
def default(self): 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): def object(self):
data = self.GET(parameters=self.request.GET.dict()) data = self.GET(parameters=self.request.GET.dict())
...@@ -31,4 +32,12 @@ class API(BaseAPI): ...@@ -31,4 +32,12 @@ class API(BaseAPI):
result['latitude'] = property['value'] result['latitude'] = property['value']
elif property['key'] == 'OADR_GPS_D': elif property['key'] == 'OADR_GPS_D':
result['longitude'] = property['value'] 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 return result
...@@ -7,7 +7,36 @@ __author__ = 'Dominik Rosiek' ...@@ -7,7 +7,36 @@ __author__ = 'Dominik Rosiek'
class API(BaseAPI): class API(BaseAPI):
resource = "6c8f204a-e061-4e64-945c-d07a41ea788a" resource = "6c8f204a-e061-4e64-945c-d07a41ea788a"
site = "https://api.bihapi.pl/dane/krakow" site = "https://api.bihapi.pl/dane/krakow"
methods = ('default') methods = ('default', 'object')
def default(self): 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' ...@@ -7,7 +7,36 @@ __author__ = 'Dominik Rosiek'
class API(BaseAPI): class API(BaseAPI):
resource = "b02b0bb5-1197-4128-9e48-c679e07ba350" resource = "b02b0bb5-1197-4128-9e48-c679e07ba350"
site = "https://api.bihapi.pl/dane/krakow" site = "https://api.bihapi.pl/dane/krakow"
methods = ('default') methods = ('default', 'object')
def default(self): 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' ...@@ -7,7 +7,28 @@ __author__ = 'Dominik Rosiek'
class API(BaseAPI): class API(BaseAPI):
resource = "56c603a9-c4a8-4888-98c3-b5bebda65599" resource = "56c603a9-c4a8-4888-98c3-b5bebda65599"
site = "https://api.bihapi.pl/dane/krakow" site = "https://api.bihapi.pl/dane/krakow"
methods = ('default') methods = ('default', 'object')
def default(self): 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' ...@@ -7,7 +7,28 @@ __author__ = 'Dominik Rosiek'
class API(BaseAPI): class API(BaseAPI):
resource = "9a69b858-70aa-4f02-a38e-5de184417111" resource = "9a69b858-70aa-4f02-a38e-5de184417111"
site = "https://api.bihapi.pl/dane/krakow" site = "https://api.bihapi.pl/dane/krakow"
methods = ('default') methods = ('default', 'object')
def default(self): 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' ...@@ -7,7 +7,36 @@ __author__ = 'Dominik Rosiek'
class API(BaseAPI): class API(BaseAPI):
resource = "3812a858-7d72-48ff-b790-186fdd4be2a5" resource = "3812a858-7d72-48ff-b790-186fdd4be2a5"
site = "https://api.bihapi.pl/dane/krakow" site = "https://api.bihapi.pl/dane/krakow"
methods = ('default') methods = ('default', 'object')
def default(self): 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): ...@@ -10,4 +10,4 @@ class API(BaseAPI):
methods = ('default') methods = ('default')
def default(self): 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