@@ -16,169 +16,64 @@ export default Route.extend({
16
16
} ,
17
17
async model ( params ) {
18
18
const eventDetails = this . modelFor ( 'public' ) ;
19
- let sessions = null ;
20
- if ( params . session_status === 'today' ) {
21
- sessions = await this . store . query ( 'session' , {
22
- filter : [
19
+ const filterOptions = [
20
+ {
21
+ and : [
23
22
{
24
- and : [
25
- {
26
- name : 'event' ,
27
- op : 'has' ,
28
- val : {
29
- name : 'identifier' ,
30
- op : 'eq' ,
31
- val : eventDetails . id
32
- }
33
- } ,
34
- {
35
- name : 'starts-at' ,
36
- op : 'ge' ,
37
- val : moment ( ) . startOf ( 'day' ) . toISOString ( )
38
- } ,
39
- {
40
- name : 'starts-at' ,
41
- op : 'lt' ,
42
- val : moment ( ) . endOf ( 'day' ) . toISOString ( )
43
- } ,
44
- {
45
- or : [
46
- {
47
- name : 'state' ,
48
- op : 'eq' ,
49
- val : 'confirmed'
50
- } ,
51
- {
52
- name : 'state' ,
53
- op : 'eq' ,
54
- val : 'accepted'
55
- }
56
- ]
57
- }
58
- ]
59
- }
60
- ]
61
- } ) ;
62
- } else if ( params . session_status === 'week' ) {
63
- sessions = await this . store . query ( 'session' , {
64
- filter : [
23
+ name : 'event' ,
24
+ op : 'has' ,
25
+ val : {
26
+ name : 'identifier' ,
27
+ op : 'eq' ,
28
+ val : eventDetails . id
29
+ }
30
+ } ,
65
31
{
66
- and : [
32
+ or : [
67
33
{
68
- name : 'event' ,
69
- op : 'has' ,
70
- val : {
71
- name : 'identifier' ,
72
- op : 'eq' ,
73
- val : eventDetails . id
74
- }
34
+ name : 'state' ,
35
+ op : 'eq' ,
36
+ val : 'confirmed'
75
37
} ,
76
38
{
77
- name : 'starts-at' ,
78
- op : 'ge' ,
79
- val : moment ( ) . startOf ( 'week' ) . toISOString ( )
80
- } ,
81
- {
82
- name : 'starts-at' ,
83
- op : 'lt' ,
84
- val : moment ( ) . endOf ( 'week' ) . toISOString ( )
85
- } ,
86
- {
87
- or : [
88
- {
89
- name : 'state' ,
90
- op : 'eq' ,
91
- val : 'confirmed'
92
- } ,
93
- {
94
- name : 'state' ,
95
- op : 'eq' ,
96
- val : 'accepted'
97
- }
98
- ]
39
+ name : 'state' ,
40
+ op : 'eq' ,
41
+ val : 'accepted'
99
42
}
100
43
]
101
44
}
102
45
]
103
- } ) ;
104
- } else if ( params . session_status === 'month' ) {
105
- sessions = await this . store . query ( 'session' , {
106
- filter : [
46
+ }
47
+ ] ;
48
+
49
+ if ( params . session_status !== 'all' ) {
50
+
51
+ const period = params . session_status === 'today' ? 'day' : params . session_status ;
52
+ filterOptions . push ( {
53
+ and : [
107
54
{
108
- and : [
109
- {
110
- name : 'event' ,
111
- op : 'has' ,
112
- val : {
113
- name : 'identifier' ,
114
- op : 'eq' ,
115
- val : eventDetails . id
116
- }
117
- } ,
118
- {
119
- name : 'starts-at' ,
120
- op : 'ge' ,
121
- val : moment ( ) . startOf ( 'month' ) . toISOString ( )
122
- } ,
123
- {
124
- name : 'starts-at' ,
125
- op : 'lt' ,
126
- val : moment ( ) . add ( 'month' ) . toISOString ( )
127
- } ,
128
- {
129
- or : [
130
- {
131
- name : 'state' ,
132
- op : 'eq' ,
133
- val : 'confirmed'
134
- } ,
135
- {
136
- name : 'state' ,
137
- op : 'eq' ,
138
- val : 'accepted'
139
- }
140
- ]
141
- }
142
- ]
143
- }
144
- ]
145
- } ) ;
146
- } else {
147
- sessions = await this . store . query ( 'session' , {
148
- filter : [
55
+ name : 'starts-at' ,
56
+ op : 'ge' ,
57
+ val : moment ( ) . startOf ( period ) . toISOString ( )
58
+ } ,
149
59
{
150
- and : [
151
- {
152
- name : 'event' ,
153
- op : 'has' ,
154
- val : {
155
- name : 'identifier' ,
156
- op : 'eq' ,
157
- val : eventDetails . id
158
- }
159
- } ,
160
- {
161
- or : [
162
- {
163
- name : 'state' ,
164
- op : 'eq' ,
165
- val : 'confirmed'
166
- } ,
167
- {
168
- name : 'state' ,
169
- op : 'eq' ,
170
- val : 'accepted'
171
- }
172
- ]
173
- }
174
- ]
60
+ name : 'starts-at' ,
61
+ op : 'lt' ,
62
+ val : moment ( ) . endOf ( period ) . toISOString ( )
175
63
}
176
64
]
177
65
} ) ;
66
+
178
67
}
179
68
return {
180
69
event : eventDetails ,
181
- session : sessions
70
+ session : await this . infinity . model ( 'session' , {
71
+ filter : filterOptions ,
72
+ perPage : 6 ,
73
+ startingPage : 1 ,
74
+ perPageParam : 'page[size]' ,
75
+ pageParam : 'page[number]'
76
+ } )
182
77
} ;
183
78
}
184
79
} ) ;
0 commit comments