diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2019-07-08 16:17:47 +0900 |
|---|---|---|
| committer | syuilo <Syuilotan@yahoo.co.jp> | 2019-07-08 16:17:47 +0900 |
| commit | 0f71d9f47a2e9f2a0dfeab7930af417d8f217397 (patch) | |
| tree | b17bbcd3e8fcbcad2a2bd4f93bea8adc6596acd4 /src/server/api/endpoints/i/update.ts | |
| parent | Merge branch 'develop' (diff) | |
| parent | 11.25.0 (diff) | |
| download | sharkey-0f71d9f47a2e9f2a0dfeab7930af417d8f217397.tar.gz sharkey-0f71d9f47a2e9f2a0dfeab7930af417d8f217397.tar.bz2 sharkey-0f71d9f47a2e9f2a0dfeab7930af417d8f217397.zip | |
Merge branch 'develop'
Diffstat (limited to 'src/server/api/endpoints/i/update.ts')
| -rw-r--r-- | src/server/api/endpoints/i/update.ts | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/src/server/api/endpoints/i/update.ts b/src/server/api/endpoints/i/update.ts index 10521d12d8..a454cdb940 100644 --- a/src/server/api/endpoints/i/update.ts +++ b/src/server/api/endpoints/i/update.ts @@ -10,7 +10,7 @@ import extractHashtags from '../../../../misc/extract-hashtags'; import * as langmap from 'langmap'; import { updateHashtag } from '../../../../services/update-hashtag'; import { ApiError } from '../../error'; -import { Users, DriveFiles, UserProfiles } from '../../../../models'; +import { Users, DriveFiles, UserProfiles, Pages } from '../../../../models'; import { User } from '../../../../models/entities/user'; import { UserProfile } from '../../../../models/entities/user-profile'; import { ensure } from '../../../../prelude/ensure'; @@ -125,6 +125,13 @@ export const meta = { 'ja-JP': 'アップロードするメディアをデフォルトで「閲覧注意」として設定するか' } }, + + pinnedPageId: { + validator: $.optional.nullable.type(ID), + desc: { + 'ja-JP': 'ピン留めするページID' + } + } }, errors: { @@ -150,7 +157,13 @@ export const meta = { message: 'The file specified as a banner is not an image.', code: 'BANNER_NOT_AN_IMAGE', id: '75aedb19-2afd-4e6d-87fc-67941256fa60' - } + }, + + noSuchPage: { + message: 'No such page.', + code: 'NO_SUCH_PAGE', + id: '8e01b590-7eb9-431b-a239-860e086c408e' + }, } }; @@ -203,6 +216,16 @@ export default define(meta, async (ps, user, app) => { } } + if (ps.pinnedPageId) { + const page = await Pages.findOne(ps.pinnedPageId); + + if (page == null || page.userId !== user.id) throw new ApiError(meta.errors.noSuchPage); + + profileUpdates.pinnedPageId = page.id; + } else if (ps.pinnedPageId === null) { + profileUpdates.pinnedPageId = null; + } + //#region emojis/tags let emojis = [] as string[]; |