Skip to content

Commit 0f63322

Browse files
uds5501iamareebjamal
authored andcommitted
fix: Make copied event sponsor logo url generation a celery task (#5867)
1 parent e942a88 commit 0f63322

File tree

2 files changed

+22
-3
lines changed

2 files changed

+22
-3
lines changed

app/api/event_copy.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,10 @@
1919
event_copy = Blueprint('event_copy', __name__, url_prefix='/v1/events')
2020

2121

22+
def start_sponsor_logo_generation_task(event_id):
23+
from .helpers.tasks import sponsor_logos_url_task
24+
sponsor_logos_url_task.delay(event_id=event_id)
25+
2226
@event_copy.route('/<identifier>/copy', methods=['POST'])
2327
def create_event_copy(identifier):
2428
id = 'identifier'
@@ -70,11 +74,11 @@ def create_event_copy(identifier):
7074
db.session.expunge(sponsor) # expunge the object from session
7175
make_transient(sponsor)
7276
sponsor.event_id = event.id
73-
logo_url = create_save_resized_image(image_file=sponsor.logo_url, resize=False)
7477
delattr(sponsor, 'id')
75-
sponsor.logo_url = logo_url
7678
save_to_db(sponsor)
7779

80+
start_sponsor_logo_generation_task(event.id)
81+
7882
for location in microlocations:
7983
location_id = location.id
8084
db.session.expunge(location) # expunge the object from session

app/api/helpers/tasks.py

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
import logging
2020
import traceback
2121

22-
from app.api.helpers.files import create_save_image_sizes
22+
from app.api.helpers.files import create_save_image_sizes, create_save_resized_image
2323
from app.api.helpers.request_context_task import RequestContextTask
2424
from app.api.helpers.mail import send_export_mail, send_import_mail
2525
from app.api.helpers.notification import send_notif_after_import, send_notif_after_export
@@ -31,6 +31,7 @@
3131
from app.api.imports import import_event_task_base
3232
from app.models.event import Event
3333
from app.models.order import Order
34+
from app.models.sponsor import Sponsor
3435
from app.models.discount_code import DiscountCode
3536
from app.models.ticket_holder import TicketHolder
3637
from app.api.helpers.ICalExporter import ICalExporter
@@ -120,6 +121,20 @@ def resize_user_images_task(self, user_id, original_image_url):
120121
logging.exception('Error encountered while generating resized images for user with id: {}'.format(user_id))
121122

122123

124+
@celery.task(base=RequestContextTask, name='sponsor.logo.urls', bind=True)
125+
def sponsor_logos_url_task(self, event_id):
126+
sponsors = Sponsor.query.filter_by(event_id=event_id, deleted_at=None).all()
127+
for sponsor in sponsors:
128+
try:
129+
logging.info('Sponsor logo url generation task started {}'.format(sponsor.logo_url))
130+
new_logo_url = create_save_resized_image(image_file=sponsor.logo_url, resize=False)
131+
sponsor.logo_url = new_logo_url
132+
save_to_db(sponsor)
133+
logging.info('Sponsor logo url successfully generated')
134+
except(urllib.error.HTTPError, urllib.error.URLError):
135+
logging.exception('Error encountered while logo generation')
136+
137+
123138
@celery.task(base=RequestContextTask, name='resize.speaker.images', bind=True)
124139
def resize_speaker_images_task(self, speaker_id, photo_url):
125140
speaker = safe_query(db, Speaker, 'id', speaker_id, 'speaker_id')

0 commit comments

Comments
 (0)