Extract user's profile
This commit is contained in:
		| @@ -39,7 +39,7 @@ module.exports = async (params, user, _, isSecure) => | ||||
| 			return rej('too long location'); | ||||
| 		} | ||||
|  | ||||
| 		user.location = location; | ||||
| 		user.profile.location = location; | ||||
| 	} | ||||
|  | ||||
| 	// Get 'bio' parameter | ||||
| @@ -49,21 +49,19 @@ module.exports = async (params, user, _, isSecure) => | ||||
| 			return rej('too long bio'); | ||||
| 		} | ||||
|  | ||||
| 		user.bio = bio; | ||||
| 		user.profile.bio = bio; | ||||
| 	} | ||||
|  | ||||
| 	// Get 'birthday' parameter | ||||
| 	const birthday = params.birthday; | ||||
| 	if (birthday != null) { | ||||
| 		if (birthday != '') { | ||||
| 			if (!isValidBirthday(birthday)) { | ||||
| 				return rej('invalid birthday'); | ||||
| 			} | ||||
|  | ||||
| 			user.birthday = birthday; | ||||
| 		} else { | ||||
| 			user.birthday = null; | ||||
| 		if (!isValidBirthday(birthday)) { | ||||
| 			return rej('invalid birthday'); | ||||
| 		} | ||||
|  | ||||
| 		user.profile.birthday = birthday; | ||||
| 	} else { | ||||
| 		user.profile.birthday = null; | ||||
| 	} | ||||
|  | ||||
| 	// Get 'avatar_id' parameter | ||||
| @@ -81,11 +79,9 @@ module.exports = async (params, user, _, isSecure) => | ||||
| 	await User.update(user._id, { | ||||
| 		$set: { | ||||
| 			name: user.name, | ||||
| 			location: user.location, | ||||
| 			bio: user.bio, | ||||
| 			birthday: user.birthday, | ||||
| 			avatar_id: user.avatar_id, | ||||
| 			banner_id: user.banner_id | ||||
| 			banner_id: user.banner_id, | ||||
| 			profile: user.profile | ||||
| 		} | ||||
| 	}); | ||||
|  | ||||
|   | ||||
| @@ -65,14 +65,12 @@ export default async (req: express.Request, res: express.Response) => { | ||||
| 		token: secret, | ||||
| 		avatar_id: null, | ||||
| 		banner_id: null, | ||||
| 		birthday: null, | ||||
| 		created_at: new Date(), | ||||
| 		bio: null, | ||||
| 		description: null, | ||||
| 		email: null, | ||||
| 		followers_count: 0, | ||||
| 		following_count: 0, | ||||
| 		links: null, | ||||
| 		location: null, | ||||
| 		name: name, | ||||
| 		password: hash, | ||||
| 		posts_count: 0, | ||||
| @@ -80,7 +78,17 @@ export default async (req: express.Request, res: express.Response) => { | ||||
| 		liked_count: 0, | ||||
| 		drive_capacity: 1073741824, // 1GB | ||||
| 		username: username, | ||||
| 		username_lower: username.toLowerCase() | ||||
| 		username_lower: username.toLowerCase(), | ||||
| 		profile: { | ||||
| 			bio: null, | ||||
| 			birthday: null, | ||||
| 			blood: null, | ||||
| 			gender: null, | ||||
| 			handedness: null, | ||||
| 			height: null, | ||||
| 			location: null, | ||||
| 			weight: null | ||||
| 		} | ||||
| 	}); | ||||
|  | ||||
| 	// Response | ||||
|   | ||||
| @@ -1,11 +1,15 @@ | ||||
| <mk-list-user><a class="avatar-anchor" href={ CONFIG.url + '/' + user.username }><img class="avatar" src={ user.avatar_url + '?thumbnail&size=64' } alt="avatar"/></a> | ||||
| <mk-list-user> | ||||
| 	<a class="avatar-anchor" href={ CONFIG.url + '/' + user.username }> | ||||
| 		<img class="avatar" src={ user.avatar_url + '?thumbnail&size=64' } alt="avatar"/> | ||||
| 	</a> | ||||
| 	<div class="main"> | ||||
| 		<header> | ||||
| 			<div class="left"><a class="name" href={ CONFIG.url + '/' + user.username }>{ user.name }</a><span class="username">@{ user.username }</span></div> | ||||
| 			<a class="name" href={ CONFIG.url + '/' + user.username }>{ user.name }</a> | ||||
| 			<span class="username">@{ user.username }</span> | ||||
| 		</header> | ||||
| 		<div class="body"> | ||||
| 			<p class="followed" if={ user.is_followed }>フォローされています</p> | ||||
| 			<div class="bio">{ user.bio }</div> | ||||
| 			<div class="description">{ user.description }</div> | ||||
| 		</div> | ||||
| 	</div> | ||||
| 	<mk-follow-button user={ user }></mk-follow-button> | ||||
| @@ -41,31 +45,23 @@ | ||||
| 				> header | ||||
| 					margin-bottom 2px | ||||
|  | ||||
| 					&:after | ||||
| 						content "" | ||||
| 						display block | ||||
| 						clear both | ||||
| 					> .name | ||||
| 						display inline | ||||
| 						margin 0 | ||||
| 						padding 0 | ||||
| 						color #777 | ||||
| 						font-size 1em | ||||
| 						font-weight 700 | ||||
| 						text-align left | ||||
| 						text-decoration none | ||||
|  | ||||
| 					> .left | ||||
| 						float left | ||||
| 						&:hover | ||||
| 							text-decoration underline | ||||
|  | ||||
| 						> .name | ||||
| 							display inline | ||||
| 							margin 0 | ||||
| 							padding 0 | ||||
| 							color #777 | ||||
| 							font-size 1em | ||||
| 							font-weight 700 | ||||
| 							text-align left | ||||
| 							text-decoration none | ||||
|  | ||||
| 							&:hover | ||||
| 								text-decoration underline | ||||
|  | ||||
| 						> .username | ||||
| 							text-align left | ||||
| 							margin 0 0 0 8px | ||||
| 							color #ccc | ||||
| 					> .username | ||||
| 						text-align left | ||||
| 						margin 0 0 0 8px | ||||
| 						color #ccc | ||||
|  | ||||
| 				> .body | ||||
| 					> .followed | ||||
| @@ -78,7 +74,7 @@ | ||||
| 						background #eefaff | ||||
| 						border-radius 4px | ||||
|  | ||||
| 					> .bio | ||||
| 					> .description | ||||
| 						cursor default | ||||
| 						display block | ||||
| 						margin 0 | ||||
|   | ||||
| @@ -3,7 +3,7 @@ | ||||
| 	<div class="title"> | ||||
| 		<p class="name" href={ CONFIG.url + '/' + user.username }>{ user.name }</p> | ||||
| 		<p class="username">@{ user.username }</p> | ||||
| 		<p class="location" if={ user.location }><i class="fa fa-map-marker"></i>{ user.location }</p> | ||||
| 		<p class="location" if={ user.profile.location }><i class="fa fa-map-marker"></i>{ user.profile.location }</p> | ||||
| 	</div> | ||||
| 	<footer><a href={ '/' + user.username }>投稿</a><a href={ '/' + user.username + '/media' }>メディア</a><a href={ '/' + user.username + '/graphs' }>グラフ</a> | ||||
| 		<button onclick={ NotImplementedException }><i class="fa fa-ellipsis-h"></i></button> | ||||
|   | ||||
| @@ -5,7 +5,7 @@ | ||||
| 			<p class="name">{ user.name }</p> | ||||
| 			<p class="username">@{ user.username }</p> | ||||
| 		</div> | ||||
| 		<div class="bio">{ user.bio }</div> | ||||
| 		<div class="description">{ user.description }</div> | ||||
| 		<div class="status"> | ||||
| 			<div> | ||||
| 				<p>投稿</p><a>{ user.posts_count }</a> | ||||
| @@ -69,7 +69,7 @@ | ||||
| 					font-size 0.8em | ||||
| 					color #999 | ||||
|  | ||||
| 			> .bio | ||||
| 			> .description | ||||
| 				padding 0 16px | ||||
| 				font-size 0.7em | ||||
| 				color #555 | ||||
|   | ||||
| @@ -3,9 +3,9 @@ | ||||
| 		<mk-big-follow-button user={ user }></mk-big-follow-button> | ||||
| 		<p class="followed" if={ user.is_followed }>フォローされています</p> | ||||
| 	</div> | ||||
| 	<div class="bio" if={ user.bio != '' }>{ user.bio }</div> | ||||
| 	<div class="birthday" if={ user.birthday }> | ||||
| 		<p><i class="fa fa-birthday-cake"></i>{ user.birthday.replace('-', '年').replace('-', '月') + '日' } ({ age(user.birthday) }歳)</p> | ||||
| 	<div class="description" if={ user.description }>{ user.description }</div> | ||||
| 	<div class="birthday" if={ user.profile.birthday }> | ||||
| 		<p><i class="fa fa-birthday-cake"></i>{ user.profile.birthday.replace('-', '年').replace('-', '月') + '日' } ({ age(user.profile.birthday) }歳)</p> | ||||
| 	</div> | ||||
| 	<div class="twitter" if={ user.twitter }> | ||||
| 		<p><i class="fa fa-twitter"></i><a href={ 'https://twitter.com/' + user.twitter.screen_name } target="_blank">@{ user.twitter.screen_name }</a></p> | ||||
| @@ -39,7 +39,7 @@ | ||||
| 					background #eefaff | ||||
| 					border-radius 4px | ||||
|  | ||||
| 			> .bio | ||||
| 			> .description | ||||
| 				padding 16px | ||||
| 				color #555 | ||||
| 				border-top solid 1px #eee | ||||
|   | ||||
| @@ -1,8 +1,14 @@ | ||||
| <mk-user-preview><a class="avatar-anchor" href={ CONFIG.url + '/' + user.username }><img class="avatar" src={ user.avatar_url + '?thumbnail&size=64' } alt="avatar"/></a> | ||||
| <mk-user-preview> | ||||
| 	<a class="avatar-anchor" href={ CONFIG.url + '/' + user.username }> | ||||
| 		<img class="avatar" src={ user.avatar_url + '?thumbnail&size=64' } alt="avatar"/> | ||||
| 	</a> | ||||
| 	<div class="main"> | ||||
| 		<header><a class="name" href={ CONFIG.url + '/' + user.username }>{ user.name }</a><span class="username">@{ user.username }</span></header> | ||||
| 		<header> | ||||
| 			<a class="name" href={ CONFIG.url + '/' + user.username }>{ user.name }</a> | ||||
| 			<span class="username">@{ user.username }</span> | ||||
| 		</header> | ||||
| 		<div class="body"> | ||||
| 			<div class="bio">{ user.bio }</div> | ||||
| 			<div class="description">{ user.description }</div> | ||||
| 		</div> | ||||
| 	</div> | ||||
| 	<style> | ||||
| @@ -75,7 +81,7 @@ | ||||
|  | ||||
| 				> .body | ||||
|  | ||||
| 					> .bio | ||||
| 					> .description | ||||
| 						cursor default | ||||
| 						display block | ||||
| 						margin 0 | ||||
|   | ||||
| @@ -14,13 +14,13 @@ | ||||
| 					<span class="username">@{ user.username }</span> | ||||
| 					<span class="followed" if={ user.is_followed }>フォローされています</span> | ||||
| 				</div> | ||||
| 				<div class="bio">{ user.bio }</div> | ||||
| 				<div class="description">{ user.description }</div> | ||||
| 				<div class="info"> | ||||
| 					<p class="location" if={ user.location }> | ||||
| 						<i class="fa fa-map-marker"></i>{ user.location } | ||||
| 					<p class="location" if={ user.profile.location }> | ||||
| 						<i class="fa fa-map-marker"></i>{ user.profile.location } | ||||
| 					</p> | ||||
| 					<p class="birthday" if={ user.birthday }> | ||||
| 						<i class="fa fa-birthday-cake"></i>{ user.birthday.replace('-', '年').replace('-', '月') + '日' } ({ age(user.birthday) }歳) | ||||
| 					<p class="birthday" if={ user.profile.birthday }> | ||||
| 						<i class="fa fa-birthday-cake"></i>{ user.profile.birthday.replace('-', '年').replace('-', '月') + '日' } ({ age(user.profile.birthday) }歳) | ||||
| 					</p> | ||||
| 				</div> | ||||
| 				<div class="friends"> | ||||
| @@ -119,7 +119,7 @@ | ||||
| 								background #f8f8f8 | ||||
| 								border-radius 4px | ||||
|  | ||||
| 						> .bio | ||||
| 						> .description | ||||
| 							margin 8px 0 | ||||
| 							color #333 | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 syuilo
					syuilo