Skip to content

Commit f4c89cb

Browse files
committed
attempt to fix file upload for Post
1 parent a22ddbb commit f4c89cb

File tree

5 files changed

+28
-24
lines changed

5 files changed

+28
-24
lines changed

Diff for: api/server/api/public.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import Invitation from '../models/Invitation';
66
const router = express.Router();
77

88
router.get('/get-user', (req, res) => {
9-
console.log(`req.user inside Express route: ${req.user}`);
9+
console.log(`req.user ${req.user}`);
1010
res.json({ user: req.user || null });
1111
});
1212

Diff for: api/server/server.ts

+5-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,11 @@ mongoose.connect(dev ? process.env.MONGO_URL_TEST : process.env.MONGO_URL, optio
3232
const server = express();
3333

3434
server.use(
35-
cors({ origin: dev ? process.env.URL_APP : process.env.PRODUCTION_URL_APP, credentials: true }),
35+
cors({
36+
origin: dev ? process.env.URL_APP : process.env.PRODUCTION_URL_APP,
37+
credentials: true,
38+
methods: 'GET,HEAD,PUT,PATCH,POST,DELETE',
39+
}),
3640
);
3741

3842
server.use(helmet());

Diff for: app/components/posts/PostEditor.tsx

+16-12
Original file line numberDiff line numberDiff line change
@@ -48,9 +48,8 @@ type State = { htmlContent: string };
4848

4949
class PostEditor extends React.Component<Props, State> {
5050
public state = {
51-
htmlContent: '',
52-
};
53-
51+
htmlContent: '',
52+
};
5453

5554
public render() {
5655
const { htmlContent } = this.state;
@@ -97,11 +96,7 @@ class PostEditor extends React.Component<Props, State> {
9796
id="upload-file"
9897
type="file"
9998
style={{ display: 'none' }}
100-
onChange={(event) => {
101-
const file = event.target.files[0];
102-
event.target.value = '';
103-
this.uploadFile(file);
104-
}}
99+
onChange={this.uploadFile}
105100
/>
106101
</div>
107102
<br />
@@ -228,14 +223,17 @@ class PostEditor extends React.Component<Props, State> {
228223
this.setState({ htmlContent });
229224
};
230225

231-
private uploadFile = async (file: File) => {
226+
private uploadFile = async () => {
227+
const fileElement = document.getElementById('upload-file') as HTMLFormElement;
228+
const file = fileElement.files[0];
229+
232230
if (!file) {
233231
notify('No file selected.');
234232
return;
235233
}
236234

237235
if (!file.type || (!file.type.startsWith('image/') && file.type !== 'application/pdf')) {
238-
notify('Wrong file.');
236+
notify('Wrong file type.');
239237
return;
240238
}
241239

@@ -245,10 +243,12 @@ class PostEditor extends React.Component<Props, State> {
245243
NProgress.start();
246244

247245
const bucket = process.env.BUCKET_FOR_POSTS;
248-
const prefix = `${currentTeam.slug}`;
246+
const prefix = `team-${currentTeam.slug}`;
249247
const fileName = file.name;
250248
const fileType = file.type;
251249

250+
console.log(bucket);
251+
252252
try {
253253
const responseFromApiServerForUpload = await getSignedRequestForUploadApiMethod({
254254
fileName,
@@ -267,6 +267,7 @@ class PostEditor extends React.Component<Props, State> {
267267
await uploadFileUsingSignedPutRequestApiMethod(
268268
resizedFile,
269269
responseFromApiServerForUpload.signedRequest,
270+
{ 'Cache-Control': 'max-age=2592000' },
270271
);
271272

272273
fileUrl = responseFromApiServerForUpload.url;
@@ -280,7 +281,10 @@ class PostEditor extends React.Component<Props, State> {
280281
<img style="max-width: ${finalWidth}; width:100%" src="${fileUrl}" alt="Async" class="s3-image" />
281282
</div>`;
282283
} else {
283-
await uploadFileUsingSignedPutRequestApiMethod(file, responseFromApiServerForUpload.signedRequest);
284+
await uploadFileUsingSignedPutRequestApiMethod(
285+
file,
286+
responseFromApiServerForUpload.signedRequest,
287+
);
284288

285289
fileUrl = responseFromApiServerForUpload.url;
286290
imageMarkdown = `[${file.name}](${fileUrl})`;

Diff for: app/pages/your-settings.tsx

+2-6
Original file line numberDiff line numberDiff line change
@@ -52,11 +52,7 @@ class YourSettings extends React.Component<Props, State> {
5252
<h3>Your Settings</h3>
5353
<h4 style={{ marginTop: '40px' }}>Your account</h4>
5454
<div>
55-
<i
56-
className="material-icons"
57-
color="action"
58-
style={{ verticalAlign: 'text-bottom' }}
59-
>
55+
<i className="material-icons" color="action" style={{ verticalAlign: 'text-bottom' }}>
6056
done
6157
</i>{' '}
6258
{currentUser.isSignedupViaGoogle
@@ -132,7 +128,7 @@ class YourSettings extends React.Component<Props, State> {
132128
if (redirectMessage) {
133129
notify(redirectMessage);
134130
}
135-
};
131+
}
136132

137133
private onSubmit = async (event: React.FormEvent<HTMLFormElement>) => {
138134
event.preventDefault();

Diff for: lambda/handler.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -77,10 +77,10 @@ export const sendEmailForNewPost = async (event) => {
7777
const response = {
7878
statusCode: 200,
7979
headers: {
80-
"Access-Control-Allow-Headers" : "Content-Type",
81-
"Access-Control-Allow-Origin": dev ? process.env.URL_APP : process.env.PRODUCTION_URL_APP,
82-
"Access-Control-Allow-Methods": "OPTIONS,POST,GET",
83-
"Access-Control-Allow-Credentials": "true",
80+
'Access-Control-Allow-Headers': 'Content-Type',
81+
'Access-Control-Allow-Origin': dev ? process.env.URL_APP : process.env.PRODUCTION_URL_APP,
82+
'Access-Control-Allow-Methods': 'OPTIONS,POST,GET',
83+
'Access-Control-Allow-Credentials': 'true',
8484
},
8585
body: JSON.stringify({
8686
message: 'Email notification was sent!',

0 commit comments

Comments
 (0)