@@ -29,6 +29,8 @@ class FormSubmissionFormatter
29
29
30
30
private $ showRemovedFields = false ;
31
31
32
+ private $ useSignedUrlForFiles = false ;
33
+
32
34
/**
33
35
* Logic resolver needs an array id => value, so we create it here
34
36
*/
@@ -69,6 +71,12 @@ public function showRemovedFields()
69
71
return $ this ;
70
72
}
71
73
74
+ public function useSignedUrlForFiles ()
75
+ {
76
+ $ this ->useSignedUrlForFiles = true ;
77
+ return $ this ;
78
+ }
79
+
72
80
/**
73
81
* Return a nice "FieldName": "Field Response" array
74
82
* - If createLink enabled, returns html link for emails and links
@@ -117,14 +125,14 @@ public function getCleanKeyValue()
117
125
$ formId = $ this ->form ->id ;
118
126
$ returnArray [$ field ['name ' ]] = implode (', ' ,
119
127
collect ($ data [$ field ['id ' ]])->map (function ($ file ) use ($ formId ) {
120
- return route ( ' open.forms.submissions.file ' , [ $ formId , $ file] );
128
+ return $ this -> getFileUrl ( $ formId , $ file );
121
129
})->toArray ()
122
130
);
123
131
} else {
124
132
$ formId = $ this ->form ->id ;
125
133
$ returnArray [$ field ['name ' ]] = collect ($ data [$ field ['id ' ]])->map (function ($ file ) use ($ formId ) {
126
134
return [
127
- 'file_url ' => route ( ' open.forms.submissions.file ' , [ $ formId , $ file] ),
135
+ 'file_url ' => $ this -> getFileUrl ( $ formId , $ file ),
128
136
'file_name ' => $ file ,
129
137
];
130
138
});
@@ -185,14 +193,22 @@ public function getFieldsWithValue()
185
193
$ formId = $ this ->form ->id ;
186
194
$ field ['value ' ] = implode (', ' ,
187
195
collect ($ data [$ field ['id ' ]])->map (function ($ file ) use ($ formId ) {
188
- return route ( ' open.forms.submissions.file ' , [ $ formId , $ file] );
196
+ return $ this -> getFileUrl ( $ formId , $ file );
189
197
})->toArray ()
190
198
);
199
+ $ field ['email_data ' ] = collect ($ data [$ field ['id ' ]])->map (function ($ file ) use ($ formId ) {
200
+ $ splitText = explode ('. ' , $ file );
201
+ return [
202
+ "unsigned_url " => route ('open.forms.submissions.file ' , [$ formId , $ file ]),
203
+ "signed_url " => $ this ->getFileUrl ($ formId , $ file ),
204
+ "label " => \Str::limit ($ file , 20 , '[...]. ' .end ($ splitText ))
205
+ ];
206
+ })->toArray ();
191
207
} else {
192
208
$ formId = $ this ->form ->id ;
193
209
$ field ['value ' ] = collect ($ data [$ field ['id ' ]])->map (function ($ file ) use ($ formId ) {
194
210
return [
195
- 'file_url ' => route ( ' open.forms.submissions.file ' , [ $ formId , $ file] ),
211
+ 'file_url ' => $ this -> getFileUrl ( $ formId , $ file ),
196
212
'file_name ' => $ file ,
197
213
];
198
214
});
@@ -222,4 +238,11 @@ private function initIdFormData() {
222
238
}
223
239
}
224
240
241
+ private function getFileUrl ($ formId , $ file )
242
+ {
243
+ return $ this ->useSignedUrlForFiles ? \URL ::signedRoute (
244
+ 'open.forms.submissions.file ' ,
245
+ [$ formId , $ file ]) : route ('open.forms.submissions.file ' , [$ formId , $ file ]);
246
+ }
247
+
225
248
}
0 commit comments