1111 * limitations under the License.
1212 * */
1313
14+ import moment from "moment-timezone" ;
1415import { LOGOUT_USER } from "openstack-uicore-foundation/lib/security/actions" ;
1516import { epochToMomentTimeZone } from "openstack-uicore-foundation/lib/utils/methods" ;
1617import { SET_CURRENT_SUMMIT } from "../../actions/summit-actions" ;
@@ -20,6 +21,11 @@ import {
2021 REQUEST_GENERAL_MEDIA_UPLOADS ,
2122 REQUEST_SPONSOR_MEDIA_UPLOADS
2223} from "../../actions/sponsor-mu-actions" ;
24+ import { bytesToMb } from "../../utils/methods" ;
25+ import {
26+ DEADLINE_ALERT_DAYS ,
27+ SPONSOR_MEDIA_UPLOAD_STATUS
28+ } from "../../utils/constants" ;
2329
2430const DEFAULT_STATE = {
2531 sponsorRequests : {
@@ -43,6 +49,39 @@ const DEFAULT_STATE = {
4349 summitTZ : ""
4450} ;
4551
52+ const mapMediaObject = ( mediaObject , summitTZ ) => {
53+ const deadline = mediaObject . upload_deadline
54+ ? epochToMomentTimeZone ( mediaObject . upload_deadline , summitTZ ) ?. format (
55+ "YYYY/MM/DD"
56+ )
57+ : "N/A" ;
58+
59+ let status = SPONSOR_MEDIA_UPLOAD_STATUS . COMPLETE ;
60+ if ( ! mediaObject . media_upload ) {
61+ if ( mediaObject . upload_deadline < moment ( ) . unix ( ) ) {
62+ status = SPONSOR_MEDIA_UPLOAD_STATUS . DEADLINE_MISSED ;
63+ } else if (
64+ mediaObject . upload_deadline <
65+ moment ( ) . add ( DEADLINE_ALERT_DAYS , "days" ) . unix ( )
66+ ) {
67+ status = SPONSOR_MEDIA_UPLOAD_STATUS . DEADLINE_ALERT ;
68+ } else {
69+ status = SPONSOR_MEDIA_UPLOAD_STATUS . PENDING ;
70+ }
71+ }
72+
73+ return {
74+ id : mediaObject . id ,
75+ name : mediaObject . name ,
76+ add_on : mediaObject . add_ons . map ( ( a ) => a . name ) . join ( ", " ) ,
77+ max_size : `${ bytesToMb ( mediaObject . max_file_size ) } MB` ,
78+ format : mediaObject . file_type ?. allowed_extensions || "N/A" ,
79+ media_upload : mediaObject . media_upload ,
80+ deadline,
81+ status
82+ } ;
83+ } ;
84+
4685const sponsorPageMUListReducer = ( state = DEFAULT_STATE , action ) => {
4786 const { type, payload } = action ;
4887
@@ -73,21 +112,9 @@ const sponsorPageMUListReducer = (state = DEFAULT_STATE, action) => {
73112 last_page : lastPage
74113 } = payload . response ;
75114
76- const requests = payload . response . data . map ( ( a ) => {
77- const expiresAt = a . expires_at
78- ? epochToMomentTimeZone ( a . expires_at , state . summitTZ ) ?. format (
79- "YYYY/MM/DD"
80- )
81- : "N/A" ;
82-
83- return {
84- id : a . id ,
85- code : a . code ,
86- name : a . name ,
87- items_count : a . items_count ,
88- expires_at : expiresAt
89- } ;
90- } ) ;
115+ const requests = payload . response . data . map ( ( a ) =>
116+ mapMediaObject ( a , state . summitTZ )
117+ ) ;
91118
92119 return {
93120 ...state ,
@@ -122,21 +149,9 @@ const sponsorPageMUListReducer = (state = DEFAULT_STATE, action) => {
122149 last_page : lastPage
123150 } = payload . response ;
124151
125- const requests = payload . response . data . map ( ( a ) => {
126- const expiresAt = a . expires_at
127- ? epochToMomentTimeZone ( a . expires_at , state . summitTZ ) ?. format (
128- "YYYY/MM/DD"
129- )
130- : "N/A" ;
131-
132- return {
133- id : a . id ,
134- code : a . code ,
135- name : a . name ,
136- items_count : a . items_count ,
137- expires_at : expiresAt
138- } ;
139- } ) ;
152+ const requests = payload . response . data . map ( ( a ) =>
153+ mapMediaObject ( a , state . summitTZ )
154+ ) ;
140155
141156 return {
142157 ...state ,
0 commit comments