mirror of
https://github.com/versia-pub/api.git
synced 2025-12-06 08:28:19 +01:00
feat(client): ✨ Add Emoji API
This commit is contained in:
parent
2289ddce11
commit
122842c00e
|
|
@ -1,4 +1,5 @@
|
|||
export type Emoji = {
|
||||
id: string;
|
||||
shortcode: string;
|
||||
static_url: string;
|
||||
url: string;
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ export type VersiaRole = {
|
|||
icon: string | null;
|
||||
};
|
||||
|
||||
// Last updated: 2024-06-07
|
||||
// Last updated: 2024-11-28
|
||||
export enum RolePermission {
|
||||
ManageNotes = "notes",
|
||||
ManageOwnNotes = "owner:note",
|
||||
|
|
|
|||
|
|
@ -276,6 +276,16 @@ export class Client extends BaseClient {
|
|||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* DELETE /api/v1/emojis/:id
|
||||
*
|
||||
* @param id The emoji to delete's ID.
|
||||
* @return Empty.
|
||||
*/
|
||||
public deleteEmoji(id: string, extra?: RequestInit): Promise<Output<void>> {
|
||||
return this.delete<void>(`/api/v1/emojis/${id}`, undefined, extra);
|
||||
}
|
||||
|
||||
/**
|
||||
* DELETE /api/v1/statuses/:id/reactions/:emoji
|
||||
*
|
||||
|
|
@ -903,6 +913,16 @@ export class Client extends BaseClient {
|
|||
return this.get<string[]>(`/api/v1/domain_blocks?${params}`);
|
||||
}
|
||||
|
||||
/**
|
||||
* GET /api/v1/emojis/:id
|
||||
*
|
||||
* @param id The emoji ID.
|
||||
* @return Emoji.
|
||||
*/
|
||||
public getEmoji(id: string, extra?: RequestInit): Promise<Output<Emoji>> {
|
||||
return this.get<Emoji>(`/api/v1/emojis/${id}`, extra);
|
||||
}
|
||||
|
||||
/**
|
||||
* GET /api/v1/endorsements
|
||||
*
|
||||
|
|
@ -2640,6 +2660,42 @@ export class Client extends BaseClient {
|
|||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* PATCH /api/v1/emojis/:id
|
||||
*
|
||||
* @param id Target emoji ID.
|
||||
* @param options.shortcode Emoji shortcode.
|
||||
* @param options.image Emoji image, as a File, or a URL.
|
||||
* @param options.category Emoji category.
|
||||
* @param options.alt Emoji description.
|
||||
* @param options.global Whether the emoji should be visible to all users (requires `emoji` permission).
|
||||
* @return Emoji.
|
||||
*/
|
||||
public updateEmoji(
|
||||
id: string,
|
||||
options: Partial<{
|
||||
alt: string;
|
||||
category: string;
|
||||
global: boolean;
|
||||
image: File | URL;
|
||||
shortcode: string;
|
||||
}>,
|
||||
extra?: RequestInit,
|
||||
): Promise<Output<Emoji>> {
|
||||
return this.patchForm<Emoji>(
|
||||
`/api/v1/emojis/${id}`,
|
||||
{
|
||||
...options,
|
||||
image: undefined,
|
||||
element:
|
||||
options.image instanceof File
|
||||
? options.image
|
||||
: options.image?.toString(),
|
||||
},
|
||||
extra,
|
||||
);
|
||||
}
|
||||
|
||||
// TODO: updateFilter
|
||||
|
||||
/**
|
||||
|
|
@ -2731,6 +2787,37 @@ export class Client extends BaseClient {
|
|||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* POST /api/v1/emojis
|
||||
*
|
||||
* @param shortcode The shortcode of the emoji.
|
||||
* @param image The image file to be uploaded, as a File or URL.
|
||||
* @param options.category A category for the emoji.
|
||||
* @param options.alt Text description of the emoji.
|
||||
* @param options.global Whether the emoji should be visible to all users (requires `emoji` permission).
|
||||
* @return Emoji
|
||||
*/
|
||||
public uploadEmoji(
|
||||
shortcode: string,
|
||||
image: File | URL,
|
||||
options?: Partial<{
|
||||
alt: string;
|
||||
category: string;
|
||||
global: boolean;
|
||||
}>,
|
||||
extra?: RequestInit,
|
||||
): Promise<Output<Emoji>> {
|
||||
return this.postForm<Emoji>(
|
||||
"/api/v1/emojis",
|
||||
{
|
||||
shortcode,
|
||||
element: image instanceof File ? image : image.toString(),
|
||||
...options,
|
||||
},
|
||||
extra,
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* POST /api/v2/media
|
||||
*
|
||||
|
|
|
|||
Loading…
Reference in a new issue