Showing
8 changed files
with
156 additions
and
9 deletions
1 | +import React from 'react'; | ||
2 | +import { makeStyles } from '@material-ui/core/styles'; | ||
3 | + | ||
4 | +import Button from '@material-ui/core/Button'; | ||
5 | +import TextField from '@material-ui/core/TextField'; | ||
6 | + | ||
7 | +const useStyles = makeStyles((theme) => ({ | ||
8 | + root: { | ||
9 | + '& > *': { | ||
10 | + margin: theme.spacing(1), | ||
11 | + }, | ||
12 | + }, | ||
13 | +})); | ||
14 | + | ||
15 | +const GoalNumForm = ({ onChange, profile, onGoalNumSubmit }) => { | ||
16 | + const classes = useStyles(); | ||
17 | + return ( | ||
18 | + <div> | ||
19 | + <form onSubmit={onGoalNumSubmit}> | ||
20 | + <TextField | ||
21 | + name="goalNum" | ||
22 | + type="number" | ||
23 | + onChange={onChange} | ||
24 | + value={profile.goalNum} | ||
25 | + placeholder="일일 목표" | ||
26 | + label="일일 목표" | ||
27 | + InputLabelProps={{ | ||
28 | + shrink: true, | ||
29 | + }} | ||
30 | + /> | ||
31 | + <Button variant="outlined" type="submit"> | ||
32 | + 등록 | ||
33 | + </Button> | ||
34 | + </form> | ||
35 | + </div> | ||
36 | + ); | ||
37 | +}; | ||
38 | + | ||
39 | +export default GoalNumForm; |
... | @@ -2,9 +2,12 @@ import React from 'react'; | ... | @@ -2,9 +2,12 @@ import React from 'react'; |
2 | import palette from '../../lib/styles/palette'; | 2 | import palette from '../../lib/styles/palette'; |
3 | import BJIDForm from './BJIDForm'; | 3 | import BJIDForm from './BJIDForm'; |
4 | import SlackForm from './SlackForm'; | 4 | import SlackForm from './SlackForm'; |
5 | +import GoalNumForm from './GoalNumForm'; | ||
5 | import { makeStyles } from '@material-ui/core/styles'; | 6 | import { makeStyles } from '@material-ui/core/styles'; |
6 | import Paper from '@material-ui/core/Paper'; | 7 | import Paper from '@material-ui/core/Paper'; |
7 | import Grid from '@material-ui/core/Grid'; | 8 | import Grid from '@material-ui/core/Grid'; |
9 | +import CircularProgress from '@material-ui/core/CircularProgress'; | ||
10 | +import styled from 'styled-components'; | ||
8 | 11 | ||
9 | const useStyles = makeStyles((theme) => ({ | 12 | const useStyles = makeStyles((theme) => ({ |
10 | root: { | 13 | root: { |
... | @@ -18,15 +21,29 @@ const useStyles = makeStyles((theme) => ({ | ... | @@ -18,15 +21,29 @@ const useStyles = makeStyles((theme) => ({ |
18 | }, | 21 | }, |
19 | })); | 22 | })); |
20 | 23 | ||
24 | +const LoadingParentStyle = styled.div` | ||
25 | + display: flex; | ||
26 | + flex-direction: column; | ||
27 | + justify-content: center; | ||
28 | + align-items: center; | ||
29 | + padding-top: 20px; | ||
30 | +`; | ||
31 | + | ||
21 | const SettingForm = ({ | 32 | const SettingForm = ({ |
22 | onChange, | 33 | onChange, |
23 | onBJIDSubmit, | 34 | onBJIDSubmit, |
24 | onSlackURLSubmit, | 35 | onSlackURLSubmit, |
25 | profile, | 36 | profile, |
26 | onSyncBJIDSubmit, | 37 | onSyncBJIDSubmit, |
38 | + onGoalNumSubmit, | ||
39 | + isLoading, | ||
27 | }) => { | 40 | }) => { |
28 | const classes = useStyles(); | 41 | const classes = useStyles(); |
29 | - return ( | 42 | + return isLoading ? ( |
43 | + <LoadingParentStyle> | ||
44 | + <CircularProgress className={classes.loading} /> | ||
45 | + </LoadingParentStyle> | ||
46 | + ) : ( | ||
30 | <div className={classes.root}> | 47 | <div className={classes.root}> |
31 | <Grid container spacing={3}> | 48 | <Grid container spacing={3}> |
32 | <Grid item xs={12}> | 49 | <Grid item xs={12}> |
... | @@ -54,6 +71,16 @@ const SettingForm = ({ | ... | @@ -54,6 +71,16 @@ const SettingForm = ({ |
54 | /> | 71 | /> |
55 | </Paper> | 72 | </Paper> |
56 | </Grid> | 73 | </Grid> |
74 | + | ||
75 | + <Grid container item xs={12}> | ||
76 | + <Paper className={classes.paper} elevation={3}> | ||
77 | + <GoalNumForm | ||
78 | + profile={profile} | ||
79 | + onChange={onChange} | ||
80 | + onGoalNumSubmit={onGoalNumSubmit} | ||
81 | + /> | ||
82 | + </Paper> | ||
83 | + </Grid> | ||
57 | </Grid> | 84 | </Grid> |
58 | </div> | 85 | </div> |
59 | ); | 86 | ); | ... | ... |
... | @@ -9,7 +9,9 @@ const HomeContainer = ({ history }) => { | ... | @@ -9,7 +9,9 @@ const HomeContainer = ({ history }) => { |
9 | user: user.user, | 9 | user: user.user, |
10 | profile: profile, | 10 | profile: profile, |
11 | })); | 11 | })); |
12 | - useEffect(() => {}, [profile.solvedBJ]); | 12 | + useEffect(() => { |
13 | + console.log(profile); | ||
14 | + }, [profile.solvedBJ]); | ||
13 | useEffect(() => { | 15 | useEffect(() => { |
14 | if (user) { | 16 | if (user) { |
15 | let username = user.username; | 17 | let username = user.username; | ... | ... |
1 | -import React, { useEffect } from 'react'; | 1 | +import React, { useEffect, useState } from 'react'; |
2 | import { useDispatch, useSelector } from 'react-redux'; | 2 | import { useDispatch, useSelector } from 'react-redux'; |
3 | import { withRouter } from 'react-router-dom'; | 3 | import { withRouter } from 'react-router-dom'; |
4 | import { | 4 | import { |
... | @@ -8,15 +8,20 @@ import { | ... | @@ -8,15 +8,20 @@ import { |
8 | syncBJID, | 8 | syncBJID, |
9 | initializeProfile, | 9 | initializeProfile, |
10 | setSLACK, | 10 | setSLACK, |
11 | + setGOALNUM, | ||
11 | } from '../../modules/profile'; | 12 | } from '../../modules/profile'; |
12 | import SettingForm from '../../components/setting/SettingForm'; | 13 | import SettingForm from '../../components/setting/SettingForm'; |
13 | 14 | ||
14 | const SettingContainer = ({ history }) => { | 15 | const SettingContainer = ({ history }) => { |
16 | + const [isLoading, setLoading] = useState(false); | ||
15 | const dispatch = useDispatch(); | 17 | const dispatch = useDispatch(); |
16 | - const { user, profile } = useSelector(({ user, profile }) => ({ | 18 | + const { user, profile, loading } = useSelector( |
17 | - user: user.user, | 19 | + ({ user, profile, loading }) => ({ |
18 | - profile: profile, | 20 | + user: user.user, |
19 | - })); | 21 | + profile: profile, |
22 | + loading: loading, | ||
23 | + }), | ||
24 | + ); | ||
20 | 25 | ||
21 | const onChange = (e) => { | 26 | const onChange = (e) => { |
22 | const { value, name } = e.target; | 27 | const { value, name } = e.target; |
... | @@ -33,6 +38,13 @@ const SettingContainer = ({ history }) => { | ... | @@ -33,6 +38,13 @@ const SettingContainer = ({ history }) => { |
33 | let username = profile.username; | 38 | let username = profile.username; |
34 | dispatch(syncBJID({ username })); | 39 | dispatch(syncBJID({ username })); |
35 | }; | 40 | }; |
41 | + | ||
42 | + const onGoalNumSubmit = (e) => { | ||
43 | + e.preventDefault(); | ||
44 | + let username = profile.username; | ||
45 | + let goalNum = profile.goalNum; | ||
46 | + dispatch(setGOALNUM({ username, goalNum })); | ||
47 | + }; | ||
36 | const onSlackURLSubmit = (e) => { | 48 | const onSlackURLSubmit = (e) => { |
37 | e.preventDefault(); | 49 | e.preventDefault(); |
38 | let username = profile.username; | 50 | let username = profile.username; |
... | @@ -60,6 +72,13 @@ const SettingContainer = ({ history }) => { | ... | @@ -60,6 +72,13 @@ const SettingContainer = ({ history }) => { |
60 | }; | 72 | }; |
61 | } | 73 | } |
62 | }, [dispatch, user, history]); | 74 | }, [dispatch, user, history]); |
75 | + useEffect(() => { | ||
76 | + if (loading['profile/SYNC_BJID'] == true) { | ||
77 | + setLoading(true); | ||
78 | + } else { | ||
79 | + setLoading(false); | ||
80 | + } | ||
81 | + }, [dispatch, loading]); | ||
63 | 82 | ||
64 | return ( | 83 | return ( |
65 | <SettingForm | 84 | <SettingForm |
... | @@ -68,7 +87,9 @@ const SettingContainer = ({ history }) => { | ... | @@ -68,7 +87,9 @@ const SettingContainer = ({ history }) => { |
68 | onBJIDSubmit={onBJIDSubmit} | 87 | onBJIDSubmit={onBJIDSubmit} |
69 | onSyncBJIDSubmit={onSyncBJIDSubmit} | 88 | onSyncBJIDSubmit={onSyncBJIDSubmit} |
70 | onSlackURLSubmit={onSlackURLSubmit} | 89 | onSlackURLSubmit={onSlackURLSubmit} |
90 | + onGoalNumSubmit={onGoalNumSubmit} | ||
71 | profile={profile} | 91 | profile={profile} |
92 | + isLoading={isLoading} | ||
72 | ></SettingForm> | 93 | ></SettingForm> |
73 | ); | 94 | ); |
74 | }; | 95 | }; | ... | ... |
... | @@ -17,6 +17,11 @@ const [ | ... | @@ -17,6 +17,11 @@ const [ |
17 | SET_SLACK_FAILURE, | 17 | SET_SLACK_FAILURE, |
18 | ] = createRequestActionTypes('/profile/SET_SLACK'); | 18 | ] = createRequestActionTypes('/profile/SET_SLACK'); |
19 | const [ | 19 | const [ |
20 | + SET_GOALNUM, | ||
21 | + SET_GOALNUM_SUCCESS, | ||
22 | + SET_GOALNUM_FAILURE, | ||
23 | +] = createRequestActionTypes('/profile/SET_GOALNUM'); | ||
24 | +const [ | ||
20 | GET_PROFILE, | 25 | GET_PROFILE, |
21 | GET_PROFILE_SUCCESS, | 26 | GET_PROFILE_SUCCESS, |
22 | GET_PROFILE_FAILURE, | 27 | GET_PROFILE_FAILURE, |
... | @@ -31,6 +36,7 @@ export const initializeProfile = createAction(INITIALIZE); | ... | @@ -31,6 +36,7 @@ export const initializeProfile = createAction(INITIALIZE); |
31 | export const syncBJID = createAction(SYNC_BJID, ({ username }) => ({ | 36 | export const syncBJID = createAction(SYNC_BJID, ({ username }) => ({ |
32 | username, | 37 | username, |
33 | })); | 38 | })); |
39 | + | ||
34 | export const setSLACK = createAction( | 40 | export const setSLACK = createAction( |
35 | SET_SLACK, | 41 | SET_SLACK, |
36 | ({ username, slackWebHookURL }) => ({ | 42 | ({ username, slackWebHookURL }) => ({ |
... | @@ -38,6 +44,14 @@ export const setSLACK = createAction( | ... | @@ -38,6 +44,14 @@ export const setSLACK = createAction( |
38 | slackWebHookURL, | 44 | slackWebHookURL, |
39 | }), | 45 | }), |
40 | ); | 46 | ); |
47 | + | ||
48 | +export const setGOALNUM = createAction( | ||
49 | + SET_GOALNUM, | ||
50 | + ({ username, goalNum }) => ({ | ||
51 | + username, | ||
52 | + goalNum, | ||
53 | + }), | ||
54 | +); | ||
41 | export const setBJID = createAction(SET_BJID, ({ username, userBJID }) => ({ | 55 | export const setBJID = createAction(SET_BJID, ({ username, userBJID }) => ({ |
42 | username, | 56 | username, |
43 | userBJID, | 57 | userBJID, |
... | @@ -58,16 +72,21 @@ const initialState = { | ... | @@ -58,16 +72,21 @@ const initialState = { |
58 | friendList: [], | 72 | friendList: [], |
59 | profileError: '', | 73 | profileError: '', |
60 | slackWebHookURL: '', | 74 | slackWebHookURL: '', |
75 | + solvedBJ_date: '', | ||
76 | + goalNum: '', | ||
61 | }; | 77 | }; |
62 | const getPROFILESaga = createRequestSaga(GET_PROFILE, profileAPI.getPROFILE); | 78 | const getPROFILESaga = createRequestSaga(GET_PROFILE, profileAPI.getPROFILE); |
63 | const setBJIDSaga = createRequestSaga(SET_BJID, profileAPI.setBJID); | 79 | const setBJIDSaga = createRequestSaga(SET_BJID, profileAPI.setBJID); |
64 | const setSLACKSaga = createRequestSaga(SET_SLACK, profileAPI.setPROFILE); | 80 | const setSLACKSaga = createRequestSaga(SET_SLACK, profileAPI.setPROFILE); |
81 | +const setGOALNUMSaga = createRequestSaga(SET_GOALNUM, profileAPI.setPROFILE); | ||
65 | const syncBJIDSaga = createRequestSaga(SYNC_BJID, profileAPI.syncBJ); | 82 | const syncBJIDSaga = createRequestSaga(SYNC_BJID, profileAPI.syncBJ); |
83 | + | ||
66 | export function* profileSaga() { | 84 | export function* profileSaga() { |
67 | yield takeLatest(SET_BJID, setBJIDSaga); | 85 | yield takeLatest(SET_BJID, setBJIDSaga); |
68 | yield takeLatest(GET_PROFILE, getPROFILESaga); | 86 | yield takeLatest(GET_PROFILE, getPROFILESaga); |
69 | yield takeLatest(SYNC_BJID, syncBJIDSaga); | 87 | yield takeLatest(SYNC_BJID, syncBJIDSaga); |
70 | yield takeLatest(SET_SLACK, setSLACKSaga); | 88 | yield takeLatest(SET_SLACK, setSLACKSaga); |
89 | + yield takeLatest(SET_GOALNUM, setGOALNUMSaga); | ||
71 | } | 90 | } |
72 | 91 | ||
73 | export default handleActions( | 92 | export default handleActions( |
... | @@ -80,7 +99,15 @@ export default handleActions( | ... | @@ -80,7 +99,15 @@ export default handleActions( |
80 | [GET_PROFILE_SUCCESS]: ( | 99 | [GET_PROFILE_SUCCESS]: ( |
81 | state, | 100 | state, |
82 | { | 101 | { |
83 | - payload: { username, userBJID, solvedBJ, friendList, slackWebHookURL }, | 102 | + payload: { |
103 | + username, | ||
104 | + userBJID, | ||
105 | + solvedBJ, | ||
106 | + friendList, | ||
107 | + slackWebHookURL, | ||
108 | + solvedBJ_date, | ||
109 | + goalNum, | ||
110 | + }, | ||
84 | }, | 111 | }, |
85 | ) => ({ | 112 | ) => ({ |
86 | ...state, | 113 | ...state, |
... | @@ -90,6 +117,8 @@ export default handleActions( | ... | @@ -90,6 +117,8 @@ export default handleActions( |
90 | friendList: friendList, | 117 | friendList: friendList, |
91 | profileError: null, | 118 | profileError: null, |
92 | slackWebHookURL: slackWebHookURL, | 119 | slackWebHookURL: slackWebHookURL, |
120 | + solvedBJ_date: solvedBJ_date, | ||
121 | + goalNum: goalNum, | ||
93 | }), | 122 | }), |
94 | [GET_PROFILE_FAILURE]: (state, { payload: error }) => ({ | 123 | [GET_PROFILE_FAILURE]: (state, { payload: error }) => ({ |
95 | ...state, | 124 | ...state, |
... | @@ -114,6 +143,14 @@ export default handleActions( | ... | @@ -114,6 +143,14 @@ export default handleActions( |
114 | ...state, | 143 | ...state, |
115 | profileError: error, | 144 | profileError: error, |
116 | }), | 145 | }), |
146 | + [SET_GOALNUM_SUCCESS]: (state, { payload: { goalNum } }) => ({ | ||
147 | + ...state, | ||
148 | + goalNum: goalNum, | ||
149 | + }), | ||
150 | + [SET_GOALNUM_FAILURE]: (state, { payload: error }) => ({ | ||
151 | + ...state, | ||
152 | + profileError: error, | ||
153 | + }), | ||
117 | [SYNC_BJID_SUCCESS]: (state, { payload: { solvedBJ } }) => ({ | 154 | [SYNC_BJID_SUCCESS]: (state, { payload: { solvedBJ } }) => ({ |
118 | ...state, | 155 | ...state, |
119 | solvedBJ, | 156 | solvedBJ, | ... | ... |
... | @@ -1321,3 +1321,23 @@ | ... | @@ -1321,3 +1321,23 @@ |
1321 | ::1 - - [24/Jun/2020:14:15:40 +0000] "POST /api/profile/recommend HTTP/1.1" 404 9 "-" "PostmanRuntime/7.25.0" | 1321 | ::1 - - [24/Jun/2020:14:15:40 +0000] "POST /api/profile/recommend HTTP/1.1" 404 9 "-" "PostmanRuntime/7.25.0" |
1322 | ::1 - - [24/Jun/2020:14:19:33 +0000] "POST /api/profile/recommend HTTP/1.1" 404 9 "-" "PostmanRuntime/7.25.0" | 1322 | ::1 - - [24/Jun/2020:14:19:33 +0000] "POST /api/profile/recommend HTTP/1.1" 404 9 "-" "PostmanRuntime/7.25.0" |
1323 | ::1 - - [24/Jun/2020:14:19:36 +0000] "POST /api/profile/recommend HTTP/1.1" 404 9 "-" "PostmanRuntime/7.25.0" | 1323 | ::1 - - [24/Jun/2020:14:19:36 +0000] "POST /api/profile/recommend HTTP/1.1" 404 9 "-" "PostmanRuntime/7.25.0" |
1324 | +::ffff:127.0.0.1 - - [24/Jun/2020:15:35:00 +0000] "POST /api/profile/setprofile HTTP/1.1" 200 33281 "http://localhost:3000/setting" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36 Edg/83.0.478.54" | ||
1325 | +::ffff:127.0.0.1 - - [24/Jun/2020:15:35:04 +0000] "POST /api/profile/getprofile HTTP/1.1" 401 12 "http://localhost:3000/setting" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36 Edg/83.0.478.54" | ||
1326 | +::ffff:127.0.0.1 - - [24/Jun/2020:15:35:04 +0000] "GET /api/auth/check HTTP/1.1" 200 55 "http://localhost:3000/setting" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36 Edg/83.0.478.54" | ||
1327 | +::ffff:127.0.0.1 - - [24/Jun/2020:15:35:05 +0000] "POST /api/profile/getprofile HTTP/1.1" 200 33281 "http://localhost:3000/setting" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36 Edg/83.0.478.54" | ||
1328 | +::ffff:127.0.0.1 - - [24/Jun/2020:15:37:14 +0000] "POST /api/profile/setprofile HTTP/1.1" 200 33281 "http://localhost:3000/setting" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36 Edg/83.0.478.54" | ||
1329 | +::ffff:127.0.0.1 - - [24/Jun/2020:15:37:50 +0000] "POST /api/profile/setprofile HTTP/1.1" 200 33281 "http://localhost:3000/setting" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36 Edg/83.0.478.54" | ||
1330 | +::ffff:127.0.0.1 - - [24/Jun/2020:15:37:54 +0000] "GET /api/auth/check HTTP/1.1" 200 55 "http://localhost:3000/setting" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36 Edg/83.0.478.54" | ||
1331 | +::ffff:127.0.0.1 - - [24/Jun/2020:15:37:54 +0000] "POST /api/profile/getprofile HTTP/1.1" 401 12 "http://localhost:3000/setting" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36 Edg/83.0.478.54" | ||
1332 | +::ffff:127.0.0.1 - - [24/Jun/2020:15:37:55 +0000] "POST /api/profile/getprofile HTTP/1.1" 200 33281 "http://localhost:3000/setting" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36 Edg/83.0.478.54" | ||
1333 | +::ffff:127.0.0.1 - - [24/Jun/2020:15:39:50 +0000] "POST /api/profile/getprofile HTTP/1.1" 401 12 "http://localhost:3000/setting" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36 Edg/83.0.478.54" | ||
1334 | +::ffff:127.0.0.1 - - [24/Jun/2020:15:39:50 +0000] "GET /api/auth/check HTTP/1.1" 200 55 "http://localhost:3000/setting" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36 Edg/83.0.478.54" | ||
1335 | +::ffff:127.0.0.1 - - [24/Jun/2020:15:39:50 +0000] "POST /api/profile/getprofile HTTP/1.1" 200 33281 "http://localhost:3000/setting" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36 Edg/83.0.478.54" | ||
1336 | +::ffff:127.0.0.1 - - [24/Jun/2020:15:39:54 +0000] "POST /api/profile/setprofile HTTP/1.1" 200 33281 "http://localhost:3000/setting" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36 Edg/83.0.478.54" | ||
1337 | +::ffff:127.0.0.1 - - [24/Jun/2020:15:40:00 +0000] "GET /api/auth/check HTTP/1.1" 200 55 "http://localhost:3000/setting" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36 Edg/83.0.478.54" | ||
1338 | +::ffff:127.0.0.1 - - [24/Jun/2020:15:40:00 +0000] "POST /api/profile/getprofile HTTP/1.1" 401 12 "http://localhost:3000/setting" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36 Edg/83.0.478.54" | ||
1339 | +::ffff:127.0.0.1 - - [24/Jun/2020:15:40:00 +0000] "POST /api/profile/getprofile HTTP/1.1" 200 33281 "http://localhost:3000/setting" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36 Edg/83.0.478.54" | ||
1340 | +::1 - - [24/Jun/2020:15:40:32 +0000] "POST /api/profile/setprofile HTTP/1.1" 200 33293 "-" "PostmanRuntime/7.25.0" | ||
1341 | +::ffff:127.0.0.1 - - [24/Jun/2020:15:41:51 +0000] "GET /api/auth/check HTTP/1.1" 200 55 "http://localhost:3000/setting" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36 Edg/83.0.478.54" | ||
1342 | +::ffff:127.0.0.1 - - [24/Jun/2020:15:41:51 +0000] "POST /api/profile/getprofile HTTP/1.1" 401 12 "http://localhost:3000/setting" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36 Edg/83.0.478.54" | ||
1343 | +::ffff:127.0.0.1 - - [24/Jun/2020:15:41:51 +0000] "POST /api/profile/getprofile HTTP/1.1" 200 33293 "http://localhost:3000/setting" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36 Edg/83.0.478.54" | ... | ... |
... | @@ -50,7 +50,7 @@ exports.setProfile = async (ctx) => { | ... | @@ -50,7 +50,7 @@ exports.setProfile = async (ctx) => { |
50 | //freindList: Joi.array().items(Joi.string()), | 50 | //freindList: Joi.array().items(Joi.string()), |
51 | }) | 51 | }) |
52 | .unknown(); | 52 | .unknown(); |
53 | - | 53 | + console.log(ctx.request.body); |
54 | const result = Joi.validate(ctx.request.body, schema); | 54 | const result = Joi.validate(ctx.request.body, schema); |
55 | if (result.error) { | 55 | if (result.error) { |
56 | ctx.status = 400; | 56 | ctx.status = 400; | ... | ... |
... | @@ -9,6 +9,7 @@ const ProfileSchema = new Schema({ | ... | @@ -9,6 +9,7 @@ const ProfileSchema = new Schema({ |
9 | solvedBJ_date: Object, | 9 | solvedBJ_date: Object, |
10 | friendList: [String], | 10 | friendList: [String], |
11 | slackWebHookURL: String, | 11 | slackWebHookURL: String, |
12 | + goalNum: Number, | ||
12 | }); | 13 | }); |
13 | ProfileSchema.statics.findByUsername = function (username) { | 14 | ProfileSchema.statics.findByUsername = function (username) { |
14 | return this.findOne({ username }); | 15 | return this.findOne({ username }); | ... | ... |
-
Please register or login to post a comment