From 92f2e31e02df7c5b95a3fc93981ee380c6d9bdd1 Mon Sep 17 00:00:00 2001 From: nprasad2077 <114438461+nprasad2077@users.noreply.github.com> Date: Tue, 2 May 2023 16:07:44 -0500 Subject: [PATCH] overall db stats view --- nba_data/urls.py | 3 ++- nba_data/views.py | 18 +++++++++++++++++- nba_stats/settings.py | 13 ++++++++----- 3 files changed, 27 insertions(+), 7 deletions(-) diff --git a/nba_data/urls.py b/nba_data/urls.py index 4e3036f..7a7ddf2 100644 --- a/nba_data/urls.py +++ b/nba_data/urls.py @@ -1,5 +1,5 @@ from django.urls import path -from .views import PlayerDataList, PlayerDataByTeamList, PlayerDataBySeasonList, PlayerDataByNameList, TopScorersbySeasonList, TopScorersbySeasonListPlayoffs, ThreeTwoTopPointTrends, TopAssistsBySeasonList, TopReboundsBySeasonList, TopBlocksBySeasonList, TopStealsBySeasonList, TopOffensiveReboundsBySeasonList, TopDefensiveReboundsBySeasonList, PointsPerGameHistogramBySeasonList, TopPtsScatterPlotData, TopPtsScatterPlotDataFast, TopPtsScatterPlotDataFast2018, Top20ScorersPost2009WS, Top20ScorersPost2014WS, Top20ScorersPost2018WS, TopAssistsBySeasonListPlayoffs, Top25ScorersPostSeasonPlayoffs, TopPtsScatterPlotDataFastSelect +from .views import PlayerDataList, PlayerDataByTeamList, PlayerDataBySeasonList, PlayerDataByNameList, TopScorersbySeasonList, TopScorersbySeasonListPlayoffs, ThreeTwoTopPointTrends, TopAssistsBySeasonList, TopReboundsBySeasonList, TopBlocksBySeasonList, TopStealsBySeasonList, TopOffensiveReboundsBySeasonList, TopDefensiveReboundsBySeasonList, PointsPerGameHistogramBySeasonList, TopPtsScatterPlotData, TopPtsScatterPlotDataFast, TopPtsScatterPlotDataFast2018, Top20ScorersPost2009WS, Top20ScorersPost2014WS, Top20ScorersPost2018WS, TopAssistsBySeasonListPlayoffs, Top25ScorersPostSeasonPlayoffs, TopPtsScatterPlotDataFastSelect, OverallDBStats urlpatterns = [ path('api/playerdata/', PlayerDataList.as_view(), name='playerdata_list'), @@ -25,4 +25,5 @@ urlpatterns = [ path('api/top_20_post_2018_PTS_ws/', Top20ScorersPost2018WS.as_view(), name='top_20_post_2018_PTS_ws'), path('api/top_25_PTS_ws/playoffs//', Top25ScorersPostSeasonPlayoffs.as_view(), name='top_25_PTS_ws_playoffs'), path('api/top_25_PTS_ws/season//', TopPtsScatterPlotDataFastSelect.as_view(), name='top_25_PTS_ws_season'), + path('api/stats/', OverallDBStats.as_view(), name='overall_db_stats'), ] \ No newline at end of file diff --git a/nba_data/views.py b/nba_data/views.py index 86f65ae..b70658c 100644 --- a/nba_data/views.py +++ b/nba_data/views.py @@ -6,7 +6,7 @@ from rest_framework import generics from .serializers import PlayerDataSerializer, HistogramDataSerializer, PlayerPlayoffTotalsDataSerializer from rest_framework.views import APIView from rest_framework.response import Response -from django.db.models import Avg, Sum, F, FloatField +from django.db.models import Avg, Sum, F, FloatField, Min, Max from collections import Counter import math from django.db import connection @@ -541,6 +541,22 @@ class TopAssistsBySeasonListPlayoffs(generics.ListAPIView): return PlayerPlayoffTotalsData.objects.filter(season=season).order_by('-AST')[:20] +class OverallDBStats(APIView): + def get(self. request): + total_players_regular = PlayerTotalsData.objects.count() + total_players_playoffs = PlayerPlayoffAdvancedData.objects.count() + regular_season_range = PlayerTotalsData.objects.aggregate(Min('season'), Max('season')) + playoffs_season_range = PlayerPlayoffAdvancedData.objects.aggregate(Min('season'), Max('season')) + + response_data = { + 'total_players_regular': total_players_regular, + 'total_players_playoffs': total_players_playoffs, + 'regular_season_range': regular_season_range, + 'playoffs_season_range': playoffs_season_range, + } + + return Response(response_data) + diff --git a/nba_stats/settings.py b/nba_stats/settings.py index 82a83cf..73b8232 100644 --- a/nba_stats/settings.py +++ b/nba_stats/settings.py @@ -18,6 +18,9 @@ import os db_user = os.getenv('DB_USER') db_pass = os.getenv('DB_PASS') SECRET_DJANGO = os.getenv('SECRET_DJANGO') +aws_user = os.getenv('AWS_USER') +aws_pass = os.getenv('AWS_PASS') +db_url = os.getenv('DB_URL') @@ -89,11 +92,11 @@ WSGI_APPLICATION = 'nba_stats.wsgi.application' DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', - 'NAME': 'nba_stats', - 'USER': db_user, - 'PASSWORD': db_pass, - 'HOST': 'localhost', - 'PORT': '', + 'NAME': 'nbaStats', + 'USER': aws_user, + 'PASSWORD': aws_pass, + 'HOST': db_url, + 'PORT': '5432', } }