mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2025-05-13 06:34:39 -04:00
54 lines
1.9 KiB
TypeScript
54 lines
1.9 KiB
TypeScript
/*
|
|
* SPDX-FileCopyrightText: 2022 The HedgeDoc developers (see AUTHORS file)
|
|
*
|
|
* SPDX-License-Identifier: AGPL-3.0-only
|
|
*/
|
|
import { DeleteApiRequestBuilder } from '../common/api-request-builder/delete-api-request-builder'
|
|
import { PostApiRequestBuilder } from '../common/api-request-builder/post-api-request-builder'
|
|
import { PutApiRequestBuilder } from '../common/api-request-builder/put-api-request-builder'
|
|
import type { Alias, NewAliasDto, PrimaryAliasDto } from './types'
|
|
|
|
/**
|
|
* Adds an alias to an existing note.
|
|
*
|
|
* @param noteIdOrAlias The note id or an existing alias for a note.
|
|
* @param newAlias The new alias.
|
|
* @return Information about the newly created alias.
|
|
* @throws {Error} when the api request wasn't successfull
|
|
*/
|
|
export const addAlias = async (noteIdOrAlias: string, newAlias: string): Promise<Alias> => {
|
|
const response = await new PostApiRequestBuilder<Alias, NewAliasDto>('alias')
|
|
.withJsonBody({
|
|
noteIdOrAlias,
|
|
newAlias
|
|
})
|
|
.sendRequest()
|
|
return response.asParsedJsonObject()
|
|
}
|
|
|
|
/**
|
|
* Marks a given alias as the primary one for a note.
|
|
* The former primary alias should be marked as non-primary by the backend automatically.
|
|
*
|
|
* @param alias The alias to mark as primary for its corresponding note.
|
|
* @return The updated information about the alias.
|
|
* @throws {Error} when the api request wasn't successfull
|
|
*/
|
|
export const markAliasAsPrimary = async (alias: string): Promise<Alias> => {
|
|
const response = await new PutApiRequestBuilder<Alias, PrimaryAliasDto>('alias/' + alias)
|
|
.withJsonBody({
|
|
primaryAlias: true
|
|
})
|
|
.sendRequest()
|
|
return response.asParsedJsonObject()
|
|
}
|
|
|
|
/**
|
|
* Removes a given alias from its corresponding note.
|
|
*
|
|
* @param alias The alias to remove from its note.
|
|
* @throws {Error} when the api request wasn't successful.
|
|
*/
|
|
export const deleteAlias = async (alias: string): Promise<void> => {
|
|
await new DeleteApiRequestBuilder('alias/' + alias).sendRequest()
|
|
}
|