@@ -56,37 +56,75 @@ class OrganizationSerializer < Blueprinter::Base
5656 end
5757
5858 field :statistics do |org |
59- {
60- total_players : org . cached_players_count ,
61- active_players : org . players . where ( deleted_at : nil , status : 'active' ) . count ,
62- total_matches : org . matches . count ,
63- recent_matches : org . cached_monthly_matches_count ,
64- total_users : org . users . count
65- }
59+ begin
60+ {
61+ total_players : org . cached_players_count ,
62+ active_players : org . players . where ( deleted_at : nil , status : 'active' ) . count ,
63+ total_matches : org . matches . count ,
64+ recent_matches : org . cached_monthly_matches_count ,
65+ total_users : org . users . count
66+ }
67+ rescue => e
68+ Rails . logger . error ( "OrganizationSerializer statistics error: #{ e . class } - #{ e . message } " )
69+ Rails . logger . error ( e . backtrace &.first ( 5 ) &.join ( "\n " ) )
70+ {
71+ total_players : 0 ,
72+ active_players : 0 ,
73+ total_matches : 0 ,
74+ recent_matches : 0 ,
75+ total_users : 0
76+ }
77+ end
6678 end
6779
6880 # Tier features and capabilities
6981 field :features do |org |
70- {
71- can_access_scrims : org . can_access_scrims? ,
72- can_access_competitive_data : org . can_access_competitive_data? ,
73- can_access_predictive_analytics : org . can_access_predictive_analytics? ,
74- available_features : org . available_features ,
75- available_data_sources : org . available_data_sources ,
76- available_analytics : org . available_analytics
77- }
82+ begin
83+ {
84+ can_access_scrims : org . can_access_scrims? ,
85+ can_access_competitive_data : org . can_access_competitive_data? ,
86+ can_access_predictive_analytics : org . can_access_predictive_analytics? ,
87+ available_features : org . available_features ,
88+ available_data_sources : org . available_data_sources ,
89+ available_analytics : org . available_analytics
90+ }
91+ rescue => e
92+ Rails . logger . error ( "OrganizationSerializer features error: #{ e . class } - #{ e . message } " )
93+ Rails . logger . error ( e . backtrace &.first ( 5 ) &.join ( "\n " ) )
94+ {
95+ can_access_scrims : false ,
96+ can_access_competitive_data : false ,
97+ can_access_predictive_analytics : false ,
98+ available_features : [ ] ,
99+ available_data_sources : [ ] ,
100+ available_analytics : [ ]
101+ }
102+ end
78103 end
79104
80105 field :limits do |org |
81- # Chamar tier_limits uma única vez e retornar apenas os campos necessários
82- limits = org . tier_limits
83- {
84- max_players : limits [ :max_players ] ,
85- max_matches_per_month : limits [ :max_matches_per_month ] ,
86- current_players : limits [ :current_players ] ,
87- current_monthly_matches : limits [ :current_monthly_matches ] ,
88- players_remaining : limits [ :players_remaining ] ,
89- matches_remaining : limits [ :matches_remaining ]
90- }
106+ begin
107+ # Chamar tier_limits uma única vez e retornar apenas os campos necessários
108+ limits = org . tier_limits
109+ {
110+ max_players : limits [ :max_players ] ,
111+ max_matches_per_month : limits [ :max_matches_per_month ] ,
112+ current_players : limits [ :current_players ] ,
113+ current_monthly_matches : limits [ :current_monthly_matches ] ,
114+ players_remaining : limits [ :players_remaining ] ,
115+ matches_remaining : limits [ :matches_remaining ]
116+ }
117+ rescue => e
118+ Rails . logger . error ( "OrganizationSerializer limits error: #{ e . class } - #{ e . message } " )
119+ Rails . logger . error ( e . backtrace &.first ( 5 ) &.join ( "\n " ) )
120+ {
121+ max_players : 0 ,
122+ max_matches_per_month : 0 ,
123+ current_players : 0 ,
124+ current_monthly_matches : 0 ,
125+ players_remaining : 0 ,
126+ matches_remaining : 0
127+ }
128+ end
91129 end
92130end
0 commit comments