API KEYS working

This commit is contained in:
2025-10-11 20:21:01 -05:00
parent aef63f1a08
commit e2e8757452
7 changed files with 51 additions and 10 deletions

View File

@@ -0,0 +1,23 @@
# Generated by Django 5.1.1 on 2025-10-11 16:21
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('events', '0027_scraper_new_items'),
]
operations = [
migrations.AddField(
model_name='event',
name='live',
field=models.CharField(choices=[('live', 'Live & Direct'), ('virt', 'Virtually Served'), ('both', 'How you prefer.')], default='live', max_length=4),
),
migrations.AlterField(
model_name='event',
name='event_type',
field=models.CharField(choices=[('Ot', 'Other'), ('Mu', 'Music'), ('Va', 'Visual Art'), ('Gv', 'Government'), ('Ce', 'Civic Engagement'), ('Ed', 'Educational'), ('Ma', 'Mutual Aid'), ('Th', 'Theater'), ('Co', 'Comedy')], default='Mu', max_length=15),
),
]

View File

@@ -110,10 +110,16 @@ class Event(models.Model):
('Th', 'Theater'),
('Co', 'Comedy'),
)
EVENT_STATE = (
('live', 'Live & Direct'),
('virt', 'Virtually Served'),
('both', 'How you prefer.')
)
calendar = models.ForeignKey(Calendar, on_delete=models.CASCADE, blank=True, null=True)
scraper = models.ForeignKey(Scraper, on_delete=models.CASCADE, null=True)
venue = models.ForeignKey(Organization, on_delete=models.CASCADE)
event_type = models.CharField(max_length=15, choices=EVENT_TYPE, default='0')
live = models.CharField(max_length=4, choices=EVENT_STATE, default='live')
event_type = models.CharField(max_length=15, choices=EVENT_TYPE, default='Mu')
show_title = models.CharField(max_length=127, blank=True, null=True)
show_link = models.URLField(blank=True, null=True)
guests = models.CharField(max_length=255, blank=True, null=True)

View File

@@ -59,7 +59,6 @@ def splitLocation(event):
venue, created = Organization.objects.get_or_create(
name=venue_name,
city="Medellin",
website="https://idioki.com/",
)
event['venue'] = venue
return event
@@ -96,13 +95,7 @@ for component in gcal.walk():
days = ["SU", "MO", "TU", "WE", "TH", "FR", "SA"]
for day in rules['BYDAY']:
day = days.index(day)
loc_split = event['strLocation'].split(",")
venue, created = Organization.objects.get_or_create(
name=loc_split[0],
city="Medellin",
website="https://idioki.com/",
)
createEvent(day, date, event, scraper, venue, "Ed")
createEvent(day, date, event, scraper, event['venue'], "Ed")
digitools.updateScraper(scraper, item_count_start)

View File

@@ -20,6 +20,7 @@ from django_filters.rest_framework import DjangoFilterBackend
from rest_framework import filters
from rest_framework.response import Response
from rest_framework_api_key.permissions import HasAPIKey
td = timedelta(hours=7)
odt = datetime.now() - td
@@ -31,10 +32,12 @@ class EventsAPIView(generics.ListAPIView):
filter_backends = [DjangoFilterBackend, filters.SearchFilter]
filterset_fields = ['show_title', 'event_type', 'venue__name', 'calendar__shortcode']
search_fields = ['show_title', 'event_type', 'venue__name']
permission_classes = [HasAPIKey]
class PromoAPIView(generics.ListAPIView):
serializer_class = PromoSerializer
permission_classes = [HasAPIKey]
def get_queryset(self):
promo_objects = list(Promo.objects.filter(published=True))