From c3b76c88b0241edeeb7f64852009c179c5f919ae Mon Sep 17 00:00:00 2001 From: Dessalines Date: Thu, 22 Sep 2022 12:52:44 -0400 Subject: [PATCH] Add language (#77) * Add language_id for user, post, and comment creation. * v0.17.0-rc.44 --- package.json | 2 +- src/interfaces/api/comment.ts | 8 ++++++++ src/interfaces/api/person.ts | 6 +++++- src/interfaces/api/post.ts | 8 ++++++++ src/interfaces/api/site.ts | 10 +++++++--- src/interfaces/source.ts | 10 +++++++++- 6 files changed, 38 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 3a2c4c7..e191eb0 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "lemmy-js-client", "description": "A javascript / typescript client for Lemmy", - "version": "0.17.0-rc.43", + "version": "0.17.0-rc.44", "author": "Dessalines ", "license": "AGPL-3.0", "main": "./dist/index.js", diff --git a/src/interfaces/api/comment.ts b/src/interfaces/api/comment.ts index 423dd7d..5f2f78c 100644 --- a/src/interfaces/api/comment.ts +++ b/src/interfaces/api/comment.ts @@ -11,6 +11,10 @@ export class CreateComment { @Transform(({ value }) => toUndefined(value), { toPlainOnly: true }) @Expose() parent_id: Option; + @Transform(({ value }) => toOption(value), { toClassOnly: true }) + @Transform(({ value }) => toUndefined(value), { toPlainOnly: true }) + @Expose() + language_id: Option; post_id: number; /** * An optional front end ID, to tell which is comment is coming back. @@ -39,6 +43,10 @@ export class EditComment { @Transform(({ value }) => toUndefined(value), { toPlainOnly: true }) @Expose() distinguished: Option; + @Transform(({ value }) => toOption(value), { toClassOnly: true }) + @Transform(({ value }) => toUndefined(value), { toPlainOnly: true }) + @Expose() + language_id: Option; /** * An optional front end ID, to tell which is comment is coming back. */ diff --git a/src/interfaces/api/person.ts b/src/interfaces/api/person.ts index 147d62d..7d2b2e4 100644 --- a/src/interfaces/api/person.ts +++ b/src/interfaces/api/person.ts @@ -136,7 +136,7 @@ export class SaveUserSettings { @Transform(({ value }) => toOption(value), { toClassOnly: true }) @Transform(({ value }) => toUndefined(value), { toPlainOnly: true }) @Expose() - lang: Option; + interface_language: Option; @Transform(({ value }) => toOption(value), { toClassOnly: true }) @Transform(({ value }) => toUndefined(value), { toPlainOnly: true }) @Expose() @@ -189,6 +189,10 @@ export class SaveUserSettings { @Transform(({ value }) => toUndefined(value), { toPlainOnly: true }) @Expose() show_new_post_notifs: Option; + @Transform(({ value }) => toOption(value), { toClassOnly: true }) + @Transform(({ value }) => toUndefined(value), { toPlainOnly: true }) + @Expose() + discussion_languages: Option; auth: string; constructor(init: SaveUserSettings) { diff --git a/src/interfaces/api/post.ts b/src/interfaces/api/post.ts index 48abf55..fbbf2bb 100644 --- a/src/interfaces/api/post.ts +++ b/src/interfaces/api/post.ts @@ -24,6 +24,10 @@ export class CreatePost { @Transform(({ value }) => toUndefined(value), { toPlainOnly: true }) @Expose() nsfw: Option; + @Transform(({ value }) => toOption(value), { toClassOnly: true }) + @Transform(({ value }) => toUndefined(value), { toPlainOnly: true }) + @Expose() + language_id: Option; community_id: number; @Transform(({ value }) => toOption(value), { toClassOnly: true }) @Transform(({ value }) => toUndefined(value), { toPlainOnly: true }) @@ -149,6 +153,10 @@ export class EditPost { @Transform(({ value }) => toUndefined(value), { toPlainOnly: true }) @Expose() nsfw: Option; + @Transform(({ value }) => toOption(value), { toClassOnly: true }) + @Transform(({ value }) => toUndefined(value), { toPlainOnly: true }) + @Expose() + language_id: Option; auth: string; constructor(init: EditPost) { diff --git a/src/interfaces/api/site.ts b/src/interfaces/api/site.ts index b3f3905..0108cc2 100644 --- a/src/interfaces/api/site.ts +++ b/src/interfaces/api/site.ts @@ -2,7 +2,8 @@ import { Option } from "@sniptt/monads"; import { Expose, Transform, Type } from "class-transformer"; import "reflect-metadata"; import { toOption, toUndefined } from "../../utils"; -import { ListingType, SearchType, SortType, ModlogActionType } from "../others"; +import { ListingType, ModlogActionType, SearchType, SortType } from "../others"; +import { Language } from "../source"; import { AdminPurgeCommentView, AdminPurgeCommunityView, @@ -96,7 +97,6 @@ export class SearchResponse { users: PersonViewSafe[]; } - export class GetModlog { @Transform(({ value }) => toOption(value), { toClassOnly: true }) @Transform(({ value }) => toUndefined(value), { toPlainOnly: true }) @@ -297,7 +297,7 @@ export class EditSite { @Expose() hide_modlog_mod_names: Option; auth: string; - + constructor(init: EditSite) { Object.assign(this, init); } @@ -345,6 +345,8 @@ export class GetSiteResponse { @Expose() @Type(() => FederatedInstances) federated_instances: Option; + @Type(() => Language) + all_languages: Language[]; } /** @@ -361,6 +363,8 @@ export class MyUserInfo { community_blocks: CommunityBlockView[]; @Type(() => PersonBlockView) person_blocks: PersonBlockView[]; + @Type(() => Language) + discussion_languages: Language[]; } export class LeaveAdmin { diff --git a/src/interfaces/source.ts b/src/interfaces/source.ts index 789c853..42aaaa6 100644 --- a/src/interfaces/source.ts +++ b/src/interfaces/source.ts @@ -13,7 +13,7 @@ export class LocalUserSettings { theme: string; default_sort_type: number; default_listing_type: number; - lang: string; + interface_language: string; show_avatars: boolean; send_notifications_to_email: boolean; show_bot_accounts: boolean; @@ -200,6 +200,7 @@ export class Post { thumbnail_url: Option; ap_id: string; local: boolean; + language_id: number; } export class PasswordResetRequest { @@ -459,6 +460,7 @@ export class Comment { local: boolean; path: string; distinguished: boolean; + language_id: number; } export class PersonMention { @@ -491,3 +493,9 @@ export class RegistrationApplication { deny_reason: Option; published: string; } + +export class Language { + id: number; + code: string; + name: string; +}