From fe691bccbf0622c5f3756d338063354ec56af297 Mon Sep 17 00:00:00 2001 From: syuilo Date: Fri, 6 Jan 2017 15:35:07 +0900 Subject: [PATCH] [API] Implement birthday setting --- docs/api/entities/user.pug | 2 +- src/api/endpoints/i/update.js | 11 +++++++++++ src/api/models/user.ts | 4 ++++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/docs/api/entities/user.pug b/docs/api/entities/user.pug index f5d4be266..ff3b326bc 100644 --- a/docs/api/entities/user.pug +++ b/docs/api/entities/user.pug @@ -38,7 +38,7 @@ block content tr.nullable td birthday td String - td 誕生日 + td 誕生日(YYYY-MM-DD) tr td created_at td Date diff --git a/src/api/endpoints/i/update.js b/src/api/endpoints/i/update.js index a6b68cf01..3a6b9da90 100644 --- a/src/api/endpoints/i/update.js +++ b/src/api/endpoints/i/update.js @@ -5,6 +5,7 @@ */ import * as mongo from 'mongodb'; import User from '../../models/user'; +import { isValidBirthday } from '../../models/user'; import serialize from '../../serializers/user'; import event from '../../event'; @@ -50,6 +51,16 @@ module.exports = async (params, user, _, isSecure) => user.bio = bio; } + // Get 'birthday' parameter + const birthday = params.birthday; + if (birthday != null) { + if (!isValidBirthday(birthday)) { + return rej('invalid birthday'); + } + + user.birthday = birthday; + } + // Get 'avatar_id' parameter const avatar = params.avatar_id; if (avatar !== undefined && avatar !== null) { diff --git a/src/api/models/user.ts b/src/api/models/user.ts index 1742f5caf..ac59e2bfc 100644 --- a/src/api/models/user.ts +++ b/src/api/models/user.ts @@ -8,3 +8,7 @@ export default collection; export function validateUsername(username: string): boolean { return /^[a-zA-Z0-9\-]{3,20}$/.test(username); } + +export function isValidBirthday(birthday: string): boolean { + return /^([0-9]{4})\-([0-9]{2})-([0-9]{2})$/.test(birthday); +}