Esempio n. 1
0
    def get(_, lang):
        if lang == 'ja':
            cached_home_events = Cache.get('api_home_events')
            if cached_home_events is None:
                events_res = EventsSerializer(
                    Topic.get_event_home_published_all(), many=True).data
                Cache.set('api_home_events', events_res)
            else:
                events_res = cached_home_events

            cached_home_topics = Cache.get('api_home_topics')
            if cached_home_topics is None:
                topics_res = TopicsSerializer(
                    Topic.get_topic_home_published_all(), many=True).data
                Cache.set('api_home_topics', topics_res)
            else:
                topics_res = cached_home_topics

        elif lang == 'en':
            cached_home_categories_en = Cache.get('api_home_categories_en')
            if cached_home_categories_en is None:
                events_res = EventsEnSerializer(
                    TopicEn.get_event_home_published_all(), many=True).data
                Cache.set('api_categories_en', events_res)
            else:
                events_res = cached_home_categories_en

            cached_home_topics_en = Cache.get('api_home_topics_en')
            if cached_home_topics_en is None:
                topics_res = TopicsEnSerializer(
                    TopicEn.get_topic_home_published_all(), many=True).data
                Cache.set('api_home_topics_en', topics_res)
            else:
                topics_res = cached_home_topics_en

        else:
            return JsonResponse({
                'message': 'Not Found'
            }, status=404)
        
        return JsonResponse({
            'events': events_res,
            'topics': topics_res,
        }, safe=False)