diff --git a/.github/gradle.properties b/.github/gradle.properties deleted file mode 100644 index 738ad2a6..00000000 --- a/.github/gradle.properties +++ /dev/null @@ -1,2 +0,0 @@ -kotlin.daemon.jvmargs=-Xmx6G -org.gradle.jvmargs=-Xmx6G \ No newline at end of file diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 14172bcb..7768dd5a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,18 +18,15 @@ jobs: os: [ macos-latest, ubuntu-latest, windows-latest ] steps: - - uses: actions/checkout@v4 - - uses: SimonMarquis/ci-gradle-properties-action@v1 - with: - path: .github/gradle.properties - - uses: actions/setup-java@v4 + - uses: actions/checkout@v6 + - uses: actions/setup-java@v5 with: distribution: 'temurin' java-version: '17' - name: Setup Gradle - uses: gradle/actions/setup-gradle@v3 + uses: gradle/actions/setup-gradle@v5 - name: Cache Konan dependencies - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: ~/.konan key: ${{ runner.os }}-konan-${{ hashFiles('**/*.gradle.kts') }} @@ -40,10 +37,10 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Setup Gradle - uses: gradle/actions/setup-gradle@v3 - - uses: actions/setup-java@v4 + uses: gradle/actions/setup-gradle@v5 + - uses: actions/setup-java@v5 with: distribution: 'temurin' java-version: '17' @@ -52,13 +49,10 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - uses: SimonMarquis/ci-gradle-properties-action@v1 - with: - path: .github/gradle.properties + - uses: actions/checkout@v6 - name: Setup Gradle - uses: gradle/actions/setup-gradle@v3 - - uses: actions/setup-java@v4 + uses: gradle/actions/setup-gradle@v5 + - uses: actions/setup-java@v5 with: distribution: 'temurin' java-version: '17' diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 6987f880..26c8d3fb 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -3,14 +3,17 @@ name: Deployment on: push: tags: [ '[0-9]+.[0-9]+.[0-9]+*' ] + workflow_dispatch: jobs: publish: - if: github.repository == 'mv-gh/lemmybackwardscompatibleapi' && startsWith(github.ref, 'refs/tags') - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ macos-latest, ubuntu-latest, windows-latest ] + if: > + github.repository == 'mv-gh/lemmybackwardscompatibleapi' && + ( + startsWith(github.ref, 'refs/tags/') || + (github.event_name == 'workflow_dispatch' && github.actor == 'mv-gh') + ) + runs-on: macos-latest environment: publish env: ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.ORG_GRADLE_PROJECT_signingInMemoryKey }} @@ -19,13 +22,10 @@ jobs: ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.ORG_GRADLE_PROJECT_mavenCentralPassword }} ORG_GRADLE_PROJECT_signingInMemoryKeyId: ${{ secrets.ORG_GRADLE_PROJECT_signingInMemoryKeyId }} steps: - - uses: actions/checkout@v4 - - uses: SimonMarquis/ci-gradle-properties-action@v1 - with: - path: .github/gradle.properties + - uses: actions/checkout@v6 - name: Setup Gradle - uses: gradle/actions/setup-gradle@v3 - - uses: actions/setup-java@v4 + uses: gradle/actions/setup-gradle@v5 + - uses: actions/setup-java@v5 with: distribution: 'temurin' java-version: '17' diff --git a/ACTIVE_CHANGES.md b/ACTIVE_CHANGES.md index 5c59899b..27914092 100644 --- a/ACTIVE_CHANGES.md +++ b/ACTIVE_CHANGES.md @@ -3,6 +3,37 @@ This document lists the changes that you will need to actively handle, through feature flags. +## V1 + +### Sort types split + `time_range_seconds` + +The many `Top*` `SortType` variants (`TopDay`, `TopWeek`, `TopMonth`, `TopYear`, `TopAll`, `TopHour`, `TopSixHour`, `TopTwelveHour`, `TopThreeMonths`, `TopSixMonths`, `TopNineMonths`) have been collapsed into a single `Top` value in v1. Time range is now expressed via `time_range_seconds: Long?` on the query (`GetPosts`, `GetComments`, `ListCommunities`, `ListMultiCommunities`, `Search`). + +- On v1, set `sort = SortType.Top` and pass `time_range_seconds` (e.g. `86400` for top day). +- On pre-v1, the old `Top*` variants are still used; `time_range_seconds` is ignored. The wrapper translates automatically. + +### Image upload / delete compatibility + +- Consumers should use `LemmyApiBaseController.uploadImage()` and `LemmyApiBaseController.deleteMedia()`. +- Pre-1.0 Lemmy instances are now wired internally to legacy pictrs endpoints; callers should not use pictrs APIs directly anymore. +- `UploadImageResponse` now includes `delete_filename`. +- Always pass `uploadImage(...).delete_filename` into `deleteMedia(DeleteImageParams(...))`. +- On Lemmy `1.x`, `delete_filename == filename`. +- On pre-`1.0`, `delete_filename` contains the full legacy pictrs delete path, like `/pictrs/image/delete/{delete_token}/{file}`. + +### Avatar/Icon/Banner + +Should now use the dedicated avatar/icon/banner upload/delete endpoints. + +### Pagination: `page` replaced by `page_cursor` + +`page: Long?` has been removed from all list/query types in v1 (`GetPosts`, `GetComments`, `GetModlog`, `Search`, `ListCommunities`, `ListReports`, `ListNotifications`, `ListMedia`, `ListPersonContent`, `ListPostLikes`, `ListCommentLikes`, `ListRegistrationApplications`). + +- On v1, use `page_cursor` for cursor-based pagination. +- To support pre-v1 instances, populate **both** `page` (for older versions, handled internally) and `page_cursor` (for v1). The wrapper will pass the appropriate one. + + + ## 0.19.11 - Added `last_donation_notification` field to LocalUser @@ -29,4 +60,3 @@ But each has different behaviour. The old behaviour is to hide all voting types - Log out support (invalidates the current JWT) - Instance block support - 2FA rework, one must now provide a valid 2FA code to enable 2FA. Added routes to support this. - diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..d624b1f7 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,65 @@ +# Contributing to this project + + +## Architecture + +``` +LemmyApi (factory object) + └─ getLemmyApi(instance, version) → LemmyApiBaseController + │ + └─ version-specific LemmyApiUniWrapper (implements LemmyApiBaseController) + ├─ LemmyApiController (raw Ktor HTTP calls, version-specific datatypes) + ├─ Transformer (maps version-specific ↔ unified datatypes) + └─ MapperGenerator (interface) (declares all toUni/fromUni signatures) +``` + +### Per-version module structure + +Each `vX/xN/xM/` folder contains exactly these files: + +| File | Purpose | +|---|---| +| `datatypes/` | Auto-generated version-specific Kotlin datatypes. **Do not edit by hand.** | +| `MapperGenerator.kt` | Interface declaring all `toUni` / `fromUni` signatures, used to drive Konvert code generation. Annotations are commented out in committed code; uncomment + build to regenerate. | +| `Transformer.kt` | Implements `MapperGenerator`. Contains all field-level mapping logic. Generated initially by Konvert, then hand-maintained for non-trivial differences. | +| `LemmyApiUniWrapper.kt` | Implements `LemmyApiBaseController`. Delegates HTTP calls to `LemmyApiController` and transforms results. Unsupported endpoints call `notSupported()`. | +| `LemmyApiController.kt` | Raw Ktor HTTP calls returning version-specific datatypes. | +| `LemmyApiRouter.kt` | Route path definitions for this version. | + +### Unified datatypes (1.0.0 baseline) + +The `it.vercruysse.lemmyapi.datatypes` package represents the **1.0.0 Lemmy API** and is the single source of truth for all API consumers. Older version wrappers transform their version-specific types into these unified types. See `ACTIVE_CHANGES.md` for the key API differences consumers need to handle. + + +## Backwards Compatibility Strategy + +- **API route added**: add a function to `FeatureFlags` that returns whether this feature is supported. Older versions implement this route by throwing `notSupported()`. +- **API route removed**: newer versions implement the old route by throwing `notSupported()`. Add to the `oldRoutes` interface if needed. +- **Request/response changes**: transform using `Transformer`. The unified type (usually the latest datatype shape) is returned regardless of version. Example: [moving admin flag from person to local_user](https://github.com/LemmyNet/lemmy/pull/3403) — pre-0.19 APIs map their type to the latest shape. +- **Enum entries**: each entry tracks `minimumVersion`/`maximumVersion`. Use `getSupportedEntries()` to retrieve the valid entries for the connected instance (e.g. sort options). + + +## Compatibility Rules + +When adding or updating an older-version implementation: + +1. **Reference `v0.x18.x5`** — it is always kept up-to-date with the unified interface. Copy its `LemmyApiUniWrapper.kt` pattern. +2. `MapperGenerator.kt` return types must use **unified** types only. +3. `Transformer.kt` must not import deleted unified types. +4. `LemmyApiUniWrapper.kt` must implement **every** abstract method from `LemmyApiBaseController`. Missing features use `notSupported()`. +5. Import aliases are required in `Transformer.kt`: + - Unified types: `import it.vercruysse.lemmyapi.datatypes.Foo as LemmyapiDatatypesFoo` + - Local version types: `import it.vercruysse.lemmyapi.vX.xN.xM.datatypes.Foo as XMDatatypesFoo` + - Unused aliases cause compilation errors — remove them when the corresponding method is deleted. + + +## AutoGenerated Code + +To minimize the maintenance burden, many aspects have been automated via Kotlin scripts in the `GeneratorScripts` submodule: + +- **`GenTypes`**: Downloads TS types from [lemmy-js-client](https://github.com/LemmyNet/lemmy-js-client) and generates `datatypes/` for a target version. Requires [dukat](https://github.com/Kotlin/dukat). +- **`GenRoutes`**: Generates route/controller templates from [lemmy_openapi_spec](https://github.com/MV-GH/lemmy_openapi_spec). Output goes to `temp/`. +- **`GenMapperRoutes`**: Generates `MapperGenerator.kt` by diffing two version datatypes. Uncomment the Konvert annotations and build to generate `Transformer.kt` base, then copy from the build output. Output goes to `temp/`. + +See `STEPS_TO_SUPPORT_MORE_VERSION.md` for the full checklist when adding a new Lemmy version. + diff --git a/GeneratorScripts/build.gradle.kts b/GeneratorScripts/build.gradle.kts index 845fab31..b9c200d4 100644 --- a/GeneratorScripts/build.gradle.kts +++ b/GeneratorScripts/build.gradle.kts @@ -1,7 +1,7 @@ plugins { kotlin("jvm") - kotlin("plugin.serialization") version "2.1.10" - id("com.google.devtools.ksp").version("2.1.10-1.0.30") + kotlin("plugin.serialization") version "2.3.21" + id("com.google.devtools.ksp").version("2.3.8") } repositories { @@ -11,19 +11,18 @@ repositories { dependencies { testImplementation("org.jetbrains.kotlin:kotlin-test") implementation("com.charleskorn.kaml:kaml:0.55.0") - val ktorVersion = "3.1.2" - val konvertVersion = "3.2.1" + val ktorVersion = "3.5.0" + val konvertVersion = "4.5.0" implementation("io.ktor:ktor-client-core:$ktorVersion") implementation("io.ktor:ktor-client-content-negotiation:$ktorVersion") implementation("io.ktor:ktor-serialization-kotlinx-json:$ktorVersion") implementation("io.ktor:ktor-client-logging:$ktorVersion") - implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.2") - implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.1") + implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.11.0") + implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.11.0") - implementation("com.squareup.okio:okio:3.10.2") - implementation("org.jetbrains.kotlinx:kotlinx-io-core:0.6.0") - implementation("io.mcarle:konvert:$konvertVersion") + implementation("com.squareup.okio:okio:3.17.0") + implementation("org.jetbrains.kotlinx:kotlinx-io-core:0.9.0") implementation("io.mcarle:konvert-api:$konvertVersion") implementation(project(":app")) @@ -37,3 +36,4 @@ tasks.test { kotlin { jvmToolchain(17) } + diff --git a/GeneratorScripts/src/main/kotlin/MapperGenerator0x18x5.kt b/GeneratorScripts/src/main/kotlin/MapperGenerator0x18x5.kt index 72f62d8d..9ea9363e 100644 --- a/GeneratorScripts/src/main/kotlin/MapperGenerator0x18x5.kt +++ b/GeneratorScripts/src/main/kotlin/MapperGenerator0x18x5.kt @@ -43,15 +43,6 @@ internal interface MapperGenerator0x18x5 { fun toUni(d: LocalSiteRateLimit): it.vercruysse.lemmyapi.datatypes.LocalSiteRateLimit - @Konvert( - mappings = [ - Mapping(target = "banned_from_community", constant = "false"), - Mapping(target = "creator_is_moderator", constant = "false"), - Mapping(target = "creator_is_admin", constant = "false"), - ] - ) - fun toUni(d: CommentReplyView): it.vercruysse.lemmyapi.datatypes.CommentReplyView - @Konvert( mappings = [ Mapping(target = "banned_from_community", constant = "false"), @@ -80,13 +71,6 @@ internal interface MapperGenerator0x18x5 { ) fun toUni(d: Community): it.vercruysse.lemmyapi.datatypes.Community - @Konvert( - mappings = [ - Mapping(target = "subscribers_local", constant = "-1"), - ] - ) - fun toUni(d: CommunityAggregates): it.vercruysse.lemmyapi.datatypes.CommunityAggregates - @Konvert( mappings = [ Mapping(target = "banned_from_community", constant = "false"), @@ -94,16 +78,6 @@ internal interface MapperGenerator0x18x5 { ) fun toUni(d: CommunityView): it.vercruysse.lemmyapi.datatypes.CommunityView - fun toUniF(d: Instance): it.vercruysse.lemmyapi.datatypes.InstanceWithFederationState = - it.vercruysse.lemmyapi.datatypes.InstanceWithFederationState( - id = d.id, - domain = d.domain, - published = d.published, - updated = d.updated, - software = d.software, - version = d.version, - ) - fun toUni(d: SiteMetadata): it.vercruysse.lemmyapi.datatypes.LinkMetadata = it.vercruysse.lemmyapi.datatypes.LinkMetadata( title = d.title, @@ -128,15 +102,6 @@ internal interface MapperGenerator0x18x5 { ) fun toUni(d: LocalSite): it.vercruysse.lemmyapi.datatypes.LocalSite - @Konvert( - mappings = [ - Mapping(target = "banned_from_community", constant = "false"), - Mapping(target = "creator_is_moderator", constant = "false"), - Mapping(target = "creator_is_admin", constant = "false"), - ] - ) - fun toUni(d: PersonMentionView): it.vercruysse.lemmyapi.datatypes.PersonMentionView - fun toUni(@Konverter.Source d: PersonView, is_admin: Boolean = false): it.vercruysse.lemmyapi.datatypes.PersonView @Konvert( @@ -166,24 +131,8 @@ internal interface MapperGenerator0x18x5 { fun toUni(d: AddAdminResponse): it.vercruysse.lemmyapi.datatypes.AddAdminResponse fun toUni(d: AddModToCommunityResponse): it.vercruysse.lemmyapi.datatypes.AddModToCommunityResponse - fun toUni(d: AdminPurgeComment): it.vercruysse.lemmyapi.datatypes.AdminPurgeComment - fun toUni(d: AdminPurgeCommentView): it.vercruysse.lemmyapi.datatypes.AdminPurgeCommentView - fun toUni(d: AdminPurgeCommunity): it.vercruysse.lemmyapi.datatypes.AdminPurgeCommunity - fun toUni(d: AdminPurgeCommunityView): it.vercruysse.lemmyapi.datatypes.AdminPurgeCommunityView - fun toUni(d: AdminPurgePerson): it.vercruysse.lemmyapi.datatypes.AdminPurgePerson - fun toUni(d: AdminPurgePersonView): it.vercruysse.lemmyapi.datatypes.AdminPurgePersonView - fun toUni(d: AdminPurgePost): it.vercruysse.lemmyapi.datatypes.AdminPurgePost - fun toUni(d: AdminPurgePostView): it.vercruysse.lemmyapi.datatypes.AdminPurgePostView - fun toUni(d: BanFromCommunityResponse): it.vercruysse.lemmyapi.datatypes.BanFromCommunityResponse - fun toUni(d: BannedPersonsResponse): it.vercruysse.lemmyapi.datatypes.BannedPersonsResponse - fun toUni(d: BanPersonResponse): it.vercruysse.lemmyapi.datatypes.BanPersonResponse - fun toUni(d: BlockCommunityResponse): it.vercruysse.lemmyapi.datatypes.BlockCommunityResponse - fun toUni(d: BlockPersonResponse): it.vercruysse.lemmyapi.datatypes.BlockPersonResponse fun toUni(d: CaptchaResponse): it.vercruysse.lemmyapi.datatypes.CaptchaResponse fun toUni(d: Comment): it.vercruysse.lemmyapi.datatypes.Comment - fun toUni(d: CommentAggregates): it.vercruysse.lemmyapi.datatypes.CommentAggregates - fun toUni(d: CommentReply): it.vercruysse.lemmyapi.datatypes.CommentReply - fun toUni(d: CommentReplyResponse): it.vercruysse.lemmyapi.datatypes.CommentReplyResponse fun toUni(d: CommentReport): it.vercruysse.lemmyapi.datatypes.CommentReport fun toUni(d: CommentReportResponse): it.vercruysse.lemmyapi.datatypes.CommentReportResponse @@ -191,7 +140,6 @@ internal interface MapperGenerator0x18x5 { fun toUni(d: CommentResponse): it.vercruysse.lemmyapi.datatypes.CommentResponse - fun toUni(d: CommunityBlockView): it.vercruysse.lemmyapi.datatypes.CommunityBlockView fun toUni(d: CommunityFollowerView): it.vercruysse.lemmyapi.datatypes.CommunityFollowerView fun toUni(d: CommunityModeratorView): it.vercruysse.lemmyapi.datatypes.CommunityModeratorView fun toUni(d: CommunityResponse): it.vercruysse.lemmyapi.datatypes.CommunityResponse @@ -200,64 +148,21 @@ internal interface MapperGenerator0x18x5 { fun toUni(d: CustomEmojiKeyword): it.vercruysse.lemmyapi.datatypes.CustomEmojiKeyword fun toUni(d: CustomEmojiResponse): it.vercruysse.lemmyapi.datatypes.CustomEmojiResponse fun toUni(d: CustomEmojiView): it.vercruysse.lemmyapi.datatypes.CustomEmojiView - fun toUni(d: FederatedInstances): it.vercruysse.lemmyapi.datatypes.FederatedInstances fun toUni(d: GetCaptchaResponse): it.vercruysse.lemmyapi.datatypes.GetCaptchaResponse - fun toUni(d: GetCommentsResponse): it.vercruysse.lemmyapi.datatypes.GetCommentsResponse fun toUni(d: GetCommunityResponse): it.vercruysse.lemmyapi.datatypes.GetCommunityResponse - fun toUni(d: GetFederatedInstancesResponse): it.vercruysse.lemmyapi.datatypes.GetFederatedInstancesResponse - fun toUni(d: GetModlogResponse): it.vercruysse.lemmyapi.datatypes.GetModlogResponse fun toUni(d: GetPersonDetailsResponse): it.vercruysse.lemmyapi.datatypes.GetPersonDetailsResponse - fun toUni(d: GetPersonMentionsResponse): it.vercruysse.lemmyapi.datatypes.GetPersonMentionsResponse fun toUni(d: GetPostResponse): it.vercruysse.lemmyapi.datatypes.GetPostResponse - fun toUni(d: GetPostsResponse): it.vercruysse.lemmyapi.datatypes.GetPostsResponse - fun toUni(d: GetRepliesResponse): it.vercruysse.lemmyapi.datatypes.GetRepliesResponse - fun toUni(d: GetReportCountResponse): it.vercruysse.lemmyapi.datatypes.GetReportCountResponse fun toUni(d: GetSiteMetadataResponse): it.vercruysse.lemmyapi.datatypes.GetSiteMetadataResponse - fun toUni(d: GetUnreadCountResponse): it.vercruysse.lemmyapi.datatypes.GetUnreadCountResponse - fun toUni(d: GetUnreadRegistrationApplicationCountResponse): it.vercruysse.lemmyapi.datatypes.GetUnreadRegistrationApplicationCountResponse fun toUni(d: Instance): it.vercruysse.lemmyapi.datatypes.Instance fun toUni(d: Language): it.vercruysse.lemmyapi.datatypes.Language - fun toUni(d: ListCommentReportsResponse): it.vercruysse.lemmyapi.datatypes.ListCommentReportsResponse - fun toUni(d: ListCommunitiesResponse): it.vercruysse.lemmyapi.datatypes.ListCommunitiesResponse - fun toUni(d: ListPostReportsResponse): it.vercruysse.lemmyapi.datatypes.ListPostReportsResponse - fun toUni(d: ListPrivateMessageReportsResponse): it.vercruysse.lemmyapi.datatypes.ListPrivateMessageReportsResponse - fun toUni(d: ListRegistrationApplicationsResponse): it.vercruysse.lemmyapi.datatypes.ListRegistrationApplicationsResponse fun toUni(d: LocalUserView): it.vercruysse.lemmyapi.datatypes.LocalUserView fun toUni(d: LoginResponse): it.vercruysse.lemmyapi.datatypes.LoginResponse - fun toUni(d: ModAdd): it.vercruysse.lemmyapi.datatypes.ModAdd - fun toUni(d: ModAddCommunity): it.vercruysse.lemmyapi.datatypes.ModAddCommunity - fun toUni(d: ModAddCommunityView): it.vercruysse.lemmyapi.datatypes.ModAddCommunityView - fun toUni(d: ModAddView): it.vercruysse.lemmyapi.datatypes.ModAddView - fun toUni(d: ModBan): it.vercruysse.lemmyapi.datatypes.ModBan - fun toUni(d: ModBanFromCommunity): it.vercruysse.lemmyapi.datatypes.ModBanFromCommunity - fun toUni(d: ModBanFromCommunityView): it.vercruysse.lemmyapi.datatypes.ModBanFromCommunityView - fun toUni(d: ModBanView): it.vercruysse.lemmyapi.datatypes.ModBanView - fun toUni(d: ModFeaturePost): it.vercruysse.lemmyapi.datatypes.ModFeaturePost - fun toUni(d: ModFeaturePostView): it.vercruysse.lemmyapi.datatypes.ModFeaturePostView - fun toUni(d: ModHideCommunity): it.vercruysse.lemmyapi.datatypes.ModHideCommunity - fun toUni(d: ModHideCommunityView): it.vercruysse.lemmyapi.datatypes.ModHideCommunityView - fun toUni(d: ModLockPost): it.vercruysse.lemmyapi.datatypes.ModLockPost - fun toUni(d: ModLockPostView): it.vercruysse.lemmyapi.datatypes.ModLockPostView - fun toUni(d: ModlogListParams): it.vercruysse.lemmyapi.datatypes.ModlogListParams - fun toUni(d: ModRemoveComment): it.vercruysse.lemmyapi.datatypes.ModRemoveComment - fun toUni(d: ModRemoveCommentView): it.vercruysse.lemmyapi.datatypes.ModRemoveCommentView - fun toUni(d: ModRemoveCommunity): it.vercruysse.lemmyapi.datatypes.ModRemoveCommunity - fun toUni(d: ModRemoveCommunityView): it.vercruysse.lemmyapi.datatypes.ModRemoveCommunityView - fun toUni(d: ModRemovePost): it.vercruysse.lemmyapi.datatypes.ModRemovePost - fun toUni(d: ModRemovePostView): it.vercruysse.lemmyapi.datatypes.ModRemovePostView - fun toUni(d: ModTransferCommunity): it.vercruysse.lemmyapi.datatypes.ModTransferCommunity - fun toUni(d: ModTransferCommunityView): it.vercruysse.lemmyapi.datatypes.ModTransferCommunityView fun toUni(d: Person): it.vercruysse.lemmyapi.datatypes.Person - fun toUni(d: PersonAggregates): it.vercruysse.lemmyapi.datatypes.PersonAggregates - fun toUni(d: PersonBlockView): it.vercruysse.lemmyapi.datatypes.PersonBlockView - fun toUni(d: PersonMention): it.vercruysse.lemmyapi.datatypes.PersonMention - fun toUni(d: PersonMentionResponse): it.vercruysse.lemmyapi.datatypes.PersonMentionResponse fun toUni(d: Post): it.vercruysse.lemmyapi.datatypes.Post - fun toUni(d: PostAggregates): it.vercruysse.lemmyapi.datatypes.PostAggregates fun toUni(d: PostReport): it.vercruysse.lemmyapi.datatypes.PostReport fun toUni(d: PostReportResponse): it.vercruysse.lemmyapi.datatypes.PostReportResponse @@ -268,15 +173,12 @@ internal interface MapperGenerator0x18x5 { fun toUni(d: PrivateMessageReportResponse): it.vercruysse.lemmyapi.datatypes.PrivateMessageReportResponse fun toUni(d: PrivateMessageReportView): it.vercruysse.lemmyapi.datatypes.PrivateMessageReportView fun toUni(d: PrivateMessageResponse): it.vercruysse.lemmyapi.datatypes.PrivateMessageResponse - fun toUni(d: PrivateMessagesResponse): it.vercruysse.lemmyapi.datatypes.PrivateMessagesResponse fun toUni(d: PrivateMessageView): it.vercruysse.lemmyapi.datatypes.PrivateMessageView fun toUni(d: RegistrationApplication): it.vercruysse.lemmyapi.datatypes.RegistrationApplication fun toUni(d: RegistrationApplicationResponse): it.vercruysse.lemmyapi.datatypes.RegistrationApplicationResponse fun toUni(d: RegistrationApplicationView): it.vercruysse.lemmyapi.datatypes.RegistrationApplicationView - fun toUni(d: ResolveObjectResponse): it.vercruysse.lemmyapi.datatypes.ResolveObjectResponse fun toUni(d: SearchResponse): it.vercruysse.lemmyapi.datatypes.SearchResponse fun toUni(d: Site): it.vercruysse.lemmyapi.datatypes.Site - fun toUni(d: SiteAggregates): it.vercruysse.lemmyapi.datatypes.SiteAggregates fun toUni(d: SiteResponse): it.vercruysse.lemmyapi.datatypes.SiteResponse fun toUni(d: SiteView): it.vercruysse.lemmyapi.datatypes.SiteView fun toUni(d: Tagline): it.vercruysse.lemmyapi.datatypes.Tagline @@ -399,40 +301,20 @@ internal interface MapperGenerator0x18x5 { @Konvert(mappings = [Mapping(target = "auth", constant = "auth")]) fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPersonDetails): GetPersonDetails - @Konvert(mappings = [Mapping(target = "auth", constant = "auth")]) - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPersonMentions): GetPersonMentions - @Konvert(mappings = [Mapping(target = "auth", constant = "auth")]) fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPost): GetPost @Konvert(mappings = [Mapping(target = "auth", constant = "auth")]) fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPosts): GetPosts - @Konvert(mappings = [Mapping(target = "auth", constant = "auth")]) - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPrivateMessages): GetPrivateMessages - - @Konvert(mappings = [Mapping(target = "auth", constant = "auth")]) - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetReplies): GetReplies - - @Konvert(mappings = [Mapping(target = "auth", constant = "auth")]) - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetReportCount): GetReportCount fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetSiteMetadata): GetSiteMetadata @Konvert(mappings = [Mapping(target = "auth", constant = "auth")]) fun fromUni(d: it.vercruysse.lemmyapi.datatypes.HideCommunity): HideCommunity - @Konvert(mappings = [Mapping(target = "auth", constant = "auth")]) - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListCommentReports): ListCommentReports - @Konvert(mappings = [Mapping(target = "auth", constant = "auth")]) fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListCommunities): ListCommunities - @Konvert(mappings = [Mapping(target = "auth", constant = "auth")]) - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListPostReports): ListPostReports - - @Konvert(mappings = [Mapping(target = "auth", constant = "auth")]) - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListPrivateMessageReports): ListPrivateMessageReports - @Konvert(mappings = [Mapping(target = "auth", constant = "auth")]) fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListRegistrationApplications): ListRegistrationApplications @@ -440,16 +322,8 @@ internal interface MapperGenerator0x18x5 { fun fromUni(d: it.vercruysse.lemmyapi.datatypes.LockPost): LockPost fun fromUni(d: it.vercruysse.lemmyapi.datatypes.Login): Login - @Konvert(mappings = [Mapping(target = "auth", constant = "auth")]) - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.MarkCommentReplyAsRead): MarkCommentReplyAsRead - - @Konvert(mappings = [Mapping(target = "auth", constant = "auth")]) - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.MarkPersonMentionAsRead): MarkPersonMentionAsRead - - @Konvert(mappings = [Mapping(target = "auth", constant = "auth")]) - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.MarkPrivateMessageAsRead): MarkPrivateMessageAsRead - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PasswordChangeAfterReset): PasswordChangeAfterReset - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PasswordReset): PasswordReset + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ChangePasswordAfterReset): PasswordChangeAfterReset + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ResetPassword): PasswordReset @Konvert(mappings = [Mapping(target = "auth", constant = "auth")]) fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PurgeComment): PurgeComment diff --git a/GeneratorScripts/src/main/kotlin/MapperGenerator0x19x0.kt b/GeneratorScripts/src/main/kotlin/MapperGenerator0x19x0.kt index 58ec1273..38dc680b 100644 --- a/GeneratorScripts/src/main/kotlin/MapperGenerator0x19x0.kt +++ b/GeneratorScripts/src/main/kotlin/MapperGenerator0x19x0.kt @@ -1,8 +1,6 @@ @file:Suppress("unused", "INVISIBLE_MEMBER", "INVISIBLE_REFERENCE") -import io.mcarle.konvert.api.Konfig import io.mcarle.konvert.api.Konvert -import io.mcarle.konvert.api.Konverter import io.mcarle.konvert.api.Mapping import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.* @@ -15,13 +13,6 @@ import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.* //) internal interface MapperGenerator0x19x0 { - @Konvert( - mappings = [ - Mapping(target = "banned_from_community", constant = "false"), - ], - ) - fun toUni(d: CommentReplyView): it.vercruysse.lemmyapi.datatypes.CommentReplyView - @Konvert( mappings = [ Mapping(target = "creator_is_moderator", constant = "false"), @@ -48,13 +39,6 @@ internal interface MapperGenerator0x19x0 { ) fun toUni(d: Community): it.vercruysse.lemmyapi.datatypes.Community - @Konvert( - mappings = [ - Mapping(target = "subscribers_local", constant = "-1"), - ] - ) - fun toUni(d: CommunityAggregates): it.vercruysse.lemmyapi.datatypes.CommunityAggregates - @Konvert( mappings = [ Mapping(target = "banned_from_community", constant = "false"), @@ -85,20 +69,6 @@ internal interface MapperGenerator0x19x0 { ) fun toUni(d: LocalSite): it.vercruysse.lemmyapi.datatypes.LocalSite - @Konvert( - mappings = [ - Mapping(target = "banned_from_community", constant = "false"), - ] - ) - fun toUni(d: PersonMentionView): it.vercruysse.lemmyapi.datatypes.PersonMentionView - - @Konvert( - mappings = [ - Mapping(target = "newest_comment_time", constant = "\"\""), - ] - ) - fun toUni(d: PostAggregates): it.vercruysse.lemmyapi.datatypes.PostAggregates - @Konvert( mappings = [ Mapping(target = "creator_is_moderator", constant = "false"), @@ -124,25 +94,8 @@ internal interface MapperGenerator0x19x0 { // GENERATED fun toUni(d: AddAdminResponse): it.vercruysse.lemmyapi.datatypes.AddAdminResponse fun toUni(d: AddModToCommunityResponse): it.vercruysse.lemmyapi.datatypes.AddModToCommunityResponse - fun toUni(d: AdminPurgeComment): it.vercruysse.lemmyapi.datatypes.AdminPurgeComment - fun toUni(d: AdminPurgeCommentView): it.vercruysse.lemmyapi.datatypes.AdminPurgeCommentView - fun toUni(d: AdminPurgeCommunity): it.vercruysse.lemmyapi.datatypes.AdminPurgeCommunity - fun toUni(d: AdminPurgeCommunityView): it.vercruysse.lemmyapi.datatypes.AdminPurgeCommunityView - fun toUni(d: AdminPurgePerson): it.vercruysse.lemmyapi.datatypes.AdminPurgePerson - fun toUni(d: AdminPurgePersonView): it.vercruysse.lemmyapi.datatypes.AdminPurgePersonView - fun toUni(d: AdminPurgePost): it.vercruysse.lemmyapi.datatypes.AdminPurgePost - fun toUni(d: AdminPurgePostView): it.vercruysse.lemmyapi.datatypes.AdminPurgePostView - fun toUni(d: BanFromCommunityResponse): it.vercruysse.lemmyapi.datatypes.BanFromCommunityResponse - fun toUni(d: BannedPersonsResponse): it.vercruysse.lemmyapi.datatypes.BannedPersonsResponse - fun toUni(d: BanPersonResponse): it.vercruysse.lemmyapi.datatypes.BanPersonResponse - fun toUni(d: BlockCommunityResponse): it.vercruysse.lemmyapi.datatypes.BlockCommunityResponse - fun toUni(d: BlockInstanceResponse): it.vercruysse.lemmyapi.datatypes.BlockInstanceResponse - fun toUni(d: BlockPersonResponse): it.vercruysse.lemmyapi.datatypes.BlockPersonResponse fun toUni(d: CaptchaResponse): it.vercruysse.lemmyapi.datatypes.CaptchaResponse fun toUni(d: Comment): it.vercruysse.lemmyapi.datatypes.Comment - fun toUni(d: CommentAggregates): it.vercruysse.lemmyapi.datatypes.CommentAggregates - fun toUni(d: CommentReply): it.vercruysse.lemmyapi.datatypes.CommentReply - fun toUni(d: CommentReplyResponse): it.vercruysse.lemmyapi.datatypes.CommentReplyResponse fun toUni(d: CommentReport): it.vercruysse.lemmyapi.datatypes.CommentReport fun toUni(d: CommentReportResponse): it.vercruysse.lemmyapi.datatypes.CommentReportResponse @@ -151,7 +104,6 @@ internal interface MapperGenerator0x19x0 { - fun toUni(d: CommunityBlockView): it.vercruysse.lemmyapi.datatypes.CommunityBlockView fun toUni(d: CommunityFollowerView): it.vercruysse.lemmyapi.datatypes.CommunityFollowerView fun toUni(d: CommunityModeratorView): it.vercruysse.lemmyapi.datatypes.CommunityModeratorView fun toUni(d: CommunityResponse): it.vercruysse.lemmyapi.datatypes.CommunityResponse @@ -160,67 +112,23 @@ internal interface MapperGenerator0x19x0 { fun toUni(d: CustomEmojiKeyword): it.vercruysse.lemmyapi.datatypes.CustomEmojiKeyword fun toUni(d: CustomEmojiResponse): it.vercruysse.lemmyapi.datatypes.CustomEmojiResponse fun toUni(d: CustomEmojiView): it.vercruysse.lemmyapi.datatypes.CustomEmojiView - fun toUni(d: FederatedInstances): it.vercruysse.lemmyapi.datatypes.FederatedInstances fun toUni(d: GenerateTotpSecretResponse): it.vercruysse.lemmyapi.datatypes.GenerateTotpSecretResponse fun toUni(d: GetCaptchaResponse): it.vercruysse.lemmyapi.datatypes.GetCaptchaResponse - fun toUni(d: GetCommentsResponse): it.vercruysse.lemmyapi.datatypes.GetCommentsResponse fun toUni(d: GetCommunityResponse): it.vercruysse.lemmyapi.datatypes.GetCommunityResponse - fun toUni(d: GetFederatedInstancesResponse): it.vercruysse.lemmyapi.datatypes.GetFederatedInstancesResponse - fun toUni(d: GetModlogResponse): it.vercruysse.lemmyapi.datatypes.GetModlogResponse fun toUni(d: GetPersonDetailsResponse): it.vercruysse.lemmyapi.datatypes.GetPersonDetailsResponse - fun toUni(d: GetPersonMentionsResponse): it.vercruysse.lemmyapi.datatypes.GetPersonMentionsResponse fun toUni(d: GetPostResponse): it.vercruysse.lemmyapi.datatypes.GetPostResponse - fun toUni(d: GetPostsResponse): it.vercruysse.lemmyapi.datatypes.GetPostsResponse - fun toUni(d: GetRepliesResponse): it.vercruysse.lemmyapi.datatypes.GetRepliesResponse - fun toUni(d: GetReportCountResponse): it.vercruysse.lemmyapi.datatypes.GetReportCountResponse fun toUni(d: GetSiteMetadataResponse): it.vercruysse.lemmyapi.datatypes.GetSiteMetadataResponse - fun toUni(d: GetUnreadCountResponse): it.vercruysse.lemmyapi.datatypes.GetUnreadCountResponse - fun toUni(d: GetUnreadRegistrationApplicationCountResponse): it.vercruysse.lemmyapi.datatypes.GetUnreadRegistrationApplicationCountResponse fun toUni(d: Instance): it.vercruysse.lemmyapi.datatypes.Instance - fun toUni(d: InstanceBlockView): it.vercruysse.lemmyapi.datatypes.InstanceBlockView - fun toUni(d: InstanceWithFederationState): it.vercruysse.lemmyapi.datatypes.InstanceWithFederationState fun toUni(d: Language): it.vercruysse.lemmyapi.datatypes.Language - fun toUni(d: ListCommentReportsResponse): it.vercruysse.lemmyapi.datatypes.ListCommentReportsResponse - fun toUni(d: ListCommunitiesResponse): it.vercruysse.lemmyapi.datatypes.ListCommunitiesResponse - fun toUni(d: ListPostReportsResponse): it.vercruysse.lemmyapi.datatypes.ListPostReportsResponse - fun toUni(d: ListPrivateMessageReportsResponse): it.vercruysse.lemmyapi.datatypes.ListPrivateMessageReportsResponse - fun toUni(d: ListRegistrationApplicationsResponse): it.vercruysse.lemmyapi.datatypes.ListRegistrationApplicationsResponse fun toUni(d: LocalSiteRateLimit): it.vercruysse.lemmyapi.datatypes.LocalSiteRateLimit fun toUni(d: LocalUser): it.vercruysse.lemmyapi.datatypes.LocalUser fun toUni(d: LocalUserView): it.vercruysse.lemmyapi.datatypes.LocalUserView fun toUni(d: LoginResponse): it.vercruysse.lemmyapi.datatypes.LoginResponse fun toUni(d: LoginToken): it.vercruysse.lemmyapi.datatypes.LoginToken - fun toUni(d: ModAdd): it.vercruysse.lemmyapi.datatypes.ModAdd - fun toUni(d: ModAddCommunity): it.vercruysse.lemmyapi.datatypes.ModAddCommunity - fun toUni(d: ModAddCommunityView): it.vercruysse.lemmyapi.datatypes.ModAddCommunityView - fun toUni(d: ModAddView): it.vercruysse.lemmyapi.datatypes.ModAddView - fun toUni(d: ModBan): it.vercruysse.lemmyapi.datatypes.ModBan - fun toUni(d: ModBanFromCommunity): it.vercruysse.lemmyapi.datatypes.ModBanFromCommunity - fun toUni(d: ModBanFromCommunityView): it.vercruysse.lemmyapi.datatypes.ModBanFromCommunityView - fun toUni(d: ModBanView): it.vercruysse.lemmyapi.datatypes.ModBanView - fun toUni(d: ModFeaturePost): it.vercruysse.lemmyapi.datatypes.ModFeaturePost - fun toUni(d: ModFeaturePostView): it.vercruysse.lemmyapi.datatypes.ModFeaturePostView - fun toUni(d: ModHideCommunity): it.vercruysse.lemmyapi.datatypes.ModHideCommunity - fun toUni(d: ModHideCommunityView): it.vercruysse.lemmyapi.datatypes.ModHideCommunityView - fun toUni(d: ModLockPost): it.vercruysse.lemmyapi.datatypes.ModLockPost - fun toUni(d: ModLockPostView): it.vercruysse.lemmyapi.datatypes.ModLockPostView - fun toUni(d: ModlogListParams): it.vercruysse.lemmyapi.datatypes.ModlogListParams - fun toUni(d: ModRemoveComment): it.vercruysse.lemmyapi.datatypes.ModRemoveComment - fun toUni(d: ModRemoveCommentView): it.vercruysse.lemmyapi.datatypes.ModRemoveCommentView - fun toUni(d: ModRemoveCommunity): it.vercruysse.lemmyapi.datatypes.ModRemoveCommunity - fun toUni(d: ModRemoveCommunityView): it.vercruysse.lemmyapi.datatypes.ModRemoveCommunityView - fun toUni(d: ModRemovePost): it.vercruysse.lemmyapi.datatypes.ModRemovePost - fun toUni(d: ModRemovePostView): it.vercruysse.lemmyapi.datatypes.ModRemovePostView - fun toUni(d: ModTransferCommunity): it.vercruysse.lemmyapi.datatypes.ModTransferCommunity - fun toUni(d: ModTransferCommunityView): it.vercruysse.lemmyapi.datatypes.ModTransferCommunityView fun toUni(d: MyUserInfo): it.vercruysse.lemmyapi.datatypes.MyUserInfo fun toUni(d: Person): it.vercruysse.lemmyapi.datatypes.Person - fun toUni(d: PersonAggregates): it.vercruysse.lemmyapi.datatypes.PersonAggregates - fun toUni(d: PersonBlockView): it.vercruysse.lemmyapi.datatypes.PersonBlockView - fun toUni(d: PersonMention): it.vercruysse.lemmyapi.datatypes.PersonMention - fun toUni(d: PersonMentionResponse): it.vercruysse.lemmyapi.datatypes.PersonMentionResponse fun toUni(d: PersonView): it.vercruysse.lemmyapi.datatypes.PersonView fun toUni(d: Post): it.vercruysse.lemmyapi.datatypes.Post @@ -235,20 +143,17 @@ internal interface MapperGenerator0x19x0 { fun toUni(d: PrivateMessageReportResponse): it.vercruysse.lemmyapi.datatypes.PrivateMessageReportResponse fun toUni(d: PrivateMessageReportView): it.vercruysse.lemmyapi.datatypes.PrivateMessageReportView fun toUni(d: PrivateMessageResponse): it.vercruysse.lemmyapi.datatypes.PrivateMessageResponse - fun toUni(d: PrivateMessagesResponse): it.vercruysse.lemmyapi.datatypes.PrivateMessagesResponse fun toUni(d: PrivateMessageView): it.vercruysse.lemmyapi.datatypes.PrivateMessageView - fun toUni(d: ReadableFederationState): it.vercruysse.lemmyapi.datatypes.ReadableFederationState + fun toUni(d: ReadableFederationState): it.vercruysse.lemmyapi.datatypes.FederationQueueState fun toUni(d: RegistrationApplication): it.vercruysse.lemmyapi.datatypes.RegistrationApplication fun toUni(d: RegistrationApplicationResponse): it.vercruysse.lemmyapi.datatypes.RegistrationApplicationResponse fun toUni(d: RegistrationApplicationView): it.vercruysse.lemmyapi.datatypes.RegistrationApplicationView - fun toUni(d: ResolveObjectResponse): it.vercruysse.lemmyapi.datatypes.ResolveObjectResponse fun toUni(d: SearchResponse): it.vercruysse.lemmyapi.datatypes.SearchResponse fun toUni(d: Site): it.vercruysse.lemmyapi.datatypes.Site - fun toUni(d: SiteAggregates): it.vercruysse.lemmyapi.datatypes.SiteAggregates fun toUni(d: SiteResponse): it.vercruysse.lemmyapi.datatypes.SiteResponse fun toUni(d: SiteView): it.vercruysse.lemmyapi.datatypes.SiteView fun toUni(d: Tagline): it.vercruysse.lemmyapi.datatypes.Tagline - fun toUni(d: UpdateTotpResponse): it.vercruysse.lemmyapi.datatypes.UpdateTotpResponse + fun toUni(d: UpdateTotpResponse): it.vercruysse.lemmyapi.datatypes.EditTotpResponse // body mappings fun fromUni(d: it.vercruysse.lemmyapi.datatypes.AddAdmin): AddAdmin @@ -257,7 +162,7 @@ internal interface MapperGenerator0x19x0 { fun fromUni(d: it.vercruysse.lemmyapi.datatypes.BanFromCommunity): BanFromCommunity fun fromUni(d: it.vercruysse.lemmyapi.datatypes.BanPerson): BanPerson fun fromUni(d: it.vercruysse.lemmyapi.datatypes.BlockCommunity): BlockCommunity - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.BlockInstance): BlockInstance + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.UserBlockInstanceCommunitiesParams): BlockInstance fun fromUni(d: it.vercruysse.lemmyapi.datatypes.BlockPerson): BlockPerson fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ChangePassword): ChangePassword fun fromUni(d: it.vercruysse.lemmyapi.datatypes.CreateComment): CreateComment @@ -291,27 +196,17 @@ internal interface MapperGenerator0x19x0 { fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetCommunity): GetCommunity fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetModlog): GetModlog fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPersonDetails): GetPersonDetails - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPersonMentions): GetPersonMentions fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPost): GetPost fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPosts): GetPosts - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPrivateMessages): GetPrivateMessages - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetReplies): GetReplies - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetReportCount): GetReportCount fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetSiteMetadata): GetSiteMetadata fun fromUni(d: it.vercruysse.lemmyapi.datatypes.HideCommunity): HideCommunity - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListCommentReports): ListCommentReports fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListCommunities): ListCommunities - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListPostReports): ListPostReports - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListPrivateMessageReports): ListPrivateMessageReports fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListRegistrationApplications): ListRegistrationApplications fun fromUni(d: it.vercruysse.lemmyapi.datatypes.LockPost): LockPost fun fromUni(d: it.vercruysse.lemmyapi.datatypes.Login): Login - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.MarkCommentReplyAsRead): MarkCommentReplyAsRead - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.MarkPersonMentionAsRead): MarkPersonMentionAsRead - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.MarkPostAsRead): MarkPostAsRead - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.MarkPrivateMessageAsRead): MarkPrivateMessageAsRead - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PasswordChangeAfterReset): PasswordChangeAfterReset - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PasswordReset): PasswordReset + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.MarkManyPostsAsRead): MarkPostAsRead + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ChangePasswordAfterReset): PasswordChangeAfterReset + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ResetPassword): PasswordReset fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PurgeComment): PurgeComment fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PurgeCommunity): PurgeCommunity fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PurgePerson): PurgePerson @@ -329,6 +224,6 @@ internal interface MapperGenerator0x19x0 { fun fromUni(d: it.vercruysse.lemmyapi.datatypes.SaveUserSettings): SaveUserSettings fun fromUni(d: it.vercruysse.lemmyapi.datatypes.Search): Search fun fromUni(d: it.vercruysse.lemmyapi.datatypes.TransferCommunity): TransferCommunity - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.UpdateTotp): UpdateTotp + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.EditTotp): UpdateTotp fun fromUni(d: it.vercruysse.lemmyapi.datatypes.VerifyEmail): VerifyEmail } diff --git a/GeneratorScripts/src/main/kotlin/MapperGenerator0x19x11.kt b/GeneratorScripts/src/main/kotlin/MapperGenerator0x19x11.kt index 192f838a..91b5acc8 100644 --- a/GeneratorScripts/src/main/kotlin/MapperGenerator0x19x11.kt +++ b/GeneratorScripts/src/main/kotlin/MapperGenerator0x19x11.kt @@ -13,34 +13,14 @@ internal interface MapperGenerator0x19x11 { fun toUni(d: AddAdminResponse): it.vercruysse.lemmyapi.datatypes.AddAdminResponse fun toUni(d: AddModToCommunityResponse): it.vercruysse.lemmyapi.datatypes.AddModToCommunityResponse - fun toUni(d: AdminPurgeComment): it.vercruysse.lemmyapi.datatypes.AdminPurgeComment - fun toUni(d: AdminPurgeCommentView): it.vercruysse.lemmyapi.datatypes.AdminPurgeCommentView - fun toUni(d: AdminPurgeCommunity): it.vercruysse.lemmyapi.datatypes.AdminPurgeCommunity - fun toUni(d: AdminPurgeCommunityView): it.vercruysse.lemmyapi.datatypes.AdminPurgeCommunityView - fun toUni(d: AdminPurgePerson): it.vercruysse.lemmyapi.datatypes.AdminPurgePerson - fun toUni(d: AdminPurgePersonView): it.vercruysse.lemmyapi.datatypes.AdminPurgePersonView - fun toUni(d: AdminPurgePost): it.vercruysse.lemmyapi.datatypes.AdminPurgePost - fun toUni(d: AdminPurgePostView): it.vercruysse.lemmyapi.datatypes.AdminPurgePostView - fun toUni(d: BanFromCommunityResponse): it.vercruysse.lemmyapi.datatypes.BanFromCommunityResponse - fun toUni(d: BannedPersonsResponse): it.vercruysse.lemmyapi.datatypes.BannedPersonsResponse - fun toUni(d: BanPersonResponse): it.vercruysse.lemmyapi.datatypes.BanPersonResponse - fun toUni(d: BlockCommunityResponse): it.vercruysse.lemmyapi.datatypes.BlockCommunityResponse - fun toUni(d: BlockInstanceResponse): it.vercruysse.lemmyapi.datatypes.BlockInstanceResponse - fun toUni(d: BlockPersonResponse): it.vercruysse.lemmyapi.datatypes.BlockPersonResponse fun toUni(d: CaptchaResponse): it.vercruysse.lemmyapi.datatypes.CaptchaResponse fun toUni(d: Comment): it.vercruysse.lemmyapi.datatypes.Comment - fun toUni(d: CommentAggregates): it.vercruysse.lemmyapi.datatypes.CommentAggregates - fun toUni(d: CommentReply): it.vercruysse.lemmyapi.datatypes.CommentReply - fun toUni(d: CommentReplyResponse): it.vercruysse.lemmyapi.datatypes.CommentReplyResponse - fun toUni(d: CommentReplyView): it.vercruysse.lemmyapi.datatypes.CommentReplyView fun toUni(d: CommentReport): it.vercruysse.lemmyapi.datatypes.CommentReport fun toUni(d: CommentReportResponse): it.vercruysse.lemmyapi.datatypes.CommentReportResponse fun toUni(d: CommentReportView): it.vercruysse.lemmyapi.datatypes.CommentReportView fun toUni(d: CommentResponse): it.vercruysse.lemmyapi.datatypes.CommentResponse fun toUni(d: CommentView): it.vercruysse.lemmyapi.datatypes.CommentView fun toUni(d: Community): it.vercruysse.lemmyapi.datatypes.Community - fun toUni(d: CommunityAggregates): it.vercruysse.lemmyapi.datatypes.CommunityAggregates - fun toUni(d: CommunityBlockView): it.vercruysse.lemmyapi.datatypes.CommunityBlockView fun toUni(d: CommunityFollowerView): it.vercruysse.lemmyapi.datatypes.CommunityFollowerView fun toUni(d: CommunityModeratorView): it.vercruysse.lemmyapi.datatypes.CommunityModeratorView fun toUni(d: CommunityResponse): it.vercruysse.lemmyapi.datatypes.CommunityResponse @@ -49,37 +29,17 @@ internal interface MapperGenerator0x19x11 { fun toUni(d: CustomEmojiKeyword): it.vercruysse.lemmyapi.datatypes.CustomEmojiKeyword fun toUni(d: CustomEmojiResponse): it.vercruysse.lemmyapi.datatypes.CustomEmojiResponse fun toUni(d: CustomEmojiView): it.vercruysse.lemmyapi.datatypes.CustomEmojiView - fun toUni(d: FederatedInstances): it.vercruysse.lemmyapi.datatypes.FederatedInstances fun toUni(d: GenerateTotpSecretResponse): it.vercruysse.lemmyapi.datatypes.GenerateTotpSecretResponse fun toUni(d: GetCaptchaResponse): it.vercruysse.lemmyapi.datatypes.GetCaptchaResponse - fun toUni(d: GetCommentsResponse): it.vercruysse.lemmyapi.datatypes.GetCommentsResponse fun toUni(d: GetCommunityResponse): it.vercruysse.lemmyapi.datatypes.GetCommunityResponse - fun toUni(d: GetFederatedInstancesResponse): it.vercruysse.lemmyapi.datatypes.GetFederatedInstancesResponse - fun toUni(d: GetModlogResponse): it.vercruysse.lemmyapi.datatypes.GetModlogResponse fun toUni(d: GetPersonDetailsResponse): it.vercruysse.lemmyapi.datatypes.GetPersonDetailsResponse - fun toUni(d: GetPersonMentionsResponse): it.vercruysse.lemmyapi.datatypes.GetPersonMentionsResponse fun toUni(d: GetPostResponse): it.vercruysse.lemmyapi.datatypes.GetPostResponse - fun toUni(d: GetPostsResponse): it.vercruysse.lemmyapi.datatypes.GetPostsResponse - fun toUni(d: GetRepliesResponse): it.vercruysse.lemmyapi.datatypes.GetRepliesResponse - fun toUni(d: GetReportCountResponse): it.vercruysse.lemmyapi.datatypes.GetReportCountResponse fun toUni(d: GetSiteMetadataResponse): it.vercruysse.lemmyapi.datatypes.GetSiteMetadataResponse fun toUni(d: GetSiteResponse): it.vercruysse.lemmyapi.datatypes.GetSiteResponse - fun toUni(d: GetUnreadCountResponse): it.vercruysse.lemmyapi.datatypes.GetUnreadCountResponse - fun toUni(d: GetUnreadRegistrationApplicationCountResponse): it.vercruysse.lemmyapi.datatypes.GetUnreadRegistrationApplicationCountResponse fun toUni(d: ImageDetails): it.vercruysse.lemmyapi.datatypes.ImageDetails fun toUni(d: Instance): it.vercruysse.lemmyapi.datatypes.Instance - fun toUni(d: InstanceBlockView): it.vercruysse.lemmyapi.datatypes.InstanceBlockView - fun toUni(d: InstanceWithFederationState): it.vercruysse.lemmyapi.datatypes.InstanceWithFederationState fun toUni(d: Language): it.vercruysse.lemmyapi.datatypes.Language fun toUni(d: LinkMetadata): it.vercruysse.lemmyapi.datatypes.LinkMetadata - fun toUni(d: ListCommentLikesResponse): it.vercruysse.lemmyapi.datatypes.ListCommentLikesResponse - fun toUni(d: ListCommentReportsResponse): it.vercruysse.lemmyapi.datatypes.ListCommentReportsResponse - fun toUni(d: ListCommunitiesResponse): it.vercruysse.lemmyapi.datatypes.ListCommunitiesResponse - fun toUni(d: ListMediaResponse): it.vercruysse.lemmyapi.datatypes.ListMediaResponse - fun toUni(d: ListPostLikesResponse): it.vercruysse.lemmyapi.datatypes.ListPostLikesResponse - fun toUni(d: ListPostReportsResponse): it.vercruysse.lemmyapi.datatypes.ListPostReportsResponse - fun toUni(d: ListPrivateMessageReportsResponse): it.vercruysse.lemmyapi.datatypes.ListPrivateMessageReportsResponse - fun toUni(d: ListRegistrationApplicationsResponse): it.vercruysse.lemmyapi.datatypes.ListRegistrationApplicationsResponse fun toUni(d: LocalImage): it.vercruysse.lemmyapi.datatypes.LocalImage fun toUni(d: LocalImageView): it.vercruysse.lemmyapi.datatypes.LocalImageView fun toUni(d: LocalSite): it.vercruysse.lemmyapi.datatypes.LocalSite @@ -87,42 +47,12 @@ internal interface MapperGenerator0x19x11 { fun toUni(d: LocalSiteUrlBlocklist): it.vercruysse.lemmyapi.datatypes.LocalSiteUrlBlocklist fun toUni(d: LocalUser): it.vercruysse.lemmyapi.datatypes.LocalUser fun toUni(d: LocalUserView): it.vercruysse.lemmyapi.datatypes.LocalUserView - fun toUni(d: LocalUserVoteDisplayMode): it.vercruysse.lemmyapi.datatypes.LocalUserVoteDisplayMode fun toUni(d: LoginResponse): it.vercruysse.lemmyapi.datatypes.LoginResponse fun toUni(d: LoginToken): it.vercruysse.lemmyapi.datatypes.LoginToken - fun toUni(d: ModAdd): it.vercruysse.lemmyapi.datatypes.ModAdd - fun toUni(d: ModAddCommunity): it.vercruysse.lemmyapi.datatypes.ModAddCommunity - fun toUni(d: ModAddCommunityView): it.vercruysse.lemmyapi.datatypes.ModAddCommunityView - fun toUni(d: ModAddView): it.vercruysse.lemmyapi.datatypes.ModAddView - fun toUni(d: ModBan): it.vercruysse.lemmyapi.datatypes.ModBan - fun toUni(d: ModBanFromCommunity): it.vercruysse.lemmyapi.datatypes.ModBanFromCommunity - fun toUni(d: ModBanFromCommunityView): it.vercruysse.lemmyapi.datatypes.ModBanFromCommunityView - fun toUni(d: ModBanView): it.vercruysse.lemmyapi.datatypes.ModBanView - fun toUni(d: ModFeaturePost): it.vercruysse.lemmyapi.datatypes.ModFeaturePost - fun toUni(d: ModFeaturePostView): it.vercruysse.lemmyapi.datatypes.ModFeaturePostView - fun toUni(d: ModHideCommunity): it.vercruysse.lemmyapi.datatypes.ModHideCommunity - fun toUni(d: ModHideCommunityView): it.vercruysse.lemmyapi.datatypes.ModHideCommunityView - fun toUni(d: ModLockPost): it.vercruysse.lemmyapi.datatypes.ModLockPost - fun toUni(d: ModLockPostView): it.vercruysse.lemmyapi.datatypes.ModLockPostView - fun toUni(d: ModlogListParams): it.vercruysse.lemmyapi.datatypes.ModlogListParams - fun toUni(d: ModRemoveComment): it.vercruysse.lemmyapi.datatypes.ModRemoveComment - fun toUni(d: ModRemoveCommentView): it.vercruysse.lemmyapi.datatypes.ModRemoveCommentView - fun toUni(d: ModRemoveCommunity): it.vercruysse.lemmyapi.datatypes.ModRemoveCommunity - fun toUni(d: ModRemoveCommunityView): it.vercruysse.lemmyapi.datatypes.ModRemoveCommunityView - fun toUni(d: ModRemovePost): it.vercruysse.lemmyapi.datatypes.ModRemovePost - fun toUni(d: ModRemovePostView): it.vercruysse.lemmyapi.datatypes.ModRemovePostView - fun toUni(d: ModTransferCommunity): it.vercruysse.lemmyapi.datatypes.ModTransferCommunity - fun toUni(d: ModTransferCommunityView): it.vercruysse.lemmyapi.datatypes.ModTransferCommunityView fun toUni(d: MyUserInfo): it.vercruysse.lemmyapi.datatypes.MyUserInfo fun toUni(d: Person): it.vercruysse.lemmyapi.datatypes.Person - fun toUni(d: PersonAggregates): it.vercruysse.lemmyapi.datatypes.PersonAggregates - fun toUni(d: PersonBlockView): it.vercruysse.lemmyapi.datatypes.PersonBlockView - fun toUni(d: PersonMention): it.vercruysse.lemmyapi.datatypes.PersonMention - fun toUni(d: PersonMentionResponse): it.vercruysse.lemmyapi.datatypes.PersonMentionResponse - fun toUni(d: PersonMentionView): it.vercruysse.lemmyapi.datatypes.PersonMentionView fun toUni(d: PersonView): it.vercruysse.lemmyapi.datatypes.PersonView fun toUni(d: Post): it.vercruysse.lemmyapi.datatypes.Post - fun toUni(d: PostAggregates): it.vercruysse.lemmyapi.datatypes.PostAggregates fun toUni(d: PostReport): it.vercruysse.lemmyapi.datatypes.PostReport fun toUni(d: PostReportResponse): it.vercruysse.lemmyapi.datatypes.PostReportResponse fun toUni(d: PostReportView): it.vercruysse.lemmyapi.datatypes.PostReportView @@ -133,20 +63,17 @@ internal interface MapperGenerator0x19x11 { fun toUni(d: PrivateMessageReportResponse): it.vercruysse.lemmyapi.datatypes.PrivateMessageReportResponse fun toUni(d: PrivateMessageReportView): it.vercruysse.lemmyapi.datatypes.PrivateMessageReportView fun toUni(d: PrivateMessageResponse): it.vercruysse.lemmyapi.datatypes.PrivateMessageResponse - fun toUni(d: PrivateMessagesResponse): it.vercruysse.lemmyapi.datatypes.PrivateMessagesResponse fun toUni(d: PrivateMessageView): it.vercruysse.lemmyapi.datatypes.PrivateMessageView - fun toUni(d: ReadableFederationState): it.vercruysse.lemmyapi.datatypes.ReadableFederationState + fun toUni(d: ReadableFederationState): it.vercruysse.lemmyapi.datatypes.FederationQueueState fun toUni(d: RegistrationApplication): it.vercruysse.lemmyapi.datatypes.RegistrationApplication fun toUni(d: RegistrationApplicationResponse): it.vercruysse.lemmyapi.datatypes.RegistrationApplicationResponse fun toUni(d: RegistrationApplicationView): it.vercruysse.lemmyapi.datatypes.RegistrationApplicationView - fun toUni(d: ResolveObjectResponse): it.vercruysse.lemmyapi.datatypes.ResolveObjectResponse fun toUni(d: SearchResponse): it.vercruysse.lemmyapi.datatypes.SearchResponse fun toUni(d: Site): it.vercruysse.lemmyapi.datatypes.Site - fun toUni(d: SiteAggregates): it.vercruysse.lemmyapi.datatypes.SiteAggregates fun toUni(d: SiteResponse): it.vercruysse.lemmyapi.datatypes.SiteResponse fun toUni(d: SiteView): it.vercruysse.lemmyapi.datatypes.SiteView fun toUni(d: Tagline): it.vercruysse.lemmyapi.datatypes.Tagline - fun toUni(d: UpdateTotpResponse): it.vercruysse.lemmyapi.datatypes.UpdateTotpResponse + fun toUni(d: UpdateTotpResponse): it.vercruysse.lemmyapi.datatypes.EditTotpResponse fun toUni(d: VoteView): it.vercruysse.lemmyapi.datatypes.VoteView // body mappings @@ -156,7 +83,7 @@ internal interface MapperGenerator0x19x11 { fun fromUni(d: it.vercruysse.lemmyapi.datatypes.BanFromCommunity): BanFromCommunity fun fromUni(d: it.vercruysse.lemmyapi.datatypes.BanPerson): BanPerson fun fromUni(d: it.vercruysse.lemmyapi.datatypes.BlockCommunity): BlockCommunity - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.BlockInstance): BlockInstance + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.UserBlockInstanceCommunitiesParams): BlockInstance fun fromUni(d: it.vercruysse.lemmyapi.datatypes.BlockPerson): BlockPerson fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ChangePassword): ChangePassword fun fromUni(d: it.vercruysse.lemmyapi.datatypes.CreateComment): CreateComment @@ -190,32 +117,22 @@ internal interface MapperGenerator0x19x11 { fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetCommunity): GetCommunity fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetModlog): GetModlog fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPersonDetails): GetPersonDetails - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPersonMentions): GetPersonMentions fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPost): GetPost fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPosts): GetPosts - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPrivateMessages): GetPrivateMessages fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetRegistrationApplication): GetRegistrationApplication - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetReplies): GetReplies - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetReportCount): GetReportCount fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetSiteMetadata): GetSiteMetadata fun fromUni(d: it.vercruysse.lemmyapi.datatypes.HideCommunity): HideCommunity fun fromUni(d: it.vercruysse.lemmyapi.datatypes.HidePost): HidePost fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListCommentLikes): ListCommentLikes - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListCommentReports): ListCommentReports fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListCommunities): ListCommunities fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListMedia): ListMedia fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListPostLikes): ListPostLikes - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListPostReports): ListPostReports - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListPrivateMessageReports): ListPrivateMessageReports fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListRegistrationApplications): ListRegistrationApplications fun fromUni(d: it.vercruysse.lemmyapi.datatypes.LockPost): LockPost fun fromUni(d: it.vercruysse.lemmyapi.datatypes.Login): Login - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.MarkCommentReplyAsRead): MarkCommentReplyAsRead - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.MarkPersonMentionAsRead): MarkPersonMentionAsRead - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.MarkPostAsRead): MarkPostAsRead - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.MarkPrivateMessageAsRead): MarkPrivateMessageAsRead - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PasswordChangeAfterReset): PasswordChangeAfterReset - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PasswordReset): PasswordReset + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.MarkManyPostsAsRead): MarkPostAsRead + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ChangePasswordAfterReset): PasswordChangeAfterReset + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ResetPassword): PasswordReset fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PurgeComment): PurgeComment fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PurgeCommunity): PurgeCommunity fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PurgePerson): PurgePerson @@ -233,6 +150,6 @@ internal interface MapperGenerator0x19x11 { fun fromUni(d: it.vercruysse.lemmyapi.datatypes.SaveUserSettings): SaveUserSettings fun fromUni(d: it.vercruysse.lemmyapi.datatypes.Search): Search fun fromUni(d: it.vercruysse.lemmyapi.datatypes.TransferCommunity): TransferCommunity - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.UpdateTotp): UpdateTotp + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.EditTotp): UpdateTotp fun fromUni(d: it.vercruysse.lemmyapi.datatypes.VerifyEmail): VerifyEmail } diff --git a/GeneratorScripts/src/main/kotlin/MapperGenerator0x19x3.kt b/GeneratorScripts/src/main/kotlin/MapperGenerator0x19x3.kt index 33e1d079..665be5c3 100644 --- a/GeneratorScripts/src/main/kotlin/MapperGenerator0x19x3.kt +++ b/GeneratorScripts/src/main/kotlin/MapperGenerator0x19x3.kt @@ -1,8 +1,6 @@ @file:Suppress("unused", "INVISIBLE_MEMBER", "INVISIBLE_REFERENCE") -import io.mcarle.konvert.api.Konfig import io.mcarle.konvert.api.Konvert -import io.mcarle.konvert.api.Konverter import io.mcarle.konvert.api.Mapping import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.* @@ -15,13 +13,6 @@ import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.* //) internal interface MapperGenerator0x19x3 { - @Konvert( - mappings = [ - Mapping(target = "banned_from_community", constant = "false"), - ], - ) - fun toUni(d: CommentReplyView): it.vercruysse.lemmyapi.datatypes.CommentReplyView - @Konvert( mappings = [ Mapping(target = "creator_is_moderator", constant = "false"), @@ -47,13 +38,6 @@ internal interface MapperGenerator0x19x3 { ) fun toUni(d: Community): it.vercruysse.lemmyapi.datatypes.Community - @Konvert( - mappings = [ - Mapping(target = "subscribers_local", constant = "-1"), - ] - ) - fun toUni(d: CommunityAggregates): it.vercruysse.lemmyapi.datatypes.CommunityAggregates - @Konvert( mappings = [ Mapping(target = "banned_from_community", constant = "false"), @@ -78,13 +62,6 @@ internal interface MapperGenerator0x19x3 { ) fun toUni(d: LocalSite): it.vercruysse.lemmyapi.datatypes.LocalSite - @Konvert( - mappings = [ - Mapping(target = "banned_from_community", constant = "false"), - ] - ) - fun toUni(d: PersonMentionView): it.vercruysse.lemmyapi.datatypes.PersonMentionView - @Konvert( mappings = [ Mapping(target = "creator_is_moderator", constant = "false"), @@ -117,25 +94,8 @@ internal interface MapperGenerator0x19x3 { // Generated fun toUni(d: AddAdminResponse): it.vercruysse.lemmyapi.datatypes.AddAdminResponse fun toUni(d: AddModToCommunityResponse): it.vercruysse.lemmyapi.datatypes.AddModToCommunityResponse - fun toUni(d: AdminPurgeComment): it.vercruysse.lemmyapi.datatypes.AdminPurgeComment - fun toUni(d: AdminPurgeCommentView): it.vercruysse.lemmyapi.datatypes.AdminPurgeCommentView - fun toUni(d: AdminPurgeCommunity): it.vercruysse.lemmyapi.datatypes.AdminPurgeCommunity - fun toUni(d: AdminPurgeCommunityView): it.vercruysse.lemmyapi.datatypes.AdminPurgeCommunityView - fun toUni(d: AdminPurgePerson): it.vercruysse.lemmyapi.datatypes.AdminPurgePerson - fun toUni(d: AdminPurgePersonView): it.vercruysse.lemmyapi.datatypes.AdminPurgePersonView - fun toUni(d: AdminPurgePost): it.vercruysse.lemmyapi.datatypes.AdminPurgePost - fun toUni(d: AdminPurgePostView): it.vercruysse.lemmyapi.datatypes.AdminPurgePostView - fun toUni(d: BanFromCommunityResponse): it.vercruysse.lemmyapi.datatypes.BanFromCommunityResponse - fun toUni(d: BannedPersonsResponse): it.vercruysse.lemmyapi.datatypes.BannedPersonsResponse - fun toUni(d: BanPersonResponse): it.vercruysse.lemmyapi.datatypes.BanPersonResponse - fun toUni(d: BlockCommunityResponse): it.vercruysse.lemmyapi.datatypes.BlockCommunityResponse - fun toUni(d: BlockInstanceResponse): it.vercruysse.lemmyapi.datatypes.BlockInstanceResponse - fun toUni(d: BlockPersonResponse): it.vercruysse.lemmyapi.datatypes.BlockPersonResponse fun toUni(d: CaptchaResponse): it.vercruysse.lemmyapi.datatypes.CaptchaResponse fun toUni(d: Comment): it.vercruysse.lemmyapi.datatypes.Comment - fun toUni(d: CommentAggregates): it.vercruysse.lemmyapi.datatypes.CommentAggregates - fun toUni(d: CommentReply): it.vercruysse.lemmyapi.datatypes.CommentReply - fun toUni(d: CommentReplyResponse): it.vercruysse.lemmyapi.datatypes.CommentReplyResponse fun toUni(d: CommentReport): it.vercruysse.lemmyapi.datatypes.CommentReport fun toUni(d: CommentReportResponse): it.vercruysse.lemmyapi.datatypes.CommentReportResponse @@ -144,7 +104,6 @@ internal interface MapperGenerator0x19x3 { - fun toUni(d: CommunityBlockView): it.vercruysse.lemmyapi.datatypes.CommunityBlockView fun toUni(d: CommunityFollowerView): it.vercruysse.lemmyapi.datatypes.CommunityFollowerView fun toUni(d: CommunityModeratorView): it.vercruysse.lemmyapi.datatypes.CommunityModeratorView fun toUni(d: CommunityResponse): it.vercruysse.lemmyapi.datatypes.CommunityResponse @@ -153,73 +112,26 @@ internal interface MapperGenerator0x19x3 { fun toUni(d: CustomEmojiKeyword): it.vercruysse.lemmyapi.datatypes.CustomEmojiKeyword fun toUni(d: CustomEmojiResponse): it.vercruysse.lemmyapi.datatypes.CustomEmojiResponse fun toUni(d: CustomEmojiView): it.vercruysse.lemmyapi.datatypes.CustomEmojiView - fun toUni(d: FederatedInstances): it.vercruysse.lemmyapi.datatypes.FederatedInstances fun toUni(d: GenerateTotpSecretResponse): it.vercruysse.lemmyapi.datatypes.GenerateTotpSecretResponse fun toUni(d: GetCaptchaResponse): it.vercruysse.lemmyapi.datatypes.GetCaptchaResponse - fun toUni(d: GetCommentsResponse): it.vercruysse.lemmyapi.datatypes.GetCommentsResponse fun toUni(d: GetCommunityResponse): it.vercruysse.lemmyapi.datatypes.GetCommunityResponse - fun toUni(d: GetFederatedInstancesResponse): it.vercruysse.lemmyapi.datatypes.GetFederatedInstancesResponse - fun toUni(d: GetModlogResponse): it.vercruysse.lemmyapi.datatypes.GetModlogResponse fun toUni(d: GetPersonDetailsResponse): it.vercruysse.lemmyapi.datatypes.GetPersonDetailsResponse - fun toUni(d: GetPersonMentionsResponse): it.vercruysse.lemmyapi.datatypes.GetPersonMentionsResponse fun toUni(d: GetPostResponse): it.vercruysse.lemmyapi.datatypes.GetPostResponse - fun toUni(d: GetPostsResponse): it.vercruysse.lemmyapi.datatypes.GetPostsResponse - fun toUni(d: GetRepliesResponse): it.vercruysse.lemmyapi.datatypes.GetRepliesResponse - fun toUni(d: GetReportCountResponse): it.vercruysse.lemmyapi.datatypes.GetReportCountResponse fun toUni(d: GetSiteMetadataResponse): it.vercruysse.lemmyapi.datatypes.GetSiteMetadataResponse - fun toUni(d: GetUnreadCountResponse): it.vercruysse.lemmyapi.datatypes.GetUnreadCountResponse - fun toUni(d: GetUnreadRegistrationApplicationCountResponse): it.vercruysse.lemmyapi.datatypes.GetUnreadRegistrationApplicationCountResponse fun toUni(d: Instance): it.vercruysse.lemmyapi.datatypes.Instance - fun toUni(d: InstanceBlockView): it.vercruysse.lemmyapi.datatypes.InstanceBlockView - fun toUni(d: InstanceWithFederationState): it.vercruysse.lemmyapi.datatypes.InstanceWithFederationState fun toUni(d: Language): it.vercruysse.lemmyapi.datatypes.Language - fun toUni(d: ListCommentLikesResponse): it.vercruysse.lemmyapi.datatypes.ListCommentLikesResponse - fun toUni(d: ListCommentReportsResponse): it.vercruysse.lemmyapi.datatypes.ListCommentReportsResponse - fun toUni(d: ListCommunitiesResponse): it.vercruysse.lemmyapi.datatypes.ListCommunitiesResponse - fun toUni(d: ListPostLikesResponse): it.vercruysse.lemmyapi.datatypes.ListPostLikesResponse - fun toUni(d: ListPostReportsResponse): it.vercruysse.lemmyapi.datatypes.ListPostReportsResponse - fun toUni(d: ListPrivateMessageReportsResponse): it.vercruysse.lemmyapi.datatypes.ListPrivateMessageReportsResponse - fun toUni(d: ListRegistrationApplicationsResponse): it.vercruysse.lemmyapi.datatypes.ListRegistrationApplicationsResponse fun toUni(d: LocalSiteRateLimit): it.vercruysse.lemmyapi.datatypes.LocalSiteRateLimit fun toUni(d: LocalUser): it.vercruysse.lemmyapi.datatypes.LocalUser fun toUni(d: LocalUserView): it.vercruysse.lemmyapi.datatypes.LocalUserView fun toUni(d: LoginResponse): it.vercruysse.lemmyapi.datatypes.LoginResponse fun toUni(d: LoginToken): it.vercruysse.lemmyapi.datatypes.LoginToken - fun toUni(d: ModAdd): it.vercruysse.lemmyapi.datatypes.ModAdd - fun toUni(d: ModAddCommunity): it.vercruysse.lemmyapi.datatypes.ModAddCommunity - fun toUni(d: ModAddCommunityView): it.vercruysse.lemmyapi.datatypes.ModAddCommunityView - fun toUni(d: ModAddView): it.vercruysse.lemmyapi.datatypes.ModAddView - fun toUni(d: ModBan): it.vercruysse.lemmyapi.datatypes.ModBan - fun toUni(d: ModBanFromCommunity): it.vercruysse.lemmyapi.datatypes.ModBanFromCommunity - fun toUni(d: ModBanFromCommunityView): it.vercruysse.lemmyapi.datatypes.ModBanFromCommunityView - fun toUni(d: ModBanView): it.vercruysse.lemmyapi.datatypes.ModBanView - fun toUni(d: ModFeaturePost): it.vercruysse.lemmyapi.datatypes.ModFeaturePost - fun toUni(d: ModFeaturePostView): it.vercruysse.lemmyapi.datatypes.ModFeaturePostView - fun toUni(d: ModHideCommunity): it.vercruysse.lemmyapi.datatypes.ModHideCommunity - fun toUni(d: ModHideCommunityView): it.vercruysse.lemmyapi.datatypes.ModHideCommunityView - fun toUni(d: ModLockPost): it.vercruysse.lemmyapi.datatypes.ModLockPost - fun toUni(d: ModLockPostView): it.vercruysse.lemmyapi.datatypes.ModLockPostView - fun toUni(d: ModlogListParams): it.vercruysse.lemmyapi.datatypes.ModlogListParams - fun toUni(d: ModRemoveComment): it.vercruysse.lemmyapi.datatypes.ModRemoveComment - fun toUni(d: ModRemoveCommentView): it.vercruysse.lemmyapi.datatypes.ModRemoveCommentView - fun toUni(d: ModRemoveCommunity): it.vercruysse.lemmyapi.datatypes.ModRemoveCommunity - fun toUni(d: ModRemoveCommunityView): it.vercruysse.lemmyapi.datatypes.ModRemoveCommunityView - fun toUni(d: ModRemovePost): it.vercruysse.lemmyapi.datatypes.ModRemovePost - fun toUni(d: ModRemovePostView): it.vercruysse.lemmyapi.datatypes.ModRemovePostView - fun toUni(d: ModTransferCommunity): it.vercruysse.lemmyapi.datatypes.ModTransferCommunity - fun toUni(d: ModTransferCommunityView): it.vercruysse.lemmyapi.datatypes.ModTransferCommunityView fun toUni(d: MyUserInfo): it.vercruysse.lemmyapi.datatypes.MyUserInfo fun toUni(d: Person): it.vercruysse.lemmyapi.datatypes.Person - fun toUni(d: PersonAggregates): it.vercruysse.lemmyapi.datatypes.PersonAggregates - fun toUni(d: PersonBlockView): it.vercruysse.lemmyapi.datatypes.PersonBlockView - fun toUni(d: PersonMention): it.vercruysse.lemmyapi.datatypes.PersonMention - fun toUni(d: PersonMentionResponse): it.vercruysse.lemmyapi.datatypes.PersonMentionResponse fun toUni(d: PersonView): it.vercruysse.lemmyapi.datatypes.PersonView fun toUni(d: Post): it.vercruysse.lemmyapi.datatypes.Post - fun toUni(d: PostAggregates): it.vercruysse.lemmyapi.datatypes.PostAggregates fun toUni(d: PostReport): it.vercruysse.lemmyapi.datatypes.PostReport fun toUni(d: PostReportResponse): it.vercruysse.lemmyapi.datatypes.PostReportResponse @@ -230,20 +142,17 @@ internal interface MapperGenerator0x19x3 { fun toUni(d: PrivateMessageReportResponse): it.vercruysse.lemmyapi.datatypes.PrivateMessageReportResponse fun toUni(d: PrivateMessageReportView): it.vercruysse.lemmyapi.datatypes.PrivateMessageReportView fun toUni(d: PrivateMessageResponse): it.vercruysse.lemmyapi.datatypes.PrivateMessageResponse - fun toUni(d: PrivateMessagesResponse): it.vercruysse.lemmyapi.datatypes.PrivateMessagesResponse fun toUni(d: PrivateMessageView): it.vercruysse.lemmyapi.datatypes.PrivateMessageView - fun toUni(d: ReadableFederationState): it.vercruysse.lemmyapi.datatypes.ReadableFederationState + fun toUni(d: ReadableFederationState): it.vercruysse.lemmyapi.datatypes.FederationQueueState fun toUni(d: RegistrationApplication): it.vercruysse.lemmyapi.datatypes.RegistrationApplication fun toUni(d: RegistrationApplicationResponse): it.vercruysse.lemmyapi.datatypes.RegistrationApplicationResponse fun toUni(d: RegistrationApplicationView): it.vercruysse.lemmyapi.datatypes.RegistrationApplicationView - fun toUni(d: ResolveObjectResponse): it.vercruysse.lemmyapi.datatypes.ResolveObjectResponse fun toUni(d: SearchResponse): it.vercruysse.lemmyapi.datatypes.SearchResponse fun toUni(d: Site): it.vercruysse.lemmyapi.datatypes.Site - fun toUni(d: SiteAggregates): it.vercruysse.lemmyapi.datatypes.SiteAggregates fun toUni(d: SiteResponse): it.vercruysse.lemmyapi.datatypes.SiteResponse fun toUni(d: SiteView): it.vercruysse.lemmyapi.datatypes.SiteView fun toUni(d: Tagline): it.vercruysse.lemmyapi.datatypes.Tagline - fun toUni(d: UpdateTotpResponse): it.vercruysse.lemmyapi.datatypes.UpdateTotpResponse + fun toUni(d: UpdateTotpResponse): it.vercruysse.lemmyapi.datatypes.EditTotpResponse // body mappings fun fromUni(d: it.vercruysse.lemmyapi.datatypes.AddAdmin): AddAdmin @@ -252,7 +161,7 @@ internal interface MapperGenerator0x19x3 { fun fromUni(d: it.vercruysse.lemmyapi.datatypes.BanFromCommunity): BanFromCommunity fun fromUni(d: it.vercruysse.lemmyapi.datatypes.BanPerson): BanPerson fun fromUni(d: it.vercruysse.lemmyapi.datatypes.BlockCommunity): BlockCommunity - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.BlockInstance): BlockInstance + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.UserBlockInstanceCommunitiesParams): BlockInstance fun fromUni(d: it.vercruysse.lemmyapi.datatypes.BlockPerson): BlockPerson fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ChangePassword): ChangePassword fun fromUni(d: it.vercruysse.lemmyapi.datatypes.CreateComment): CreateComment @@ -286,29 +195,19 @@ internal interface MapperGenerator0x19x3 { fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetCommunity): GetCommunity fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetModlog): GetModlog fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPersonDetails): GetPersonDetails - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPersonMentions): GetPersonMentions fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPost): GetPost fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPosts): GetPosts - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPrivateMessages): GetPrivateMessages - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetReplies): GetReplies - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetReportCount): GetReportCount fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetSiteMetadata): GetSiteMetadata fun fromUni(d: it.vercruysse.lemmyapi.datatypes.HideCommunity): HideCommunity fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListCommentLikes): ListCommentLikes - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListCommentReports): ListCommentReports fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListCommunities): ListCommunities fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListPostLikes): ListPostLikes - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListPostReports): ListPostReports - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListPrivateMessageReports): ListPrivateMessageReports fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListRegistrationApplications): ListRegistrationApplications fun fromUni(d: it.vercruysse.lemmyapi.datatypes.LockPost): LockPost fun fromUni(d: it.vercruysse.lemmyapi.datatypes.Login): Login - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.MarkCommentReplyAsRead): MarkCommentReplyAsRead - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.MarkPersonMentionAsRead): MarkPersonMentionAsRead - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.MarkPostAsRead): MarkPostAsRead - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.MarkPrivateMessageAsRead): MarkPrivateMessageAsRead - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PasswordChangeAfterReset): PasswordChangeAfterReset - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PasswordReset): PasswordReset + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.MarkManyPostsAsRead): MarkPostAsRead + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ChangePasswordAfterReset): PasswordChangeAfterReset + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ResetPassword): PasswordReset fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PurgeComment): PurgeComment fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PurgeCommunity): PurgeCommunity fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PurgePerson): PurgePerson @@ -326,7 +225,7 @@ internal interface MapperGenerator0x19x3 { fun fromUni(d: it.vercruysse.lemmyapi.datatypes.SaveUserSettings): SaveUserSettings fun fromUni(d: it.vercruysse.lemmyapi.datatypes.Search): Search fun fromUni(d: it.vercruysse.lemmyapi.datatypes.TransferCommunity): TransferCommunity - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.UpdateTotp): UpdateTotp + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.EditTotp): UpdateTotp fun fromUni(d: it.vercruysse.lemmyapi.datatypes.VerifyEmail): VerifyEmail } diff --git a/GeneratorScripts/src/main/kotlin/MapperGenerator0x19x4.kt b/GeneratorScripts/src/main/kotlin/MapperGenerator0x19x4.kt index 7786c223..030c0c18 100644 --- a/GeneratorScripts/src/main/kotlin/MapperGenerator0x19x4.kt +++ b/GeneratorScripts/src/main/kotlin/MapperGenerator0x19x4.kt @@ -1,7 +1,5 @@ @file:Suppress("unused", "INVISIBLE_MEMBER", "INVISIBLE_REFERENCE") -import io.mcarle.konvert.api.Konfig -import io.mcarle.konvert.api.Konverter import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.* //@Konverter( @@ -15,34 +13,14 @@ internal interface MapperGenerator0x19x4 { fun toUni(d: AddAdminResponse): it.vercruysse.lemmyapi.datatypes.AddAdminResponse fun toUni(d: AddModToCommunityResponse): it.vercruysse.lemmyapi.datatypes.AddModToCommunityResponse - fun toUni(d: AdminPurgeComment): it.vercruysse.lemmyapi.datatypes.AdminPurgeComment - fun toUni(d: AdminPurgeCommentView): it.vercruysse.lemmyapi.datatypes.AdminPurgeCommentView - fun toUni(d: AdminPurgeCommunity): it.vercruysse.lemmyapi.datatypes.AdminPurgeCommunity - fun toUni(d: AdminPurgeCommunityView): it.vercruysse.lemmyapi.datatypes.AdminPurgeCommunityView - fun toUni(d: AdminPurgePerson): it.vercruysse.lemmyapi.datatypes.AdminPurgePerson - fun toUni(d: AdminPurgePersonView): it.vercruysse.lemmyapi.datatypes.AdminPurgePersonView - fun toUni(d: AdminPurgePost): it.vercruysse.lemmyapi.datatypes.AdminPurgePost - fun toUni(d: AdminPurgePostView): it.vercruysse.lemmyapi.datatypes.AdminPurgePostView - fun toUni(d: BanFromCommunityResponse): it.vercruysse.lemmyapi.datatypes.BanFromCommunityResponse - fun toUni(d: BannedPersonsResponse): it.vercruysse.lemmyapi.datatypes.BannedPersonsResponse - fun toUni(d: BanPersonResponse): it.vercruysse.lemmyapi.datatypes.BanPersonResponse - fun toUni(d: BlockCommunityResponse): it.vercruysse.lemmyapi.datatypes.BlockCommunityResponse - fun toUni(d: BlockInstanceResponse): it.vercruysse.lemmyapi.datatypes.BlockInstanceResponse - fun toUni(d: BlockPersonResponse): it.vercruysse.lemmyapi.datatypes.BlockPersonResponse fun toUni(d: CaptchaResponse): it.vercruysse.lemmyapi.datatypes.CaptchaResponse fun toUni(d: Comment): it.vercruysse.lemmyapi.datatypes.Comment - fun toUni(d: CommentAggregates): it.vercruysse.lemmyapi.datatypes.CommentAggregates - fun toUni(d: CommentReply): it.vercruysse.lemmyapi.datatypes.CommentReply - fun toUni(d: CommentReplyResponse): it.vercruysse.lemmyapi.datatypes.CommentReplyResponse - fun toUni(d: CommentReplyView): it.vercruysse.lemmyapi.datatypes.CommentReplyView fun toUni(d: CommentReport): it.vercruysse.lemmyapi.datatypes.CommentReport fun toUni(d: CommentReportResponse): it.vercruysse.lemmyapi.datatypes.CommentReportResponse fun toUni(d: CommentReportView): it.vercruysse.lemmyapi.datatypes.CommentReportView fun toUni(d: CommentResponse): it.vercruysse.lemmyapi.datatypes.CommentResponse fun toUni(d: CommentView): it.vercruysse.lemmyapi.datatypes.CommentView fun toUni(d: Community): it.vercruysse.lemmyapi.datatypes.Community - fun toUni(d: CommunityAggregates): it.vercruysse.lemmyapi.datatypes.CommunityAggregates - fun toUni(d: CommunityBlockView): it.vercruysse.lemmyapi.datatypes.CommunityBlockView fun toUni(d: CommunityFollowerView): it.vercruysse.lemmyapi.datatypes.CommunityFollowerView fun toUni(d: CommunityModeratorView): it.vercruysse.lemmyapi.datatypes.CommunityModeratorView fun toUni(d: CommunityResponse): it.vercruysse.lemmyapi.datatypes.CommunityResponse @@ -51,36 +29,16 @@ internal interface MapperGenerator0x19x4 { fun toUni(d: CustomEmojiKeyword): it.vercruysse.lemmyapi.datatypes.CustomEmojiKeyword fun toUni(d: CustomEmojiResponse): it.vercruysse.lemmyapi.datatypes.CustomEmojiResponse fun toUni(d: CustomEmojiView): it.vercruysse.lemmyapi.datatypes.CustomEmojiView - fun toUni(d: FederatedInstances): it.vercruysse.lemmyapi.datatypes.FederatedInstances fun toUni(d: GenerateTotpSecretResponse): it.vercruysse.lemmyapi.datatypes.GenerateTotpSecretResponse fun toUni(d: GetCaptchaResponse): it.vercruysse.lemmyapi.datatypes.GetCaptchaResponse - fun toUni(d: GetCommentsResponse): it.vercruysse.lemmyapi.datatypes.GetCommentsResponse fun toUni(d: GetCommunityResponse): it.vercruysse.lemmyapi.datatypes.GetCommunityResponse - fun toUni(d: GetFederatedInstancesResponse): it.vercruysse.lemmyapi.datatypes.GetFederatedInstancesResponse - fun toUni(d: GetModlogResponse): it.vercruysse.lemmyapi.datatypes.GetModlogResponse fun toUni(d: GetPersonDetailsResponse): it.vercruysse.lemmyapi.datatypes.GetPersonDetailsResponse - fun toUni(d: GetPersonMentionsResponse): it.vercruysse.lemmyapi.datatypes.GetPersonMentionsResponse fun toUni(d: GetPostResponse): it.vercruysse.lemmyapi.datatypes.GetPostResponse - fun toUni(d: GetPostsResponse): it.vercruysse.lemmyapi.datatypes.GetPostsResponse - fun toUni(d: GetRepliesResponse): it.vercruysse.lemmyapi.datatypes.GetRepliesResponse - fun toUni(d: GetReportCountResponse): it.vercruysse.lemmyapi.datatypes.GetReportCountResponse fun toUni(d: GetSiteMetadataResponse): it.vercruysse.lemmyapi.datatypes.GetSiteMetadataResponse fun toUni(d: GetSiteResponse): it.vercruysse.lemmyapi.datatypes.GetSiteResponse - fun toUni(d: GetUnreadCountResponse): it.vercruysse.lemmyapi.datatypes.GetUnreadCountResponse - fun toUni(d: GetUnreadRegistrationApplicationCountResponse): it.vercruysse.lemmyapi.datatypes.GetUnreadRegistrationApplicationCountResponse fun toUni(d: Instance): it.vercruysse.lemmyapi.datatypes.Instance - fun toUni(d: InstanceBlockView): it.vercruysse.lemmyapi.datatypes.InstanceBlockView - fun toUni(d: InstanceWithFederationState): it.vercruysse.lemmyapi.datatypes.InstanceWithFederationState fun toUni(d: Language): it.vercruysse.lemmyapi.datatypes.Language fun toUni(d: LinkMetadata): it.vercruysse.lemmyapi.datatypes.LinkMetadata - fun toUni(d: ListCommentLikesResponse): it.vercruysse.lemmyapi.datatypes.ListCommentLikesResponse - fun toUni(d: ListCommentReportsResponse): it.vercruysse.lemmyapi.datatypes.ListCommentReportsResponse - fun toUni(d: ListCommunitiesResponse): it.vercruysse.lemmyapi.datatypes.ListCommunitiesResponse - fun toUni(d: ListMediaResponse): it.vercruysse.lemmyapi.datatypes.ListMediaResponse - fun toUni(d: ListPostLikesResponse): it.vercruysse.lemmyapi.datatypes.ListPostLikesResponse - fun toUni(d: ListPostReportsResponse): it.vercruysse.lemmyapi.datatypes.ListPostReportsResponse - fun toUni(d: ListPrivateMessageReportsResponse): it.vercruysse.lemmyapi.datatypes.ListPrivateMessageReportsResponse - fun toUni(d: ListRegistrationApplicationsResponse): it.vercruysse.lemmyapi.datatypes.ListRegistrationApplicationsResponse fun toUni(d: LocalImage): it.vercruysse.lemmyapi.datatypes.LocalImage fun toUni(d: LocalImageView): it.vercruysse.lemmyapi.datatypes.LocalImageView fun toUni(d: LocalSite): it.vercruysse.lemmyapi.datatypes.LocalSite @@ -88,42 +46,12 @@ internal interface MapperGenerator0x19x4 { fun toUni(d: LocalSiteUrlBlocklist): it.vercruysse.lemmyapi.datatypes.LocalSiteUrlBlocklist fun toUni(d: LocalUser): it.vercruysse.lemmyapi.datatypes.LocalUser fun toUni(d: LocalUserView): it.vercruysse.lemmyapi.datatypes.LocalUserView - fun toUni(d: LocalUserVoteDisplayMode): it.vercruysse.lemmyapi.datatypes.LocalUserVoteDisplayMode fun toUni(d: LoginResponse): it.vercruysse.lemmyapi.datatypes.LoginResponse fun toUni(d: LoginToken): it.vercruysse.lemmyapi.datatypes.LoginToken - fun toUni(d: ModAdd): it.vercruysse.lemmyapi.datatypes.ModAdd - fun toUni(d: ModAddCommunity): it.vercruysse.lemmyapi.datatypes.ModAddCommunity - fun toUni(d: ModAddCommunityView): it.vercruysse.lemmyapi.datatypes.ModAddCommunityView - fun toUni(d: ModAddView): it.vercruysse.lemmyapi.datatypes.ModAddView - fun toUni(d: ModBan): it.vercruysse.lemmyapi.datatypes.ModBan - fun toUni(d: ModBanFromCommunity): it.vercruysse.lemmyapi.datatypes.ModBanFromCommunity - fun toUni(d: ModBanFromCommunityView): it.vercruysse.lemmyapi.datatypes.ModBanFromCommunityView - fun toUni(d: ModBanView): it.vercruysse.lemmyapi.datatypes.ModBanView - fun toUni(d: ModFeaturePost): it.vercruysse.lemmyapi.datatypes.ModFeaturePost - fun toUni(d: ModFeaturePostView): it.vercruysse.lemmyapi.datatypes.ModFeaturePostView - fun toUni(d: ModHideCommunity): it.vercruysse.lemmyapi.datatypes.ModHideCommunity - fun toUni(d: ModHideCommunityView): it.vercruysse.lemmyapi.datatypes.ModHideCommunityView - fun toUni(d: ModLockPost): it.vercruysse.lemmyapi.datatypes.ModLockPost - fun toUni(d: ModLockPostView): it.vercruysse.lemmyapi.datatypes.ModLockPostView - fun toUni(d: ModlogListParams): it.vercruysse.lemmyapi.datatypes.ModlogListParams - fun toUni(d: ModRemoveComment): it.vercruysse.lemmyapi.datatypes.ModRemoveComment - fun toUni(d: ModRemoveCommentView): it.vercruysse.lemmyapi.datatypes.ModRemoveCommentView - fun toUni(d: ModRemoveCommunity): it.vercruysse.lemmyapi.datatypes.ModRemoveCommunity - fun toUni(d: ModRemoveCommunityView): it.vercruysse.lemmyapi.datatypes.ModRemoveCommunityView - fun toUni(d: ModRemovePost): it.vercruysse.lemmyapi.datatypes.ModRemovePost - fun toUni(d: ModRemovePostView): it.vercruysse.lemmyapi.datatypes.ModRemovePostView - fun toUni(d: ModTransferCommunity): it.vercruysse.lemmyapi.datatypes.ModTransferCommunity - fun toUni(d: ModTransferCommunityView): it.vercruysse.lemmyapi.datatypes.ModTransferCommunityView fun toUni(d: MyUserInfo): it.vercruysse.lemmyapi.datatypes.MyUserInfo fun toUni(d: Person): it.vercruysse.lemmyapi.datatypes.Person - fun toUni(d: PersonAggregates): it.vercruysse.lemmyapi.datatypes.PersonAggregates - fun toUni(d: PersonBlockView): it.vercruysse.lemmyapi.datatypes.PersonBlockView - fun toUni(d: PersonMention): it.vercruysse.lemmyapi.datatypes.PersonMention - fun toUni(d: PersonMentionResponse): it.vercruysse.lemmyapi.datatypes.PersonMentionResponse - fun toUni(d: PersonMentionView): it.vercruysse.lemmyapi.datatypes.PersonMentionView fun toUni(d: PersonView): it.vercruysse.lemmyapi.datatypes.PersonView fun toUni(d: Post): it.vercruysse.lemmyapi.datatypes.Post - fun toUni(d: PostAggregates): it.vercruysse.lemmyapi.datatypes.PostAggregates fun toUni(d: PostReport): it.vercruysse.lemmyapi.datatypes.PostReport fun toUni(d: PostReportResponse): it.vercruysse.lemmyapi.datatypes.PostReportResponse fun toUni(d: PostReportView): it.vercruysse.lemmyapi.datatypes.PostReportView @@ -134,20 +62,17 @@ internal interface MapperGenerator0x19x4 { fun toUni(d: PrivateMessageReportResponse): it.vercruysse.lemmyapi.datatypes.PrivateMessageReportResponse fun toUni(d: PrivateMessageReportView): it.vercruysse.lemmyapi.datatypes.PrivateMessageReportView fun toUni(d: PrivateMessageResponse): it.vercruysse.lemmyapi.datatypes.PrivateMessageResponse - fun toUni(d: PrivateMessagesResponse): it.vercruysse.lemmyapi.datatypes.PrivateMessagesResponse fun toUni(d: PrivateMessageView): it.vercruysse.lemmyapi.datatypes.PrivateMessageView - fun toUni(d: ReadableFederationState): it.vercruysse.lemmyapi.datatypes.ReadableFederationState + fun toUni(d: ReadableFederationState): it.vercruysse.lemmyapi.datatypes.FederationQueueState fun toUni(d: RegistrationApplication): it.vercruysse.lemmyapi.datatypes.RegistrationApplication fun toUni(d: RegistrationApplicationResponse): it.vercruysse.lemmyapi.datatypes.RegistrationApplicationResponse fun toUni(d: RegistrationApplicationView): it.vercruysse.lemmyapi.datatypes.RegistrationApplicationView - fun toUni(d: ResolveObjectResponse): it.vercruysse.lemmyapi.datatypes.ResolveObjectResponse fun toUni(d: SearchResponse): it.vercruysse.lemmyapi.datatypes.SearchResponse fun toUni(d: Site): it.vercruysse.lemmyapi.datatypes.Site - fun toUni(d: SiteAggregates): it.vercruysse.lemmyapi.datatypes.SiteAggregates fun toUni(d: SiteResponse): it.vercruysse.lemmyapi.datatypes.SiteResponse fun toUni(d: SiteView): it.vercruysse.lemmyapi.datatypes.SiteView fun toUni(d: Tagline): it.vercruysse.lemmyapi.datatypes.Tagline - fun toUni(d: UpdateTotpResponse): it.vercruysse.lemmyapi.datatypes.UpdateTotpResponse + fun toUni(d: UpdateTotpResponse): it.vercruysse.lemmyapi.datatypes.EditTotpResponse fun toUni(d: VoteView): it.vercruysse.lemmyapi.datatypes.VoteView // body mappings @@ -157,7 +82,7 @@ internal interface MapperGenerator0x19x4 { fun fromUni(d: it.vercruysse.lemmyapi.datatypes.BanFromCommunity): BanFromCommunity fun fromUni(d: it.vercruysse.lemmyapi.datatypes.BanPerson): BanPerson fun fromUni(d: it.vercruysse.lemmyapi.datatypes.BlockCommunity): BlockCommunity - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.BlockInstance): BlockInstance + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.UserBlockInstanceCommunitiesParams): BlockInstance fun fromUni(d: it.vercruysse.lemmyapi.datatypes.BlockPerson): BlockPerson fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ChangePassword): ChangePassword fun fromUni(d: it.vercruysse.lemmyapi.datatypes.CreateComment): CreateComment @@ -191,31 +116,21 @@ internal interface MapperGenerator0x19x4 { fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetCommunity): GetCommunity fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetModlog): GetModlog fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPersonDetails): GetPersonDetails - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPersonMentions): GetPersonMentions fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPost): GetPost fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPosts): GetPosts - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPrivateMessages): GetPrivateMessages - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetReplies): GetReplies - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetReportCount): GetReportCount fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetSiteMetadata): GetSiteMetadata fun fromUni(d: it.vercruysse.lemmyapi.datatypes.HideCommunity): HideCommunity fun fromUni(d: it.vercruysse.lemmyapi.datatypes.HidePost): HidePost fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListCommentLikes): ListCommentLikes - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListCommentReports): ListCommentReports fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListCommunities): ListCommunities fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListMedia): ListMedia fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListPostLikes): ListPostLikes - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListPostReports): ListPostReports - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListPrivateMessageReports): ListPrivateMessageReports fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListRegistrationApplications): ListRegistrationApplications fun fromUni(d: it.vercruysse.lemmyapi.datatypes.LockPost): LockPost fun fromUni(d: it.vercruysse.lemmyapi.datatypes.Login): Login - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.MarkCommentReplyAsRead): MarkCommentReplyAsRead - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.MarkPersonMentionAsRead): MarkPersonMentionAsRead - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.MarkPostAsRead): MarkPostAsRead - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.MarkPrivateMessageAsRead): MarkPrivateMessageAsRead - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PasswordChangeAfterReset): PasswordChangeAfterReset - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PasswordReset): PasswordReset + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.MarkManyPostsAsRead): MarkPostAsRead + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ChangePasswordAfterReset): PasswordChangeAfterReset + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ResetPassword): PasswordReset fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PurgeComment): PurgeComment fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PurgeCommunity): PurgeCommunity fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PurgePerson): PurgePerson @@ -233,6 +148,6 @@ internal interface MapperGenerator0x19x4 { fun fromUni(d: it.vercruysse.lemmyapi.datatypes.SaveUserSettings): SaveUserSettings fun fromUni(d: it.vercruysse.lemmyapi.datatypes.Search): Search fun fromUni(d: it.vercruysse.lemmyapi.datatypes.TransferCommunity): TransferCommunity - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.UpdateTotp): UpdateTotp + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.EditTotp): UpdateTotp fun fromUni(d: it.vercruysse.lemmyapi.datatypes.VerifyEmail): VerifyEmail } diff --git a/GeneratorScripts/src/main/kotlin/MapperGenerator0x19x6.kt b/GeneratorScripts/src/main/kotlin/MapperGenerator0x19x6.kt index 51f100bd..04b7a93b 100644 --- a/GeneratorScripts/src/main/kotlin/MapperGenerator0x19x6.kt +++ b/GeneratorScripts/src/main/kotlin/MapperGenerator0x19x6.kt @@ -1,7 +1,5 @@ @file:Suppress("unused", "INVISIBLE_MEMBER", "INVISIBLE_REFERENCE") -import io.mcarle.konvert.api.Konfig -import io.mcarle.konvert.api.Konverter import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.* //@Konverter( @@ -15,34 +13,14 @@ internal interface MapperGenerator0x19x6 { fun toUni(d: AddAdminResponse): it.vercruysse.lemmyapi.datatypes.AddAdminResponse fun toUni(d: AddModToCommunityResponse): it.vercruysse.lemmyapi.datatypes.AddModToCommunityResponse - fun toUni(d: AdminPurgeComment): it.vercruysse.lemmyapi.datatypes.AdminPurgeComment - fun toUni(d: AdminPurgeCommentView): it.vercruysse.lemmyapi.datatypes.AdminPurgeCommentView - fun toUni(d: AdminPurgeCommunity): it.vercruysse.lemmyapi.datatypes.AdminPurgeCommunity - fun toUni(d: AdminPurgeCommunityView): it.vercruysse.lemmyapi.datatypes.AdminPurgeCommunityView - fun toUni(d: AdminPurgePerson): it.vercruysse.lemmyapi.datatypes.AdminPurgePerson - fun toUni(d: AdminPurgePersonView): it.vercruysse.lemmyapi.datatypes.AdminPurgePersonView - fun toUni(d: AdminPurgePost): it.vercruysse.lemmyapi.datatypes.AdminPurgePost - fun toUni(d: AdminPurgePostView): it.vercruysse.lemmyapi.datatypes.AdminPurgePostView - fun toUni(d: BanFromCommunityResponse): it.vercruysse.lemmyapi.datatypes.BanFromCommunityResponse - fun toUni(d: BannedPersonsResponse): it.vercruysse.lemmyapi.datatypes.BannedPersonsResponse - fun toUni(d: BanPersonResponse): it.vercruysse.lemmyapi.datatypes.BanPersonResponse - fun toUni(d: BlockCommunityResponse): it.vercruysse.lemmyapi.datatypes.BlockCommunityResponse - fun toUni(d: BlockInstanceResponse): it.vercruysse.lemmyapi.datatypes.BlockInstanceResponse - fun toUni(d: BlockPersonResponse): it.vercruysse.lemmyapi.datatypes.BlockPersonResponse fun toUni(d: CaptchaResponse): it.vercruysse.lemmyapi.datatypes.CaptchaResponse fun toUni(d: Comment): it.vercruysse.lemmyapi.datatypes.Comment - fun toUni(d: CommentAggregates): it.vercruysse.lemmyapi.datatypes.CommentAggregates - fun toUni(d: CommentReply): it.vercruysse.lemmyapi.datatypes.CommentReply - fun toUni(d: CommentReplyResponse): it.vercruysse.lemmyapi.datatypes.CommentReplyResponse - fun toUni(d: CommentReplyView): it.vercruysse.lemmyapi.datatypes.CommentReplyView fun toUni(d: CommentReport): it.vercruysse.lemmyapi.datatypes.CommentReport fun toUni(d: CommentReportResponse): it.vercruysse.lemmyapi.datatypes.CommentReportResponse fun toUni(d: CommentReportView): it.vercruysse.lemmyapi.datatypes.CommentReportView fun toUni(d: CommentResponse): it.vercruysse.lemmyapi.datatypes.CommentResponse fun toUni(d: CommentView): it.vercruysse.lemmyapi.datatypes.CommentView fun toUni(d: Community): it.vercruysse.lemmyapi.datatypes.Community - fun toUni(d: CommunityAggregates): it.vercruysse.lemmyapi.datatypes.CommunityAggregates - fun toUni(d: CommunityBlockView): it.vercruysse.lemmyapi.datatypes.CommunityBlockView fun toUni(d: CommunityFollowerView): it.vercruysse.lemmyapi.datatypes.CommunityFollowerView fun toUni(d: CommunityModeratorView): it.vercruysse.lemmyapi.datatypes.CommunityModeratorView fun toUni(d: CommunityResponse): it.vercruysse.lemmyapi.datatypes.CommunityResponse @@ -51,37 +29,17 @@ internal interface MapperGenerator0x19x6 { fun toUni(d: CustomEmojiKeyword): it.vercruysse.lemmyapi.datatypes.CustomEmojiKeyword fun toUni(d: CustomEmojiResponse): it.vercruysse.lemmyapi.datatypes.CustomEmojiResponse fun toUni(d: CustomEmojiView): it.vercruysse.lemmyapi.datatypes.CustomEmojiView - fun toUni(d: FederatedInstances): it.vercruysse.lemmyapi.datatypes.FederatedInstances fun toUni(d: GenerateTotpSecretResponse): it.vercruysse.lemmyapi.datatypes.GenerateTotpSecretResponse fun toUni(d: GetCaptchaResponse): it.vercruysse.lemmyapi.datatypes.GetCaptchaResponse - fun toUni(d: GetCommentsResponse): it.vercruysse.lemmyapi.datatypes.GetCommentsResponse fun toUni(d: GetCommunityResponse): it.vercruysse.lemmyapi.datatypes.GetCommunityResponse - fun toUni(d: GetFederatedInstancesResponse): it.vercruysse.lemmyapi.datatypes.GetFederatedInstancesResponse - fun toUni(d: GetModlogResponse): it.vercruysse.lemmyapi.datatypes.GetModlogResponse fun toUni(d: GetPersonDetailsResponse): it.vercruysse.lemmyapi.datatypes.GetPersonDetailsResponse - fun toUni(d: GetPersonMentionsResponse): it.vercruysse.lemmyapi.datatypes.GetPersonMentionsResponse fun toUni(d: GetPostResponse): it.vercruysse.lemmyapi.datatypes.GetPostResponse - fun toUni(d: GetPostsResponse): it.vercruysse.lemmyapi.datatypes.GetPostsResponse - fun toUni(d: GetRepliesResponse): it.vercruysse.lemmyapi.datatypes.GetRepliesResponse - fun toUni(d: GetReportCountResponse): it.vercruysse.lemmyapi.datatypes.GetReportCountResponse fun toUni(d: GetSiteMetadataResponse): it.vercruysse.lemmyapi.datatypes.GetSiteMetadataResponse fun toUni(d: GetSiteResponse): it.vercruysse.lemmyapi.datatypes.GetSiteResponse - fun toUni(d: GetUnreadCountResponse): it.vercruysse.lemmyapi.datatypes.GetUnreadCountResponse - fun toUni(d: GetUnreadRegistrationApplicationCountResponse): it.vercruysse.lemmyapi.datatypes.GetUnreadRegistrationApplicationCountResponse fun toUni(d: ImageDetails): it.vercruysse.lemmyapi.datatypes.ImageDetails fun toUni(d: Instance): it.vercruysse.lemmyapi.datatypes.Instance - fun toUni(d: InstanceBlockView): it.vercruysse.lemmyapi.datatypes.InstanceBlockView - fun toUni(d: InstanceWithFederationState): it.vercruysse.lemmyapi.datatypes.InstanceWithFederationState fun toUni(d: Language): it.vercruysse.lemmyapi.datatypes.Language fun toUni(d: LinkMetadata): it.vercruysse.lemmyapi.datatypes.LinkMetadata - fun toUni(d: ListCommentLikesResponse): it.vercruysse.lemmyapi.datatypes.ListCommentLikesResponse - fun toUni(d: ListCommentReportsResponse): it.vercruysse.lemmyapi.datatypes.ListCommentReportsResponse - fun toUni(d: ListCommunitiesResponse): it.vercruysse.lemmyapi.datatypes.ListCommunitiesResponse - fun toUni(d: ListMediaResponse): it.vercruysse.lemmyapi.datatypes.ListMediaResponse - fun toUni(d: ListPostLikesResponse): it.vercruysse.lemmyapi.datatypes.ListPostLikesResponse - fun toUni(d: ListPostReportsResponse): it.vercruysse.lemmyapi.datatypes.ListPostReportsResponse - fun toUni(d: ListPrivateMessageReportsResponse): it.vercruysse.lemmyapi.datatypes.ListPrivateMessageReportsResponse - fun toUni(d: ListRegistrationApplicationsResponse): it.vercruysse.lemmyapi.datatypes.ListRegistrationApplicationsResponse fun toUni(d: LocalImage): it.vercruysse.lemmyapi.datatypes.LocalImage fun toUni(d: LocalImageView): it.vercruysse.lemmyapi.datatypes.LocalImageView fun toUni(d: LocalSite): it.vercruysse.lemmyapi.datatypes.LocalSite @@ -89,42 +47,12 @@ internal interface MapperGenerator0x19x6 { fun toUni(d: LocalSiteUrlBlocklist): it.vercruysse.lemmyapi.datatypes.LocalSiteUrlBlocklist fun toUni(d: LocalUser): it.vercruysse.lemmyapi.datatypes.LocalUser fun toUni(d: LocalUserView): it.vercruysse.lemmyapi.datatypes.LocalUserView - fun toUni(d: LocalUserVoteDisplayMode): it.vercruysse.lemmyapi.datatypes.LocalUserVoteDisplayMode fun toUni(d: LoginResponse): it.vercruysse.lemmyapi.datatypes.LoginResponse fun toUni(d: LoginToken): it.vercruysse.lemmyapi.datatypes.LoginToken - fun toUni(d: ModAdd): it.vercruysse.lemmyapi.datatypes.ModAdd - fun toUni(d: ModAddCommunity): it.vercruysse.lemmyapi.datatypes.ModAddCommunity - fun toUni(d: ModAddCommunityView): it.vercruysse.lemmyapi.datatypes.ModAddCommunityView - fun toUni(d: ModAddView): it.vercruysse.lemmyapi.datatypes.ModAddView - fun toUni(d: ModBan): it.vercruysse.lemmyapi.datatypes.ModBan - fun toUni(d: ModBanFromCommunity): it.vercruysse.lemmyapi.datatypes.ModBanFromCommunity - fun toUni(d: ModBanFromCommunityView): it.vercruysse.lemmyapi.datatypes.ModBanFromCommunityView - fun toUni(d: ModBanView): it.vercruysse.lemmyapi.datatypes.ModBanView - fun toUni(d: ModFeaturePost): it.vercruysse.lemmyapi.datatypes.ModFeaturePost - fun toUni(d: ModFeaturePostView): it.vercruysse.lemmyapi.datatypes.ModFeaturePostView - fun toUni(d: ModHideCommunity): it.vercruysse.lemmyapi.datatypes.ModHideCommunity - fun toUni(d: ModHideCommunityView): it.vercruysse.lemmyapi.datatypes.ModHideCommunityView - fun toUni(d: ModLockPost): it.vercruysse.lemmyapi.datatypes.ModLockPost - fun toUni(d: ModLockPostView): it.vercruysse.lemmyapi.datatypes.ModLockPostView - fun toUni(d: ModlogListParams): it.vercruysse.lemmyapi.datatypes.ModlogListParams - fun toUni(d: ModRemoveComment): it.vercruysse.lemmyapi.datatypes.ModRemoveComment - fun toUni(d: ModRemoveCommentView): it.vercruysse.lemmyapi.datatypes.ModRemoveCommentView - fun toUni(d: ModRemoveCommunity): it.vercruysse.lemmyapi.datatypes.ModRemoveCommunity - fun toUni(d: ModRemoveCommunityView): it.vercruysse.lemmyapi.datatypes.ModRemoveCommunityView - fun toUni(d: ModRemovePost): it.vercruysse.lemmyapi.datatypes.ModRemovePost - fun toUni(d: ModRemovePostView): it.vercruysse.lemmyapi.datatypes.ModRemovePostView - fun toUni(d: ModTransferCommunity): it.vercruysse.lemmyapi.datatypes.ModTransferCommunity - fun toUni(d: ModTransferCommunityView): it.vercruysse.lemmyapi.datatypes.ModTransferCommunityView fun toUni(d: MyUserInfo): it.vercruysse.lemmyapi.datatypes.MyUserInfo fun toUni(d: Person): it.vercruysse.lemmyapi.datatypes.Person - fun toUni(d: PersonAggregates): it.vercruysse.lemmyapi.datatypes.PersonAggregates - fun toUni(d: PersonBlockView): it.vercruysse.lemmyapi.datatypes.PersonBlockView - fun toUni(d: PersonMention): it.vercruysse.lemmyapi.datatypes.PersonMention - fun toUni(d: PersonMentionResponse): it.vercruysse.lemmyapi.datatypes.PersonMentionResponse - fun toUni(d: PersonMentionView): it.vercruysse.lemmyapi.datatypes.PersonMentionView fun toUni(d: PersonView): it.vercruysse.lemmyapi.datatypes.PersonView fun toUni(d: Post): it.vercruysse.lemmyapi.datatypes.Post - fun toUni(d: PostAggregates): it.vercruysse.lemmyapi.datatypes.PostAggregates fun toUni(d: PostReport): it.vercruysse.lemmyapi.datatypes.PostReport fun toUni(d: PostReportResponse): it.vercruysse.lemmyapi.datatypes.PostReportResponse fun toUni(d: PostReportView): it.vercruysse.lemmyapi.datatypes.PostReportView @@ -135,20 +63,17 @@ internal interface MapperGenerator0x19x6 { fun toUni(d: PrivateMessageReportResponse): it.vercruysse.lemmyapi.datatypes.PrivateMessageReportResponse fun toUni(d: PrivateMessageReportView): it.vercruysse.lemmyapi.datatypes.PrivateMessageReportView fun toUni(d: PrivateMessageResponse): it.vercruysse.lemmyapi.datatypes.PrivateMessageResponse - fun toUni(d: PrivateMessagesResponse): it.vercruysse.lemmyapi.datatypes.PrivateMessagesResponse fun toUni(d: PrivateMessageView): it.vercruysse.lemmyapi.datatypes.PrivateMessageView - fun toUni(d: ReadableFederationState): it.vercruysse.lemmyapi.datatypes.ReadableFederationState + fun toUni(d: ReadableFederationState): it.vercruysse.lemmyapi.datatypes.FederationQueueState fun toUni(d: RegistrationApplication): it.vercruysse.lemmyapi.datatypes.RegistrationApplication fun toUni(d: RegistrationApplicationResponse): it.vercruysse.lemmyapi.datatypes.RegistrationApplicationResponse fun toUni(d: RegistrationApplicationView): it.vercruysse.lemmyapi.datatypes.RegistrationApplicationView - fun toUni(d: ResolveObjectResponse): it.vercruysse.lemmyapi.datatypes.ResolveObjectResponse fun toUni(d: SearchResponse): it.vercruysse.lemmyapi.datatypes.SearchResponse fun toUni(d: Site): it.vercruysse.lemmyapi.datatypes.Site - fun toUni(d: SiteAggregates): it.vercruysse.lemmyapi.datatypes.SiteAggregates fun toUni(d: SiteResponse): it.vercruysse.lemmyapi.datatypes.SiteResponse fun toUni(d: SiteView): it.vercruysse.lemmyapi.datatypes.SiteView fun toUni(d: Tagline): it.vercruysse.lemmyapi.datatypes.Tagline - fun toUni(d: UpdateTotpResponse): it.vercruysse.lemmyapi.datatypes.UpdateTotpResponse + fun toUni(d: UpdateTotpResponse): it.vercruysse.lemmyapi.datatypes.EditTotpResponse fun toUni(d: VoteView): it.vercruysse.lemmyapi.datatypes.VoteView // body mappings @@ -158,7 +83,7 @@ internal interface MapperGenerator0x19x6 { fun fromUni(d: it.vercruysse.lemmyapi.datatypes.BanFromCommunity): BanFromCommunity fun fromUni(d: it.vercruysse.lemmyapi.datatypes.BanPerson): BanPerson fun fromUni(d: it.vercruysse.lemmyapi.datatypes.BlockCommunity): BlockCommunity - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.BlockInstance): BlockInstance + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.UserBlockInstanceCommunitiesParams): BlockInstance fun fromUni(d: it.vercruysse.lemmyapi.datatypes.BlockPerson): BlockPerson fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ChangePassword): ChangePassword fun fromUni(d: it.vercruysse.lemmyapi.datatypes.CreateComment): CreateComment @@ -192,32 +117,22 @@ internal interface MapperGenerator0x19x6 { fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetCommunity): GetCommunity fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetModlog): GetModlog fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPersonDetails): GetPersonDetails - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPersonMentions): GetPersonMentions fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPost): GetPost fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPosts): GetPosts - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPrivateMessages): GetPrivateMessages fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetRegistrationApplication): GetRegistrationApplication - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetReplies): GetReplies - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetReportCount): GetReportCount fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetSiteMetadata): GetSiteMetadata fun fromUni(d: it.vercruysse.lemmyapi.datatypes.HideCommunity): HideCommunity fun fromUni(d: it.vercruysse.lemmyapi.datatypes.HidePost): HidePost fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListCommentLikes): ListCommentLikes - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListCommentReports): ListCommentReports fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListCommunities): ListCommunities fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListMedia): ListMedia fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListPostLikes): ListPostLikes - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListPostReports): ListPostReports - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListPrivateMessageReports): ListPrivateMessageReports fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListRegistrationApplications): ListRegistrationApplications fun fromUni(d: it.vercruysse.lemmyapi.datatypes.LockPost): LockPost fun fromUni(d: it.vercruysse.lemmyapi.datatypes.Login): Login - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.MarkCommentReplyAsRead): MarkCommentReplyAsRead - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.MarkPersonMentionAsRead): MarkPersonMentionAsRead - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.MarkPostAsRead): MarkPostAsRead - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.MarkPrivateMessageAsRead): MarkPrivateMessageAsRead - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PasswordChangeAfterReset): PasswordChangeAfterReset - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PasswordReset): PasswordReset + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.MarkManyPostsAsRead): MarkPostAsRead + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ChangePasswordAfterReset): PasswordChangeAfterReset + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ResetPassword): PasswordReset fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PurgeComment): PurgeComment fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PurgeCommunity): PurgeCommunity fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PurgePerson): PurgePerson @@ -235,6 +150,6 @@ internal interface MapperGenerator0x19x6 { fun fromUni(d: it.vercruysse.lemmyapi.datatypes.SaveUserSettings): SaveUserSettings fun fromUni(d: it.vercruysse.lemmyapi.datatypes.Search): Search fun fromUni(d: it.vercruysse.lemmyapi.datatypes.TransferCommunity): TransferCommunity - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.UpdateTotp): UpdateTotp + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.EditTotp): UpdateTotp fun fromUni(d: it.vercruysse.lemmyapi.datatypes.VerifyEmail): VerifyEmail } diff --git a/GeneratorScripts/src/main/kotlin/MapperGenerator1x0x0.kt b/GeneratorScripts/src/main/kotlin/MapperGenerator1x0x0.kt new file mode 100644 index 00000000..b8b1ef85 --- /dev/null +++ b/GeneratorScripts/src/main/kotlin/MapperGenerator1x0x0.kt @@ -0,0 +1,288 @@ +@file:Suppress("unused", "INVISIBLE_MEMBER", "INVISIBLE_REFERENCE") + +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.* + +import io.mcarle.konvert.api.Konvert +import io.mcarle.konvert.api.Mapping + +//@Konverter( +// options = [ +// Konfig(key = "konvert.konverter.generate-class", value = "true"), +// Konfig(key = "konvert.enable-converters", value = "FloatToIntConverter"), +// Konfig(key = "konvert.add-generated-konverter-annotation", value = "false"), +// ], +//) +internal interface MapperGenerator1x0x0 { + + fun toUni(d: AddAdminResponse): it.vercruysse.lemmyapi.datatypes.AddAdminResponse + fun toUni(d: AddModToCommunityResponse): it.vercruysse.lemmyapi.datatypes.AddModToCommunityResponse + fun toUni(d: AdminAllowInstanceParams): it.vercruysse.lemmyapi.datatypes.AdminAllowInstanceParams + fun toUni(d: AdminBlockInstanceParams): it.vercruysse.lemmyapi.datatypes.AdminBlockInstanceParams + fun toUni(d: AdminListUsers): it.vercruysse.lemmyapi.datatypes.AdminListUsers + fun toUni(d: AdminOAuthProvider): it.vercruysse.lemmyapi.datatypes.AdminOAuthProvider + fun toUni(d: AuthenticateWithOauth): it.vercruysse.lemmyapi.datatypes.AuthenticateWithOauth + fun toUni(d: CaptchaResponse): it.vercruysse.lemmyapi.datatypes.CaptchaResponse + fun toUni(d: Comment): it.vercruysse.lemmyapi.datatypes.Comment + fun toUni(d: CommentActions): it.vercruysse.lemmyapi.datatypes.CommentActions + fun toUni(d: CommentReport): it.vercruysse.lemmyapi.datatypes.CommentReport + fun toUni(d: CommentReportResponse): it.vercruysse.lemmyapi.datatypes.CommentReportResponse + fun toUni(d: CommentReportView): it.vercruysse.lemmyapi.datatypes.CommentReportView + fun toUni(d: CommentResponse): it.vercruysse.lemmyapi.datatypes.CommentResponse + fun toUni(d: CommentSlimView): it.vercruysse.lemmyapi.datatypes.CommentSlimView + + @Konvert(mappings = [Mapping(target = "tags", expression = "d.tags.map { this.toUni(d = it) }")]) + fun toUni(d: CommentView): it.vercruysse.lemmyapi.datatypes.CommentView + fun toUni(d: Community): it.vercruysse.lemmyapi.datatypes.Community + fun toUni(d: CommunityActions): it.vercruysse.lemmyapi.datatypes.CommunityActions + fun toUni(d: CommunityFollowerView): it.vercruysse.lemmyapi.datatypes.CommunityFollowerView + fun toUni(d: CommunityIdQuery): it.vercruysse.lemmyapi.datatypes.CommunityIdQuery + fun toUni(d: CommunityModeratorView): it.vercruysse.lemmyapi.datatypes.CommunityModeratorView + fun toUni(d: CommunityReport): it.vercruysse.lemmyapi.datatypes.CommunityReport + fun toUni(d: CommunityReportResponse): it.vercruysse.lemmyapi.datatypes.CommunityReportResponse + fun toUni(d: CommunityReportView): it.vercruysse.lemmyapi.datatypes.CommunityReportView + fun toUni(d: CommunityResponse): it.vercruysse.lemmyapi.datatypes.CommunityResponse + fun toUni(d: CommunityTag): it.vercruysse.lemmyapi.datatypes.CommunityTag + + @Konvert(mappings = [Mapping(target = "tags", expression = "d.tags.map { this.toUni(d = it) }")]) + fun toUni(d: CommunityView): it.vercruysse.lemmyapi.datatypes.CommunityView + fun toUni(d: CustomEmoji): it.vercruysse.lemmyapi.datatypes.CustomEmoji + fun toUni(d: CustomEmojiKeyword): it.vercruysse.lemmyapi.datatypes.CustomEmojiKeyword + fun toUni(d: CustomEmojiResponse): it.vercruysse.lemmyapi.datatypes.CustomEmojiResponse + fun toUni(d: CustomEmojiView): it.vercruysse.lemmyapi.datatypes.CustomEmojiView + fun toUni(d: EditTotpResponse): it.vercruysse.lemmyapi.datatypes.EditTotpResponse + + fun toUni(d: ExportDataResponse): it.vercruysse.lemmyapi.datatypes.ExportDataResponse + fun toUni(d: FederatedInstanceView): it.vercruysse.lemmyapi.datatypes.FederatedInstanceView + fun toUni(d: FederationAllowList): it.vercruysse.lemmyapi.datatypes.FederationAllowList + fun toUni(d: FederationBlockList): it.vercruysse.lemmyapi.datatypes.FederationBlockList + fun toUni(d: FederationQueueState): it.vercruysse.lemmyapi.datatypes.FederationQueueState + fun toUni(d: GenerateTotpSecretResponse): it.vercruysse.lemmyapi.datatypes.GenerateTotpSecretResponse + fun toUni(d: GetCaptchaResponse): it.vercruysse.lemmyapi.datatypes.GetCaptchaResponse + fun toUni(d: GetCommunityResponse): it.vercruysse.lemmyapi.datatypes.GetCommunityResponse + fun toUni(d: GetMultiCommunityResponse): it.vercruysse.lemmyapi.datatypes.GetMultiCommunityResponse + fun toUni(d: GetPersonDetailsResponse): it.vercruysse.lemmyapi.datatypes.GetPersonDetailsResponse + fun toUni(d: GetPostResponse): it.vercruysse.lemmyapi.datatypes.GetPostResponse + fun toUni(d: GetSiteMetadataResponse): it.vercruysse.lemmyapi.datatypes.GetSiteMetadataResponse + fun toUni(d: GetSiteResponse): it.vercruysse.lemmyapi.datatypes.GetSiteResponse + fun toUni(d: ImageDetails): it.vercruysse.lemmyapi.datatypes.ImageDetails + fun toUni(d: ImageGetParams): it.vercruysse.lemmyapi.datatypes.ImageGetParams + fun toUni(d: ImageProxyParams): it.vercruysse.lemmyapi.datatypes.ImageProxyParams + fun toUni(d: Instance): it.vercruysse.lemmyapi.datatypes.Instance + fun toUni(d: InstanceActions): it.vercruysse.lemmyapi.datatypes.InstanceActions + fun toUni(d: Language): it.vercruysse.lemmyapi.datatypes.Language + fun toUni(d: LinkMetadata): it.vercruysse.lemmyapi.datatypes.LinkMetadata + fun toUni(d: ListCustomEmojisResponse): it.vercruysse.lemmyapi.datatypes.ListCustomEmojisResponse + fun toUni(d: ListLoginsResponse): it.vercruysse.lemmyapi.datatypes.ListLoginsResponse + fun toUni(d: LocalImage): it.vercruysse.lemmyapi.datatypes.LocalImage + fun toUni(d: LocalImageView): it.vercruysse.lemmyapi.datatypes.LocalImageView + fun toUni(d: LocalSite): it.vercruysse.lemmyapi.datatypes.LocalSite + fun toUni(d: LocalSiteRateLimit): it.vercruysse.lemmyapi.datatypes.LocalSiteRateLimit + fun toUni(d: LocalSiteUrlBlocklist): it.vercruysse.lemmyapi.datatypes.LocalSiteUrlBlocklist + fun toUni(d: LocalUser): it.vercruysse.lemmyapi.datatypes.LocalUser + fun toUni(d: LocalUserView): it.vercruysse.lemmyapi.datatypes.LocalUserView + fun toUni(d: LoginResponse): it.vercruysse.lemmyapi.datatypes.LoginResponse + fun toUni(d: LoginToken): it.vercruysse.lemmyapi.datatypes.LoginToken + fun toUni(d: ModEditPost): it.vercruysse.lemmyapi.datatypes.ModEditPost + fun toUni(d: Modlog): it.vercruysse.lemmyapi.datatypes.Modlog + fun toUni(d: ModlogView): it.vercruysse.lemmyapi.datatypes.ModlogView + fun toUni(d: MultiCommunity): it.vercruysse.lemmyapi.datatypes.MultiCommunity + fun toUni(d: MultiCommunityEntry): it.vercruysse.lemmyapi.datatypes.MultiCommunityEntry + fun toUni(d: MultiCommunityFollow): it.vercruysse.lemmyapi.datatypes.MultiCommunityFollow + fun toUni(d: MultiCommunityResponse): it.vercruysse.lemmyapi.datatypes.MultiCommunityResponse + fun toUni(d: MultiCommunityView): it.vercruysse.lemmyapi.datatypes.MultiCommunityView + fun toUni(d: MyUserInfo): it.vercruysse.lemmyapi.datatypes.MyUserInfo + fun toUni(d: NotePerson): it.vercruysse.lemmyapi.datatypes.NotePerson + fun toUni(d: Notification): it.vercruysse.lemmyapi.datatypes.Notification + + fun toUni(d: NotificationData): it.vercruysse.lemmyapi.datatypes.NotificationData = when (d) { + is CommentView -> toUni(d) + is ModlogView -> toUni(d) + is PrivateMessageView -> toUni(d) + } + + @Konvert(mappings = [Mapping(target = "data", expression = "toUni(d.data)")]) + fun toUni(d: NotificationView): it.vercruysse.lemmyapi.datatypes.NotificationView + fun toUni(d: OAuthAccount): it.vercruysse.lemmyapi.datatypes.OAuthAccount + fun toUni(d: PendingFollow): it.vercruysse.lemmyapi.datatypes.PendingFollow + fun toUni(d: PendingFollowerView): it.vercruysse.lemmyapi.datatypes.PendingFollowerView + fun toUni(d: Person): it.vercruysse.lemmyapi.datatypes.Person + fun toUni(d: PersonActions): it.vercruysse.lemmyapi.datatypes.PersonActions + fun toUni(d: PersonResponse): it.vercruysse.lemmyapi.datatypes.PersonResponse + fun toUni(d: PersonView): it.vercruysse.lemmyapi.datatypes.PersonView + fun toUni(d: PluginMetadata): it.vercruysse.lemmyapi.datatypes.PluginMetadata + fun toUni(d: Post): it.vercruysse.lemmyapi.datatypes.Post + fun toUni(d: PostActions): it.vercruysse.lemmyapi.datatypes.PostActions + + fun toUni(d: PostCommentCombinedView): it.vercruysse.lemmyapi.datatypes.PostCommentCombinedView = when (d) { + is CommentView -> toUni(d) + is PostView -> toUni(d) + } + + fun toUni(d: PostOrCommentOrPrivateMessage): it.vercruysse.lemmyapi.datatypes.PostOrCommentOrPrivateMessage = when (d) { + is Comment -> toUni(d) + is Post -> toUni(d) + is PrivateMessage -> toUni(d) + } + fun toUni(d: PostReport): it.vercruysse.lemmyapi.datatypes.PostReport + fun toUni(d: PostReportResponse): it.vercruysse.lemmyapi.datatypes.PostReportResponse + fun toUni(d: PostReportView): it.vercruysse.lemmyapi.datatypes.PostReportView + fun toUni(d: PostResponse): it.vercruysse.lemmyapi.datatypes.PostResponse + + @Konvert(mappings = [Mapping(target = "tags", expression = "d.tags.map { this.toUni(d = it) }")]) + fun toUni(d: PostView): it.vercruysse.lemmyapi.datatypes.PostView + fun toUni(d: PrivateMessage): it.vercruysse.lemmyapi.datatypes.PrivateMessage + fun toUni(d: PrivateMessageReport): it.vercruysse.lemmyapi.datatypes.PrivateMessageReport + fun toUni(d: PrivateMessageReportResponse): it.vercruysse.lemmyapi.datatypes.PrivateMessageReportResponse + fun toUni(d: PrivateMessageReportView): it.vercruysse.lemmyapi.datatypes.PrivateMessageReportView + fun toUni(d: PrivateMessageResponse): it.vercruysse.lemmyapi.datatypes.PrivateMessageResponse + fun toUni(d: PrivateMessageView): it.vercruysse.lemmyapi.datatypes.PrivateMessageView + fun toUni(d: PublicOAuthProvider): it.vercruysse.lemmyapi.datatypes.PublicOAuthProvider + fun toUni(d: RegistrationApplication): it.vercruysse.lemmyapi.datatypes.RegistrationApplication + fun toUni(d: RegistrationApplicationResponse): it.vercruysse.lemmyapi.datatypes.RegistrationApplicationResponse + fun toUni(d: RegistrationApplicationView): it.vercruysse.lemmyapi.datatypes.RegistrationApplicationView + + // ReportCombinedView is a sealed interface — Konvert cannot generate this automatically. + fun toUni(d: ReportCombinedView): it.vercruysse.lemmyapi.datatypes.ReportCombinedView = when (d) { + is CommentReportView -> toUni(d) + is PostReportView -> toUni(d) + is CommunityReportView -> toUni(d) + is PrivateMessageReportView -> toUni(d) + } + + // fun toUni(d: ReportCombinedView): already implemented above as when-dispatch + fun toUni(d: ResendVerificationEmail): it.vercruysse.lemmyapi.datatypes.ResendVerificationEmail + fun toUni(d: ResolveObjectView): it.vercruysse.lemmyapi.datatypes.ResolveObjectView = when (d) { + is CommentView -> toUni(d) + is CommunityView -> toUni(d) + is PersonView -> toUni(d) + is PostView -> toUni(d) + is MultiCommunityView -> toUni(d) + } + fun toUni(d: SearchResponse): it.vercruysse.lemmyapi.datatypes.SearchResponse + fun toUni(d: Site): it.vercruysse.lemmyapi.datatypes.Site + fun toUni(d: SiteResponse): it.vercruysse.lemmyapi.datatypes.SiteResponse + fun toUni(d: SiteView): it.vercruysse.lemmyapi.datatypes.SiteView + fun toUni(d: Tagline): it.vercruysse.lemmyapi.datatypes.Tagline + fun toUni(d: TaglineResponse): it.vercruysse.lemmyapi.datatypes.TaglineResponse + fun toUni(d: UnreadCountsResponse): it.vercruysse.lemmyapi.datatypes.UnreadCountsResponse + fun toUni(d: UploadImageResponse): it.vercruysse.lemmyapi.datatypes.UploadImageResponse + fun toUni(d: UserBlockInstanceCommunitiesParams): it.vercruysse.lemmyapi.datatypes.UserBlockInstanceCommunitiesParams + fun toUni(d: UserBlockInstancePersonsParams): it.vercruysse.lemmyapi.datatypes.UserBlockInstancePersonsParams + fun toUni(d: UserSettingsBackup): it.vercruysse.lemmyapi.datatypes.UserSettingsBackup + @Konvert(mappings = [Mapping(target = "score", expression = "if (d.is_upvote) 1 else -1")]) + fun toUni(d: VoteView): it.vercruysse.lemmyapi.datatypes.VoteView + + // body mappings + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.AddAdmin): AddAdmin + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.AddModToCommunity): AddModToCommunity + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ApproveCommunityPendingFollower): ApproveCommunityPendingFollower + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ApproveRegistrationApplication): ApproveRegistrationApplication + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.BanFromCommunity): BanFromCommunity + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.BanPerson): BanPerson + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.BlockCommunity): BlockCommunity + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.BlockPerson): BlockPerson + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ChangePassword): ChangePassword + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.CreateComment): CreateComment + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.CreateCommentLike): CreateCommentLike + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.CreateCommentReport): CreateCommentReport + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.CreateCommentWarning): CreateCommentWarning + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.CreateCommunity): CreateCommunity + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.CreateCommunityReport): CreateCommunityReport + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.CreateCommunityTag): CreateCommunityTag + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.CreateCustomEmoji): CreateCustomEmoji + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.CreateMultiCommunity): CreateMultiCommunity + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.CreateOAuthProvider): CreateOAuthProvider + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.CreateOrDeleteMultiCommunityEntry): CreateOrDeleteMultiCommunityEntry + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.CreatePost): CreatePost + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.CreatePostLike): CreatePostLike + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.CreatePostReport): CreatePostReport + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.CreatePostWarning): CreatePostWarning + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.CreatePrivateMessage): CreatePrivateMessage + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.CreatePrivateMessageReport): CreatePrivateMessageReport + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.CreateSite): CreateSite + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.CreateTagline): CreateTagline + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.DeleteAccount): DeleteAccount + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.DeleteComment): DeleteComment + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.DeleteCommunity): DeleteCommunity + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.DeleteCommunityTag): DeleteCommunityTag + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.DeleteCustomEmoji): DeleteCustomEmoji + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.DeleteImageParams): DeleteImageParams + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.DeleteOAuthProvider): DeleteOAuthProvider + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.DeletePost): DeletePost + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.DeletePrivateMessage): DeletePrivateMessage + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.DeleteTagline): DeleteTagline + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.DistinguishComment): DistinguishComment + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.EditComment): EditComment + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.EditCommunity): EditCommunity + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.EditCommunityNotifications): EditCommunityNotifications + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.EditCommunityTag): EditCommunityTag + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.EditCustomEmoji): EditCustomEmoji + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.EditMultiCommunity): EditMultiCommunity + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.EditOAuthProvider): EditOAuthProvider + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.EditPost): EditPost + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.EditPostNotifications): EditPostNotifications + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.EditPrivateMessage): EditPrivateMessage + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.EditSite): EditSite + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.EditTagline): EditTagline + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.EditTotp): EditTotp + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.FeaturePost): FeaturePost + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.FollowCommunity): FollowCommunity + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.FollowMultiCommunity): FollowMultiCommunity + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetComment): GetComment + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetComments): GetComments + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetCommunity): GetCommunity + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetFederatedInstances): GetFederatedInstances + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetModlog): GetModlog + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetMultiCommunity): GetMultiCommunity + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPersonDetails): GetPersonDetails + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPost): GetPost + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPosts): GetPosts + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetRandomCommunity): GetRandomCommunity + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetRegistrationApplication): GetRegistrationApplication + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetSiteMetadata): GetSiteMetadata + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.HideCommunity): HideCommunity + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.HidePost): HidePost + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListCommentLikes): ListCommentLikes + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListCommunities): ListCommunities + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListCommunityPendingFollows): ListCommunityPendingFollows + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListCustomEmojis): ListCustomEmojis + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListMedia): ListMedia + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListMultiCommunities): ListMultiCommunities + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListNotifications): ListNotifications + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListPersonContent): ListPersonContent + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListPersonHidden): ListPersonHidden + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListPersonLiked): ListPersonLiked + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListPersonRead): ListPersonRead + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListPersonSaved): ListPersonSaved + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListPostLikes): ListPostLikes + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListRegistrationApplications): ListRegistrationApplications + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListReports): ListReports + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListTaglines): ListTaglines + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.LockComment): LockComment + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.LockPost): LockPost + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.Login): Login + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.MarkManyPostsAsRead): MarkManyPostsAsRead + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.MarkNotificationAsRead): MarkNotificationAsRead + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.MarkPostAsRead): MarkPostAsRead + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ChangePasswordAfterReset): ChangePasswordAfterReset + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ResetPassword): ResetPassword + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PurgeComment): PurgeComment + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PurgeCommunity): PurgeCommunity + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PurgePerson): PurgePerson + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PurgePost): PurgePost + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.Register): Register + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.RemoveComment): RemoveComment + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.RemoveCommunity): RemoveCommunity + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.RemovePost): RemovePost + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ResolveCommentReport): ResolveCommentReport + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ResolveCommunityReport): ResolveCommunityReport + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ResolveObject): ResolveObject + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ResolvePostReport): ResolvePostReport + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ResolvePrivateMessageReport): ResolvePrivateMessageReport + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.SaveComment): SaveComment + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.SavePost): SavePost + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.SaveUserSettings): SaveUserSettings + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.Search): Search + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.TransferCommunity): TransferCommunity + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.VerifyEmail): VerifyEmail +} diff --git a/GeneratorScripts/src/main/kotlin/autogenscripts/GenMapperRoutes.kt b/GeneratorScripts/src/main/kotlin/autogenscripts/GenMapperRoutes.kt index 42cb65ff..b2a0ab4d 100644 --- a/GeneratorScripts/src/main/kotlin/autogenscripts/GenMapperRoutes.kt +++ b/GeneratorScripts/src/main/kotlin/autogenscripts/GenMapperRoutes.kt @@ -35,25 +35,23 @@ fun genMapRoutes( targetFile.listFiles() ?.filter { !it.nameWithoutExtension.endsWith("Id") } ?.forEach { - sourceMap.get(it.name)?.let { - val typeName = it.nameWithoutExtension + sourceMap.get(it.name)?.let { file -> + val typeName = file.nameWithoutExtension val isSourceExcluded = toSourceExclusion.contains(typeName) val isTargetExcluded = toTargetExclusion.contains(typeName) + if(shouldSkipFile(file)) { + return@forEach + } // If doesn't end with response its request body thus needs reverse mapping if (typeName.endsWith("Response") && !isSourceExcluded) { tempFile.appendText(" fun toUni(d: $typeName): $targetQualifier$typeName\n") } else if (!isSourceExcluded && ( - classHasAuth(it) || // 0.18 has auth - (bodyRequestIndicators.any { ind -> - typeName.startsWith(ind) + (bodyRequestIndicators.any { ind -> typeName.startsWith(ind) } && !dataTypesExceptions.contains(typeName)) ) ) { - if (classHasAuth(it)) { - toSourceMappings += " @Konvert(mappings=[Mapping(target=\"auth\", constant=\"auth\")])\n" - } toSourceMappings += " fun fromUni(d: $targetQualifier$typeName): $typeName\n" } else { if (!isTargetExcluded) { @@ -68,16 +66,28 @@ fun genMapRoutes( tempFile.appendText("$toSourceMappings}\n") } +// 0.18 has auth fun classHasAuth(classFile: File): Boolean { return classFile.readText().contains("val auth: String") } +fun shouldSkipFile(classFile: File) = classHasTypeAlias(classFile) || classHasInterface(classFile) + +fun classHasTypeAlias(classFile: File): Boolean { + return classFile.readText().contains("typealias ") +} + +fun classHasInterface(classFile: File): Boolean { + return classFile.readText().contains("interface ") +} + fun main() { val exclusionSrc = setOf( -// "MarkPostAsRead" + "PagedResponse" ) val exclusionTarget = setOf( + "PagedResponse" // "LocalUser", "MyUserInfo", "LocalSiteRateLimit" ) - genMapRoutes("v0/x19/x11", exclusionSrc, exclusionTarget) + genMapRoutes("v1/x0/x0", exclusionSrc, exclusionTarget) } diff --git a/GeneratorScripts/src/main/kotlin/autogenscripts/GenRoutes.kt b/GeneratorScripts/src/main/kotlin/autogenscripts/GenRoutes.kt index fbf61999..a50f332f 100644 --- a/GeneratorScripts/src/main/kotlin/autogenscripts/GenRoutes.kt +++ b/GeneratorScripts/src/main/kotlin/autogenscripts/GenRoutes.kt @@ -18,7 +18,7 @@ enum class HttpMethod { PUT, } -const val LEMMY_SPEC_LINK = """https://raw.githubusercontent.com/MV-GH/lemmy_openapi_spec/master/lemmy_spec.yaml""" +const val LEMMY_SPEC_LINK = """blob:https://join-lemmy.org/7fe59b0d-6b94-40d4-bba8-d03a1a0ab8b7""" data class RouteInfo( val path: String, diff --git a/GeneratorScripts/src/main/kotlin/autogenscripts/GenTypes.kt b/GeneratorScripts/src/main/kotlin/autogenscripts/GenTypes.kt index 99942c06..031662c9 100644 --- a/GeneratorScripts/src/main/kotlin/autogenscripts/GenTypes.kt +++ b/GeneratorScripts/src/main/kotlin/autogenscripts/GenTypes.kt @@ -4,231 +4,334 @@ import io.ktor.client.request.* import io.ktor.client.statement.* import io.ktor.util.cio.* import io.ktor.utils.io.* -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.withContext +import kotlinx.coroutines.runBlocking import java.io.File import java.util.zip.ZipFile +import kotlin.system.exitProcess const val ROOT_PATH = "app/src/commonMain/kotlin/" const val ROOT_PACKAGE_PATH = "it/vercruysse/lemmyapi/" const val ROOT_PACKAGE = "it.vercruysse.lemmyapi." -const val CUSTOM_DATATYPES_PACKAGE = "dto." +const val ENUMS_PACKAGE = "enums." -val filesThatShouldNotBeAdded = setOf("others.ts", "DeleteAccountResponse.ts", "PasswordResetResponse.ts", "VerifyEmailResponse.ts", "SuccessResponse.ts") +val filesThatShouldNotBeAdded = setOf("SuccessResponse", "OpenGraphData", "AllLemmyErrors", "NodeInfo", "NodeInfoServices", "NodeInfoSoftware", "NodeInfoUsage", "NodeInfoUsers") val propsThatShouldBeInt = setOf("my_vote") +// ============================================================ +// Enum Replacement Configuration +// ============================================================ + +// Field names whose String type should be replaced with a specific enum, regardless of which file they appear in. +// File-specific overrides take priority (see fileFieldEnumOverrides below). +val globalFieldEnums = mapOf( + "listing_type" to "ListingType", + "registration_mode" to "RegistrationMode", + "subscribed" to "SubscribedType", + "feature_type" to "PostFeatureType", + "post_listing_mode" to "PostListingMode", + "default_comment_sort_type" to "CommentSortType", + "sort_type" to "SortType", + "visibility" to "CommunityVisibility", + "follow_state" to "CommunityFollowerState", + "post_upvotes" to "FederationMode", + "post_downvotes" to "FederationMode", + "comment_upvotes" to "FederationMode", + "comment_downvotes" to "FederationMode", + "show_downvotes" to "VoteShow", + "image_mode" to "ImageMode", + // Defaults for ambiguous fields overridden per file below + "type_" to "ListingType", + "sort" to "SortType", +) + +// Per-file overrides: fileName (without extension) → (fieldName → enum class). +// These take priority over globalFieldEnums for the given file. +val fileFieldEnumOverrides = mapOf( + "GetComments" to mapOf("sort" to "CommentSortType"), + "GetPersonMentions" to mapOf("sort" to "CommentSortType"), + "GetReplies" to mapOf("sort" to "CommentSortType"), + "AdminListUsers" to mapOf("sort" to "LocalUserSortType"), + "ListMultiCommunities" to mapOf("sort" to "MultiCommunitySortType", "type_" to "MultiCommunityListingType"), + "ListPersonContent" to mapOf("type_" to "PersonContentType"), + "ListPersonSaved" to mapOf("type_" to "PersonContentType"), + "ListPersonLiked" to mapOf("type_" to "PersonContentType"), + "ListNotifications" to mapOf("type_" to "NotificationDataType"), + "ListReports" to mapOf("type_" to "ReportType", "sort" to "ReportSortType"), + "Search" to mapOf("type_" to "SearchType"), + "SearchResponse" to mapOf("type_" to "SearchType"), + "GetModlog" to mapOf("type_" to "ModlogActionType"), + "Notification" to mapOf("kind" to "NotificationType"), + "Modlog" to mapOf("kind" to "ModlogKind"), + "GetFederatedInstances" to mapOf("kind" to "GetFederatedInstancesKind"), + "CommunityActions" to mapOf("notifications" to "CommunityNotificationsMode"), + "PostActions" to mapOf("notifications" to "PostNotificationsMode"), + "EditCommunityNotifications" to mapOf("mode" to "CommunityNotificationsMode"), + "EditPostNotifications" to mapOf("mode" to "PostNotificationsMode"), + "ListPersons" to mapOf("sort" to "PersonSortType"), +) + +// ============================================================ +// Sealed Interface Configuration +// ============================================================ + +// Sealed interfaces that are not generated by dukat but must exist in the datatypes package. +// Maps the interface name to its @JsonClassDiscriminator field, and whether it needs @Serializable. +data class SealedInterface(val discriminator: String, val serializable: Boolean = false) + +// TODO: don't know yet if serializable required but also it breaks the generated code +val sealedInterfaces = mapOf( + "PostOrCommentOrPrivateMessage" to SealedInterface("type_"), + "ResolveObjectView" to SealedInterface("type_"), + "ReportCombinedView" to SealedInterface("type_"), + "NotificationData" to SealedInterface("type_", serializable = false), + "PostCommentCombinedView" to SealedInterface("type_"), +) + +// Which data classes implement which sealed interfaces and what @SerialName they carry. +data class SealedImpl(val serialName: String, val interfaces: List) + +val sealedImplementations = mapOf( + "Comment" to SealedImpl("comment", listOf("PostOrCommentOrPrivateMessage")), + "Post" to SealedImpl("post", listOf("PostOrCommentOrPrivateMessage")), + "PrivateMessage" to SealedImpl("private_message", listOf("PostOrCommentOrPrivateMessage")), + "CommentView" to SealedImpl("comment", listOf("ResolveObjectView", "NotificationData", "PostCommentCombinedView")), + "PostView" to SealedImpl("post", listOf("ResolveObjectView", "PostCommentCombinedView")), + "CommunityView" to SealedImpl("community", listOf("ResolveObjectView")), + "PersonView" to SealedImpl("person", listOf("ResolveObjectView")), + "MultiCommunityView" to SealedImpl("multi_community", listOf("ResolveObjectView")), + "CommentReportView" to SealedImpl("comment", listOf("ReportCombinedView")), + "PostReportView" to SealedImpl("post", listOf("ReportCombinedView")), + "CommunityReportView" to SealedImpl("community", listOf("ReportCombinedView")), + "PrivateMessageReportView" to SealedImpl("private_message", listOf("ReportCombinedView")), + "PrivateMessageView" to SealedImpl("private_message", listOf("NotificationData")), + "ModlogView" to SealedImpl("mod_action", listOf("NotificationData")), +) + +// ============================================================ +// Helpers +// ============================================================ + fun getTypesPath( version: String, temp: Boolean = true, ) = "$ROOT_PATH$ROOT_PACKAGE_PATH$version/datatypes" + if (temp) "/temp" else "" -fun isInteger(@Suppress("UNUSED_PARAMETER") _l: String) = true - fun getDownloadLink(tag: String) = "https://github.com/LemmyNet/lemmy-js-client/archive/refs/tags/$tag.zip" -// Requires that dukat is installed https://github.com/Kotlin/dukat -// Rewrites the TS types to Kotlin types -suspend fun downloadTypes( - version: String, - subLocation: String, -) { - val temp = File("temp") - temp.mkdir() +/** Replaces `fieldName: String` with `fieldName: EnumClass` on a single line, adding the import if matched. */ +fun String.replaceFieldEnum( + fieldName: String, + enumClass: String, + imports: MutableSet, + rootPackage: String, +): String { + val pattern = "$fieldName: String" + if (!contains(pattern)) return this + imports.add("import $rootPackage${ENUMS_PACKAGE}$enumClass") + return replace(pattern, "$fieldName: $enumClass") +} - val lemmyJsClient = File("temp", "lemmy-js.zip") +/** + * Resolves `dynamic /* ... */` union types (produced by dukat for TypeScript union types) + * back to the appropriate sealed interface type. + */ +fun resolveDynamicType(line: String): String { + if ("dynamic" !in line) return line + + val sealedType = when { + // Post (but not PostView) signals PostOrCommentOrPrivateMessage + Regex("""\bPost\b(?!View)""").containsMatchIn(line) -> "PostOrCommentOrPrivateMessage" + // ModlogView only appears in NotificationData, not ResolveObjectView + "ModlogView" in line -> "NotificationData" + // CommunityView only appears in ResolveObjectView + "CommunityView" in line -> "ResolveObjectView" + else -> return line + } - client.get(getDownloadLink(version)) - .bodyAsChannel() - .copyAndClose(lemmyJsClient.writeChannel()) + val isOptional = "= null" in line + + return line + .replace(Regex("""List"""), "List<$sealedType>") + .replace(Regex("""dynamic /\*.*?\*/"""), "$sealedType${if (isOptional) "?" else ""}") +} - val dest = File(getTypesPath(subLocation)) +/** Applies all field→enum replacements to a single line. File-specific overrides take priority. */ +fun applyEnumReplacements(line: String, fileName: String, imports: MutableSet, rootPackage: String): String { + val fileOverrides = fileFieldEnumOverrides[fileName] ?: emptyMap() + val effectiveReplacements = globalFieldEnums + fileOverrides - for (typeFile in dest.listFiles() ?: emptyArray()) { - typeFile.delete() + return effectiveReplacements.entries.fold(line) { acc, (fieldName, enumClass) -> + acc.replaceFieldEnum(fieldName, enumClass, imports, rootPackage) } - dest.mkdirs() +} - withContext(Dispatchers.IO) { - val zip = ZipFile(lemmyJsClient) - val path = "lemmy-js-client-$version/src/types" +/** Transforms a single line from dukat-output syntax to Kotlin data class syntax. */ +fun processLine(line: String, fileName: String, imports: MutableSet, rootPackage: String): String { + var k = line + .replace("interface ", "internal data class ") + .replace("typealias ", "internal typealias ") + .replace(" {", "(") + .replace("}", ")") - for (entry in zip.entries()) { - if (entry.name.startsWith(path) && !entry.isDirectory) { - val name = entry.name.substring(path.length) - val f = File(dest, name) - f.createNewFile() - f.writeBytes(zip.getInputStream(entry).readAllBytes()) - } - } + if (k.contains("?") && !k.contains("=")) k += " = null" + if (k.contains(":")) k += "," - val datatypes = File(getTypesPath(subLocation, false)) + k = k.replace(Regex("""\bvar\b"""), "val") + .replace(Regex("""\bArray\b"""), "List") - val command = - mutableListOf( - "cmd.exe", - "/c", - "dukat", - ) + k = if (propsThatShouldBeInt.any { k.contains(it) }) { + k.replace(Regex("""\bNumber\b"""), "Int") + } else { + k.replace(Regex("""\bNumber\b"""), "Long") + } - // Adds all the ts files to the command, "*.ts" does not work and causes an error - for (f in dest.listFiles()!!) { - if (f.name.endsWith(".ts") && f.isFile() && filesThatShouldNotBeAdded.contains(f.name).not()) { - command.add("temp/${f.name}") - } - } + if ("my_vote" in k) { + k = k.replace(Regex("""\bmy_vote: Int\? = null\b"""), "my_vote: Int = 0") + } + + k = resolveDynamicType(k) + k = applyEnumReplacements(k, fileName, imports, rootPackage) + + return k +} - val pb = ProcessBuilder(command) - pb.directory(datatypes) - val proc = pb.start() +/** + * Adds @SerialName annotation and sealed interface implementations to a data class body, + * if the type is configured in sealedImplementations. + */ +fun addSealedInterfaceImpl(content: String, fileName: String, imports: MutableSet): String { + val impl = sealedImplementations[fileName] ?: return content + + imports.add("import kotlinx.serialization.SerialName") + val interfaceList = impl.interfaces.joinToString(", ") + + val withSerialName = content.replace( + "internal data class $fileName(", + "@SerialName(\"${impl.serialName}\")\ninternal data class $fileName(", + ) + // Replace the last `)` (closing of the data class) with `) : InterfaceList` + val lastParen = withSerialName.lastIndexOf(')') + return withSerialName.substring(0, lastParen) + ") : $interfaceList" + withSerialName.substring(lastParen + 1) +} + +/** Generates a sealed interface .kt file for each entry in sealedInterfaces. */ +fun writeSealedInterfaces(datatypesDir: File, packageName: String) { + for ((name, info) in sealedInterfaces) { + val serializableImport = if (info.serializable) "\nimport kotlinx.serialization.Serializable" else "" + val serializableAnnotation = if (info.serializable) "\n@Serializable" else "" + + File(datatypesDir, "$name.kt").writeText( + """ + package $packageName - println(String(proc.inputStream.readAllBytes())) + import kotlinx.serialization.ExperimentalSerializationApi$serializableImport + import kotlinx.serialization.json.JsonClassDiscriminator + + @OptIn(ExperimentalSerializationApi::class)$serializableAnnotation + @JsonClassDiscriminator("${info.discriminator}") + internal sealed interface $name + """.trimIndent() + "\n" + ) + } +} + +/** Processes a single dukat-generated .d.kt file into a clean Kotlin datatype file. */ +fun processDukatFile(typeFile: File, fileName: String, packageName: String, rootPackage: String) { + val originalContent = typeFile.readText() + val isTypealias = originalContent.contains("typealias") + + val imports = mutableSetOf() + if (!isTypealias) imports.add("import kotlinx.serialization.Serializable") + + val lines = originalContent + .lines() + .drop(16) // Remove dukat-generated header + .filter { !it.contains("definedExternally") } + .map { processLine(it, fileName, imports, rootPackage) } + + var body = lines.joinToString("\n") + if (!isTypealias) body = addSealedInterfaceImpl(body, fileName, imports) + + val outputFile = File(typeFile.parentFile, "$fileName.kt") + outputFile.writeText(buildString { + appendLine("package $packageName") + appendLine() + imports.sorted().forEach { appendLine(it) } + if (imports.isNotEmpty()) appendLine() + if (!isTypealias) appendLine("@Serializable") + append(body) + if (!body.endsWith("\n")) appendLine() + }) + + typeFile.delete() +} + +// ============================================================ +// Main entry point +// ============================================================ + +// Requires that dukat is installed https://github.com/Kotlin/dukat +// Rewrites the TS types to Kotlin types +fun downloadTypes( + version: String, + subLocation: String, +) { + val packageName = "$ROOT_PACKAGE${subLocation.replace("/", ".")}.datatypes" + val tempDir = File("temp").also { it.mkdir() } + val zipFile = File(tempDir, "lemmy-js.zip") + + runBlocking { + client.get(getDownloadLink(version)) + .bodyAsChannel() + .copyAndClose(zipFile.writeChannel()) + } - for (typeFile in datatypes.listFiles()!!) { - if (typeFile.name.startsWith("lib")) { - typeFile.delete() - } else if (typeFile.name.endsWith(".kt") && typeFile.isFile()) { - val originalTypeFile = typeFile.readText() + // Extract .ts files to datatypes/temp/ + val tsDestDir = File(getTypesPath(subLocation)).also { it.mkdirs() } + tsDestDir.listFiles()?.forEach { it.delete() } + ZipFile(zipFile).use { zip -> + val tsPath = "lemmy-js-client-$version/src/types/" + for (entry in zip.entries()) { + if (!entry.name.startsWith(tsPath) || entry.isDirectory) continue + val name = entry.name.substring(tsPath.length) + val nameOnly = name.substringBefore(".") + if (nameOnly in filesThatShouldNotBeAdded) continue + File(tsDestDir, name).writeBytes(zip.getInputStream(entry).readAllBytes()) + } + } + println("TS files extracted") + + val datatypesDir = File(getTypesPath(subLocation, false)) + datatypesDir.listFiles()?.forEach { if (it.name != "temp") it.deleteRecursively() } + + // Run dukat: reads from temp/*.ts, writes .d.kt files to datatypesDir + println("Starting Dukat process...") + val proc = ProcessBuilder("bash", "-ic", "dukat temp/*.ts", "exit") + .directory(datatypesDir) + .start() + println(String(proc.inputStream.readAllBytes())) + + // Process each dukat-generated .d.kt → clean .kt + datatypesDir.listFiles()!!.forEach { typeFile -> + when { + typeFile.name.startsWith("lib") -> typeFile.delete() + typeFile.isFile && typeFile.name.endsWith(".kt") -> { val fileName = typeFile.name.substringBefore(".") - val f = File(datatypes, "$fileName.kt") - f.createNewFile() - - // Add header for each file - f.writeText( - """ - package $ROOT_PACKAGE${subLocation.replace("/", ".")}.datatypes - - """.trimIndent(), - ) - - var imports = "" - - // typealiases are not serializable - if (!originalTypeFile.contains("typealias")) { - imports += "import kotlinx.serialization.Serializable\n\n@Serializable" - } - - val lines = - originalTypeFile - .split(Regex("\r?\n")) - .drop(15) // Remove weird dukat imports - .filter { !it.contains("definedExternally") } // Remove these weird getters and setters - .map { line -> - // Convert interface to data class - var k = - line.replace("interface ", "internal data class ") - .replace(" {", "(") - .replace("}", ")") - - if (k.contains("?") && !k.contains("=")) { - k += " = null" - } - - if (k.contains(":")) { - k += "," - } - - // Better align with kotlin conventions - k = - k.replace(Regex("""\b(var)\b"""), "val") - .replace(Regex("""\b(Array)\b"""), "List") - - k = - if (isInteger(k)) { - if(propsThatShouldBeInt.any { k.contains(it)}) { - k.replace(Regex("""\b(Number)\b"""), "Int") - } else { - k.replace(Regex("""\b(Number)\b"""), "Long") - } - } else { - k.replace(Regex("""\b(Number)\b"""), "Float") - } - - if (k.contains("my_vote")) { - k = k.replace(Regex("""\b(my_vote: Int\? = null)\b"""), "my_vote: Int = 0") - } - - // Add the CustomDataTypes, that aren't autogenerated - k = - k.replace(Regex("listing_type: String")) { _ -> - imports = "import $ROOT_PACKAGE${CUSTOM_DATATYPES_PACKAGE}ListingType\n$imports" - "listing_type: ListingType" - } - k = - when (fileName) { - "SearchResponse", "Search" -> { - k.replace(Regex("type_: String")) { _ -> - imports = "import $ROOT_PACKAGE${CUSTOM_DATATYPES_PACKAGE}SearchType\n$imports" - "type_: SearchType" - } - } - - "GetModlog" -> { - k.replace(Regex("type_: String")) { _ -> - imports = "import $ROOT_PACKAGE${CUSTOM_DATATYPES_PACKAGE}ModlogActionType\n$imports" - "type_: ModlogActionType" - } - } - - else -> { - k.replace(Regex("type_: String")) { _ -> - imports = "import $ROOT_PACKAGE${CUSTOM_DATATYPES_PACKAGE}ListingType\n$imports" - "type_: ListingType" - } - } - } - - if (fileName == "GetComments" || fileName == "GetPersonMentions" || fileName == "GetReplies") { - k.replace(Regex("sort: String")) { _ -> - imports = "import $ROOT_PACKAGE${CUSTOM_DATATYPES_PACKAGE}CommentSortType\n$imports" - "sort: CommentSortType" - } - } else { - k.replace(Regex("sort: String")) { _ -> - imports = "import $ROOT_PACKAGE${CUSTOM_DATATYPES_PACKAGE}SortType\n$imports" - "sort: SortType" - }.replace(Regex("sort_type: String")) { _ -> - imports = "import $ROOT_PACKAGE${CUSTOM_DATATYPES_PACKAGE}SortType\n$imports" - "sort_type: SortType" - } - } - .replace(Regex("registration_mode: String")) { _ -> - imports = "import $ROOT_PACKAGE${CUSTOM_DATATYPES_PACKAGE}RegistrationMode\n$imports" - "registration_mode: RegistrationMode" - } - .replace(Regex("subscribed: String")) { _ -> - imports = "import $ROOT_PACKAGE${CUSTOM_DATATYPES_PACKAGE}SubscribedType\n$imports" - "subscribed: SubscribedType" - } - .replace(Regex("feature_type: String")) { _ -> - imports = "import $ROOT_PACKAGE${CUSTOM_DATATYPES_PACKAGE}PostFeatureType\n$imports" - "feature_type: PostFeatureType" - } - .replace(Regex("post_listing_mode: String")) { _ -> - imports = "import $ROOT_PACKAGE${CUSTOM_DATATYPES_PACKAGE}PostListingMode\n$imports" - "post_listing_mode: PostListingMode" - } - } - - if (imports != "") { - f.appendText("\n") - f.appendText(imports) - } - - f.appendText(lines.joinToString("\n")) - - // Must end in a newline to pass formatter - if (lines.last() != "" && lines.last() != "\r") { - f.appendText("\n") - } + processDukatFile(typeFile, fileName, packageName, ROOT_PACKAGE) } } - - dest.deleteRecursively() } - temp.deleteRecursively() + + writeSealedInterfaces(datatypesDir, packageName) + + tsDestDir.deleteRecursively() + tempDir.deleteRecursively() + println("Finished!") } -suspend fun main() { - downloadTypes("0.19.11-donation-dialog.1", "v0/x19/x11") +fun main() { + // Future version 1.0.0-beta.1 + downloadTypes("1.0.0-beta.1", "v1/x0/x0") + exitProcess(0) } diff --git a/GeneratorScripts/src/main/kotlin/testingscripts/basicApi.kt b/GeneratorScripts/src/main/kotlin/testingscripts/basicApi.kt new file mode 100644 index 00000000..c0081217 --- /dev/null +++ b/GeneratorScripts/src/main/kotlin/testingscripts/basicApi.kt @@ -0,0 +1,27 @@ +package testingscripts + +import kotlinx.coroutines.runBlocking + + +fun script1() { + runBlocking { + +// val semver = "1.0.0-nightly-2026-05-23".toVersion() +// println(semver) +// val api = LemmyApi.getLemmyApi("voyager.lemmy.ml", "1.0.0") +// println(api.version) +// println(api.getSite()) +// println(api.getPosts(GetPosts())) + +// println(api.getUnreadCounts()) +// println(api.getMyUser()) +// println(api.listNotifications(ListNotifications(NotificationDataType.All))) +// println(api.listLogins()) +// println(api.search(Search(search_term = "test", type_ = SearchType.All))) + } +} + + +fun main() { + script1() +} diff --git a/README.md b/README.md index 17866dfd..6444681f 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,11 @@ # LemmyBackwardsCompatibleAPI -A backwards compatible API for Lemmy made with Kotlin Multiplatform. Supports Lemmy 0.18+ +## Project Overview + +A **Kotlin Multiplatform** library that provides a single, unified API surface over multiple Lemmy server versions (0.18+, 0.19+, 1.0+). Consumers call one interface (`LemmyApiBaseController`) and receive unified ("uni") datatypes regardless of which Lemmy version the target instance is running. + +Built with **Ktor** (HTTP), **kotlinx.serialization** (JSON), and targets JVM, Android, iOS, macOS, Linux, Windows, and JS. ## Usage @@ -45,6 +49,19 @@ implementation("it.vercruysse.lemmyapi:lemmy-api:VERSION") ``` It is currently in beta. +## Architecture + +``` +LemmyApi (factory object) + └─ getLemmyApi(instance, version) → LemmyApiBaseController + │ + └─ version-specific LemmyApiUniWrapper (implements LemmyApiBaseController) + ├─ LemmyApiController (raw Ktor HTTP calls, version-specific datatypes) + ├─ Transformer (maps version-specific ↔ unified datatypes) + └─ MapperGenerator (interface) (declares all toUni/fromUni signatures) +``` + + ## Goals The intention is to provide an easy-to-use API that supports a wide range of Lemmy instances. @@ -59,48 +76,6 @@ It is a non-goal to provide a stable API. The API can change with every iteratio - JVM datatypes implement `Serializable` - Android datatypes implement `Parcelable` and `Serializable` -## Backwards Compatibility Strategy - -The API is backwards compatible by using the following strategy: -- API route gets added. - Add a function that returns if this feature is supported. - Older versions implement this route by throwing an error (nonSupported). -- API route gets removed. - newer versions implement this route by throwing an error (nonSupported). - Is added to the `oldRoutes` interface -- API routes its request/response changes. - For this, we transform response/requests to a "universal" type. - Concrete this means, it will usually be the modified latest datatypes. - So that the response will be the same regardless of which version. - Here are some examples from how this will look concrete: - - [Move admin flag from person to local_user](https://github.com/LemmyNet/lemmy/pull/3403), pre 0.19 version APIs will map their datatype to the latest datatype by moving that field from person to local_user - - ... TODO: add more examples -- Enum entries keep an added/removed version. - Using get `getSupportedEntries` we can retrieve the supported entries for a given enum. - This is useful, for example, for sorting, where the sorting options can change between versions. - - -## AutoGenerated Code - -To minimize the maintenance burden, many aspects have been automated. - -This is done through kotlinscripts which are located in the `GeneratorScripts` submodule - -There is 3 main scripts: -- `GenTypes`: This script updates the datatypes for the set package version (ex: v0x19). -It does this by downloading the TS types from [lemmy-js-client](https://github.com/LemmyNet/lemmy-js-client). -And applying the transformations (see [here](./docs/types_transformations.md)) to the types. This script does require that you have downloaded [dukat](https://github.com/Kotlin/dukat) -- `GenRoutes`: This script generates templates for the routes, LemmyApiService and its implementation. It will output it to `temp/` and you can copy what you need. -It does this by extracting the routes from [lemmy_openapi_spec](https://github.com/MV-GH/lemmy_openapi_spec) -- `GenMapperRoutes`: This script is a bit more complex. To prevent having to manually write all the basic transformations between datatypes of different versions. -We can automatically generate them with [Konvert](https://github.com/mcarleio/konvert). -This is done by having a definition file, in this case it is just a Interface `MapperGenerator`. Uncomment the annotations and build the project. -The mappings will be generated in the build folder. Then you can copy them to the appropriate Transformer class. -Now to prevent having to manually write the definition file, we can generate it with `GenMapperRoutes`. This will output them to the `temp/` folder. -And these are generated by comparing the datatypes from the given source package version and the given target package version. -Datatypes, which exist in both, will have a mapping generated. - - [badge-android]: http://img.shields.io/badge/-android-6EDB8D.svg?style=flat [badge-android-native]: http://img.shields.io/badge/support-[AndroidNative]-6EDB8D.svg?style=flat diff --git a/app/build.gradle.kts b/app/build.gradle.kts index e7bbdc7c..9b97a500 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -4,12 +4,12 @@ import org.jmailen.gradle.kotlinter.tasks.LintTask plugins { kotlin("multiplatform") - kotlin("plugin.serialization") version "2.1.10" - id("org.jmailen.kotlinter") version "5.0.1" - id("com.google.devtools.ksp") version ("2.1.10-1.0.30") - id("com.vanniktech.maven.publish") version "0.33.0" - id("com.github.ben-manes.versions") version "0.51.0" - id("com.android.library") + kotlin("plugin.serialization") version "2.3.21" + id("org.jmailen.kotlinter") version "5.5.0" + id("com.google.devtools.ksp") version ("2.3.8") + id("com.vanniktech.maven.publish") version "0.36.0" + id("com.github.ben-manes.versions") version "0.54.0" + id("com.android.kotlin.multiplatform.library") id("kotlin-parcelize") } @@ -19,14 +19,6 @@ repositories { google() } -android { - namespace = "it.vercruysse.lemmyapi" - compileSdk = 35 - defaultConfig { - minSdk = 21 - } -} - kotlin { jvmToolchain(17) @@ -38,21 +30,29 @@ kotlin { } } - androidTarget { + android { + namespace = "it.vercruysse.lemmyapi" + compileSdk = 36 + minSdk = 21 compilerOptions { - freeCompilerArgs.addAll("-P", "plugin:org.jetbrains.kotlin.parcelize:additionalAnnotation=it.vercruysse.lemmyapi.CommonParcelize") + freeCompilerArgs.addAll( + "-P", + "plugin:org.jetbrains.kotlin.parcelize:additionalAnnotation=it.vercruysse.lemmyapi.CommonParcelize" + ) } } linuxX64() linuxArm64() mingwX64() - macosX64() macosArm64() + iosSimulatorArm64() iosX64() iosArm64() - watchosX64() + watchosSimulatorArm64() + watchosArm32() watchosArm64() + watchosDeviceArm64() js { nodejs() @@ -67,22 +67,22 @@ kotlin { sourceSets { - val ktorVersion = "3.1.2" + val ktorVersion = "3.5.0" commonMain.dependencies { implementation("io.ktor:ktor-client-core:$ktorVersion") - implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.2") - implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.1") + implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.11.0") + implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.11.0") implementation("io.ktor:ktor-client-content-negotiation:$ktorVersion") implementation("io.ktor:ktor-serialization-kotlinx-json:$ktorVersion") - api("io.github.z4kn4fein:semver:2.0.0") + api("io.github.z4kn4fein:semver:3.1.0") } commonTest.dependencies { implementation(kotlin("test")) - implementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:1.10.2") + implementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:1.11.0") implementation("io.ktor:ktor-client-logging:$ktorVersion") } @@ -93,10 +93,10 @@ kotlin { jvmTest.dependencies { implementation(kotlin("reflect")) - implementation("io.mockk:mockk:1.13.13") - implementation("org.wiremock:wiremock:3.9.2") + implementation("io.mockk:mockk:1.14.9") + implementation("org.wiremock:wiremock:3.13.2") implementation("com.marcinziolo:kotlin-wiremock:2.1.1") - implementation("ch.qos.logback:logback-classic:1.5.15") + implementation("ch.qos.logback:logback-classic:1.5.32") implementation("io.ktor:ktor-client-mock:$ktorVersion") } @@ -122,19 +122,6 @@ kotlin { } } - val publicationsFromMainHost = listOf(jvm(), js(), androidTarget()).map { it.name } + "kotlinMultiplatform" - - publishing { - publications { - matching { it.name in publicationsFromMainHost }.all { - val targetPublication = this@all - tasks.withType() - .matching { it.publication == targetPublication } - .configureEach { onlyIf { getHostOsName() == OS.LINUX } } - } - } - } - targets.configureEach { compilations.configureEach { compileTaskProvider.configure { @@ -149,33 +136,15 @@ kotlin { tasks.withType { - val l = fileTree(".") - l.setIncludes(listOf("**/datatypes/**")) - this.source = this.source.minus(l).asFileTree + exclude("**/datatypes/**") } tasks.withType { - val l = fileTree(".") - l.setIncludes(listOf("**/datatypes/**")) - this.source = this.source.minus(l).asFileTree -} - -enum class OS { - LINUX, WINDOWS, MAC + exclude("**/datatypes/**") } -fun getHostOsName(): OS = - System.getProperty("os.name").let { osName -> - when { - osName == "Linux" -> OS.LINUX - osName.startsWith("Windows") -> OS.WINDOWS - osName.startsWith("Mac") -> OS.MAC - else -> throw GradleException("Unknown OS: $osName") - } - } - mavenPublishing { - publishToMavenCentral( true) + publishToMavenCentral(true) signAllPublications() } diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/Constants.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/Constants.kt index 25fedb57..7a9afb2d 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/Constants.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/Constants.kt @@ -7,6 +7,7 @@ val MINIMUM_API_VERSION = "0.17.0".toVersion() val V0_18_0 = "0.18.0".toVersion() val V0_19_0 = "0.19.0".toVersion() val V0_19_4 = "0.19.4".toVersion() +val V1_0_0 = "1.0.0".toVersion() const val TIMEOUT_MS = 20000L diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/FeatureFlags.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/FeatureFlags.kt index 4905b669..ff2079e1 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/FeatureFlags.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/FeatureFlags.kt @@ -15,6 +15,11 @@ class FeatureFlags(val version: Version) { private val v0x19x6Plus = version.withoutSuffixes() >= "0.19.6".toVersion() private val v0x19x11Plus = version.withoutSuffixes() >= "0.19.11".toVersion() + /** + * V1 Feature added in 1.0 + */ + val v1 = version.withoutSuffixes() >= "1.0.0".toVersion() + /** * InstanceBlock Feature added in 0.19 * diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/Identity.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/Identity.kt index 73987d1c..0f8be9e0 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/Identity.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/Identity.kt @@ -3,7 +3,7 @@ package it.vercruysse.lemmyapi /** * This declares a property to compare the identity of two objects of the same type * - * This is useful to create to define uniqueness when the other fields can be different + * This is useful to define uniqueness when the other fields can be different */ interface Identity { val id: Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/LemmyApi.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/LemmyApi.kt index d5168a9e..9cf4236c 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/LemmyApi.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/LemmyApi.kt @@ -10,9 +10,6 @@ import it.vercruysse.lemmyapi.exception.NotSupportedException import it.vercruysse.lemmyapi.utils.constructBaseUrl object LemmyApi { - const val MAX_SUPPORTED_VERSION = "0.19" - const val MIN_SUPPORTED_VERSION = "0.18" - const val API_VERSION = "v3" var defaultClient = coreHttpClient /** @@ -70,7 +67,7 @@ object LemmyApi { return if (nodeResult.isFailure) { false } else { - return isFediverse(nodeResult.getOrThrow()) + isFediverse(nodeResult.getOrThrow()) } } @@ -130,12 +127,14 @@ object LemmyApi { auth: String? = null, ): LemmyApiBaseController { val baseUrlInstance = constructBaseUrl(instance) // TODO duplicate constructBaseURL see NodeINFO - val client = getKtorClient("$baseUrlInstance/api/$API_VERSION/") val semverV = version.toVersion(false) + val apiVersion = getApiVersion(semverV) + val client = getKtorClient("$baseUrlInstance/api/$apiVersion/") return when (semverV.major) { 0 -> when (semverV.minor) { 18 -> it.vercruysse.lemmyapi.v0.x18.x5.LemmyApiUniWrapper(client, semverV, baseUrlInstance, auth) + 19 -> when (semverV.patch) { 0, 1 -> it.vercruysse.lemmyapi.v0.x19.x0.LemmyApiUniWrapper(client, semverV, baseUrlInstance, auth) 2, 3 -> it.vercruysse.lemmyapi.v0.x19.x3.LemmyApiUniWrapper(client, semverV, baseUrlInstance, auth) @@ -148,7 +147,12 @@ object LemmyApi { else -> throw NotSupportedException("Unsupported Lemmy minor version: $version") } + 1 -> it.vercruysse.lemmyapi.v1.x0.x0.LemmyApiUniWrapper(client, semverV, baseUrlInstance, auth) + else -> throw NotSupportedException("Unsupported Lemmy major version: $version") } } + + // Good enough approximation for now + private fun getApiVersion(version: io.github.z4kn4fein.semver.Version): String = if (version.major == 0) "v3" else "v4" } diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/LemmyApiBase.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/LemmyApiBase.kt index 1ab9a181..d957f2b3 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/LemmyApiBase.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/LemmyApiBase.kt @@ -3,15 +3,12 @@ package it.vercruysse.lemmyapi import io.github.z4kn4fein.semver.Version import io.ktor.client.* import it.vercruysse.lemmyapi.dto.NodeInfo -import it.vercruysse.lemmyapi.dto.VersionTracker import it.vercruysse.lemmyapi.dto.getSupportedEntries +import it.vercruysse.lemmyapi.enums.VersionTracker import it.vercruysse.lemmyapi.exception.NotSupportedException -import it.vercruysse.lemmyapi.pictrs.PictrsService // Wanted to keep this as an interface, but interfaces can't keep state -abstract class LemmyApiBase(httpClient: HttpClient, val version: Version, val baseUrl: String, override var auth: String?) : - PictrsService(httpClient, auth), - OldRoutes { +abstract class LemmyApiBase(httpClient: HttpClient, val version: Version, val baseUrl: String, open var auth: String?) { @Suppress("PropertyName") val FF = FeatureFlags(version) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/LemmyApiBaseController.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/LemmyApiBaseController.kt index 92d1a8ea..ad46ad5c 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/LemmyApiBaseController.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/LemmyApiBaseController.kt @@ -12,7 +12,23 @@ abstract class LemmyApiBaseController(client: HttpClient, actualVersion: Version actualVersion, baseUrl, auth, - ) { + ), + OldRoutes { + + suspend fun uploadAndApplyImage( + image: ByteArray, + applyImage: suspend (String) -> Result, + ): Result = runCatching { + val uploadResponse = uploadImage(image).getOrThrow() + try { + applyImage(uploadResponse.image_url).getOrThrow() + uploadResponse + } catch (e: Throwable) { + deleteMedia(DeleteImageParams(uploadResponse.delete_filename)).getOrNull() + throw e + } + } + /** * Gets the site, and your user data. * @@ -39,10 +55,10 @@ abstract class LemmyApiBaseController(client: HttpClient, actualVersion: Version * * @GET("modlog") */ - abstract suspend fun getModlog(form: GetModlog): Result + abstract suspend fun getModlog(form: GetModlog): Result> /** - * Search lemmy. + * Search lemmy. If `search_term` is a url it also attempts to fetch it, just like `resolve_object`. * * @GET("search") */ @@ -53,7 +69,7 @@ abstract class LemmyApiBaseController(client: HttpClient, actualVersion: Version * * @GET("resolve_object") */ - abstract suspend fun resolveObject(form: ResolveObject): Result + abstract suspend fun resolveObject(form: ResolveObject): Result /** * Get / fetch a community. @@ -88,7 +104,7 @@ abstract class LemmyApiBaseController(client: HttpClient, actualVersion: Version * * @GET("community/list") */ - abstract suspend fun listCommunities(form: ListCommunities): Result + abstract suspend fun listCommunities(form: ListCommunities): Result> /** * Follow / subscribe to a community. @@ -102,7 +118,7 @@ abstract class LemmyApiBaseController(client: HttpClient, actualVersion: Version * * @POST("community/block") */ - abstract suspend fun blockCommunity(form: BlockCommunity): Result + abstract suspend fun blockCommunity(form: BlockCommunity): Result /** * Delete a community. @@ -123,14 +139,14 @@ abstract class LemmyApiBaseController(client: HttpClient, actualVersion: Version * * @POST("community/transfer") */ - abstract suspend fun transferCommunity(form: TransferCommunity): Result + abstract suspend fun transferCommunity(form: TransferCommunity): Result /** * Ban a user from a community. * * @POST("community/ban_user") */ - abstract suspend fun banFromCommunity(form: BanFromCommunity): Result + abstract suspend fun banFromCommunity(form: BanFromCommunity): Result /** * Add a moderator to your community. @@ -144,7 +160,7 @@ abstract class LemmyApiBaseController(client: HttpClient, actualVersion: Version * * @GET("federated_instances") */ - abstract suspend fun getFederatedInstances(): Result + abstract suspend fun getFederatedInstances(form: GetFederatedInstances): Result> /** * Get / fetch a post. @@ -172,7 +188,7 @@ abstract class LemmyApiBaseController(client: HttpClient, actualVersion: Version * * @GET("post/list") */ - abstract suspend fun getPosts(form: GetPosts): Result + abstract suspend fun getPosts(form: GetPosts): Result> /** * Delete a post. @@ -193,7 +209,14 @@ abstract class LemmyApiBaseController(client: HttpClient, actualVersion: Version * * @POST("post/mark_as_read") */ - abstract suspend fun markPostAsRead(form: MarkPostAsRead): Result + abstract suspend fun markPostAsRead(form: MarkPostAsRead): Result + + /** + * Mark multiple posts as read. + * + * @POST("post/mark_as_read") + */ + abstract suspend fun markManyPostsAsRead(form: MarkManyPostsAsRead): Result /** * A moderator can lock a post ( IE disable new comments ). @@ -238,11 +261,9 @@ abstract class LemmyApiBaseController(client: HttpClient, actualVersion: Version abstract suspend fun resolvePostReport(form: ResolvePostReport): Result /** - * List post reports. - * - * @GET("post/report/list") + * List user reports. */ - abstract suspend fun listPostReports(form: ListPostReports): Result + abstract suspend fun listReports(form: ListReports): Result> /** * Fetch metadata for any given site. @@ -277,7 +298,7 @@ abstract class LemmyApiBaseController(client: HttpClient, actualVersion: Version * * @GET("comment/list") */ - abstract suspend fun getComments(form: GetComments): Result + abstract suspend fun getComments(form: GetComments): Result> /** * Delete a comment. @@ -293,13 +314,6 @@ abstract class LemmyApiBaseController(client: HttpClient, actualVersion: Version */ abstract suspend fun removeComment(form: RemoveComment): Result - /** - * Mark a comment as read. - * - * @POST("comment/mark_as_read") - */ - abstract suspend fun markCommentReplyAsRead(form: MarkCommentReplyAsRead): Result - /** * Distinguishes a comment (speak as moderator) * @@ -335,13 +349,6 @@ abstract class LemmyApiBaseController(client: HttpClient, actualVersion: Version */ abstract suspend fun resolveCommentReport(form: ResolveCommentReport): Result - /** - * List comment reports. - * - * @GET("comment/report/list") - */ - abstract suspend fun listCommentReports(form: ListCommentReports): Result - /** * Edit a private message. * @@ -356,13 +363,6 @@ abstract class LemmyApiBaseController(client: HttpClient, actualVersion: Version */ abstract suspend fun createPrivateMessage(form: CreatePrivateMessage): Result - /** - * Get / fetch private messages. - * - * @GET("private_message/list") - */ - abstract suspend fun getPrivateMessages(form: GetPrivateMessages): Result - /** * Delete a private message. * @@ -370,13 +370,6 @@ abstract class LemmyApiBaseController(client: HttpClient, actualVersion: Version */ abstract suspend fun deletePrivateMessage(form: DeletePrivateMessage): Result - /** - * Mark a private message as read. - * - * @POST("private_message/mark_as_read") - */ - abstract suspend fun markPrivateMessageAsRead(form: MarkPrivateMessageAsRead): Result - /** * Create a report for a private message. * @@ -391,13 +384,6 @@ abstract class LemmyApiBaseController(client: HttpClient, actualVersion: Version */ abstract suspend fun resolvePrivateMessageReport(form: ResolvePrivateMessageReport): Result - /** - * List private message reports. - * - * @GET("private_message/report/list") - */ - abstract suspend fun listPrivateMessageReports(form: ListPrivateMessageReports): Result - /** * Get the details for a person. * @@ -406,60 +392,56 @@ abstract class LemmyApiBaseController(client: HttpClient, actualVersion: Version abstract suspend fun getPersonDetails(form: GetPersonDetails): Result /** - * Register a new user. + * List persons. * - * @POST("user/register") + * @GET("person/list") */ - abstract suspend fun register(form: Register): Result + abstract suspend fun listPersons(form: ListPersons): Result> /** - * Fetch a Captcha. + * List the content for a person. * - * @GET("user/get_captcha") + * @GET("person/content") */ - abstract suspend fun getCaptcha(): Result + abstract suspend fun listPersonContent(form: ListPersonContent): Result> /** - * Get mentions for your user. + * Register a new user. * - * @GET("user/mention") + * @POST("user/register") */ - abstract suspend fun getPersonMentions(form: GetPersonMentions): Result + abstract suspend fun register(form: Register): Result /** - * Mark a person mention as read. + * Fetch a Captcha. * - * @POST("user/mention/mark_as_read") + * @GET("user/get_captcha") */ - abstract suspend fun markPersonMentionAsRead(form: MarkPersonMentionAsRead): Result + abstract suspend fun getCaptcha(): Result /** - * Get comment replies. - * - * @GET("user/replies") + * Mark a notification as read. */ - abstract suspend fun getReplies(form: GetReplies): Result + abstract suspend fun markNotificationAsRead(form: MarkNotificationAsRead): Result /** - * Ban a person from your site. - * - * @POST("user/ban") + * Get your inbox (replies, comment mentions, post mentions, and messages). */ - abstract suspend fun banPerson(form: BanPerson): Result + abstract suspend fun listNotifications(form: ListNotifications): Result> /** - * Get a list of banned users + * Ban a person from your site. * - * @GET("user/banned") + * @POST("admin/ban") */ - abstract suspend fun getBannedPersons(): Result + abstract suspend fun banPerson(form: BanPerson): Result /** * Block a person. * * @POST("user/block") */ - abstract suspend fun blockPerson(form: BlockPerson): Result + abstract suspend fun blockPerson(form: BlockPerson): Result /** * Log into lemmy. @@ -480,21 +462,21 @@ abstract class LemmyApiBaseController(client: HttpClient, actualVersion: Version * * @POST("user/password_reset") */ - abstract suspend fun resetPassword(form: PasswordReset): Result + abstract suspend fun resetPassword(form: ResetPassword): Result /** * Change your password from an email / token based reset. * * @POST("user/password_change") */ - abstract suspend fun changePasswordAfterReset(form: PasswordChangeAfterReset): Result + abstract suspend fun changePasswordAfterReset(form: ChangePasswordAfterReset): Result /** - * Mark all replies as read. + * Mark all notifications as read. * * @POST("user/mark_all_as_read") */ - abstract suspend fun markAllAsRead(): Result + abstract suspend fun markAllNotificationsAsRead(): Result /** * Save your user settings. @@ -511,21 +493,16 @@ abstract class LemmyApiBaseController(client: HttpClient, actualVersion: Version abstract suspend fun changePassword(form: ChangePassword): Result /** - * Get counts for your reports - * - * @GET("user/report_count") - */ - abstract suspend fun getReportCount(form: GetReportCount): Result - - /** - * Get your unread counts + * Returns the amount of unread items of various types. For normal users this means + * the number of unread notifications, mods and admins get additional unread counts for + * reports, registration applications and pending follows to private communities. * - * @GET("user/unread_count") + * @GET("account/unread_counts") */ - abstract suspend fun getUnreadCount(): Result + abstract suspend fun getUnreadCounts(): Result /** - * Verify your email + * Verify your email. * * @POST("user/verify_email") */ @@ -539,7 +516,7 @@ abstract class LemmyApiBaseController(client: HttpClient, actualVersion: Version abstract suspend fun leaveAdmin(): Result /** - * Mark donation dialog as shown. + * Mark the donation dialog as shown, so it isn't displayed anymore. * * @POST("user/donation_dialog_shown") */ @@ -553,18 +530,32 @@ abstract class LemmyApiBaseController(client: HttpClient, actualVersion: Version abstract suspend fun addAdmin(form: AddAdmin): Result /** - * Get the unread registration applications count. + * Create a new registration invitation. + * + * @POST("account/invite") + */ + abstract suspend fun createRegistrationInvitation(form: CreateInvitation): Result + + /** + * Revoke a previously created registration invitation. + * + * @DELETE("account/invite") + */ + abstract suspend fun revokeRegistrationInvitation(form: RevokeInvitation): Result + + /** + * List previously created registration invitations. * - * @GET("admin/registration_application/count") + * @GET("account/invite") */ - abstract suspend fun getUnreadRegistrationApplicationCount(): Result + abstract suspend fun listRegistrationInvitations(form: ListInvitations): Result> /** * List the registration applications. * * @GET("admin/registration_application/list") */ - abstract suspend fun listRegistrationApplications(form: ListRegistrationApplications): Result + abstract suspend fun listRegistrationApplications(form: ListRegistrationApplications): Result> /** * Approve a registration application @@ -623,16 +614,23 @@ abstract class LemmyApiBaseController(client: HttpClient, actualVersion: Version abstract suspend fun deleteCustomEmoji(form: DeleteCustomEmoji): Result /** - * Block an instance. + * List custom emojis + * + * @GET("custom_emoji/list") + */ + abstract suspend fun listCustomEmojis(form: ListCustomEmojis): Result + + /** + * Block an instance's communities as a user. * * @POST("site/block") */ - abstract suspend fun blockInstance(form: BlockInstance): Result + abstract suspend fun userBlockInstanceCommunities(form: UserBlockInstanceCommunitiesParams): Result /** * Generate a TOTP / two-factor secret. * - * Afterwards you need to call `/user/totp/update` with a valid token to enable it. + * Afterwards you need to call `/account/auth/totp/edit` with a valid token to enable it. * * @POST("user/totp/generate") */ @@ -641,13 +639,13 @@ abstract class LemmyApiBaseController(client: HttpClient, actualVersion: Version /** * Enable / Disable TOTP / two-factor authentication. * - * To enable, you need to first call `/user/totp/generate` and then pass a valid token to this. + * To enable, you need to first call `/account/auth/totp/generate` and then pass a valid token to this. * * Disabling is only possible if 2FA was previously enabled. Again it is necessary to pass a valid token. * * @POST("user/totp/update") */ - abstract suspend fun updateTotp(form: UpdateTotp): Result + abstract suspend fun editTotp(form: EditTotp): Result /** * Export a backup of your user settings, including your saved content, @@ -669,7 +667,7 @@ abstract class LemmyApiBaseController(client: HttpClient, actualVersion: Version * * @GET("user/list_logins") */ - abstract suspend fun listLogins(): Result> + abstract suspend fun listLogins(): Result /** * Returns an error message if your auth token is invalid @@ -679,7 +677,14 @@ abstract class LemmyApiBaseController(client: HttpClient, actualVersion: Version abstract suspend fun validateAuth(): Result /** - * Logout your user + * Get data of current user. + * + * @GET("/account") + */ + abstract suspend fun getMyUser(): Result + + /** + * Invalidate the currently used auth token. * * @POST("user/logout") */ @@ -690,35 +695,42 @@ abstract class LemmyApiBaseController(client: HttpClient, actualVersion: Version * * @GET("post/like/list") */ - abstract suspend fun listPostLikes(form: ListPostLikes): Result + abstract suspend fun listPostLikes(form: ListPostLikes): Result> /** * List a comment's likes. Admin-only. * * @GET("comment/like/list") */ - abstract suspend fun listCommentLikes(form: ListCommentLikes): Result + abstract suspend fun listCommentLikes(form: ListCommentLikes): Result> /** * List all the media for your user * * @GET("account/list_media") */ - abstract suspend fun listMedia(form: ListMedia): Result + abstract suspend fun listMedia(form: ListMedia): Result> /** * List all the media known to your instance. * * @GET("admin/list_all_media") */ - abstract suspend fun listAllMedia(form: ListMedia): Result + abstract suspend fun listMediaAdmin(form: ListMedia): Result> /** * Hide a post from list views. * * @POST("post/hide") */ - abstract suspend fun hidePost(form: HidePost): Result + abstract suspend fun hidePost(form: HidePost): Result + + /** + * Hide multiple posts from list views. + * + * @POST("post/hide") + */ + abstract suspend fun hidePosts(form: HidePosts): Result /** * Get the application a user submitted when they first registered their account @@ -726,4 +738,396 @@ abstract class LemmyApiBaseController(client: HttpClient, actualVersion: Version * @GET("admin/registration_application") */ abstract suspend fun getRegistrationApplication(form: GetRegistrationApplication): Result + + /** + * Get a list of users. + * + * @GET("admin/users") + */ + abstract suspend fun adminListUsers(form: AdminListUsers): Result> + + /** + * Upload a generic image. + * + * @POST("image") + */ + abstract suspend fun uploadImage(image: ByteArray): Result + + /** + * Delete media for your account. + * + * @DELETE("account/media") + */ + abstract suspend fun deleteMedia(form: DeleteImageParams): Result + + /** + * Upload new user avatar. + * + * @POST("account/avatar") + */ + abstract suspend fun uploadUserAvatar(image: ByteArray): Result + + /** + * Upload a user banner image. + * + * @POST("account/banner") + */ + abstract suspend fun uploadUserBanner(image: ByteArray): Result + + /** + * Upload a site banner image. + * + * @POST("site/banner") + */ + abstract suspend fun uploadSiteBanner(image: ByteArray): Result + + /** + * Upload new site icon. + * + * @POST("site/icon") + */ + abstract suspend fun uploadSiteIcon(image: ByteArray): Result + + /** + * Upload a community banner image. + * + * @POST("community/banner") + */ + abstract suspend fun uploadCommunityBanner(image: ByteArray, form: CommunityIdQuery): Result + + /** + * Upload a community icon image. + * + * @POST("community/icon") + */ + abstract suspend fun uploadCommunityIcon(image: ByteArray, form: CommunityIdQuery): Result + + /** + * Delete the user avatar. + * + * @DELETE("account/avatar") + */ + abstract suspend fun deleteUserAvatar(): Result + + /** + * Delete a user banner image. + * + * @DELETE("account/banner") + */ + abstract suspend fun deleteUserBanner(): Result + + /** + * Delete a community banner image. + * + * @DELETE("community/banner") + */ + abstract suspend fun deleteCommunityBanner(form: CommunityIdQuery): Result + + /** + * Delete a community icon image. + * + * @DELETE("community/icon") + */ + abstract suspend fun deleteCommunityIcon(form: CommunityIdQuery): Result + + /** + * Delete a site banner image. + * + * @DELETE("site/banner") + */ + abstract suspend fun deleteSiteBanner(): Result + + /** + * Delete the site icon. + * + * @DELETE("site/icon") + */ + abstract suspend fun deleteSiteIcon(): Result + + /** + * Get a random community. + * + * @GET("community/random") + */ + abstract suspend fun getRandomCommunity(form: GetRandomCommunity): Result + + /** + * Report a community. + * + * @POST("community/report") + */ + abstract suspend fun createCommunityReport(form: CreateCommunityReport): Result + + /** + * Resolve a community report. + * + * @PUT("community/report/resolve") + */ + abstract suspend fun resolveCommunityReport(form: ResolveCommunityReport): Result + + /** + * Create a community tag. + * + * @POST("community/tag") + */ + abstract suspend fun createCommunityTag(form: CreateCommunityTag): Result + + /** + * Edit a community tag. + * + * @PUT("community/tag") + */ + abstract suspend fun editCommunityTag(form: EditCommunityTag): Result + + /** + * Delete a community tag. + * + * @DELETE("community/tag") + */ + abstract suspend fun deleteCommunityTag(form: DeleteCommunityTag): Result + + /** + * Edit community notifications. + * + * @PUT("community/notifications") + */ + abstract suspend fun editCommunityNotifications(form: EditCommunityNotifications): Result + + /** + * Approve a community pending follower. + * + * @POST("community/pending_follows/approve") + */ + abstract suspend fun approveCommunityPendingFollow(form: ApproveCommunityPendingFollower): Result + + /** + * List community pending follows. + * + * @GET("community/pending_follows/list") + */ + abstract suspend fun listCommunityPendingFollows(form: ListCommunityPendingFollows): Result> + + /** + * Mods can change nsfw flag and tags for a post. + * + * @PUT("post/mod_edit") + */ + abstract suspend fun modEditPost(form: ModEditPost): Result + + /** + * Change notification settings for a post. + * + * @PUT("post/notifications") + */ + abstract suspend fun editPostNotifications(form: EditPostNotifications): Result + + /** + * Creates a warning against a post and notifies the user. + * + * @POST("post/warn") + */ + abstract suspend fun warnPost(form: CreatePostWarning): Result + + /** + * Get slim comment list. + * + * @GET("comment/list/slim") + */ + abstract suspend fun getCommentsSlim(form: GetComments): Result> + + /** + * Lock a comment. + * + * @POST("comment/lock") + */ + abstract suspend fun lockComment(form: LockComment): Result + + /** + * Warn a comment. + * + * @POST("comment/warn") + */ + abstract suspend fun warnComment(form: CreateCommentWarning): Result + + /** + * Make a note for a person. + * + * @POST("person/note") + */ + abstract suspend fun notePerson(form: NotePerson): Result + + /** + * List your saved content. + * + * @GET("account/saved") + */ + abstract suspend fun listPersonSaved(form: ListPersonSaved): Result> + + /** + * List your read content. + * + * @GET("account/read") + */ + abstract suspend fun listPersonRead(form: ListPersonRead): Result> + + /** + * List hidden posts for a person. + * + * @GET("account/hidden") + */ + abstract suspend fun listPersonHidden(form: ListPersonHidden): Result> + + /** + * List your liked content. + * + * @GET("account/liked") + */ + abstract suspend fun listPersonLiked(form: ListPersonLiked): Result> + + /** + * Resend a verification email. + * + * @POST("account/auth/resend_verification_email") + */ + abstract suspend fun resendVerificationEmail(form: ResendVerificationEmail): Result + + /** + * Authenticate with OAuth. + * + * @POST("oauth/authenticate") + */ + abstract suspend fun authenticateWithOAuth(form: AuthenticateWithOauth): Result + + /** + * Block an instance's persons as a user. + * + * @POST("account/block/instance/persons") + */ + abstract suspend fun userBlockInstancePersons(form: UserBlockInstancePersonsParams): Result + + /** + * Globally allow an instance as admin. + * + * @POST("admin/instance/allow") + */ + abstract suspend fun adminAllowInstance(form: AdminAllowInstanceParams): Result + + /** + * Globally block an instance as admin. + * + * @POST("admin/instance/block") + */ + abstract suspend fun adminBlockInstance(form: AdminBlockInstanceParams): Result + + /** + * Create a new tagline. + * + * @POST("admin/tagline") + */ + abstract suspend fun createTagline(form: CreateTagline): Result + + /** + * Edit an existing tagline. + * + * @PUT("admin/tagline") + */ + abstract suspend fun editTagline(form: EditTagline): Result + + /** + * Delete a tagline. + * + * @DELETE("admin/tagline") + */ + abstract suspend fun deleteTagline(form: DeleteTagline): Result + + /** + * List taglines. + * + * @GET("admin/tagline/list") + */ + abstract suspend fun listTaglines(form: ListTaglines): Result> + + /** + * Create a new OAuth provider method. + * + * @POST("oauth_provider") + */ + abstract suspend fun createOAuthProvider(form: CreateOAuthProvider): Result + + /** + * Edit an existing OAuth provider method. + * + * @PUT("oauth_provider") + */ + abstract suspend fun editOAuthProvider(form: EditOAuthProvider): Result + + /** + * Delete an OAuth provider method. + * + * @DELETE("oauth_provider") + */ + abstract suspend fun deleteOAuthProvider(form: DeleteOAuthProvider): Result + + /** + * Get a multi-community. + * + * @GET("multi_community") + */ + abstract suspend fun getMultiCommunity(form: GetMultiCommunity): Result + + /** + * Create a multi-community. + * + * @POST("multi_community") + */ + abstract suspend fun createMultiCommunity(form: CreateMultiCommunity): Result + + /** + * Edit a multi-community. + * + * @PUT("multi_community") + */ + abstract suspend fun editMultiCommunity(form: EditMultiCommunity): Result + + /** + * Add a community to a multi-community. + * + * @POST("multi_community/entry") + */ + abstract suspend fun createMultiCommunityEntry(form: CreateOrDeleteMultiCommunityEntry): Result + + /** + * Remove a community from a multi-community. + * + * @DELETE("multi_community/entry") + */ + abstract suspend fun deleteMultiCommunityEntry(form: CreateOrDeleteMultiCommunityEntry): Result + + /** + * Follow a multi-community. + * + * @POST("multi_community/follow") + */ + abstract suspend fun followMultiCommunity(form: FollowMultiCommunity): Result + + /** + * List multi-communities. + * + * @GET("multi_community/list") + */ + abstract suspend fun listMultiCommunities(form: ListMultiCommunities): Result> + + /** + * Delete admin media. + * + * @DELETE("image") + */ + abstract suspend fun deleteMediaAdmin(form: DeleteImageParams): Result + + /** + * Check image service health. + * + * @GET("image/health") + */ + abstract suspend fun imageHealth(): Result } diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/OldRoutes.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/OldRoutes.kt index 33165e0d..a6c5939d 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/OldRoutes.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/OldRoutes.kt @@ -1,7 +1,18 @@ package it.vercruysse.lemmyapi +import it.vercruysse.lemmyapi.datatypes.PagedResponse +import it.vercruysse.lemmyapi.datatypes.PersonView + /** * This file is for routes that are no longer used by the latest version of Lemmy. * But need to be kept for backwards compatibility. */ -interface OldRoutes +interface OldRoutes { + + /** + * Get a list of banned users + * + * @GET("user/banned") + */ + suspend fun getBannedPersons(): Result> +} diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/AddAdmin.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/AddAdmin.kt index 9f17a115..6160e246 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/AddAdmin.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/AddAdmin.kt @@ -1,8 +1,8 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize @CommonParcelize @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/AddAdminResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/AddAdminResponse.kt index 58fa7cec..f97e321c 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/AddAdminResponse.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/AddAdminResponse.kt @@ -1,10 +1,9 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class AddAdminResponse( diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/AddModToCommunity.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/AddModToCommunity.kt index ff001b5b..b1c3280e 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/AddModToCommunity.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/AddModToCommunity.kt @@ -1,10 +1,9 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class AddModToCommunity( diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/AddModToCommunityResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/AddModToCommunityResponse.kt index 4be7cc15..1f49c259 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/AddModToCommunityResponse.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/AddModToCommunityResponse.kt @@ -1,10 +1,9 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class AddModToCommunityResponse( diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/AdminAllowInstanceParams.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/AdminAllowInstanceParams.kt new file mode 100644 index 00000000..0dd3fb5f --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/AdminAllowInstanceParams.kt @@ -0,0 +1,13 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +data class AdminAllowInstanceParams( + val instance: String, + val allow: Boolean, + val reason: String, +) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/AdminBlockInstanceParams.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/AdminBlockInstanceParams.kt new file mode 100644 index 00000000..15570ce5 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/AdminBlockInstanceParams.kt @@ -0,0 +1,14 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +data class AdminBlockInstanceParams( + val instance: String, + val block: Boolean, + val reason: String, + val expires_at: Long? = null, +) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListCommentReports.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/AdminListUsers.kt similarity index 52% rename from app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListCommentReports.kt rename to app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/AdminListUsers.kt index 2eaf9206..8e71ebb3 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListCommentReports.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/AdminListUsers.kt @@ -1,16 +1,15 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot +import it.vercruysse.lemmyapi.enums.LocalUserSortType import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable -data class ListCommentReports( - val comment_id: CommentId? = null, - val page: Long? = null, +data class AdminListUsers( + val banned_only: Boolean? = null, + val page_cursor: PaginationCursor? = null, + val sort: LocalUserSortType? /* "new" | "old" */ = null, val limit: Long? = null, - val unresolved_only: Boolean? = null, - val community_id: CommunityId? = null, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/AdminOAuthProvider.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/AdminOAuthProvider.kt new file mode 100644 index 00000000..4216ce5e --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/AdminOAuthProvider.kt @@ -0,0 +1,25 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +data class AdminOAuthProvider( + val id: OAuthProviderId, + val display_name: String, + val issuer: String, + val authorization_endpoint: String, + val token_endpoint: String, + val userinfo_endpoint: String, + val id_claim: String, + val client_id: String, + val scopes: String, + val auto_verify_email: Boolean, + val account_linking_enabled: Boolean, + val enabled: Boolean, + val published_at: String, + val updated_at: String? = null, + val use_pkce: Boolean, +) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/AdminPurgeCommunity.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/AdminPurgeCommunity.kt deleted file mode 100644 index cca3375e..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/AdminPurgeCommunity.kt +++ /dev/null @@ -1,16 +0,0 @@ -package it.vercruysse.lemmyapi.datatypes - -import it.vercruysse.lemmyapi.DatatypeRoot -import it.vercruysse.lemmyapi.Identity -import kotlinx.serialization.Serializable - -import it.vercruysse.lemmyapi.CommonParcelize - -@CommonParcelize -@Serializable -data class AdminPurgeCommunity( - override val id: Long, - val admin_person_id: PersonId, - val reason: String? = null, - val when_: String, -) : DatatypeRoot, Identity diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/AdminPurgeCommunityView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/AdminPurgeCommunityView.kt deleted file mode 100644 index 6a27cef0..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/AdminPurgeCommunityView.kt +++ /dev/null @@ -1,17 +0,0 @@ -package it.vercruysse.lemmyapi.datatypes - -import it.vercruysse.lemmyapi.DatatypeRoot -import it.vercruysse.lemmyapi.Identity -import kotlinx.serialization.Serializable - -import it.vercruysse.lemmyapi.CommonParcelize - -@CommonParcelize -@Serializable -data class AdminPurgeCommunityView( - val admin_purge_community: AdminPurgeCommunity, - val admin: Person? = null, -) : DatatypeRoot, Identity { - override val id: Long - get() = admin_purge_community.id -} diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/AdminPurgePerson.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/AdminPurgePerson.kt deleted file mode 100644 index 40d969e2..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/AdminPurgePerson.kt +++ /dev/null @@ -1,16 +0,0 @@ -package it.vercruysse.lemmyapi.datatypes - -import it.vercruysse.lemmyapi.DatatypeRoot -import it.vercruysse.lemmyapi.Identity -import kotlinx.serialization.Serializable - -import it.vercruysse.lemmyapi.CommonParcelize - -@CommonParcelize -@Serializable -data class AdminPurgePerson( - override val id: Long, - val admin_person_id: PersonId, - val reason: String? = null, - val when_: String, -) : DatatypeRoot, Identity diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/AdminPurgePersonView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/AdminPurgePersonView.kt deleted file mode 100644 index 15d07e52..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/AdminPurgePersonView.kt +++ /dev/null @@ -1,17 +0,0 @@ -package it.vercruysse.lemmyapi.datatypes - -import it.vercruysse.lemmyapi.DatatypeRoot -import it.vercruysse.lemmyapi.Identity -import kotlinx.serialization.Serializable - -import it.vercruysse.lemmyapi.CommonParcelize - -@CommonParcelize -@Serializable -data class AdminPurgePersonView( - val admin_purge_person: AdminPurgePerson, - val admin: Person? = null, -) : DatatypeRoot, Identity { - override val id: Long - get() = admin_purge_person.id -} diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/AdminPurgePost.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/AdminPurgePost.kt deleted file mode 100644 index e6a12cbd..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/AdminPurgePost.kt +++ /dev/null @@ -1,17 +0,0 @@ -package it.vercruysse.lemmyapi.datatypes - -import it.vercruysse.lemmyapi.DatatypeRoot -import it.vercruysse.lemmyapi.Identity -import kotlinx.serialization.Serializable - -import it.vercruysse.lemmyapi.CommonParcelize - -@CommonParcelize -@Serializable -data class AdminPurgePost( - override val id: Long, - val admin_person_id: PersonId, - val community_id: CommunityId, - val reason: String? = null, - val when_: String, -) : DatatypeRoot, Identity diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/AdminPurgePostView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/AdminPurgePostView.kt deleted file mode 100644 index 26134de7..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/AdminPurgePostView.kt +++ /dev/null @@ -1,18 +0,0 @@ -package it.vercruysse.lemmyapi.datatypes - -import it.vercruysse.lemmyapi.DatatypeRoot -import it.vercruysse.lemmyapi.Identity -import kotlinx.serialization.Serializable - -import it.vercruysse.lemmyapi.CommonParcelize - -@CommonParcelize -@Serializable -data class AdminPurgePostView( - val admin_purge_post: AdminPurgePost, - val admin: Person? = null, - val community: Community, -) : DatatypeRoot, Identity { - override val id: Long - get() = admin_purge_post.id -} diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModTransferCommunity.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ApproveCommunityPendingFollower.kt similarity index 64% rename from app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModTransferCommunity.kt rename to app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ApproveCommunityPendingFollower.kt index b657064b..1960a409 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModTransferCommunity.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ApproveCommunityPendingFollower.kt @@ -1,16 +1,13 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable -data class ModTransferCommunity( - val id: Long, - val mod_person_id: PersonId, - val other_person_id: PersonId, +data class ApproveCommunityPendingFollower( val community_id: CommunityId, - val when_: String, + val follower_id: PersonId, + val approve: Boolean, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ApproveRegistrationApplication.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ApproveRegistrationApplication.kt index 94cc7d72..26dc7ef8 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ApproveRegistrationApplication.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ApproveRegistrationApplication.kt @@ -1,10 +1,9 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class ApproveRegistrationApplication( diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/AuthenticateWithOauth.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/AuthenticateWithOauth.kt new file mode 100644 index 00000000..42e5b5a4 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/AuthenticateWithOauth.kt @@ -0,0 +1,18 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +data class AuthenticateWithOauth( + val code: String, + val oauth_provider_id: OAuthProviderId, + val redirect_uri: String, + val show_nsfw: Boolean? = null, + val username: String? = null, + val answer: String? = null, + val pkce_code_verifier: String? = null, + val stay_logged_in: Boolean? = null, +) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/BanFromCommunity.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/BanFromCommunity.kt index 40ae44b7..1508c260 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/BanFromCommunity.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/BanFromCommunity.kt @@ -1,17 +1,16 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class BanFromCommunity( val community_id: CommunityId, val person_id: PersonId, val ban: Boolean, - val remove_data: Boolean? = null, - val reason: String? = null, - val expires: Long? = null, + val remove_or_restore_data: Boolean? = null, + val reason: String, + val expires_at: Long? = null, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/BanPerson.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/BanPerson.kt index 0598cf6c..84f238f0 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/BanPerson.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/BanPerson.kt @@ -1,16 +1,15 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class BanPerson( val person_id: PersonId, val ban: Boolean, - val remove_data: Boolean? = null, - val reason: String? = null, - val expires: Long? = null, + val remove_or_restore_data: Boolean? = null, + val reason: String, + val expires_at: Long? = null, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/BlockCommunity.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/BlockCommunity.kt index 273f639a..2cd25c5a 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/BlockCommunity.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/BlockCommunity.kt @@ -1,10 +1,9 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class BlockCommunity( diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/BlockPerson.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/BlockPerson.kt index 923955ba..35401a18 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/BlockPerson.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/BlockPerson.kt @@ -1,10 +1,9 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class BlockPerson( diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/BlockPersonResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/BlockPersonResponse.kt deleted file mode 100644 index 867cffd0..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/BlockPersonResponse.kt +++ /dev/null @@ -1,13 +0,0 @@ -package it.vercruysse.lemmyapi.datatypes - -import it.vercruysse.lemmyapi.DatatypeRoot -import kotlinx.serialization.Serializable - -import it.vercruysse.lemmyapi.CommonParcelize - -@CommonParcelize -@Serializable -data class BlockPersonResponse( - val person_view: PersonView, - val blocked: Boolean, -) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CaptchaResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CaptchaResponse.kt index 028ade14..7c36b359 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CaptchaResponse.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CaptchaResponse.kt @@ -1,10 +1,9 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class CaptchaResponse( diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ChangePassword.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ChangePassword.kt index 17b81fde..c48c3b06 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ChangePassword.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ChangePassword.kt @@ -1,14 +1,14 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class ChangePassword( - val new_password: String, - val new_password_verify: String, - val old_password: String, + val new_password: SensitiveString, + val new_password_verify: SensitiveString, + val old_password: SensitiveString, + val stay_logged_in: Boolean? = null, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ChangePasswordAfterReset.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ChangePasswordAfterReset.kt new file mode 100644 index 00000000..c9fa9c7d --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ChangePasswordAfterReset.kt @@ -0,0 +1,13 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +data class ChangePasswordAfterReset( + val token: SensitiveString, + val password: SensitiveString, + val password_verify: SensitiveString, +) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/Comment.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/Comment.kt index a6f8caf2..17fa8203 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/Comment.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/Comment.kt @@ -1,25 +1,38 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import it.vercruysse.lemmyapi.Identity +import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable +@SerialName("comment") data class Comment( override val id: CommentId, val creator_id: PersonId, val post_id: PostId, val content: String, val removed: Boolean, - val published: String, - val updated: String? = null, + val published_at: String, + val updated_at: String? = null, val deleted: Boolean, val ap_id: String, val local: Boolean, val path: String, val distinguished: Boolean, val language_id: LanguageId, -) : DatatypeRoot, Identity + val score: Long, + val upvotes: Long, + val downvotes: Long, + val child_count: Long, + /** Added in Lemmy 1.0.0 */ + val report_count: Long, + /** Added in Lemmy 1.0.0 */ + val unresolved_report_count: Long, + /** Added in Lemmy 1.0.0 */ + val federation_pending: Boolean, + /** Added in Lemmy 1.0.0 */ + val locked: Boolean, +) : DatatypeRoot, Identity, PostOrCommentOrPrivateMessage diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommentActions.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommentActions.kt new file mode 100644 index 00000000..1280392f --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommentActions.kt @@ -0,0 +1,13 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +data class CommentActions( + val like_score: Int = 0, + val voted_at: String? = null, + val saved_at: String? = null, +) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommentReply.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommentReply.kt deleted file mode 100644 index c52c983a..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommentReply.kt +++ /dev/null @@ -1,17 +0,0 @@ -package it.vercruysse.lemmyapi.datatypes - -import it.vercruysse.lemmyapi.DatatypeRoot -import it.vercruysse.lemmyapi.Identity -import kotlinx.serialization.Serializable - -import it.vercruysse.lemmyapi.CommonParcelize - -@CommonParcelize -@Serializable -data class CommentReply( - override val id: CommentReplyId, - val recipient_id: PersonId, - val comment_id: CommentId, - val read: Boolean, - val published: String, -) : DatatypeRoot, Identity diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommentReplyView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommentReplyView.kt deleted file mode 100644 index 0745ad64..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommentReplyView.kt +++ /dev/null @@ -1,31 +0,0 @@ -package it.vercruysse.lemmyapi.datatypes - -import it.vercruysse.lemmyapi.DatatypeRoot -import it.vercruysse.lemmyapi.Identity -import it.vercruysse.lemmyapi.dto.SubscribedType -import kotlinx.serialization.Serializable - -import it.vercruysse.lemmyapi.CommonParcelize - -@CommonParcelize -@Serializable -data class CommentReplyView( - val comment_reply: CommentReply, - val comment: Comment, - val creator: Person, - val post: Post, - val community: Community, - val recipient: Person, - val counts: CommentAggregates, - val creator_banned_from_community: Boolean, - val banned_from_community: Boolean, - val creator_is_moderator: Boolean, - val creator_is_admin: Boolean, - val subscribed: SubscribedType /* "Subscribed" | "NotSubscribed" | "Pending" */, - val saved: Boolean, - val creator_blocked: Boolean, - val my_vote: Int = 0, -) : DatatypeRoot, Identity { - override val id: Long - get() = comment_reply.id -} diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommentReport.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommentReport.kt index 007b4729..c5123997 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommentReport.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommentReport.kt @@ -1,11 +1,10 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import it.vercruysse.lemmyapi.Identity import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class CommentReport( @@ -16,6 +15,8 @@ data class CommentReport( val reason: String, val resolved: Boolean, val resolver_id: PersonId? = null, - val published: String, - val updated: String? = null, + val published_at: String, + val updated_at: String? = null, + /** Added in Lemmy 1.0.0 */ + val violates_instance_rules: Boolean = false, ) : DatatypeRoot, Identity diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommentReportResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommentReportResponse.kt index c51c4028..67d9338b 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommentReportResponse.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommentReportResponse.kt @@ -1,10 +1,9 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class CommentReportResponse( diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommentReportView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommentReportView.kt index 682a0728..875220ab 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommentReportView.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommentReportView.kt @@ -1,14 +1,14 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import it.vercruysse.lemmyapi.Identity -import it.vercruysse.lemmyapi.dto.SubscribedType +import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable +@SerialName("comment") data class CommentReportView( val comment_report: CommentReport, val comment: Comment, @@ -16,16 +16,19 @@ data class CommentReportView( val community: Community, val creator: Person, val comment_creator: Person, - val counts: CommentAggregates, - val creator_banned_from_community: Boolean, - val creator_is_moderator: Boolean, - val creator_is_admin: Boolean, - val creator_blocked: Boolean, - val subscribed: SubscribedType /* "Subscribed" | "NotSubscribed" | "Pending" */, - val saved: Boolean, - val my_vote: Int = 0, + val comment_actions: CommentActions? = null, val resolver: Person? = null, -) : DatatypeRoot, Identity { + val person_actions: PersonActions? = null, + val community_actions: CommunityActions? = null, + val creator_is_admin: Boolean, + val creator_is_moderator: Boolean, + val creator_banned: Boolean, + val creator_ban_expires_at: String? = null, + val creator_banned_from_community: Boolean, + val creator_community_ban_expires_at: String? = null, + /** Added in 1.0.0 */ + val tags: CommunityTagsView = emptyList(), +) : DatatypeRoot, Identity, ReportCombinedView { override val id: Long get() = comment_report.id } diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommentResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommentResponse.kt index 87ceff8d..fdeddcda 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommentResponse.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommentResponse.kt @@ -1,13 +1,11 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class CommentResponse( val comment_view: CommentView, - val recipient_ids: List, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommentSlimView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommentSlimView.kt new file mode 100644 index 00000000..3e2f0246 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommentSlimView.kt @@ -0,0 +1,19 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +data class CommentSlimView( + val comment: Comment, + val creator: Person, + val comment_actions: CommentActions? = null, + val person_actions: PersonActions? = null, + val creator_is_admin: Boolean, + val can_mod: Boolean, + val creator_banned: Boolean, + val creator_is_moderator: Boolean, + val creator_banned_from_community: Boolean, +) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommentView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommentView.kt index e8688a90..5b7392a0 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommentView.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommentView.kt @@ -1,29 +1,32 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import it.vercruysse.lemmyapi.Identity -import it.vercruysse.lemmyapi.dto.SubscribedType +import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable +@SerialName("comment") data class CommentView( val comment: Comment, val creator: Person, val post: Post, val community: Community, - val counts: CommentAggregates, - val creator_banned_from_community: Boolean, - val banned_from_community: Boolean, - val creator_is_moderator: Boolean, + val community_actions: CommunityActions? = null, + val comment_actions: CommentActions? = null, + val person_actions: PersonActions? = null, + val tags: CommunityTagsView, + val can_mod: Boolean, + val creator_banned: Boolean, + val creator_ban_expires_at: String? = null, val creator_is_admin: Boolean, - val subscribed: SubscribedType /* "Subscribed" | "NotSubscribed" | "Pending" */, - val saved: Boolean, - val creator_blocked: Boolean, - val my_vote: Int = 0, -) : DatatypeRoot, Identity { + val creator_is_moderator: Boolean, + val creator_banned_from_community: Boolean, + val creator_community_ban_expires_at: String? = null, + +) : DatatypeRoot, Identity, NotificationData, ResolveObjectView, PostCommentCombinedView { override val id: Long get() = comment.id } diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/Community.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/Community.kt index 1b6f3841..129edeed 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/Community.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/Community.kt @@ -1,30 +1,41 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import it.vercruysse.lemmyapi.Identity -import it.vercruysse.lemmyapi.dto.CommunityVisibility +import it.vercruysse.lemmyapi.enums.CommunityVisibility import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class Community( override val id: CommunityId, val name: String, - val title: String, - val description: String? = null, + val title: String? = null, + val sidebar: String? = null, val removed: Boolean, - val published: String, - val updated: String? = null, + val published_at: String, + val updated_at: String? = null, val deleted: Boolean, val nsfw: Boolean, - val actor_id: String, + val ap_id: String, val local: Boolean, + val last_refreshed_at: String, val icon: String? = null, val banner: String? = null, - val hidden: Boolean, val posting_restricted_to_mods: Boolean, val instance_id: InstanceId, - val visibility: CommunityVisibility /* "Public" | "LocalOnly" */, + val visibility: CommunityVisibility /* "Public" | "Unlisted" | "LocalOnlyPublic" | "LocalOnlyPrivate" | "Private" */, + val summary: String? = null, + val subscribers: Long, + val posts: Long, + val comments: Long, + val users_active_day: Long, + val users_active_week: Long, + val users_active_month: Long, + val users_active_half_year: Long, + val subscribers_local: Long, + val report_count: Long, + val unresolved_report_count: Long, + val local_removed: Boolean, ) : DatatypeRoot, Identity diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommunityActions.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommunityActions.kt new file mode 100644 index 00000000..c5d89b68 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommunityActions.kt @@ -0,0 +1,19 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import it.vercruysse.lemmyapi.enums.CommunityFollowerState +import it.vercruysse.lemmyapi.enums.CommunityNotificationsMode +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +data class CommunityActions( + val followed_at: String? = null, + val follow_state: CommunityFollowerState? /* "accepted" | "pending" | "approval_required" | "denied" */ = null, + val blocked_at: String? = null, + val became_moderator_at: String? = null, + val received_ban_at: String? = null, + val ban_expires_at: String? = null, + val notifications: CommunityNotificationsMode? /* "AllPostsAndComments" | "AllPosts" | "RepliesAndMentions" | "Mute" */ = null, +) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommunityAggregates.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommunityAggregates.kt deleted file mode 100644 index 29d5db5f..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommunityAggregates.kt +++ /dev/null @@ -1,21 +0,0 @@ -package it.vercruysse.lemmyapi.datatypes - -import it.vercruysse.lemmyapi.DatatypeRoot -import kotlinx.serialization.Serializable - -import it.vercruysse.lemmyapi.CommonParcelize - -@CommonParcelize -@Serializable -data class CommunityAggregates( - val community_id: CommunityId, - val subscribers: Long, - val posts: Long, - val comments: Long, - val published: String, - val users_active_day: Long, - val users_active_week: Long, - val users_active_month: Long, - val users_active_half_year: Long, - val subscribers_local: Long, -) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommunityFollowerView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommunityFollowerView.kt index 30b3b3d4..7d136f18 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommunityFollowerView.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommunityFollowerView.kt @@ -1,10 +1,9 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class CommunityFollowerView( diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/BlockInstanceResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommunityIdQuery.kt similarity index 78% rename from app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/BlockInstanceResponse.kt rename to app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommunityIdQuery.kt index 1f876334..84e84d3c 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/BlockInstanceResponse.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommunityIdQuery.kt @@ -1,12 +1,11 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable -data class BlockInstanceResponse( - val blocked: Boolean, +data class CommunityIdQuery( + val id: CommunityId, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommunityModeratorView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommunityModeratorView.kt index e7c47665..19c59b1a 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommunityModeratorView.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommunityModeratorView.kt @@ -1,10 +1,9 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class CommunityModeratorView( diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommunityReport.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommunityReport.kt new file mode 100644 index 00000000..f2fad25d --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommunityReport.kt @@ -0,0 +1,25 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import it.vercruysse.lemmyapi.Identity +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +data class CommunityReport( + override val id: CommunityReportId, + val creator_id: PersonId, + val community_id: CommunityId, + val original_community_name: String, + val original_community_title: String? = null, + val original_community_summary: String? = null, + val original_community_sidebar: String? = null, + val original_community_icon: String? = null, + val original_community_banner: String? = null, + val reason: String, + val resolved: Boolean, + val resolver_id: PersonId? = null, + val published_at: String, + val updated_at: String? = null, +) : DatatypeRoot, Identity diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommunityReportId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommunityReportId.kt new file mode 100644 index 00000000..f8e33742 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommunityReportId.kt @@ -0,0 +1,3 @@ +package it.vercruysse.lemmyapi.datatypes + +typealias CommunityReportId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommunityReportResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommunityReportResponse.kt new file mode 100644 index 00000000..f6952bd1 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommunityReportResponse.kt @@ -0,0 +1,11 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +data class CommunityReportResponse( + val community_report_view: CommunityReportView, +) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommunityReportView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommunityReportView.kt new file mode 100644 index 00000000..d0a54746 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommunityReportView.kt @@ -0,0 +1,22 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +@SerialName("community") +data class CommunityReportView( + val community_report: CommunityReport, + val community: Community, + val creator: Person, + val resolver: Person? = null, + val creator_is_admin: Boolean, + val creator_is_moderator: Boolean, + val creator_banned: Boolean, + val creator_ban_expires_at: String? = null, + val creator_banned_from_community: Boolean, + val creator_community_ban_expires_at: String? = null, +) : DatatypeRoot, ReportCombinedView diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommunityResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommunityResponse.kt index 1670aab2..e3b072e3 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommunityResponse.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommunityResponse.kt @@ -1,10 +1,9 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class CommunityResponse( diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommunityTag.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommunityTag.kt new file mode 100644 index 00000000..0c7b897b --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommunityTag.kt @@ -0,0 +1,22 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +data class CommunityTag( + val id: CommunityTagId, + val ap_id: String, + /** Added in 1.0.0 */ + val name: String, + val display_name: String? = null, + /** Added in 1.0.0 */ + val summary: String? = null, + val community_id: CommunityId, + val published_at: String, + val updated_at: String? = null, + val deleted: Boolean, + val color: String /* "color01" | "color02" | "color03" | "color04" | "color05" | "color06" | "color07" | "color08" | "color09" | "color10" */, +) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommentReplyId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommunityTagId.kt similarity index 56% rename from app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommentReplyId.kt rename to app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommunityTagId.kt index 1cc6243f..8421ec90 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommentReplyId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommunityTagId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.datatypes -typealias CommentReplyId = Long +typealias CommunityTagId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommunityTagsView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommunityTagsView.kt new file mode 100644 index 00000000..459e611a --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommunityTagsView.kt @@ -0,0 +1,3 @@ +package it.vercruysse.lemmyapi.datatypes + +typealias CommunityTagsView = List diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommunityView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommunityView.kt index 1b3b8591..57622d8e 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommunityView.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommunityView.kt @@ -1,17 +1,16 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot -import it.vercruysse.lemmyapi.dto.SubscribedType +import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable +@SerialName("community") data class CommunityView( val community: Community, - val subscribed: SubscribedType /* "Subscribed" | "NotSubscribed" | "Pending" */, - val blocked: Boolean, - val counts: CommunityAggregates, - val banned_from_community: Boolean, -) : DatatypeRoot + val community_actions: CommunityActions? = null, + val can_mod: Boolean, + val tags: CommunityTagsView, +) : DatatypeRoot, ResolveObjectView diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreateComment.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreateComment.kt index dfa6bf5b..c638638f 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreateComment.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreateComment.kt @@ -1,10 +1,9 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class CreateComment( diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreateCommentLike.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreateCommentLike.kt index 681bcbfc..684e7fef 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreateCommentLike.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreateCommentLike.kt @@ -1,10 +1,9 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class CreateCommentLike( diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreateCommentReport.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreateCommentReport.kt index b2557f36..8987c70a 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreateCommentReport.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreateCommentReport.kt @@ -1,13 +1,14 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class CreateCommentReport( val comment_id: CommentId, val reason: String, + /** Added in Lemmy 1.0.0 */ + val violates_instance_rules: Boolean? = null, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommentAggregates.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreateCommentWarning.kt similarity index 62% rename from app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommentAggregates.kt rename to app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreateCommentWarning.kt index aed77cc1..50cfe765 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommentAggregates.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreateCommentWarning.kt @@ -1,17 +1,13 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.CommentId import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable -data class CommentAggregates( +data class CreateCommentWarning( val comment_id: CommentId, - val score: Long, - val upvotes: Long, - val downvotes: Long, - val published: String, - val child_count: Long, + val reason: String, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreateCommunity.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreateCommunity.kt index 7d2963f1..2b2c3a12 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreateCommunity.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreateCommunity.kt @@ -1,21 +1,20 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot -import it.vercruysse.lemmyapi.dto.CommunityVisibility +import it.vercruysse.lemmyapi.enums.CommunityVisibility import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class CreateCommunity( val name: String, val title: String, - val description: String? = null, - val icon: String? = null, + val sidebar: String? = null, + val summary: String? = null, val banner: String? = null, val nsfw: Boolean? = null, val posting_restricted_to_mods: Boolean? = null, val discussion_languages: List? = null, - val visibility: CommunityVisibility? /* "Public" | "LocalOnly" */ = null, + val visibility: CommunityVisibility? /* "Public" | "Unlisted" | "LocalOnlyPublic" | "LocalOnlyPrivate" | "Private" */ = null, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/BanPersonResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreateCommunityReport.kt similarity index 70% rename from app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/BanPersonResponse.kt rename to app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreateCommunityReport.kt index 4e3dd43e..7a85d6b3 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/BanPersonResponse.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreateCommunityReport.kt @@ -1,13 +1,12 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable -data class BanPersonResponse( - val person_view: PersonView, - val banned: Boolean, +data class CreateCommunityReport( + val community_id: CommunityId, + val reason: String, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreateCommunityTag.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreateCommunityTag.kt new file mode 100644 index 00000000..c8935c67 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreateCommunityTag.kt @@ -0,0 +1,15 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +data class CreateCommunityTag( + val community_id: CommunityId, + val name: String, + val display_name: String? = null, + val summary: String? = null, + val color: String? /* "color01" | "color02" | "color03" | "color04" | "color05" | "color06" | "color07" | "color08" | "color09" | "color10" */ = null, +) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreateCustomEmoji.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreateCustomEmoji.kt index e5c6d905..6d5a8ae6 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreateCustomEmoji.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreateCustomEmoji.kt @@ -1,10 +1,9 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class CreateCustomEmoji( diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/BanFromCommunityResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreateInvitation.kt similarity index 69% rename from app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/BanFromCommunityResponse.kt rename to app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreateInvitation.kt index 7eb61da5..fc67574a 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/BanFromCommunityResponse.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreateInvitation.kt @@ -1,13 +1,12 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable -data class BanFromCommunityResponse( - val person_view: PersonView, - val banned: Boolean, +data class CreateInvitation( + val max_uses: Long? = null, + val expires_at: String? = null, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListMediaResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreateInvitationResponse.kt similarity index 76% rename from app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListMediaResponse.kt rename to app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreateInvitationResponse.kt index 07ed3606..4055b251 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListMediaResponse.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreateInvitationResponse.kt @@ -1,12 +1,11 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable -data class ListMediaResponse( - val images: List, +data class CreateInvitationResponse( + val invite: LocalUserInvite, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreateMultiCommunity.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreateMultiCommunity.kt new file mode 100644 index 00000000..44f98b72 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreateMultiCommunity.kt @@ -0,0 +1,14 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +data class CreateMultiCommunity( + val name: String, + val title: String? = null, + val summary: String? = null, + val sidebar: String? = null, +) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreateOAuthProvider.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreateOAuthProvider.kt new file mode 100644 index 00000000..b4f35b10 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreateOAuthProvider.kt @@ -0,0 +1,23 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +data class CreateOAuthProvider( + val display_name: String, + val issuer: String, + val authorization_endpoint: String, + val token_endpoint: String, + val userinfo_endpoint: String, + val id_claim: String, + val client_id: String, + val client_secret: String, + val scopes: String, + val auto_verify_email: Boolean? = null, + val account_linking_enabled: Boolean? = null, + val use_pkce: Boolean? = null, + val enabled: Boolean? = null, +) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreateOrDeleteMultiCommunityEntry.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreateOrDeleteMultiCommunityEntry.kt new file mode 100644 index 00000000..456eca63 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreateOrDeleteMultiCommunityEntry.kt @@ -0,0 +1,12 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +data class CreateOrDeleteMultiCommunityEntry( + val id: MultiCommunityId, + val community_id: CommunityId, +) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreatePost.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreatePost.kt index 1a51d878..57dbb620 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreatePost.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreatePost.kt @@ -1,10 +1,9 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class CreatePost( @@ -17,4 +16,8 @@ data class CreatePost( val nsfw: Boolean? = null, val language_id: LanguageId? = null, val custom_thumbnail: String? = null, + /** Added in Lemmy 1.0.0 */ + val tags: List? = null, + /** Added in Lemmy 1.0.0 */ + val scheduled_publish_time_at: Long? = null, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreatePostLike.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreatePostLike.kt index 3eca5c34..5e09c5b9 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreatePostLike.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreatePostLike.kt @@ -1,10 +1,9 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class CreatePostLike( diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreatePostReport.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreatePostReport.kt index a22d3915..279dd129 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreatePostReport.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreatePostReport.kt @@ -1,13 +1,14 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class CreatePostReport( val post_id: PostId, val reason: String, + /** Added in Lemmy 1.0.0 */ + val violates_instance_rules: Boolean? = null, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModLockPost.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreatePostWarning.kt similarity index 66% rename from app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModLockPost.kt rename to app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreatePostWarning.kt index f44321c1..65723c1a 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModLockPost.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreatePostWarning.kt @@ -1,16 +1,13 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.PostId import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable -data class ModLockPost( - val id: Long, - val mod_person_id: PersonId, +data class CreatePostWarning( val post_id: PostId, - val locked: Boolean, - val when_: String, + val reason: String, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreatePrivateMessage.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreatePrivateMessage.kt index 28579ccf..d26b9655 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreatePrivateMessage.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreatePrivateMessage.kt @@ -1,10 +1,9 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class CreatePrivateMessage( diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreatePrivateMessageReport.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreatePrivateMessageReport.kt index 9e9662b6..941a5bd7 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreatePrivateMessageReport.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreatePrivateMessageReport.kt @@ -1,10 +1,9 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class CreatePrivateMessageReport( diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreateSite.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreateSite.kt index 4e3c8fc3..a2151452 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreateSite.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreateSite.kt @@ -1,57 +1,99 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot -import it.vercruysse.lemmyapi.dto.PostListingMode -import it.vercruysse.lemmyapi.dto.RegistrationMode -import it.vercruysse.lemmyapi.dto.SortType -import it.vercruysse.lemmyapi.dto.ListingType +import it.vercruysse.lemmyapi.enums.CommentSortType +import it.vercruysse.lemmyapi.enums.FederationMode +import it.vercruysse.lemmyapi.enums.ImageMode +import it.vercruysse.lemmyapi.enums.ListingType +import it.vercruysse.lemmyapi.enums.PostListingMode +import it.vercruysse.lemmyapi.enums.RegistrationMode +import it.vercruysse.lemmyapi.enums.SortType import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class CreateSite( val name: String, val sidebar: String? = null, - val description: String? = null, - val icon: String? = null, - val banner: String? = null, - val enable_downvotes: Boolean? = null, - val enable_nsfw: Boolean? = null, + val summary: String? = null, val community_creation_admin_only: Boolean? = null, - val require_email_verification: Boolean? = null, + val email_verification_required: Boolean? = null, val application_question: String? = null, val private_instance: Boolean? = null, val default_theme: String? = null, - val default_post_listing_type: ListingType? /* "All" | "Local" | "Subscribed" | "ModeratorView" */ = null, - val default_sort_type: SortType? /* "Active" | "Hot" | "New" | "Old" | "TopDay" | "TopWeek" | "TopMonth" | "TopYear" | "TopAll" | "MostComments" | "NewComments" | "TopHour" | "TopSixHour" | "TopTwelveHour" | "TopThreeMonths" | "TopSixMonths" | "TopNineMonths" | "Controversial" | "Scaled" */ = null, + val default_post_listing_type: ListingType? /* "All" | "Local" | "Subscribed" | "ModeratorView" | "Suggested" */ = null, + val default_post_listing_mode: PostListingMode? /* "List" | "Card" | "SmallCard" */ = null, + val default_post_sort_type: SortType? /* "Active" | "Hot" | "New" | "Old" | "Top" | "MostComments" | "NewComments" | "Controversial" | "Scaled" */ = null, + val default_post_time_range_seconds: Long? = null, + /** Added in 1.0.0 */ + val default_items_per_page: Long? = null, + /** Added in 1.0.0 */ + val default_comment_sort_type: CommentSortType? /* "Hot" | "Top" | "New" | "Old" | "Controversial" */ = null, val legal_information: String? = null, val application_email_admins: Boolean? = null, - val hide_modlog_mod_names: Boolean? = null, + /** Added in 1.0.0 */ + val reports_email_admins: Boolean? = null, + /** Added in 1.0.0 */ + val federation_signed_fetch: Boolean? = null, val discussion_languages: List? = null, val slur_filter_regex: String? = null, - val actor_name_max_length: Long? = null, - val rate_limit_message: Long? = null, - val rate_limit_message_per_second: Long? = null, - val rate_limit_post: Long? = null, - val rate_limit_post_per_second: Long? = null, - val rate_limit_register: Long? = null, - val rate_limit_register_per_second: Long? = null, - val rate_limit_image: Long? = null, - val rate_limit_image_per_second: Long? = null, - val rate_limit_comment: Long? = null, - val rate_limit_comment_per_second: Long? = null, - val rate_limit_search: Long? = null, - val rate_limit_search_per_second: Long? = null, + val rate_limit_message_max_requests: Long? = null, + val rate_limit_message_interval_seconds: Long? = null, + val rate_limit_post_max_requests: Long? = null, + val rate_limit_post_interval_seconds: Long? = null, + val rate_limit_register_max_requests: Long? = null, + val rate_limit_register_interval_seconds: Long? = null, + val rate_limit_image_max_requests: Long? = null, + val rate_limit_image_interval_seconds: Long? = null, + val rate_limit_comment_max_requests: Long? = null, + val rate_limit_comment_interval_seconds: Long? = null, + val rate_limit_search_max_requests: Long? = null, + val rate_limit_search_interval_seconds: Long? = null, + val rate_limit_import_user_settings_max_requests: Long? = null, + val rate_limit_import_user_settings_interval_seconds: Long? = null, val federation_enabled: Boolean? = null, - val federation_debug: Boolean? = null, + /** Removed in 1.0.0 */ val captcha_enabled: Boolean? = null, + /** Removed in 1.0.0 */ val captcha_difficulty: String? = null, + /** Removed in 1.0.0 */ val allowed_instances: List? = null, + /** Removed in 1.0.0 */ val blocked_instances: List? = null, + /** Removed in 1.0.0 */ val taglines: List? = null, - val registration_mode: RegistrationMode? /* "Closed" | "RequireApplication" | "Open" */ = null, + val registration_mode: RegistrationMode? /* "Closed" | "RequireApplication" | "RequireInvitation" | "Open" */ = null, + /** Added in 1.0.0 */ + val oauth_registration: Boolean? = null, val content_warning: String? = null, - val default_post_listing_mode: PostListingMode? /* "List" | "Card" | "SmallCard" */ = null, + val post_upvotes: FederationMode? /* "All" | "Local" | "Disable" */ = null, + val post_downvotes: FederationMode? /* "All" | "Local" | "Disable" */ = null, + val comment_upvotes: FederationMode? /* "All" | "Local" | "Disable" */ = null, + val comment_downvotes: FederationMode? /* "All" | "Local" | "Disable" */ = null, + val nsfw_content_disallowed: Boolean? = null, + /** Added in 1.0.0 */ + val email_notifications_disabled: Boolean? = null, + /** Added in 1.0.0 */ + val suggested_multi_community_id: MultiCommunityId? = null, + /** Added in 1.0.0 */ + val image_mode: ImageMode? /* "none" | "store_link_previews" | "proxy_all_images" */ = null, + /** Added in 1.0.0 */ + val image_proxy_bypass_domains: String? = null, + /** Added in 1.0.0 */ + val image_upload_timeout_seconds: Long? = null, + /** Added in 1.0.0 */ + val image_max_thumbnail_size: Long? = null, + /** Added in 1.0.0 */ + val image_max_avatar_size: Long? = null, + /** Added in 1.0.0 */ + val image_max_banner_size: Long? = null, + /** Added in 1.0.0 */ + val image_max_upload_size: Long? = null, + /** Added in 1.0.0 */ + val image_allow_video_uploads: Boolean? = null, + /** Added in 1.0.0 */ + val image_upload_disabled: Boolean? = null, + /** Added in 1.0.0 */ + val max_invites_per_user_allowed: Long? = null, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/BannedPersonsResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreateTagline.kt similarity index 76% rename from app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/BannedPersonsResponse.kt rename to app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreateTagline.kt index fdb13b31..09341854 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/BannedPersonsResponse.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CreateTagline.kt @@ -1,12 +1,11 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable -data class BannedPersonsResponse( - val banned: List, +data class CreateTagline( + val content: String, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CustomEmoji.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CustomEmoji.kt index 6048266f..760cb934 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CustomEmoji.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CustomEmoji.kt @@ -1,19 +1,17 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class CustomEmoji( val id: CustomEmojiId, - val local_site_id: LocalSiteId, val shortcode: String, val image_url: String, val alt_text: String, val category: String, - val published: String, - val updated: String? = null, + val published_at: String, + val updated_at: String? = null, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CustomEmojiKeyword.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CustomEmojiKeyword.kt index 7578fb3d..8dccad79 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CustomEmojiKeyword.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CustomEmojiKeyword.kt @@ -1,11 +1,10 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import it.vercruysse.lemmyapi.Identity import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class CustomEmojiKeyword( diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CustomEmojiResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CustomEmojiResponse.kt index e91d76a1..54c43fbc 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CustomEmojiResponse.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CustomEmojiResponse.kt @@ -1,10 +1,9 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class CustomEmojiResponse( diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CustomEmojiView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CustomEmojiView.kt index eb7bfc89..a08ceee5 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CustomEmojiView.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CustomEmojiView.kt @@ -1,11 +1,10 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import it.vercruysse.lemmyapi.Identity import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class CustomEmojiView( diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/DeleteAccount.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/DeleteAccount.kt index e458d91b..982646c3 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/DeleteAccount.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/DeleteAccount.kt @@ -1,13 +1,12 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class DeleteAccount( - val password: String, + val password: SensitiveString, val delete_content: Boolean, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/DeleteComment.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/DeleteComment.kt index 5dd18572..a2f68b31 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/DeleteComment.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/DeleteComment.kt @@ -1,10 +1,9 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class DeleteComment( diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/DeleteCommunity.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/DeleteCommunity.kt index 6ebf2e27..01c4441f 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/DeleteCommunity.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/DeleteCommunity.kt @@ -1,10 +1,9 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class DeleteCommunity( diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/DeleteCommunityTag.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/DeleteCommunityTag.kt new file mode 100644 index 00000000..3eda6d13 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/DeleteCommunityTag.kt @@ -0,0 +1,12 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +data class DeleteCommunityTag( + val tag_id: CommunityTagId, + val delete: Boolean, +) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/DeleteCustomEmoji.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/DeleteCustomEmoji.kt index f4bb994e..d40496f0 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/DeleteCustomEmoji.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/DeleteCustomEmoji.kt @@ -1,10 +1,9 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class DeleteCustomEmoji( diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/DeleteImageParams.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/DeleteImageParams.kt new file mode 100644 index 00000000..2b5b42a7 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/DeleteImageParams.kt @@ -0,0 +1,11 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +data class DeleteImageParams( + val filename: String, +) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/DeleteOAuthProvider.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/DeleteOAuthProvider.kt new file mode 100644 index 00000000..9ce3dbaf --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/DeleteOAuthProvider.kt @@ -0,0 +1,11 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +data class DeleteOAuthProvider( + val id: OAuthProviderId, +) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/DeletePost.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/DeletePost.kt index bdb63c2e..3da8d61b 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/DeletePost.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/DeletePost.kt @@ -1,10 +1,9 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class DeletePost( diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/DeletePrivateMessage.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/DeletePrivateMessage.kt index b14a6a9c..3f100a41 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/DeletePrivateMessage.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/DeletePrivateMessage.kt @@ -1,10 +1,9 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class DeletePrivateMessage( diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PasswordReset.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/DeleteTagline.kt similarity index 81% rename from app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PasswordReset.kt rename to app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/DeleteTagline.kt index abe32030..3d8f249d 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PasswordReset.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/DeleteTagline.kt @@ -1,12 +1,11 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable -data class PasswordReset( - val email: String, +data class DeleteTagline( + val id: TaglineId, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/DistinguishComment.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/DistinguishComment.kt index b7c09289..eff3a48d 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/DistinguishComment.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/DistinguishComment.kt @@ -1,10 +1,9 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class DistinguishComment( diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/EditComment.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/EditComment.kt index 69bd0a1c..e338f4a0 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/EditComment.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/EditComment.kt @@ -1,10 +1,9 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class EditComment( diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/EditCommunity.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/EditCommunity.kt index c963523f..7e5bf28f 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/EditCommunity.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/EditCommunity.kt @@ -1,19 +1,18 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot -import it.vercruysse.lemmyapi.dto.CommunityVisibility +import it.vercruysse.lemmyapi.enums.CommunityVisibility import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class EditCommunity( val community_id: CommunityId, val title: String? = null, - val description: String? = null, - val icon: String? = null, - val banner: String? = null, + /** Added in Lemmy 1.0.0 */ + val sidebar: String? = null, + val summary: String? = null, val nsfw: Boolean? = null, val posting_restricted_to_mods: Boolean? = null, val discussion_languages: List? = null, diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModAddCommunity.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/EditCommunityNotifications.kt similarity index 54% rename from app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModAddCommunity.kt rename to app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/EditCommunityNotifications.kt index 0bb4b75a..edaf9ec3 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModAddCommunity.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/EditCommunityNotifications.kt @@ -1,17 +1,13 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot +import it.vercruysse.lemmyapi.enums.CommunityNotificationsMode import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable -data class ModAddCommunity( - val id: Long, - val mod_person_id: PersonId, - val other_person_id: PersonId, +data class EditCommunityNotifications( val community_id: CommunityId, - val removed: Boolean, - val when_: String, + val mode: CommunityNotificationsMode /* "AllPostsAndComments" | "AllPosts" | "RepliesAndMentions" | "Mute" */, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/EditCommunityTag.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/EditCommunityTag.kt new file mode 100644 index 00000000..0110c2dd --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/EditCommunityTag.kt @@ -0,0 +1,14 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +data class EditCommunityTag( + val tag_id: CommunityTagId, + val display_name: String? = null, + val summary: String? = null, + val color: String? /* "color01" | "color02" | "color03" | "color04" | "color05" | "color06" | "color07" | "color08" | "color09" | "color10" */ = null, +) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/EditCustomEmoji.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/EditCustomEmoji.kt index 59ab5fe9..7c0c9c06 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/EditCustomEmoji.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/EditCustomEmoji.kt @@ -1,16 +1,16 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class EditCustomEmoji( val id: CustomEmojiId, - val category: String, - val image_url: String, - val alt_text: String, - val keywords: List, + val category: String? = null, + val shortcode: String? = null, + val image_url: String? = null, + val alt_text: String? = null, + val keywords: List? = null, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/AdminPurgeComment.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/EditMultiCommunity.kt similarity index 53% rename from app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/AdminPurgeComment.kt rename to app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/EditMultiCommunity.kt index b9f86111..f2198b94 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/AdminPurgeComment.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/EditMultiCommunity.kt @@ -1,16 +1,15 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable -data class AdminPurgeComment( - val id: Long, - val admin_person_id: PersonId, - val post_id: PostId, - val reason: String? = null, - val when_: String, +data class EditMultiCommunity( + val id: MultiCommunityId, + val title: String? = null, + val summary: String? = null, + val sidebar: String? = null, + val deleted: Boolean? = null, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/EditOAuthProvider.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/EditOAuthProvider.kt new file mode 100644 index 00000000..ce541ea6 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/EditOAuthProvider.kt @@ -0,0 +1,22 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +data class EditOAuthProvider( + val id: OAuthProviderId, + val display_name: String? = null, + val authorization_endpoint: String? = null, + val token_endpoint: String? = null, + val userinfo_endpoint: String? = null, + val id_claim: String? = null, + val client_secret: String? = null, + val scopes: String? = null, + val auto_verify_email: Boolean? = null, + val account_linking_enabled: Boolean? = null, + val use_pkce: Boolean? = null, + val enabled: Boolean? = null, +) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/EditPost.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/EditPost.kt index d367bebf..50bdcf8f 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/EditPost.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/EditPost.kt @@ -1,10 +1,9 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class EditPost( @@ -16,4 +15,8 @@ data class EditPost( val nsfw: Boolean? = null, val language_id: LanguageId? = null, val custom_thumbnail: String? = null, + /** Added in Lemmy 1.0.0 */ + val scheduled_publish_time_at: Long? = null, + /** Added in Lemmy 1.0.0 */ + val tags: List? = null, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModFeaturePost.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/EditPostNotifications.kt similarity index 57% rename from app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModFeaturePost.kt rename to app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/EditPostNotifications.kt index 123a8be0..b67ce441 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModFeaturePost.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/EditPostNotifications.kt @@ -1,17 +1,13 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot +import it.vercruysse.lemmyapi.enums.PostNotificationsMode import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable -data class ModFeaturePost( - val id: Long, - val mod_person_id: PersonId, +data class EditPostNotifications( val post_id: PostId, - val featured: Boolean, - val when_: String, - val is_featured_community: Boolean, + val mode: PostNotificationsMode /* "AllComments" | "RepliesAndMentions" | "Mute" */, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/EditPrivateMessage.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/EditPrivateMessage.kt index 2f3f1b57..56738640 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/EditPrivateMessage.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/EditPrivateMessage.kt @@ -1,10 +1,9 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class EditPrivateMessage( diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/EditSite.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/EditSite.kt index 1867d795..2940f8ea 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/EditSite.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/EditSite.kt @@ -1,59 +1,110 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot -import it.vercruysse.lemmyapi.dto.PostListingMode -import it.vercruysse.lemmyapi.dto.RegistrationMode -import it.vercruysse.lemmyapi.dto.SortType -import it.vercruysse.lemmyapi.dto.ListingType +import it.vercruysse.lemmyapi.enums.CommentSortType +import it.vercruysse.lemmyapi.enums.FederationMode +import it.vercruysse.lemmyapi.enums.ImageMode +import it.vercruysse.lemmyapi.enums.ListingType +import it.vercruysse.lemmyapi.enums.PostListingMode +import it.vercruysse.lemmyapi.enums.RegistrationMode +import it.vercruysse.lemmyapi.enums.SortType import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class EditSite( val name: String? = null, val sidebar: String? = null, - val description: String? = null, - val icon: String? = null, - val banner: String? = null, - val enable_downvotes: Boolean? = null, + val summary: String? = null, + /** Removed in 1.0.0 */ val enable_nsfw: Boolean? = null, val community_creation_admin_only: Boolean? = null, - val require_email_verification: Boolean? = null, + val email_verification_required: Boolean? = null, val application_question: String? = null, val private_instance: Boolean? = null, val default_theme: String? = null, val default_post_listing_type: ListingType? /* "All" | "Local" | "Subscribed" | "ModeratorView" */ = null, - val default_sort_type: SortType? /* "Active" | "Hot" | "New" | "Old" | "TopDay" | "TopWeek" | "TopMonth" | "TopYear" | "TopAll" | "MostComments" | "NewComments" | "TopHour" | "TopSixHour" | "TopTwelveHour" | "TopThreeMonths" | "TopSixMonths" | "TopNineMonths" | "Controversial" | "Scaled" */ = null, + val default_post_listing_mode: PostListingMode? /* "List" | "Card" | "SmallCard" */ = null, + val default_post_sort_type: SortType? /* "Active" | "Hot" | "New" | "Old" | "TopDay" | "TopWeek" | "TopMonth" | "TopYear" | "TopAll" | "MostComments" | "NewComments" | "TopHour" | "TopSixHour" | "TopTwelveHour" | "TopThreeMonths" | "TopSixMonths" | "TopNineMonths" | "Controversial" | "Scaled" */ = null, + val default_post_time_range_seconds: Long? = null, + val default_items_per_page: Long? = null, + /** Added in 1.0.0 */ + val default_comment_sort_type: CommentSortType? /* "hot" | "top" | "new" | "old" | "controversial" */ = null, val legal_information: String? = null, val application_email_admins: Boolean? = null, + /** Added in 1.0.0 */ + val federation_signed_fetch: Boolean? = null, val hide_modlog_mod_names: Boolean? = null, val discussion_languages: List? = null, val slur_filter_regex: String? = null, - val actor_name_max_length: Long? = null, - val rate_limit_message: Long? = null, - val rate_limit_message_per_second: Long? = null, - val rate_limit_post: Long? = null, - val rate_limit_post_per_second: Long? = null, - val rate_limit_register: Long? = null, - val rate_limit_register_per_second: Long? = null, - val rate_limit_image: Long? = null, - val rate_limit_image_per_second: Long? = null, - val rate_limit_comment: Long? = null, - val rate_limit_comment_per_second: Long? = null, - val rate_limit_search: Long? = null, - val rate_limit_search_per_second: Long? = null, + val rate_limit_message_max_requests: Long? = null, + val rate_limit_message_interval_seconds: Long? = null, + val rate_limit_post_max_requests: Long? = null, + val rate_limit_post_interval_seconds: Long? = null, + val rate_limit_register_max_requests: Long? = null, + val rate_limit_register_interval_seconds: Long? = null, + val rate_limit_image_max_requests: Long? = null, + val rate_limit_image_interval_seconds: Long? = null, + val rate_limit_comment_max_requests: Long? = null, + val rate_limit_comment_interval_seconds: Long? = null, + val rate_limit_search_max_requests: Long? = null, + val rate_limit_search_interval_seconds: Long? = null, + /** Added in 1.0.0 */ + val rate_limit_import_user_settings_max_requests: Long? = null, + /** Added in 1.0.0 */ + val rate_limit_import_user_settings_interval_seconds: Long? = null, val federation_enabled: Boolean? = null, + /** Removed in 1.0.0 */ val federation_debug: Boolean? = null, + /** Removed in 1.0.0 */ val captcha_enabled: Boolean? = null, + /** Removed in 1.0.0 */ val captcha_difficulty: String? = null, + /** Removed in 1.0.0 */ val allowed_instances: List? = null, + /** Removed in 1.0.0 */ val blocked_instances: List? = null, val blocked_urls: List? = null, + /** Removed in 1.0.0 */ val taglines: List? = null, - val registration_mode: RegistrationMode? /* "Closed" | "RequireApplication" | "Open" */ = null, + val registration_mode: RegistrationMode? /* "Closed" | "RequireApplication" | "RequireInvitation" | "Open" */ = null, val reports_email_admins: Boolean? = null, val content_warning: String? = null, - val default_post_listing_mode: PostListingMode? /* "List" | "Card" | "SmallCard" */ = null, + /** Added in 1.0.0 */ + val oauth_registration: Boolean? = null, + /** Added in 1.0.0 */ + val post_upvotes: FederationMode? /* "All" | "Local" | "Disable" */ = null, + /** Added in 1.0.0 */ + val post_downvotes: FederationMode? /* "All" | "Local" | "Disable" */ = null, + /** Added in 1.0.0 */ + val comment_upvotes: FederationMode? /* "All" | "Local" | "Disable" */ = null, + /** Added in 1.0.0 */ + val comment_downvotes: FederationMode? /* "All" | "Local" | "Disable" */ = null, + /** Added in 1.0.0 */ + val suggested_multi_community_id: MultiCommunityId? = null, + /** Added in 1.0.0 */ + val nsfw_content_disallowed: Boolean? = null, + /** Added in 1.0.0 */ + val email_notifications_disabled: Boolean? = null, + /** Added in 1.0.0 */ + val image_mode: ImageMode? /* "none" | "store_link_previews" | "proxy_all_images" */ = null, + /** Added in 1.0.0 */ + val image_proxy_bypass_domains: String? = null, + /** Added in 1.0.0 */ + val image_upload_timeout_seconds: Long? = null, + /** Added in 1.0.0 */ + val image_max_thumbnail_size: Long? = null, + /** Added in 1.0.0 */ + val image_max_avatar_size: Long? = null, + /** Added in 1.0.0 */ + val image_max_banner_size: Long? = null, + /** Added in 1.0.0 */ + val image_max_upload_size: Long? = null, + /** Added in 1.0.0 */ + val image_allow_video_uploads: Boolean? = null, + /** Added in 1.0.0 */ + val image_upload_disabled: Boolean? = null, + /** Added in 1.0.0 */ + val max_invites_per_user_allowed: Long? = null, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetReportCount.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/EditTagline.kt similarity index 75% rename from app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetReportCount.kt rename to app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/EditTagline.kt index cc178b1b..8134edb4 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetReportCount.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/EditTagline.kt @@ -1,12 +1,12 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable -data class GetReportCount( - val community_id: CommunityId? = null, +data class EditTagline( + val id: TaglineId, + val content: String, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/UpdateTotp.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/EditTotp.kt similarity index 92% rename from app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/UpdateTotp.kt rename to app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/EditTotp.kt index 04703e5c..5799c29e 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/UpdateTotp.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/EditTotp.kt @@ -1,13 +1,12 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable -data class UpdateTotp( +data class EditTotp( val totp_token: String, val enabled: Boolean, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/UpdateTotpResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/EditTotpResponse.kt similarity index 88% rename from app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/UpdateTotpResponse.kt rename to app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/EditTotpResponse.kt index af8775b8..7be62a27 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/UpdateTotpResponse.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/EditTotpResponse.kt @@ -1,12 +1,11 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable -data class UpdateTotpResponse( +data class EditTotpResponse( val enabled: Boolean, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ExportDataResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ExportDataResponse.kt new file mode 100644 index 00000000..8a4fc3da --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ExportDataResponse.kt @@ -0,0 +1,16 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +data class ExportDataResponse( + val notifications: List, + val content: List, + val read_posts: List, + val liked: List, + val moderates: List, + val settings: UserSettingsBackup, +) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/FeaturePost.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/FeaturePost.kt index a3ec0af0..53ad0036 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/FeaturePost.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/FeaturePost.kt @@ -1,11 +1,10 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot -import it.vercruysse.lemmyapi.dto.PostFeatureType +import it.vercruysse.lemmyapi.enums.PostFeatureType import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class FeaturePost( diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/InstanceBlockView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/FederatedInstanceView.kt similarity index 61% rename from app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/InstanceBlockView.kt rename to app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/FederatedInstanceView.kt index 989a3b90..f5e5db13 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/InstanceBlockView.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/FederatedInstanceView.kt @@ -1,14 +1,15 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable -data class InstanceBlockView( - val person: Person, +data class FederatedInstanceView( val instance: Instance, val site: Site? = null, + val queue_state: FederationQueueState? = null, + val blocked: FederationBlockList? = null, + val allowed: FederationAllowList? = null, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/FederatedInstances.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/FederatedInstances.kt deleted file mode 100644 index 0621753a..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/FederatedInstances.kt +++ /dev/null @@ -1,14 +0,0 @@ -package it.vercruysse.lemmyapi.datatypes - -import it.vercruysse.lemmyapi.DatatypeRoot -import kotlinx.serialization.Serializable - -import it.vercruysse.lemmyapi.CommonParcelize - -@CommonParcelize -@Serializable -data class FederatedInstances( - val linked: List, - val allowed: List, - val blocked: List, -) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/FederationAllowList.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/FederationAllowList.kt new file mode 100644 index 00000000..89e4c658 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/FederationAllowList.kt @@ -0,0 +1,12 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +data class FederationAllowList( + val published_at: String, + val updated_at: String? = null, +) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/AdminPurgeCommentView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/FederationBlockList.kt similarity index 62% rename from app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/AdminPurgeCommentView.kt rename to app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/FederationBlockList.kt index 4390155c..97416113 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/AdminPurgeCommentView.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/FederationBlockList.kt @@ -1,14 +1,13 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable -data class AdminPurgeCommentView( - val admin_purge_comment: AdminPurgeComment, - val admin: Person? = null, - val post: Post, +data class FederationBlockList( + val published_at: String, + val updated_at: String? = null, + val expires_at: String? = null, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ReadableFederationState.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/FederationQueueState.kt similarity index 66% rename from app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ReadableFederationState.kt rename to app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/FederationQueueState.kt index 61b26e24..2ce8c1f8 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ReadableFederationState.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/FederationQueueState.kt @@ -1,17 +1,15 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable -data class ReadableFederationState( +data class FederationQueueState( val instance_id: InstanceId, val last_successful_id: ActivityId? = null, - val last_successful_published_time: String? = null, + val last_successful_published_time_at: String? = null, val fail_count: Long, - val last_retry: String? = null, - val next_retry: String? = null, + val last_retry_at: String? = null, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/FollowCommunity.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/FollowCommunity.kt index bf7a45dc..fe696a8c 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/FollowCommunity.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/FollowCommunity.kt @@ -1,10 +1,9 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class FollowCommunity( diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/FollowMultiCommunity.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/FollowMultiCommunity.kt new file mode 100644 index 00000000..ec9bd5cf --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/FollowMultiCommunity.kt @@ -0,0 +1,12 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +data class FollowMultiCommunity( + val multi_community_id: MultiCommunityId, + val follow: Boolean, +) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GenerateTotpSecretResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GenerateTotpSecretResponse.kt index 19cf23c1..9cf1d96a 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GenerateTotpSecretResponse.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GenerateTotpSecretResponse.kt @@ -1,12 +1,11 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class GenerateTotpSecretResponse( - val totp_secret_url: String, + val totp_secret_url: SensitiveString, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetCaptchaResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetCaptchaResponse.kt index 5392625c..8f709bfd 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetCaptchaResponse.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetCaptchaResponse.kt @@ -1,10 +1,9 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class GetCaptchaResponse( diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetComment.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetComment.kt index 5a648b04..72df4da3 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetComment.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetComment.kt @@ -1,10 +1,9 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class GetComment( diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetComments.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetComments.kt index c408a152..07ba09de 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetComments.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetComments.kt @@ -1,25 +1,38 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot -import it.vercruysse.lemmyapi.dto.CommentSortType -import it.vercruysse.lemmyapi.dto.ListingType +import it.vercruysse.lemmyapi.enums.CommentSortType +import it.vercruysse.lemmyapi.enums.ListingType import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class GetComments( - val type_: ListingType? /* "All" | "Local" | "Subscribed" | "ModeratorView" */ = null, + val type_: ListingType? /* "All" | "Local" | "Subscribed" | "ModeratorView" | "Suggested" */ = null, val sort: CommentSortType? /* "Hot" | "Top" | "New" | "Old" | "Controversial" */ = null, + /** Added in 1.0.0 */ + val time_range_seconds: Long? = null, val max_depth: Long? = null, + /** Added in 1.0.0 */ + val page_cursor: PaginationCursor? = null, + /** Removed in 1.0.0 */ val page: Long? = null, val limit: Long? = null, val community_id: CommunityId? = null, val community_name: String? = null, + /** Added in 1.0.0 */ + val creator_id: PersonId? = null, + /** Added in 1.0.0 */ + val creator_username: String? = null, val post_id: PostId? = null, val parent_id: CommentId? = null, + /** Added in 1.0.0 */ + val search_term: String? = null, + /** Removed in 1.0.0 */ val saved_only: Boolean? = null, + /** Removed in 1.0.0 */ val liked_only: Boolean? = null, + /** Removed in 1.0.0 */ val disliked_only: Boolean? = null, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetCommunity.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetCommunity.kt index ffb36ace..f367acb1 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetCommunity.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetCommunity.kt @@ -1,10 +1,9 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class GetCommunity( diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetCommunityResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetCommunityResponse.kt index ef04e9ab..3c85d5a5 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetCommunityResponse.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetCommunityResponse.kt @@ -1,10 +1,9 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class GetCommunityResponse( diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetFederatedInstances.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetFederatedInstances.kt new file mode 100644 index 00000000..c37596d9 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetFederatedInstances.kt @@ -0,0 +1,15 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import it.vercruysse.lemmyapi.enums.GetFederatedInstancesKind +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +data class GetFederatedInstances( + val domain_filter: String? = null, + val kind: GetFederatedInstancesKind /* "all" | "linked" | "allowed" | "blocked" */, + val page_cursor: PaginationCursor? = null, + val limit: Long? = null, +) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetFederatedInstancesResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetFederatedInstancesResponse.kt deleted file mode 100644 index dfb41246..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetFederatedInstancesResponse.kt +++ /dev/null @@ -1,12 +0,0 @@ -package it.vercruysse.lemmyapi.datatypes - -import it.vercruysse.lemmyapi.DatatypeRoot -import kotlinx.serialization.Serializable - -import it.vercruysse.lemmyapi.CommonParcelize - -@CommonParcelize -@Serializable -data class GetFederatedInstancesResponse( - val federated_instances: FederatedInstances? = null, -) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetModlog.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetModlog.kt index b9c35494..eba2f617 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetModlog.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetModlog.kt @@ -1,20 +1,29 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot -import it.vercruysse.lemmyapi.dto.ModlogActionType +import it.vercruysse.lemmyapi.enums.ListingType +import it.vercruysse.lemmyapi.enums.ModlogActionType import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class GetModlog( val mod_person_id: PersonId? = null, val community_id: CommunityId? = null, - val page: Long? = null, - val limit: Long? = null, - val type_: ModlogActionType? /* "All" | "ModRemovePost" | "ModLockPost" | "ModFeaturePost" | "ModRemoveComment" | "ModRemoveCommunity" | "ModBanFromCommunity" | "ModAddCommunity" | "ModTransferCommunity" | "ModAdd" | "ModBan" | "ModHideCommunity" | "AdminPurgePerson" | "AdminPurgeCommunity" | "AdminPurgePost" | "AdminPurgeComment" */ = null, + val type_: ModlogActionType? /* "All" | "ModRemovePost" | "ModLockPost" | "ModFeaturePost" | "ModRemoveComment" | "ModLockComment" | "AdminRemoveCommunity" | "ModBanFromCommunity" | "ModAddToCommunity" | "ModTransferCommunity" | "AdminAdd" | "AdminBan" | "ModChangeCommunityVisibility" | "AdminPurgePerson" | "AdminPurgeCommunity" | "AdminPurgePost" | "AdminPurgeComment" | "AdminBlockInstance" | "AdminAllowInstance" */ = null, + /** Added in 1.0.0 */ + val listing_type: ListingType? /* "All" | "Local" | "Subscribed" | "ModeratorView" | "Suggested" */ = null, val other_person_id: PersonId? = null, val post_id: PostId? = null, val comment_id: CommentId? = null, + /** Added in 1.0.0 */ + val show_bulk: Boolean? = null, + /** Added in 1.0.0 */ + val bulk_action_parent_id: ModlogId? = null, + /** Added in 1.0.0 */ + val page_cursor: PaginationCursor? = null, + /** Removed in 1.0.0 */ + val page: Long? = null, + val limit: Long? = null, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetModlogResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetModlogResponse.kt deleted file mode 100644 index 86162c50..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetModlogResponse.kt +++ /dev/null @@ -1,26 +0,0 @@ -package it.vercruysse.lemmyapi.datatypes - -import it.vercruysse.lemmyapi.DatatypeRoot -import kotlinx.serialization.Serializable - -import it.vercruysse.lemmyapi.CommonParcelize - -@CommonParcelize -@Serializable -data class GetModlogResponse( - val removed_posts: List, - val locked_posts: List, - val featured_posts: List, - val removed_comments: List, - val removed_communities: List, - val banned_from_community: List, - val banned: List, - val added_to_community: List, - val transferred_to_community: List, - val added: List, - val admin_purged_persons: List, - val admin_purged_communities: List, - val admin_purged_posts: List, - val admin_purged_comments: List, - val hidden_communities: List, -) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetMultiCommunity.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetMultiCommunity.kt new file mode 100644 index 00000000..4b03163e --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetMultiCommunity.kt @@ -0,0 +1,12 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +data class GetMultiCommunity( + val id: MultiCommunityId? = null, + val name: String? = null, +) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListCommunitiesResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetMultiCommunityResponse.kt similarity index 75% rename from app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListCommunitiesResponse.kt rename to app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetMultiCommunityResponse.kt index cc382df0..2ad983ec 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListCommunitiesResponse.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetMultiCommunityResponse.kt @@ -1,12 +1,12 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable -data class ListCommunitiesResponse( +data class GetMultiCommunityResponse( + val multi_community_view: MultiCommunityView, val communities: List, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetPersonDetails.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetPersonDetails.kt index 004f21f0..90657fbf 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetPersonDetails.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetPersonDetails.kt @@ -1,19 +1,12 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot -import it.vercruysse.lemmyapi.dto.SortType import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class GetPersonDetails( val person_id: PersonId? = null, val username: String? = null, - val sort: SortType? /* "Active" | "Hot" | "New" | "Old" | "TopDay" | "TopWeek" | "TopMonth" | "TopYear" | "TopAll" | "MostComments" | "NewComments" | "TopHour" | "TopSixHour" | "TopTwelveHour" | "TopThreeMonths" | "TopSixMonths" | "TopNineMonths" | "Controversial" | "Scaled" */ = null, - val page: Long? = null, - val limit: Long? = null, - val community_id: CommunityId? = null, - val saved_only: Boolean? = null, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetPersonDetailsResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetPersonDetailsResponse.kt index a7f221f4..3441ba26 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetPersonDetailsResponse.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetPersonDetailsResponse.kt @@ -1,16 +1,14 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class GetPersonDetailsResponse( val person_view: PersonView, val site: Site? = null, - val comments: List, - val posts: List, val moderates: List, + val multi_communities_created: List, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetPersonMentions.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetPersonMentions.kt deleted file mode 100644 index a4088f20..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetPersonMentions.kt +++ /dev/null @@ -1,16 +0,0 @@ -package it.vercruysse.lemmyapi.datatypes - -import it.vercruysse.lemmyapi.DatatypeRoot -import it.vercruysse.lemmyapi.dto.CommentSortType -import kotlinx.serialization.Serializable - -import it.vercruysse.lemmyapi.CommonParcelize - -@CommonParcelize -@Serializable -data class GetPersonMentions( - val sort: CommentSortType? /* "Hot" | "Top" | "New" | "Old" | "Controversial" */ = null, - val page: Long? = null, - val limit: Long? = null, - val unread_only: Boolean? = null, -) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetPersonMentionsResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetPersonMentionsResponse.kt deleted file mode 100644 index 66ebc947..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetPersonMentionsResponse.kt +++ /dev/null @@ -1,12 +0,0 @@ -package it.vercruysse.lemmyapi.datatypes - -import it.vercruysse.lemmyapi.DatatypeRoot -import kotlinx.serialization.Serializable - -import it.vercruysse.lemmyapi.CommonParcelize - -@CommonParcelize -@Serializable -data class GetPersonMentionsResponse( - val mentions: List, -) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetPost.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetPost.kt index 626563d4..789afcb5 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetPost.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetPost.kt @@ -1,10 +1,9 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class GetPost( diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetPostResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetPostResponse.kt index 81720c3d..713cf183 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetPostResponse.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetPostResponse.kt @@ -1,15 +1,14 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class GetPostResponse( val post_view: PostView, val community_view: CommunityView, - val moderators: List, + val moderators: List = emptyList(), val cross_posts: List, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetPosts.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetPosts.kt index 52a1e941..fded51f3 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetPosts.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetPosts.kt @@ -1,38 +1,56 @@ package it.vercruysse.lemmyapi.datatypes -import it.vercruysse.lemmyapi.DatatypeRoot -import it.vercruysse.lemmyapi.dto.SortType -import it.vercruysse.lemmyapi.dto.ListingType -import kotlinx.serialization.Serializable - import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot import it.vercruysse.lemmyapi.dto.PAGE_CURSOR_GUARD +import it.vercruysse.lemmyapi.enums.ListingType +import it.vercruysse.lemmyapi.enums.SortType +import kotlinx.serialization.Serializable @CommonParcelize @Serializable data class GetPosts( val type_: ListingType? /* "All" | "Local" | "Subscribed" | "ModeratorView" */ = null, val sort: SortType? /* "Active" | "Hot" | "New" | "Old" | "TopDay" | "TopWeek" | "TopMonth" | "TopYear" | "TopAll" | "MostComments" | "NewComments" | "TopHour" | "TopSixHour" | "TopTwelveHour" | "TopThreeMonths" | "TopSixMonths" | "TopNineMonths" | "Controversial" | "Scaled" */ = null, - /* starts from 1, null is considered not set, deprecated 0.19+, set to support 0.18 */ - val page: Long? = null, - val limit: Long? = null, + /** Added in 1.0.0 */ + val time_range_seconds: Long? = null, val community_id: CommunityId? = null, val community_name: String? = null, - val saved_only: Boolean? = null, - val liked_only: Boolean? = null, - val disliked_only: Boolean? = null, + /** Added in 1.0.0 */ + val creator_id: PersonId? = null, + /** Added in 1.0.0 */ + val creator_username: String? = null, + /** Added in 1.0.0 */ + val multi_community_id: MultiCommunityId? = null, + /** Added in 1.0.0 */ + val multi_community_name: String? = null, val show_hidden: Boolean? = null, - /** The page cursor to the next list, null is valid and considered first list */ - val page_cursor: PaginationCursor? = PAGE_CURSOR_GUARD, // Guard is used to detect when null is set /** Added in 0.19.6 */ val show_read: Boolean? = null, /** Added in 0.19.6 */ val show_nsfw: Boolean? = null, + /** Added in 1.0.0 */ + val hide_posts_with_media: Boolean? = null, + /** Added in 1.0.0 */ + val mark_as_read: Boolean? = null, + /** Added in 1.0.0 */ + val no_comments_only: Boolean? = null, + /** Added in 1.0.0 */ + val search_term: String? = null, + /** Added in 1.0.0 */ + val search_title_only: Boolean? = null, + /** Added in 1.0.0 */ + val search_url_only: Boolean? = null, + /** Added in 1.0.0 */ + val tag_id: CommunityTagId? = null, + /** The page cursor to the next list, null is valid and considered first list */ + val page_cursor: PaginationCursor? = PAGE_CURSOR_GUARD, // Guard is used to detect when null is set + /** starts from 1, null is considered not set, deprecated 0.19+, set to support 0.18, removed in 1.0.0 */ + val page: Long? = null, + val limit: Long? = null, ) : DatatypeRoot { - internal fun toPostsForm(): GetPosts { - return this.copy(page_cursor = null, page = this.page) - } + internal fun toPostsForm(): GetPosts = this.copy(page_cursor = null, page = this.page) internal fun toValidatedForm(): GetPosts { val pageCursorSet = this.page_cursor != PAGE_CURSOR_GUARD @@ -42,6 +60,5 @@ data class GetPosts( } else { this.copy(page_cursor = null, page = this.page) } - } } diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetRandomCommunity.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetRandomCommunity.kt new file mode 100644 index 00000000..a9fdbbab --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetRandomCommunity.kt @@ -0,0 +1,13 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import it.vercruysse.lemmyapi.enums.ListingType +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +data class GetRandomCommunity( + val type_: ListingType? /* "All" | "Local" | "Subscribed" | "ModeratorView" | "Suggested" */ = null, + val show_nsfw: Boolean? = null, +) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetRegistrationApplication.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetRegistrationApplication.kt index c9ed75d3..901bc6a0 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetRegistrationApplication.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetRegistrationApplication.kt @@ -9,4 +9,3 @@ import kotlinx.serialization.Serializable data class GetRegistrationApplication( val person_id: PersonId, ) : DatatypeRoot - diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetReplies.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetReplies.kt deleted file mode 100644 index 378da15c..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetReplies.kt +++ /dev/null @@ -1,16 +0,0 @@ -package it.vercruysse.lemmyapi.datatypes - -import it.vercruysse.lemmyapi.DatatypeRoot -import it.vercruysse.lemmyapi.dto.CommentSortType -import kotlinx.serialization.Serializable - -import it.vercruysse.lemmyapi.CommonParcelize - -@CommonParcelize -@Serializable -data class GetReplies( - val sort: CommentSortType? /* "Hot" | "Top" | "New" | "Old" | "Controversial" */ = null, - val page: Long? = null, - val limit: Long? = null, - val unread_only: Boolean? = null, -) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetReportCountResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetReportCountResponse.kt deleted file mode 100644 index 1a90d0f7..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetReportCountResponse.kt +++ /dev/null @@ -1,15 +0,0 @@ -package it.vercruysse.lemmyapi.datatypes - -import it.vercruysse.lemmyapi.DatatypeRoot -import kotlinx.serialization.Serializable - -import it.vercruysse.lemmyapi.CommonParcelize - -@CommonParcelize -@Serializable -data class GetReportCountResponse( - val community_id: CommunityId? = null, - val comment_reports: Long, - val post_reports: Long, - val private_message_reports: Long? = null, -) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetSiteMetadata.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetSiteMetadata.kt index e3bb6ac8..2fb0d841 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetSiteMetadata.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetSiteMetadata.kt @@ -1,10 +1,9 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class GetSiteMetadata( diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetSiteMetadataResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetSiteMetadataResponse.kt index 7daa7c37..f7059a1b 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetSiteMetadataResponse.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetSiteMetadataResponse.kt @@ -1,10 +1,9 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class GetSiteMetadataResponse( diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetSiteResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetSiteResponse.kt index 56e6e01f..16ad3ec3 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetSiteResponse.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetSiteResponse.kt @@ -1,20 +1,26 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class GetSiteResponse( val site_view: SiteView, val admins: List, val version: String, - val my_user: MyUserInfo? = null, val all_languages: List, val discussion_languages: List, - val taglines: List, - val custom_emojis: List, val blocked_urls: List, + val tagline: Tagline? = null, + /** Added in 1.0.0 */ + val oauth_providers: List, + /** Added in 1.0.0 */ + val admin_oauth_providers: List, + /** Added in 1.0.0 */ + val active_plugins: List, + val last_application_duration_seconds: Long? = null, + /** Added in 1.0.0 */ + val captcha_enabled: Boolean, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetUnreadCountResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetUnreadCountResponse.kt deleted file mode 100644 index 98c67fa8..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetUnreadCountResponse.kt +++ /dev/null @@ -1,14 +0,0 @@ -package it.vercruysse.lemmyapi.datatypes - -import it.vercruysse.lemmyapi.DatatypeRoot -import kotlinx.serialization.Serializable - -import it.vercruysse.lemmyapi.CommonParcelize - -@CommonParcelize -@Serializable -data class GetUnreadCountResponse( - val replies: Long, - val mentions: Long, - val private_messages: Long, -) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetUnreadRegistrationApplicationCountResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetUnreadRegistrationApplicationCountResponse.kt deleted file mode 100644 index ba66f4c7..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetUnreadRegistrationApplicationCountResponse.kt +++ /dev/null @@ -1,12 +0,0 @@ -package it.vercruysse.lemmyapi.datatypes - -import it.vercruysse.lemmyapi.DatatypeRoot -import kotlinx.serialization.Serializable - -import it.vercruysse.lemmyapi.CommonParcelize - -@CommonParcelize -@Serializable -data class GetUnreadRegistrationApplicationCountResponse( - val registration_applications: Long, -) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/HideCommunity.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/HideCommunity.kt index 0b24bf3f..ac6f4d7b 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/HideCommunity.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/HideCommunity.kt @@ -1,14 +1,13 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class HideCommunity( val community_id: CommunityId, val hidden: Boolean, - val reason: String? = null, + val reason: String, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/HidePost.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/HidePost.kt index 5a45a03d..e240355e 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/HidePost.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/HidePost.kt @@ -1,13 +1,12 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class HidePost( - val post_ids: List, + val post_id: PostId, val hide: Boolean, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetCommentsResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/HidePosts.kt similarity index 74% rename from app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetCommentsResponse.kt rename to app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/HidePosts.kt index a30feb7a..6d8f65a5 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetCommentsResponse.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/HidePosts.kt @@ -1,12 +1,12 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable -data class GetCommentsResponse( - val comments: List, +data class HidePosts( + val post_ids: List, + val hide: Boolean, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ImageDetails.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ImageDetails.kt index 7ace23e4..c27d93ad 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ImageDetails.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ImageDetails.kt @@ -11,4 +11,6 @@ data class ImageDetails( val width: Long, val height: Long, val content_type: String, + /** Added in Lemmy 1.0.0 */ + val blurhash: String? = null, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ImageGetParams.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ImageGetParams.kt new file mode 100644 index 00000000..8361575c --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ImageGetParams.kt @@ -0,0 +1,12 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +data class ImageGetParams( + val file_type: String? = null, + val max_size: Long? = null, +) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ImageProxyParams.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ImageProxyParams.kt new file mode 100644 index 00000000..f3697417 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ImageProxyParams.kt @@ -0,0 +1,13 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +data class ImageProxyParams( + val url: String, + val file_type: String? = null, + val max_size: Long? = null, +) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/Instance.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/Instance.kt index 85dd51b5..c2075bf2 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/Instance.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/Instance.kt @@ -1,17 +1,16 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class Instance( val id: InstanceId, val domain: String, - val published: String, - val updated: String? = null, + val published_at: String, + val updated_at: String? = null, val software: String? = null, val version: String? = null, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/InstanceActions.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/InstanceActions.kt new file mode 100644 index 00000000..6958bb98 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/InstanceActions.kt @@ -0,0 +1,14 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +data class InstanceActions( + val blocked_communities_at: String? = null, + val received_ban_at: String? = null, + val ban_expires_at: String? = null, + val blocked_persons_at: String? = null, +) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/InstanceWithFederationState.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/InstanceWithFederationState.kt deleted file mode 100644 index 1d9ed5c1..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/InstanceWithFederationState.kt +++ /dev/null @@ -1,18 +0,0 @@ -package it.vercruysse.lemmyapi.datatypes - -import it.vercruysse.lemmyapi.DatatypeRoot -import kotlinx.serialization.Serializable - -import it.vercruysse.lemmyapi.CommonParcelize - -@CommonParcelize -@Serializable -data class InstanceWithFederationState( - val id: InstanceId, - val domain: String, - val published: String, - val updated: String? = null, - val software: String? = null, - val version: String? = null, - val federation_state: ReadableFederationState? = null, -) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PersonMentionId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/InvitationId.kt similarity index 56% rename from app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PersonMentionId.kt rename to app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/InvitationId.kt index 25415b8f..8dfde063 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PersonMentionId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/InvitationId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.datatypes -typealias PersonMentionId = Long +typealias InvitationId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/Language.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/Language.kt index 92cb263b..334d5f97 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/Language.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/Language.kt @@ -1,11 +1,10 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import it.vercruysse.lemmyapi.Identity import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class Language( diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/LinkMetadata.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/LinkMetadata.kt index 6e57a9de..a85a23bd 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/LinkMetadata.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/LinkMetadata.kt @@ -1,16 +1,19 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class LinkMetadata( + val content_type: String? = null, val title: String? = null, val description: String? = null, val image: String? = null, + val image_width: Long? = null, + val image_height: Long? = null, val embed_video_url: String? = null, - val content_type: String? = null, + val video_width: Long? = null, + val video_height: Long? = null, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListCommentLikes.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListCommentLikes.kt index ee599ba4..2adf0a57 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListCommentLikes.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListCommentLikes.kt @@ -1,14 +1,16 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class ListCommentLikes( val comment_id: CommentId, + /** Removed in 1.0.0 */ val page: Long? = null, + /** Added in 1.0.0 */ + val page_cursor: PaginationCursor? = null, val limit: Long? = null, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListCommentLikesResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListCommentLikesResponse.kt deleted file mode 100644 index e0a99a6d..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListCommentLikesResponse.kt +++ /dev/null @@ -1,12 +0,0 @@ -package it.vercruysse.lemmyapi.datatypes - -import it.vercruysse.lemmyapi.DatatypeRoot -import kotlinx.serialization.Serializable - -import it.vercruysse.lemmyapi.CommonParcelize - -@CommonParcelize -@Serializable -data class ListCommentLikesResponse( - val comment_likes: List, -) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListCommentReportsResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListCommentReportsResponse.kt deleted file mode 100644 index b3f967f6..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListCommentReportsResponse.kt +++ /dev/null @@ -1,12 +0,0 @@ -package it.vercruysse.lemmyapi.datatypes - -import it.vercruysse.lemmyapi.DatatypeRoot -import kotlinx.serialization.Serializable - -import it.vercruysse.lemmyapi.CommonParcelize - -@CommonParcelize -@Serializable -data class ListCommentReportsResponse( - val comment_reports: List, -) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListCommunities.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListCommunities.kt index eb92ceec..34a25dde 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListCommunities.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListCommunities.kt @@ -1,18 +1,27 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot -import it.vercruysse.lemmyapi.dto.SortType -import it.vercruysse.lemmyapi.dto.ListingType +import it.vercruysse.lemmyapi.enums.ListingType +import it.vercruysse.lemmyapi.enums.SortType import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class ListCommunities( - val type_: ListingType? /* "All" | "Local" | "Subscribed" | "ModeratorView" */ = null, - val sort: SortType? /* "Active" | "Hot" | "New" | "Old" | "TopDay" | "TopWeek" | "TopMonth" | "TopYear" | "TopAll" | "MostComments" | "NewComments" | "TopHour" | "TopSixHour" | "TopTwelveHour" | "TopThreeMonths" | "TopSixMonths" | "TopNineMonths" | "Controversial" | "Scaled" */ = null, + val type_: ListingType? /* "all" | "local" | "subscribed" | "moderator_view" | "suggested" */ = null, + val sort: SortType? /* "active_six_months" | "active_monthly" | "active_weekly" | "active_daily" | "hot" | "new" | "old" | "name_asc" | "name_desc" | "comments" | "posts" | "subscribers" | "subscribers_local" */ = null, + val time_range_seconds: Long? = null, val show_nsfw: Boolean? = null, + /** Added in 1.0.0 */ + val multi_community_id: MultiCommunityId? = null, + /** Added in 1.0.0 */ + val search_term: String? = null, + /** Added in 1.0.0 */ + val search_title_only: Boolean? = null, + /** Added in 1.0.0 */ + val page_cursor: PaginationCursor? = null, + /** Removed in 1.0.0 */ val page: Long? = null, val limit: Long? = null, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetPrivateMessages.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListCommunityPendingFollows.kt similarity index 69% rename from app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetPrivateMessages.kt rename to app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListCommunityPendingFollows.kt index 9a5e3fab..ed17839b 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetPrivateMessages.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListCommunityPendingFollows.kt @@ -1,15 +1,14 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable -data class GetPrivateMessages( +data class ListCommunityPendingFollows( val unread_only: Boolean? = null, - val page: Long? = null, + val all_communities: Boolean? = null, + val page_cursor: PaginationCursor? = null, val limit: Long? = null, - val creator_id: PersonId? = null, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListCustomEmojis.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListCustomEmojis.kt new file mode 100644 index 00000000..a02d845e --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListCustomEmojis.kt @@ -0,0 +1,11 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +data class ListCustomEmojis( + val category: String? = null, +) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommentReplyResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListCustomEmojisResponse.kt similarity index 72% rename from app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommentReplyResponse.kt rename to app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListCustomEmojisResponse.kt index 694643cd..6ab33e58 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommentReplyResponse.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListCustomEmojisResponse.kt @@ -1,12 +1,11 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable -data class CommentReplyResponse( - val comment_reply_view: CommentReplyView, +data class ListCustomEmojisResponse( + val custom_emojis: List, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListPrivateMessageReports.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListInvitations.kt similarity index 69% rename from app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListPrivateMessageReports.kt rename to app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListInvitations.kt index 7b0f1627..141cda6c 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListPrivateMessageReports.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListInvitations.kt @@ -1,14 +1,12 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable -data class ListPrivateMessageReports( - val page: Long? = null, +data class ListInvitations( + val page_cursor: PaginationCursor? = null, val limit: Long? = null, - val unresolved_only: Boolean? = null, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListLoginsResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListLoginsResponse.kt new file mode 100644 index 00000000..ef2dad8b --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListLoginsResponse.kt @@ -0,0 +1,11 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +data class ListLoginsResponse( + val logins: List, +) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListMedia.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListMedia.kt index 5c2b2fc9..d35bd27d 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListMedia.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListMedia.kt @@ -1,13 +1,15 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class ListMedia( + /** Removed in 1.0.0 */ val page: Long? = null, + /** Added in 1.0.0 */ + val page_cursor: PaginationCursor? = null, val limit: Long? = null, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListMultiCommunities.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListMultiCommunities.kt new file mode 100644 index 00000000..5f5b94f1 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListMultiCommunities.kt @@ -0,0 +1,20 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import it.vercruysse.lemmyapi.enums.MultiCommunityListingType +import it.vercruysse.lemmyapi.enums.MultiCommunitySortType +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +data class ListMultiCommunities( + val type_: MultiCommunityListingType? /* "all" | "local" | "subscribed" */ = null, + val sort: MultiCommunitySortType? /* "new" | "old" | "name_asc" | "name_desc" | "communities" | "subscribers" | "subscribers_local" */ = null, + val creator_id: PersonId? = null, + val time_range_seconds: Long? = null, + val search_term: String? = null, + val search_title_only: Boolean? = null, + val page_cursor: PaginationCursor? = null, + val limit: Long? = null, +) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListNotifications.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListNotifications.kt new file mode 100644 index 00000000..89829aab --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListNotifications.kt @@ -0,0 +1,19 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import it.vercruysse.lemmyapi.enums.NotificationDataType +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +data class ListNotifications( + val type_: NotificationDataType /* "All" | "Reply" | "Mention" | "PrivateMessage" | "Subscribed" */, + val unread_only: Boolean? = null, + val creator_id: PersonId? = null, + /** Removed in 1.0.0 */ + val page: Long? = null, + /** Added 1.0.0 */ + val page_cursor: PaginationCursor? = null, + val limit: Long? = null, +) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListPersonContent.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListPersonContent.kt new file mode 100644 index 00000000..e4a588e8 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListPersonContent.kt @@ -0,0 +1,22 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import it.vercruysse.lemmyapi.enums.PersonContentType +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.CommunityId +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +data class ListPersonContent( + val type_: PersonContentType? /* "all" | "comments" | "posts" */ = null, + val person_id: PersonId? = null, + val username: String? = null, + val community_id: CommunityId? = null, + /** Added in 1.0.0 */ + val community_name: String? = null, + val page_cursor: PaginationCursor? = null, + val limit: Long? = null, + /** Removed in 1.0.0 */ + val page: Long? = null, +) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListPersonHidden.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListPersonHidden.kt new file mode 100644 index 00000000..aefed43f --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListPersonHidden.kt @@ -0,0 +1,12 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +data class ListPersonHidden( + val page_cursor: PaginationCursor? = null, + val limit: Long? = null, +) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListPersonLiked.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListPersonLiked.kt new file mode 100644 index 00000000..040bf664 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListPersonLiked.kt @@ -0,0 +1,15 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import it.vercruysse.lemmyapi.enums.PersonContentType +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +data class ListPersonLiked( + val type_: PersonContentType? /* "all" | "comments" | "posts" */ = null, + val like_type: String? /* "all" | "liked_only" | "disliked_only" */ = null, + val page_cursor: PaginationCursor? = null, + val limit: Long? = null, +) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/BlockCommunityResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListPersonRead.kt similarity index 68% rename from app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/BlockCommunityResponse.kt rename to app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListPersonRead.kt index 08bd9c61..bce84f9c 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/BlockCommunityResponse.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListPersonRead.kt @@ -1,13 +1,12 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable -data class BlockCommunityResponse( - val community_view: CommunityView, - val blocked: Boolean, +data class ListPersonRead( + val page_cursor: PaginationCursor? = null, + val limit: Long? = null, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListPersonSaved.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListPersonSaved.kt new file mode 100644 index 00000000..f9ab9a44 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListPersonSaved.kt @@ -0,0 +1,16 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import it.vercruysse.lemmyapi.enums.PersonContentType +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +data class ListPersonSaved( + val type_: PersonContentType? /* "All" | "Comments" | "Posts" */ = null, + /** Added in 1.0.0 */ + val search_term: String? = null, + val page_cursor: PaginationCursor? = null, + val limit: Long? = null, +) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListPersons.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListPersons.kt new file mode 100644 index 00000000..471c2a54 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListPersons.kt @@ -0,0 +1,18 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import it.vercruysse.lemmyapi.enums.ListingType +import it.vercruysse.lemmyapi.enums.PersonSortType +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +data class ListPersons( + val type_: ListingType? /* "all" | "local" */ = null, + val sort: PersonSortType? /* "new" | "old" | "post_score" | "comment_score" */ = null, + val search_term: String? = null, + val search_title_only: Boolean? = null, + val page_cursor: PaginationCursor? = null, + val limit: Long? = null, +) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListPostLikes.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListPostLikes.kt index 8c0165f4..f6d09f42 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListPostLikes.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListPostLikes.kt @@ -1,14 +1,16 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class ListPostLikes( val post_id: PostId, + /** Removed in 1.0.0 */ val page: Long? = null, + /** Added in 1.0.0 */ + val page_cursor: PaginationCursor? = null, val limit: Long? = null, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListPostLikesResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListPostLikesResponse.kt deleted file mode 100644 index 10622243..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListPostLikesResponse.kt +++ /dev/null @@ -1,12 +0,0 @@ -package it.vercruysse.lemmyapi.datatypes - -import it.vercruysse.lemmyapi.DatatypeRoot -import kotlinx.serialization.Serializable - -import it.vercruysse.lemmyapi.CommonParcelize - -@CommonParcelize -@Serializable -data class ListPostLikesResponse( - val post_likes: List, -) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListPostReportsResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListPostReportsResponse.kt deleted file mode 100644 index c3abf451..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListPostReportsResponse.kt +++ /dev/null @@ -1,12 +0,0 @@ -package it.vercruysse.lemmyapi.datatypes - -import it.vercruysse.lemmyapi.DatatypeRoot -import kotlinx.serialization.Serializable - -import it.vercruysse.lemmyapi.CommonParcelize - -@CommonParcelize -@Serializable -data class ListPostReportsResponse( - val post_reports: List, -) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListPrivateMessageReportsResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListPrivateMessageReportsResponse.kt deleted file mode 100644 index 224cffe2..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListPrivateMessageReportsResponse.kt +++ /dev/null @@ -1,12 +0,0 @@ -package it.vercruysse.lemmyapi.datatypes - -import it.vercruysse.lemmyapi.DatatypeRoot -import kotlinx.serialization.Serializable - -import it.vercruysse.lemmyapi.CommonParcelize - -@CommonParcelize -@Serializable -data class ListPrivateMessageReportsResponse( - val private_message_reports: List, -) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListRegistrationApplications.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListRegistrationApplications.kt index 211248da..9f292271 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListRegistrationApplications.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListRegistrationApplications.kt @@ -1,14 +1,16 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class ListRegistrationApplications( val unread_only: Boolean? = null, + /** Removed in 1.0.0 */ val page: Long? = null, + /** Added in 1.0.0 */ + val page_cursor: PaginationCursor? = null, val limit: Long? = null, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListRegistrationApplicationsResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListRegistrationApplicationsResponse.kt deleted file mode 100644 index b3461bb0..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListRegistrationApplicationsResponse.kt +++ /dev/null @@ -1,12 +0,0 @@ -package it.vercruysse.lemmyapi.datatypes - -import it.vercruysse.lemmyapi.DatatypeRoot -import kotlinx.serialization.Serializable - -import it.vercruysse.lemmyapi.CommonParcelize - -@CommonParcelize -@Serializable -data class ListRegistrationApplicationsResponse( - val registration_applications: List, -) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListReports.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListReports.kt new file mode 100644 index 00000000..56635832 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListReports.kt @@ -0,0 +1,27 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import it.vercruysse.lemmyapi.enums.ReportSortType +import it.vercruysse.lemmyapi.enums.ReportType +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +data class ListReports( + val unresolved_only: Boolean? = null, + val type_: ReportType /* "All" | "Posts" | "Comments" | "PrivateMessages" | "Communities" */, + val post_id: PostId? = null, + /** Removed in 1.0.0 */ + val community_id: CommunityId? = null, + val page: Long? = null, + /** Added in 1.0.0 */ + val page_cursor: PaginationCursor? = null, + val limit: Long? = null, + /** Added in 1.0.0 */ + val sort: ReportSortType? = null, + /** Added in 1.0.0 */ + val show_community_rule_violations: Boolean? = null, + /** Added in 1.0.0 */ + val my_reports_only: Boolean? = null, +) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListPostReports.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListTaglines.kt similarity index 58% rename from app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListPostReports.kt rename to app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListTaglines.kt index ebe99de4..c9607835 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListPostReports.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ListTaglines.kt @@ -1,16 +1,13 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.PaginationCursor import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable -data class ListPostReports( - val page: Long? = null, +data class ListTaglines( + val page_cursor: PaginationCursor? = null, val limit: Long? = null, - val unresolved_only: Boolean? = null, - val community_id: CommunityId? = null, - val post_id: PostId? = null, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/LocalImage.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/LocalImage.kt index 35cc8d7d..2f9bc754 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/LocalImage.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/LocalImage.kt @@ -1,15 +1,17 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class LocalImage( - val local_user_id: LocalUserId? = null, + val person_id: PersonId? = null, val pictrs_alias: String, - val pictrs_delete_token: String, - val published: String, + /** Removed in Lemmy 1.0.0 */ + val pictrs_delete_token: String? = null, + val published_at: String, + /** Added in Lemmy 1.0.0 */ + val thumbnail_for_post_id: PostId? = null, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/LocalImageView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/LocalImageView.kt index 758afa35..045c1c40 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/LocalImageView.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/LocalImageView.kt @@ -1,13 +1,13 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class LocalImageView( val local_image: LocalImage, val person: Person, + val post: Post? = null, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/LocalSite.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/LocalSite.kt index da198c37..a57e3b8e 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/LocalSite.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/LocalSite.kt @@ -1,42 +1,68 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import it.vercruysse.lemmyapi.Identity -import it.vercruysse.lemmyapi.dto.SortType -import it.vercruysse.lemmyapi.dto.PostListingMode -import it.vercruysse.lemmyapi.dto.RegistrationMode -import it.vercruysse.lemmyapi.dto.ListingType +import it.vercruysse.lemmyapi.enums.CommentSortType +import it.vercruysse.lemmyapi.enums.FederationMode +import it.vercruysse.lemmyapi.enums.ImageMode +import it.vercruysse.lemmyapi.enums.ListingType +import it.vercruysse.lemmyapi.enums.PostListingMode +import it.vercruysse.lemmyapi.enums.RegistrationMode +import it.vercruysse.lemmyapi.enums.SortType import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class LocalSite( override val id: LocalSiteId, val site_id: SiteId, val site_setup: Boolean, - val enable_downvotes: Boolean, - val enable_nsfw: Boolean, val community_creation_admin_only: Boolean, - val require_email_verification: Boolean, + val email_verification_required: Boolean, val application_question: String? = null, val private_instance: Boolean, val default_theme: String, val default_post_listing_type: ListingType /* "All" | "Local" | "Subscribed" | "ModeratorView" */, val legal_information: String? = null, - val hide_modlog_mod_names: Boolean, val application_email_admins: Boolean, val slur_filter_regex: String? = null, - val actor_name_max_length: Long, val federation_enabled: Boolean, - val captcha_enabled: Boolean, - val captcha_difficulty: String, - val published: String, - val updated: String? = null, - val registration_mode: RegistrationMode /* "Closed" | "RequireApplication" | "Open" */, + val published_at: String, + val updated_at: String? = null, + val registration_mode: RegistrationMode /* "Closed" | "RequireApplication" | "RequireInvitation" | "Open" */, val reports_email_admins: Boolean, val federation_signed_fetch: Boolean, val default_post_listing_mode: PostListingMode /* "List" | "Card" | "SmallCard" */, - val default_sort_type: SortType /* "Active" | "Hot" | "New" | "Old" | "TopDay" | "TopWeek" | "TopMonth" | "TopYear" | "TopAll" | "MostComments" | "NewComments" | "TopHour" | "TopSixHour" | "TopTwelveHour" | "TopThreeMonths" | "TopSixMonths" | "TopNineMonths" | "Controversial" | "Scaled" */, + val default_post_sort_type: SortType /* "Active" | "Hot" | "New" | "Old" | "TopDay" | "TopWeek" | "TopMonth" | "TopYear" | "TopAll" | "MostComments" | "NewComments" | "TopHour" | "TopSixHour" | "TopTwelveHour" | "TopThreeMonths" | "TopSixMonths" | "TopNineMonths" | "Controversial" | "Scaled" */, + val default_comment_sort_type: CommentSortType /* "Hot" | "Top" | "New" | "Old" | "Controversial" */, + val oauth_registration: Boolean, + val post_upvotes: FederationMode /* "All" | "Local" | "Disable" */, + val post_downvotes: FederationMode /* "All" | "Local" | "Disable" */, + val comment_upvotes: FederationMode /* "All" | "Local" | "Disable" */, + val comment_downvotes: FederationMode /* "All" | "Local" | "Disable" */, + val default_post_time_range_seconds: Long? = null, + val nsfw_content_disallowed: Boolean, + val users: Long, + val posts: Long, + val comments: Long, + val communities: Long, + val users_active_day: Long, + val users_active_week: Long, + val users_active_month: Long, + val users_active_half_year: Long, + val email_notifications_disabled: Boolean, + val suggested_multi_community_id: MultiCommunityId? = null, + val default_items_per_page: Long, + val image_mode: ImageMode /* "none" | "store_link_previews" | "proxy_all_images" */, + val image_proxy_bypass_domains: String? = null, + val image_upload_timeout_seconds: Long, + val image_max_thumbnail_size: Long, + val image_max_avatar_size: Long, + val image_max_banner_size: Long, + val image_max_upload_size: Long, + val image_allow_video_uploads: Boolean, + val image_upload_disabled: Boolean, + /** Added in 1.0.0 */ + val max_invites_per_user_allowed: Long, ) : DatatypeRoot, Identity diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/LocalSiteRateLimit.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/LocalSiteRateLimit.kt index 5574d6a5..e32cc892 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/LocalSiteRateLimit.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/LocalSiteRateLimit.kt @@ -1,28 +1,27 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class LocalSiteRateLimit( val local_site_id: LocalSiteId, - val message: Long, - val message_per_second: Long, - val post: Long, - val post_per_second: Long, - val register: Long, - val register_per_second: Long, - val image: Long, - val image_per_second: Long, - val comment: Long, - val comment_per_second: Long, - val search: Long, - val search_per_second: Long, - val published: String, - val updated: String? = null, - val import_user_settings: Long, - val import_user_settings_per_second: Long, + val message_max_requests: Long, + val message_interval_seconds: Long, + val post_max_requests: Long, + val post_interval_seconds: Long, + val register_max_requests: Long, + val register_interval_seconds: Long, + val image_max_requests: Long, + val image_interval_seconds: Long, + val comment_max_requests: Long, + val comment_interval_seconds: Long, + val search_max_requests: Long, + val search_interval_seconds: Long, + val published_at: String, + val updated_at: String? = null, + val import_user_settings_max_requests: Long, + val import_user_settings_interval_seconds: Long, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/LocalSiteUrlBlocklist.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/LocalSiteUrlBlocklist.kt index 9e000705..009d110f 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/LocalSiteUrlBlocklist.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/LocalSiteUrlBlocklist.kt @@ -1,15 +1,14 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class LocalSiteUrlBlocklist( val id: Long, val url: String, - val published: String, - val updated: String? = null, + val published_at: String, + val updated_at: String? = null, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/LocalUser.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/LocalUser.kt index 416bbbb2..c8d1ca04 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/LocalUser.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/LocalUser.kt @@ -1,14 +1,15 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import it.vercruysse.lemmyapi.Identity -import it.vercruysse.lemmyapi.dto.PostListingMode -import it.vercruysse.lemmyapi.dto.ListingType -import it.vercruysse.lemmyapi.dto.SortType +import it.vercruysse.lemmyapi.enums.CommentSortType +import it.vercruysse.lemmyapi.enums.ListingType +import it.vercruysse.lemmyapi.enums.PostListingMode +import it.vercruysse.lemmyapi.enums.SortType +import it.vercruysse.lemmyapi.enums.VoteShow import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class LocalUser( @@ -17,26 +18,45 @@ data class LocalUser( val email: String? = null, val show_nsfw: Boolean, val theme: String, - val default_sort_type: SortType /* "Active" | "Hot" | "New" | "Old" | "TopDay" | "TopWeek" | "TopMonth" | "TopYear" | "TopAll" | "MostComments" | "NewComments" | "TopHour" | "TopSixHour" | "TopTwelveHour" | "TopThreeMonths" | "TopSixMonths" | "TopNineMonths" | "Controversial" | "Scaled" */, + val default_post_sort_type: SortType /* "Active" | "Hot" | "New" | "Old" | "TopDay" | "TopWeek" | "TopMonth" | "TopYear" | "TopAll" | "MostComments" | "NewComments" | "TopHour" | "TopSixHour" | "TopTwelveHour" | "TopThreeMonths" | "TopSixMonths" | "TopNineMonths" | "Controversial" | "Scaled" */, val default_listing_type: ListingType /* "All" | "Local" | "Subscribed" | "ModeratorView" */, val interface_language: String, val show_avatars: Boolean, val send_notifications_to_email: Boolean, - val show_scores: Boolean, val show_bot_accounts: Boolean, val show_read_posts: Boolean, val email_verified: Boolean, val accepted_application: Boolean, val open_links_in_new_tab: Boolean, val blur_nsfw: Boolean, - val auto_expand: Boolean, val infinite_scroll_enabled: Boolean, val admin: Boolean, val post_listing_mode: PostListingMode /* "List" | "Card" | "SmallCard" */, val totp_2fa_enabled: Boolean, - val enable_keyboard_navigation: Boolean, - val enable_animated_images: Boolean, + val animated_images_enabled: Boolean, + /** Added in 1.0.0 */ + val private_messages_enabled: Boolean, val collapse_bot_comments: Boolean, + /** Added in 1.0.0 */ + val default_comment_sort_type: CommentSortType, + /** Added in 1.0.0 */ + val auto_mark_fetched_posts_as_read: Boolean, /** Added in 0.19.11 */ - val last_donation_notification: String, + val last_donation_notification_at: String, + /** Added in 1.0.0 */ + val hide_posts_with_media: Boolean? = null, + /** Added in 1.0.0 */ + val default_post_time_range_seconds: Long? = null, + val show_score: Boolean, + val show_upvotes: Boolean, + val show_downvotes: VoteShow /* "Show" | "ShowForOthers" | "Hide" */, + val show_upvote_percentage: Boolean, + /** Added in 1.0.0 */ + val show_person_votes: Boolean, + /** Added in 1.0.0 */ + val default_items_per_page: Long, + /** Added in 1.0.0 */ + val invited_by_local_user_id: LocalUserId? = null, + /** Added in 1.0.0 */ + val show_media: Boolean, ) : DatatypeRoot, Identity diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PasswordChangeAfterReset.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/LocalUserInvite.kt similarity index 53% rename from app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PasswordChangeAfterReset.kt rename to app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/LocalUserInvite.kt index e8f2fff3..4ae59677 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PasswordChangeAfterReset.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/LocalUserInvite.kt @@ -1,14 +1,17 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable -data class PasswordChangeAfterReset( +data class LocalUserInvite( + val id: InvitationId, val token: String, - val password: String, - val password_verify: String, + val local_user_id: LocalUserId, + val max_uses: Long? = null, + val uses_count: Long, + val expires_at: String? = null, + val published_at: String, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/LocalUserView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/LocalUserView.kt index 8dafb3ad..b52c6c72 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/LocalUserView.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/LocalUserView.kt @@ -1,20 +1,17 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import it.vercruysse.lemmyapi.Identity import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class LocalUserView( val local_user: LocalUser, - // Added in 0.19.4 - // TODO Possible add actual default instead? - val local_user_vote_display_mode: LocalUserVoteDisplayMode? = null, val person: Person, - val counts: PersonAggregates, + val banned: Boolean, + val ban_expires_at: String? = null, ) : DatatypeRoot, Identity { override val id: Long get() = local_user.id diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/LockComment.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/LockComment.kt new file mode 100644 index 00000000..5e2e6a7d --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/LockComment.kt @@ -0,0 +1,13 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +data class LockComment( + val comment_id: CommentId, + val locked: Boolean, + val reason: String, +) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/LockPost.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/LockPost.kt index 245ba63e..d7c1f34e 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/LockPost.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/LockPost.kt @@ -1,13 +1,13 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class LockPost( val post_id: PostId, val locked: Boolean, + val reason: String, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/Login.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/Login.kt index 236aa4c0..82174366 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/Login.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/Login.kt @@ -1,14 +1,14 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class Login( - val username_or_email: String, - val password: String, + val username_or_email: SensitiveString, + val password: SensitiveString, val totp_2fa_token: String? = null, + val stay_logged_in: Boolean? = null, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/LoginResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/LoginResponse.kt index c72d4de6..c306103e 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/LoginResponse.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/LoginResponse.kt @@ -1,14 +1,13 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class LoginResponse( - val jwt: String? = null, + val jwt: SensitiveString? = null, val registration_created: Boolean, val verify_email_sent: Boolean, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/LoginToken.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/LoginToken.kt index 3e940a76..7f4bce06 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/LoginToken.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/LoginToken.kt @@ -1,15 +1,14 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class LoginToken( val user_id: LocalUserId, - val published: String, + val published_at: String, val ip: String? = null, val user_agent: String? = null, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/MarkCommentReplyAsRead.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/MarkManyPostsAsRead.kt similarity index 75% rename from app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/MarkCommentReplyAsRead.kt rename to app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/MarkManyPostsAsRead.kt index f4503900..ccf2b935 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/MarkCommentReplyAsRead.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/MarkManyPostsAsRead.kt @@ -1,13 +1,12 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable -data class MarkCommentReplyAsRead( - val comment_reply_id: CommentReplyId, +data class MarkManyPostsAsRead( + val post_ids: List, val read: Boolean, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/MarkPersonMentionAsRead.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/MarkNotificationAsRead.kt similarity index 50% rename from app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/MarkPersonMentionAsRead.kt rename to app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/MarkNotificationAsRead.kt index 3189ab1b..a2bf530a 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/MarkPersonMentionAsRead.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/MarkNotificationAsRead.kt @@ -1,13 +1,15 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot +import it.vercruysse.lemmyapi.enums.NotificationType import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable -data class MarkPersonMentionAsRead( - val person_mention_id: PersonMentionId, +data class MarkNotificationAsRead( + val notification_id: NotificationId, val read: Boolean, + /** Doesn't exist but needed for compatability with before 1.0.0 */ + val _kind: NotificationType? = null, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/MarkPostAsRead.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/MarkPostAsRead.kt index b21fbcb8..30f8bcc0 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/MarkPostAsRead.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/MarkPostAsRead.kt @@ -1,13 +1,13 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.PostId import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class MarkPostAsRead( - val post_ids: List, + val post_id: PostId, val read: Boolean, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/MarkPrivateMessageAsRead.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/MarkPrivateMessageAsRead.kt deleted file mode 100644 index 960d39c2..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/MarkPrivateMessageAsRead.kt +++ /dev/null @@ -1,13 +0,0 @@ -package it.vercruysse.lemmyapi.datatypes - -import it.vercruysse.lemmyapi.DatatypeRoot -import kotlinx.serialization.Serializable - -import it.vercruysse.lemmyapi.CommonParcelize - -@CommonParcelize -@Serializable -data class MarkPrivateMessageAsRead( - val private_message_id: PrivateMessageId, - val read: Boolean, -) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModAdd.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModAdd.kt deleted file mode 100644 index 7fd726fc..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModAdd.kt +++ /dev/null @@ -1,16 +0,0 @@ -package it.vercruysse.lemmyapi.datatypes - -import it.vercruysse.lemmyapi.DatatypeRoot -import kotlinx.serialization.Serializable - -import it.vercruysse.lemmyapi.CommonParcelize - -@CommonParcelize -@Serializable -data class ModAdd( - val id: Long, - val mod_person_id: PersonId, - val other_person_id: PersonId, - val removed: Boolean, - val when_: String, -) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModAddCommunityView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModAddCommunityView.kt deleted file mode 100644 index 0e43b85e..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModAddCommunityView.kt +++ /dev/null @@ -1,15 +0,0 @@ -package it.vercruysse.lemmyapi.datatypes - -import it.vercruysse.lemmyapi.DatatypeRoot -import kotlinx.serialization.Serializable - -import it.vercruysse.lemmyapi.CommonParcelize - -@CommonParcelize -@Serializable -data class ModAddCommunityView( - val mod_add_community: ModAddCommunity, - val moderator: Person? = null, - val community: Community, - val modded_person: Person, -) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModAddView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModAddView.kt deleted file mode 100644 index c29cbe15..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModAddView.kt +++ /dev/null @@ -1,14 +0,0 @@ -package it.vercruysse.lemmyapi.datatypes - -import it.vercruysse.lemmyapi.DatatypeRoot -import kotlinx.serialization.Serializable - -import it.vercruysse.lemmyapi.CommonParcelize - -@CommonParcelize -@Serializable -data class ModAddView( - val mod_add: ModAdd, - val moderator: Person? = null, - val modded_person: Person, -) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModBan.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModBan.kt deleted file mode 100644 index 9611d835..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModBan.kt +++ /dev/null @@ -1,19 +0,0 @@ -package it.vercruysse.lemmyapi.datatypes - -import it.vercruysse.lemmyapi.DatatypeRoot -import it.vercruysse.lemmyapi.Identity -import kotlinx.serialization.Serializable - -import it.vercruysse.lemmyapi.CommonParcelize - -@CommonParcelize -@Serializable -data class ModBan( - override val id: Long, - val mod_person_id: PersonId, - val other_person_id: PersonId, - val reason: String? = null, - val banned: Boolean, - val expires: String? = null, - val when_: String, -) : DatatypeRoot, Identity diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModBanFromCommunity.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModBanFromCommunity.kt deleted file mode 100644 index fa7977ca..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModBanFromCommunity.kt +++ /dev/null @@ -1,20 +0,0 @@ -package it.vercruysse.lemmyapi.datatypes - -import it.vercruysse.lemmyapi.DatatypeRoot -import it.vercruysse.lemmyapi.Identity -import kotlinx.serialization.Serializable - -import it.vercruysse.lemmyapi.CommonParcelize - -@CommonParcelize -@Serializable -data class ModBanFromCommunity( - override val id: Long, - val mod_person_id: PersonId, - val other_person_id: PersonId, - val community_id: CommunityId, - val reason: String? = null, - val banned: Boolean, - val expires: String? = null, - val when_: String, -) : DatatypeRoot, Identity diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModBanFromCommunityView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModBanFromCommunityView.kt deleted file mode 100644 index 3b19f909..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModBanFromCommunityView.kt +++ /dev/null @@ -1,15 +0,0 @@ -package it.vercruysse.lemmyapi.datatypes - -import it.vercruysse.lemmyapi.DatatypeRoot -import kotlinx.serialization.Serializable - -import it.vercruysse.lemmyapi.CommonParcelize - -@CommonParcelize -@Serializable -data class ModBanFromCommunityView( - val mod_ban_from_community: ModBanFromCommunity, - val moderator: Person? = null, - val community: Community, - val banned_person: Person, -) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModBanView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModBanView.kt deleted file mode 100644 index d588bdd0..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModBanView.kt +++ /dev/null @@ -1,18 +0,0 @@ -package it.vercruysse.lemmyapi.datatypes - -import it.vercruysse.lemmyapi.DatatypeRoot -import it.vercruysse.lemmyapi.Identity -import kotlinx.serialization.Serializable - -import it.vercruysse.lemmyapi.CommonParcelize - -@CommonParcelize -@Serializable -data class ModBanView( - val mod_ban: ModBan, - val moderator: Person? = null, - val banned_person: Person, -) : DatatypeRoot, Identity { - override val id: Long - get() = mod_ban.id -} diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModEditPost.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModEditPost.kt new file mode 100644 index 00000000..bd66a9ba --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModEditPost.kt @@ -0,0 +1,13 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +data class ModEditPost( + val post_id: PostId, + val nsfw: Boolean? = null, + val tags: List? = null, +) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModFeaturePostView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModFeaturePostView.kt deleted file mode 100644 index ea8c10e6..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModFeaturePostView.kt +++ /dev/null @@ -1,15 +0,0 @@ -package it.vercruysse.lemmyapi.datatypes - -import it.vercruysse.lemmyapi.DatatypeRoot -import kotlinx.serialization.Serializable - -import it.vercruysse.lemmyapi.CommonParcelize - -@CommonParcelize -@Serializable -data class ModFeaturePostView( - val mod_feature_post: ModFeaturePost, - val moderator: Person? = null, - val post: Post, - val community: Community, -) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModHideCommunity.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModHideCommunity.kt deleted file mode 100644 index ba2b893b..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModHideCommunity.kt +++ /dev/null @@ -1,17 +0,0 @@ -package it.vercruysse.lemmyapi.datatypes - -import it.vercruysse.lemmyapi.DatatypeRoot -import kotlinx.serialization.Serializable - -import it.vercruysse.lemmyapi.CommonParcelize - -@CommonParcelize -@Serializable -data class ModHideCommunity( - val id: Long, - val community_id: CommunityId, - val mod_person_id: PersonId, - val when_: String, - val reason: String? = null, - val hidden: Boolean, -) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModHideCommunityView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModHideCommunityView.kt deleted file mode 100644 index f29f525d..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModHideCommunityView.kt +++ /dev/null @@ -1,14 +0,0 @@ -package it.vercruysse.lemmyapi.datatypes - -import it.vercruysse.lemmyapi.DatatypeRoot -import kotlinx.serialization.Serializable - -import it.vercruysse.lemmyapi.CommonParcelize - -@CommonParcelize -@Serializable -data class ModHideCommunityView( - val mod_hide_community: ModHideCommunity, - val admin: Person? = null, - val community: Community, -) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModLockPostView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModLockPostView.kt deleted file mode 100644 index e55783bc..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModLockPostView.kt +++ /dev/null @@ -1,15 +0,0 @@ -package it.vercruysse.lemmyapi.datatypes - -import it.vercruysse.lemmyapi.DatatypeRoot -import kotlinx.serialization.Serializable - -import it.vercruysse.lemmyapi.CommonParcelize - -@CommonParcelize -@Serializable -data class ModLockPostView( - val mod_lock_post: ModLockPost, - val moderator: Person? = null, - val post: Post, - val community: Community, -) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModRemoveComment.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModRemoveComment.kt deleted file mode 100644 index 8b266e35..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModRemoveComment.kt +++ /dev/null @@ -1,17 +0,0 @@ -package it.vercruysse.lemmyapi.datatypes - -import it.vercruysse.lemmyapi.DatatypeRoot -import kotlinx.serialization.Serializable - -import it.vercruysse.lemmyapi.CommonParcelize - -@CommonParcelize -@Serializable -data class ModRemoveComment( - val id: Long, - val mod_person_id: PersonId, - val comment_id: CommentId, - val reason: String? = null, - val removed: Boolean, - val when_: String, -) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModRemoveCommentView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModRemoveCommentView.kt deleted file mode 100644 index 22fc3e9b..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModRemoveCommentView.kt +++ /dev/null @@ -1,17 +0,0 @@ -package it.vercruysse.lemmyapi.datatypes - -import it.vercruysse.lemmyapi.DatatypeRoot -import kotlinx.serialization.Serializable - -import it.vercruysse.lemmyapi.CommonParcelize - -@CommonParcelize -@Serializable -data class ModRemoveCommentView( - val mod_remove_comment: ModRemoveComment, - val moderator: Person? = null, - val comment: Comment, - val commenter: Person, - val post: Post, - val community: Community, -) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModRemoveCommunity.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModRemoveCommunity.kt deleted file mode 100644 index 3b011dd8..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModRemoveCommunity.kt +++ /dev/null @@ -1,17 +0,0 @@ -package it.vercruysse.lemmyapi.datatypes - -import it.vercruysse.lemmyapi.DatatypeRoot -import kotlinx.serialization.Serializable - -import it.vercruysse.lemmyapi.CommonParcelize - -@CommonParcelize -@Serializable -data class ModRemoveCommunity( - val id: Long, - val mod_person_id: PersonId, - val community_id: CommunityId, - val reason: String? = null, - val removed: Boolean, - val when_: String, -) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModRemoveCommunityView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModRemoveCommunityView.kt deleted file mode 100644 index 4cb523e0..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModRemoveCommunityView.kt +++ /dev/null @@ -1,14 +0,0 @@ -package it.vercruysse.lemmyapi.datatypes - -import it.vercruysse.lemmyapi.DatatypeRoot -import kotlinx.serialization.Serializable - -import it.vercruysse.lemmyapi.CommonParcelize - -@CommonParcelize -@Serializable -data class ModRemoveCommunityView( - val mod_remove_community: ModRemoveCommunity, - val moderator: Person? = null, - val community: Community, -) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModRemovePost.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModRemovePost.kt deleted file mode 100644 index a9f47552..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModRemovePost.kt +++ /dev/null @@ -1,17 +0,0 @@ -package it.vercruysse.lemmyapi.datatypes - -import it.vercruysse.lemmyapi.DatatypeRoot -import kotlinx.serialization.Serializable - -import it.vercruysse.lemmyapi.CommonParcelize - -@CommonParcelize -@Serializable -data class ModRemovePost( - val id: Long, - val mod_person_id: PersonId, - val post_id: PostId, - val reason: String? = null, - val removed: Boolean, - val when_: String, -) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModRemovePostView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModRemovePostView.kt deleted file mode 100644 index 62affd32..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModRemovePostView.kt +++ /dev/null @@ -1,15 +0,0 @@ -package it.vercruysse.lemmyapi.datatypes - -import it.vercruysse.lemmyapi.DatatypeRoot -import kotlinx.serialization.Serializable - -import it.vercruysse.lemmyapi.CommonParcelize - -@CommonParcelize -@Serializable -data class ModRemovePostView( - val mod_remove_post: ModRemovePost, - val moderator: Person? = null, - val post: Post, - val community: Community, -) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModTransferCommunityView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModTransferCommunityView.kt deleted file mode 100644 index edbbe5de..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModTransferCommunityView.kt +++ /dev/null @@ -1,15 +0,0 @@ -package it.vercruysse.lemmyapi.datatypes - -import it.vercruysse.lemmyapi.DatatypeRoot -import kotlinx.serialization.Serializable - -import it.vercruysse.lemmyapi.CommonParcelize - -@CommonParcelize -@Serializable -data class ModTransferCommunityView( - val mod_transfer_community: ModTransferCommunity, - val moderator: Person? = null, - val community: Community, - val modded_person: Person, -) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/Modlog.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/Modlog.kt new file mode 100644 index 00000000..bd5779f8 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/Modlog.kt @@ -0,0 +1,20 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import it.vercruysse.lemmyapi.enums.ModlogKind +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +data class Modlog( + val id: ModlogId, + val kind: ModlogKind /* "admin_add" | "admin_ban" | "admin_allow_instance" | "admin_block_instance" | "admin_purge_comment" | "admin_purge_community" | "admin_purge_person" | "admin_purge_post" | "mod_add_to_community" | "mod_ban_from_community" | "admin_feature_post_site" | "mod_feature_post_community" | "mod_change_community_visibility" | "mod_lock_post" | "mod_remove_comment" | "admin_remove_community" | "mod_remove_post" | "mod_transfer_community" | "mod_lock_comment" | "mod_warn_comment" | "mod_warn_post" */, + val is_revert: Boolean, + val reason: String? = null, + val expires_at: String? = null, + val published_at: String, + val bulk_action_parent_id: ModlogId? = null, + /** Added in 1.0.0 */ + val child_count: Long? = null, +) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModlogId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModlogId.kt new file mode 100644 index 00000000..d32a905e --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModlogId.kt @@ -0,0 +1,3 @@ +package it.vercruysse.lemmyapi.datatypes + +typealias ModlogId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModlogListParams.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModlogListParams.kt deleted file mode 100644 index 978a82aa..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModlogListParams.kt +++ /dev/null @@ -1,19 +0,0 @@ -package it.vercruysse.lemmyapi.datatypes - -import it.vercruysse.lemmyapi.DatatypeRoot -import kotlinx.serialization.Serializable - -import it.vercruysse.lemmyapi.CommonParcelize - -@CommonParcelize -@Serializable -data class ModlogListParams( - val community_id: CommunityId? = null, - val mod_person_id: PersonId? = null, - val other_person_id: PersonId? = null, - val post_id: PostId? = null, - val comment_id: CommentId? = null, - val page: Long? = null, - val limit: Long? = null, - val hide_modlog_names: Boolean, -) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModlogView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModlogView.kt new file mode 100644 index 00000000..135b0c0b --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ModlogView.kt @@ -0,0 +1,19 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +@SerialName("mod_action") +data class ModlogView( + val modlog: Modlog, + val moderator: Person? = null, + val target_person: Person? = null, + val target_instance: Instance? = null, + val target_community: Community? = null, + val target_post: Post? = null, + val target_comment: Comment? = null, +) : DatatypeRoot, NotificationData diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/MultiCommunity.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/MultiCommunity.kt new file mode 100644 index 00000000..9e38c085 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/MultiCommunity.kt @@ -0,0 +1,26 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +data class MultiCommunity( + val id: MultiCommunityId, + val creator_id: PersonId, + val instance_id: InstanceId, + val name: String, + val title: String? = null, + val summary: String? = null, + val local: Boolean, + val deleted: Boolean, + val ap_id: String, + val last_refreshed_at: String, + val published_at: String, + val updated_at: String? = null, + val subscribers: Long, + val subscribers_local: Long, + val communities: Long, + val sidebar: String? = null, +) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/MultiCommunityEntry.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/MultiCommunityEntry.kt new file mode 100644 index 00000000..f9267fbd --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/MultiCommunityEntry.kt @@ -0,0 +1,12 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +data class MultiCommunityEntry( + val multi_community_id: MultiCommunityId, + val community_id: CommunityId, +) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PersonAggregates.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/MultiCommunityFollow.kt similarity index 51% rename from app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PersonAggregates.kt rename to app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/MultiCommunityFollow.kt index 1892e443..98b8c020 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PersonAggregates.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/MultiCommunityFollow.kt @@ -1,14 +1,14 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot +import it.vercruysse.lemmyapi.enums.CommunityFollowerState import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable -data class PersonAggregates( +data class MultiCommunityFollow( + val multi_community_id: MultiCommunityId, val person_id: PersonId, - val post_count: Long, - val comment_count: Long, + val follow_state: CommunityFollowerState /* "Accepted" | "Pending" | "ApprovalRequired" */, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/MultiCommunityId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/MultiCommunityId.kt new file mode 100644 index 00000000..0f0e2217 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/MultiCommunityId.kt @@ -0,0 +1,3 @@ +package it.vercruysse.lemmyapi.datatypes + +typealias MultiCommunityId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/MultiCommunityResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/MultiCommunityResponse.kt new file mode 100644 index 00000000..3579ce16 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/MultiCommunityResponse.kt @@ -0,0 +1,11 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +data class MultiCommunityResponse( + val multi_community_view: MultiCommunityView, +) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/MultiCommunityView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/MultiCommunityView.kt new file mode 100644 index 00000000..8e698af2 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/MultiCommunityView.kt @@ -0,0 +1,16 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import it.vercruysse.lemmyapi.enums.CommunityFollowerState +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +@SerialName("multi_community") +data class MultiCommunityView( + val multi: MultiCommunity, + val follow_state: CommunityFollowerState? /* "accepted" | "pending" | "approval_required" | "denied" */ = null, + val owner: Person, +) : DatatypeRoot, ResolveObjectView diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/MyUserInfo.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/MyUserInfo.kt index bb2c96ab..a947c368 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/MyUserInfo.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/MyUserInfo.kt @@ -1,18 +1,22 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class MyUserInfo( val local_user_view: LocalUserView, val follows: List, val moderates: List, - val community_blocks: List, - val instance_blocks: List, - val person_blocks: List, + /** Added in Lemmy 1.0.0 */ + val multi_community_follows: List, + val community_blocks: List, + val instance_communities_blocks: List, + val instance_persons_blocks: List, + val person_blocks: List, + /** Added in Lemmy 1.0.0 */ + val keyword_blocks: List = emptyList(), val discussion_languages: List, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetRepliesResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/NotePerson.kt similarity index 75% rename from app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetRepliesResponse.kt rename to app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/NotePerson.kt index cf6ab149..79573e2d 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetRepliesResponse.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/NotePerson.kt @@ -1,12 +1,12 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable -data class GetRepliesResponse( - val replies: List, +data class NotePerson( + val person_id: PersonId, + val note: String, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/Notification.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/Notification.kt new file mode 100644 index 00000000..78cb50af --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/Notification.kt @@ -0,0 +1,21 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import it.vercruysse.lemmyapi.enums.NotificationType +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +data class Notification( + val id: NotificationId, + val recipient_id: PersonId, + val comment_id: CommentId? = null, + val read: Boolean, + val published_at: String, + val kind: NotificationType /* "Mention" | "Reply" | "Subscribed" | "PrivateMessage" */, + val post_id: PostId? = null, + val private_message_id: PrivateMessageId? = null, + val modlog_id: ModlogId? = null, + val creator_id: PersonId, +) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/NotificationData.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/NotificationData.kt new file mode 100644 index 00000000..f59efcc7 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/NotificationData.kt @@ -0,0 +1,11 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import kotlinx.serialization.ExperimentalSerializationApi +import kotlinx.serialization.json.JsonClassDiscriminator + +@CommonParcelize +@OptIn(ExperimentalSerializationApi::class) +@JsonClassDiscriminator("type_") +sealed interface NotificationData : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/NotificationId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/NotificationId.kt new file mode 100644 index 00000000..f9720c49 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/NotificationId.kt @@ -0,0 +1,3 @@ +package it.vercruysse.lemmyapi.datatypes + +typealias NotificationId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/NotificationView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/NotificationView.kt new file mode 100644 index 00000000..a81d22e2 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/NotificationView.kt @@ -0,0 +1,12 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +data class NotificationView( + val notification: Notification, + val data: NotificationData, +) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/LocalUserVoteDisplayMode.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/OAuthAccount.kt similarity index 60% rename from app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/LocalUserVoteDisplayMode.kt rename to app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/OAuthAccount.kt index d4010d6d..51f04f89 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/LocalUserVoteDisplayMode.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/OAuthAccount.kt @@ -1,16 +1,15 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable -data class LocalUserVoteDisplayMode( +data class OAuthAccount( val local_user_id: LocalUserId, - val score: Boolean, - val upvotes: Boolean, - val downvotes: Boolean, - val upvote_percentage: Boolean, + val oauth_provider_id: OAuthProviderId, + val oauth_user_id: String, + val published_at: String, + val updated_at: String? = null, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/OAuthProviderId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/OAuthProviderId.kt new file mode 100644 index 00000000..02df8c76 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/OAuthProviderId.kt @@ -0,0 +1,3 @@ +package it.vercruysse.lemmyapi.datatypes + +typealias OAuthProviderId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetPostsResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PagedResponse.kt similarity index 70% rename from app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetPostsResponse.kt rename to app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PagedResponse.kt index 09cc5ec7..0b120e3a 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/GetPostsResponse.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PagedResponse.kt @@ -1,13 +1,13 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable -data class GetPostsResponse( - val posts: List, +data class PagedResponse( + val items: List, val next_page: PaginationCursor? = null, + val prev_page: PaginationCursor? = null, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommunityBlockView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PendingFollow.kt similarity index 55% rename from app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommunityBlockView.kt rename to app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PendingFollow.kt index 787e4073..0cd7171d 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/CommunityBlockView.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PendingFollow.kt @@ -1,13 +1,15 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot +import it.vercruysse.lemmyapi.enums.CommunityFollowerState import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable -data class CommunityBlockView( +data class PendingFollow( val person: Person, val community: Community, + val is_new_instance: Boolean, + val follow_state: CommunityFollowerState? /* "Accepted" | "Pending" | "ApprovalRequired" */ = null, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PendingFollowerView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PendingFollowerView.kt new file mode 100644 index 00000000..aff2b3ee --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PendingFollowerView.kt @@ -0,0 +1,15 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import it.vercruysse.lemmyapi.enums.CommunityFollowerState +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +data class PendingFollowerView( + val person: Person, + val community: Community, + val is_new_instance: Boolean, + val follow_state: CommunityFollowerState? /* "accepted" | "pending" | "approval_required" | "denied" */ = null, +) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/Person.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/Person.kt index 5b62b1f7..682c1734 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/Person.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/Person.kt @@ -1,11 +1,10 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import it.vercruysse.lemmyapi.Identity import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class Person( @@ -13,16 +12,18 @@ data class Person( val name: String, val display_name: String? = null, val avatar: String? = null, - val banned: Boolean, - val published: String, - val updated: String? = null, - val actor_id: String, + val published_at: String, + val updated_at: String? = null, + val ap_id: String, val bio: String? = null, val local: Boolean, val banner: String? = null, val deleted: Boolean, val matrix_user_id: String? = null, val bot_account: Boolean, - val ban_expires: String? = null, val instance_id: InstanceId, + val post_count: Long, + val comment_count: Long, + /** Added in 1.0.0 */ + val last_refreshed_at: String, ) : DatatypeRoot, Identity diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PersonActions.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PersonActions.kt new file mode 100644 index 00000000..8fc30191 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PersonActions.kt @@ -0,0 +1,16 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +data class PersonActions( + val blocked_at: String? = null, + val noted_at: String? = null, + val note: String? = null, + val voted_at: String? = null, + val upvotes: Long? = null, + val downvotes: Long? = null, +) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PersonBlockView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PersonBlockView.kt deleted file mode 100644 index 82f0005d..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PersonBlockView.kt +++ /dev/null @@ -1,13 +0,0 @@ -package it.vercruysse.lemmyapi.datatypes - -import it.vercruysse.lemmyapi.DatatypeRoot -import kotlinx.serialization.Serializable - -import it.vercruysse.lemmyapi.CommonParcelize - -@CommonParcelize -@Serializable -data class PersonBlockView( - val person: Person, - val target: Person, -) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PersonMention.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PersonMention.kt deleted file mode 100644 index 1cc6f0e8..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PersonMention.kt +++ /dev/null @@ -1,17 +0,0 @@ -package it.vercruysse.lemmyapi.datatypes - -import it.vercruysse.lemmyapi.DatatypeRoot -import it.vercruysse.lemmyapi.Identity -import kotlinx.serialization.Serializable - -import it.vercruysse.lemmyapi.CommonParcelize - -@CommonParcelize -@Serializable -data class PersonMention( - override val id: PersonMentionId, - val recipient_id: PersonId, - val comment_id: CommentId, - val read: Boolean, - val published: String, -) : DatatypeRoot, Identity diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PersonMentionResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PersonMentionResponse.kt deleted file mode 100644 index 6a52030e..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PersonMentionResponse.kt +++ /dev/null @@ -1,12 +0,0 @@ -package it.vercruysse.lemmyapi.datatypes - -import it.vercruysse.lemmyapi.DatatypeRoot -import kotlinx.serialization.Serializable - -import it.vercruysse.lemmyapi.CommonParcelize - -@CommonParcelize -@Serializable -data class PersonMentionResponse( - val person_mention_view: PersonMentionView, -) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PersonMentionView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PersonMentionView.kt deleted file mode 100644 index a053c706..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PersonMentionView.kt +++ /dev/null @@ -1,27 +0,0 @@ -package it.vercruysse.lemmyapi.datatypes - -import it.vercruysse.lemmyapi.DatatypeRoot -import it.vercruysse.lemmyapi.dto.SubscribedType -import kotlinx.serialization.Serializable - -import it.vercruysse.lemmyapi.CommonParcelize - -@CommonParcelize -@Serializable -data class PersonMentionView( - val person_mention: PersonMention, - val comment: Comment, - val creator: Person, - val post: Post, - val community: Community, - val recipient: Person, - val counts: CommentAggregates, - val creator_banned_from_community: Boolean, - val banned_from_community: Boolean, - val creator_is_moderator: Boolean, - val creator_is_admin: Boolean, - val subscribed: SubscribedType /* "Subscribed" | "NotSubscribed" | "Pending" */, - val saved: Boolean, - val creator_blocked: Boolean, - val my_vote: Int = 0, -) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PersonResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PersonResponse.kt new file mode 100644 index 00000000..b37b9b60 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PersonResponse.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +data class PersonResponse(val person_view: PersonView) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PersonView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PersonView.kt index b119de88..c0fc6a9d 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PersonView.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PersonView.kt @@ -1,14 +1,17 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot +import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable +@SerialName("person") data class PersonView( val person: Person, - val counts: PersonAggregates, val is_admin: Boolean, -) : DatatypeRoot + val person_actions: PersonActions? = null, + val banned: Boolean, + val ban_expires_at: String? = null, +) : DatatypeRoot, ResolveObjectView diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PluginMetadata.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PluginMetadata.kt new file mode 100644 index 00000000..0cdd12e1 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PluginMetadata.kt @@ -0,0 +1,13 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +data class PluginMetadata( + val name: String, + val url: String? = null, + val description: String? = null, +) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/Post.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/Post.kt index b881ec7d..8d3f7e34 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/Post.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/Post.kt @@ -1,13 +1,14 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import it.vercruysse.lemmyapi.Identity +import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable +@SerialName("post") data class Post( override val id: PostId, val name: String, @@ -17,8 +18,8 @@ data class Post( val community_id: CommunityId, val removed: Boolean, val locked: Boolean, - val published: String, - val updated: String? = null, + val published_at: String, + val updated_at: String? = null, val deleted: Boolean, val nsfw: Boolean, val embed_title: String? = null, @@ -32,4 +33,15 @@ data class Post( val featured_local: Boolean, val url_content_type: String? = null, val alt_text: String? = null, -) : DatatypeRoot, Identity + val scheduled_publish_time_at: String? = null, + val newest_comment_time_at: String? = null, + val comments: Long, + val score: Long, + val upvotes: Long, + val downvotes: Long, + val report_count: Long, + val unresolved_report_count: Long, + val federation_pending: Boolean, + val embed_video_width: Long? = null, + val embed_video_height: Long? = null, +) : DatatypeRoot, Identity, PostOrCommentOrPrivateMessage diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PostActions.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PostActions.kt new file mode 100644 index 00000000..d101a31f --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PostActions.kt @@ -0,0 +1,19 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import it.vercruysse.lemmyapi.enums.PostNotificationsMode +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +data class PostActions( + val read_at: String? = null, + val read_comments_at: String? = null, + val read_comments_amount: Long? = null, + val saved_at: String? = null, + val voted_at: String? = null, + val like_score: Int = 0, + val hidden_at: String? = null, + val notifications: PostNotificationsMode? /* "AllComments" | "RepliesAndMentions" | "Mute" */ = null, +) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PostAggregates.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PostAggregates.kt deleted file mode 100644 index 046e87ca..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PostAggregates.kt +++ /dev/null @@ -1,18 +0,0 @@ -package it.vercruysse.lemmyapi.datatypes - -import it.vercruysse.lemmyapi.DatatypeRoot -import kotlinx.serialization.Serializable - -import it.vercruysse.lemmyapi.CommonParcelize - -@CommonParcelize -@Serializable -data class PostAggregates( - val post_id: PostId, - val comments: Long, - val score: Long, - val upvotes: Long, - val downvotes: Long, - val published: String, - val newest_comment_time: String, -) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PostCommentCombinedView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PostCommentCombinedView.kt new file mode 100644 index 00000000..fba27363 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PostCommentCombinedView.kt @@ -0,0 +1,11 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import kotlinx.serialization.ExperimentalSerializationApi +import kotlinx.serialization.json.JsonClassDiscriminator + +@CommonParcelize +@OptIn(ExperimentalSerializationApi::class) +@JsonClassDiscriminator("type_") +sealed interface PostCommentCombinedView : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PostOrCommentOrPrivateMessage.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PostOrCommentOrPrivateMessage.kt new file mode 100644 index 00000000..4b3e85f1 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PostOrCommentOrPrivateMessage.kt @@ -0,0 +1,11 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import kotlinx.serialization.ExperimentalSerializationApi +import kotlinx.serialization.json.JsonClassDiscriminator + +@CommonParcelize +@OptIn(ExperimentalSerializationApi::class) +@JsonClassDiscriminator("type_") +sealed interface PostOrCommentOrPrivateMessage : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PostReport.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PostReport.kt index 6fed9763..f11765f0 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PostReport.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PostReport.kt @@ -1,11 +1,10 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import it.vercruysse.lemmyapi.Identity import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class PostReport( @@ -18,6 +17,8 @@ data class PostReport( val reason: String, val resolved: Boolean, val resolver_id: PersonId? = null, - val published: String, - val updated: String? = null, + val published_at: String, + val updated_at: String? = null, + /** Added in Lemmy 1.0.0 */ + val violates_instance_rules: Boolean, ) : DatatypeRoot, Identity diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PostReportResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PostReportResponse.kt index cff051ab..1abb0c68 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PostReportResponse.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PostReportResponse.kt @@ -1,10 +1,9 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class PostReportResponse( diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PostReportView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PostReportView.kt index 740d3658..ec84e2c3 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PostReportView.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PostReportView.kt @@ -1,29 +1,29 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot -import it.vercruysse.lemmyapi.dto.SubscribedType +import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable +@SerialName("post") data class PostReportView( val post_report: PostReport, val post: Post, val community: Community, val creator: Person, val post_creator: Person, - val creator_banned_from_community: Boolean, - val creator_is_moderator: Boolean, - val creator_is_admin: Boolean, - val subscribed: SubscribedType /* "Subscribed" | "NotSubscribed" | "Pending" */, - val saved: Boolean, - val read: Boolean, - val hidden: Boolean, - val creator_blocked: Boolean, - val my_vote: Int = 0, - val unread_comments: Long, - val counts: PostAggregates, + val community_actions: CommunityActions? = null, + val post_actions: PostActions? = null, + val person_actions: PersonActions? = null, val resolver: Person? = null, -) : DatatypeRoot + val creator_is_admin: Boolean, + val creator_is_moderator: Boolean, + val creator_banned: Boolean, + val creator_ban_expires_at: String? = null, + val creator_banned_from_community: Boolean, + val creator_community_ban_expires_at: String? = null, + /** Added in 1.0.0 */ + val tags: CommunityTagsView = emptyList(), +) : DatatypeRoot, ReportCombinedView diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PostResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PostResponse.kt index 8bf070c3..9dae712b 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PostResponse.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PostResponse.kt @@ -1,10 +1,9 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class PostResponse( diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PostView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PostView.kt index 0bd7c312..ef90ab03 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PostView.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PostView.kt @@ -1,33 +1,33 @@ package it.vercruysse.lemmyapi.datatypes -import it.vercruysse.lemmyapi.DatatypeRoot -import it.vercruysse.lemmyapi.dto.SubscribedType -import kotlinx.serialization.Serializable - import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot import it.vercruysse.lemmyapi.Identity +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable @CommonParcelize @Serializable +@SerialName("post") data class PostView( val post: Post, val creator: Person, val community: Community, - val creator_banned_from_community: Boolean, - val banned_from_community: Boolean, - val creator_is_moderator: Boolean, - val creator_is_admin: Boolean, - val counts: PostAggregates, - val subscribed: SubscribedType /* "Subscribed" | "NotSubscribed" | "Pending" */, - val saved: Boolean, - val read: Boolean, - val hidden: Boolean, - val creator_blocked: Boolean, - val my_vote: Int = 0, - val unread_comments: Long, /** Added in 0.19.6 */ val image_details: ImageDetails? = null, -) : DatatypeRoot, Identity { + val community_actions: CommunityActions? = null, + val person_actions: PersonActions? = null, + val post_actions: PostActions? = null, + val tags: CommunityTagsView, + /** Added in 1.0.0 */ + val can_mod: Boolean, + val creator_banned: Boolean, + val creator_ban_expires_at: String? = null, + val creator_is_admin: Boolean, + val creator_is_moderator: Boolean, + val creator_banned_from_community: Boolean, + val creator_community_ban_expires_at: String? = null, +) : DatatypeRoot, Identity, NotificationData, ResolveObjectView, PostCommentCombinedView { override val id: Long get() = post.id } diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PrivateMessage.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PrivateMessage.kt index 7e2bbaf4..1cc471de 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PrivateMessage.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PrivateMessage.kt @@ -1,22 +1,28 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import it.vercruysse.lemmyapi.Identity +import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable +@SerialName("private_message") data class PrivateMessage( override val id: PrivateMessageId, val creator_id: PersonId, val recipient_id: PersonId, val content: String, val deleted: Boolean, - val read: Boolean, - val published: String, - val updated: String? = null, + /** Removed in 1.0.0 */ + val read: Boolean = false, + val published_at: String, + val updated_at: String? = null, val ap_id: String, val local: Boolean, -) : DatatypeRoot, Identity + /** Added in Lemmy 1.0.0 */ + val removed: Boolean, + /** Added in Lemmy 1.0.0 */ + val deleted_by_recipient: Boolean, +) : DatatypeRoot, Identity, PostOrCommentOrPrivateMessage diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PrivateMessageReport.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PrivateMessageReport.kt index eb6d8b28..9d97e7fe 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PrivateMessageReport.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PrivateMessageReport.kt @@ -1,11 +1,10 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import it.vercruysse.lemmyapi.Identity import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class PrivateMessageReport( @@ -16,6 +15,6 @@ data class PrivateMessageReport( val reason: String, val resolved: Boolean, val resolver_id: PersonId? = null, - val published: String, - val updated: String? = null, + val published_at: String, + val updated_at: String? = null, ) : DatatypeRoot, Identity diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PrivateMessageReportResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PrivateMessageReportResponse.kt index 1a24da94..aea39836 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PrivateMessageReportResponse.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PrivateMessageReportResponse.kt @@ -1,10 +1,9 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class PrivateMessageReportResponse( diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PrivateMessageReportView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PrivateMessageReportView.kt index 2c3b2bfc..d63dd5fa 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PrivateMessageReportView.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PrivateMessageReportView.kt @@ -1,20 +1,24 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import it.vercruysse.lemmyapi.Identity +import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable +@SerialName("private_message") data class PrivateMessageReportView( val private_message_report: PrivateMessageReport, val private_message: PrivateMessage, val private_message_creator: Person, val creator: Person, val resolver: Person? = null, -) : DatatypeRoot, Identity { + val creator_is_admin: Boolean, + val creator_banned: Boolean, + val creator_ban_expires_at: String? = null, +) : DatatypeRoot, Identity, ReportCombinedView { override val id: Long get() = private_message_report.id } diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PrivateMessageResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PrivateMessageResponse.kt index 7327ed0b..5069f1e3 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PrivateMessageResponse.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PrivateMessageResponse.kt @@ -1,10 +1,9 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class PrivateMessageResponse( diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PrivateMessageView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PrivateMessageView.kt index 00d61ab9..317f6a4b 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PrivateMessageView.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PrivateMessageView.kt @@ -1,18 +1,19 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import it.vercruysse.lemmyapi.Identity +import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable +@SerialName("private_message") data class PrivateMessageView( val private_message: PrivateMessage, val creator: Person, val recipient: Person, -) : DatatypeRoot, Identity { +) : DatatypeRoot, Identity, NotificationData { override val id: Long get() = private_message.id } diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PrivateMessagesResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PrivateMessagesResponse.kt deleted file mode 100644 index 1642c7ca..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PrivateMessagesResponse.kt +++ /dev/null @@ -1,12 +0,0 @@ -package it.vercruysse.lemmyapi.datatypes - -import it.vercruysse.lemmyapi.DatatypeRoot -import kotlinx.serialization.Serializable - -import it.vercruysse.lemmyapi.CommonParcelize - -@CommonParcelize -@Serializable -data class PrivateMessagesResponse( - val private_messages: List, -) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PublicOAuthProvider.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PublicOAuthProvider.kt new file mode 100644 index 00000000..3f2e40a0 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PublicOAuthProvider.kt @@ -0,0 +1,16 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +data class PublicOAuthProvider( + val id: OAuthProviderId, + val display_name: String, + val authorization_endpoint: String, + val client_id: String, + val scopes: String, + val use_pkce: Boolean, +) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PurgeComment.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PurgeComment.kt index f232b938..15ebcc6d 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PurgeComment.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PurgeComment.kt @@ -1,13 +1,12 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class PurgeComment( val comment_id: CommentId, - val reason: String? = null, + val reason: String, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PurgeCommunity.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PurgeCommunity.kt index e056ce78..6da21365 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PurgeCommunity.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PurgeCommunity.kt @@ -1,13 +1,12 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class PurgeCommunity( val community_id: CommunityId, - val reason: String? = null, + val reason: String, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PurgePerson.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PurgePerson.kt index 70819179..412e5af2 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PurgePerson.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PurgePerson.kt @@ -1,13 +1,12 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class PurgePerson( val person_id: PersonId, - val reason: String? = null, + val reason: String, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PurgePost.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PurgePost.kt index 6e7d14fc..def55242 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PurgePost.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/PurgePost.kt @@ -1,13 +1,12 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class PurgePost( val post_id: PostId, - val reason: String? = null, + val reason: String, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/Register.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/Register.kt index bb9c6770..bc077533 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/Register.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/Register.kt @@ -1,21 +1,23 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class Register( val username: String, - val password: String, - val password_verify: String, -// TODO val show_nsfw: Boolean? = null, - val show_nsfw: Boolean, - val email: String? = null, + val password: SensitiveString, + val password_verify: SensitiveString, + val show_nsfw: Boolean? = null, + val email: SensitiveString? = null, val captcha_uuid: String? = null, val captcha_answer: String? = null, val honeypot: String? = null, val answer: String? = null, + /** Added in 1.0.0 */ + val stay_logged_in: Boolean? = null, + /** Added in 1.0.0 */ + val token: String? = null, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/RegistrationApplication.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/RegistrationApplication.kt index 7b44b9e9..f0b0fb03 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/RegistrationApplication.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/RegistrationApplication.kt @@ -1,10 +1,9 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class RegistrationApplication( @@ -13,5 +12,6 @@ data class RegistrationApplication( val answer: String, val admin_id: PersonId? = null, val deny_reason: String? = null, - val published: String, + val published_at: String, + val updated_at: String? = null, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/RegistrationApplicationResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/RegistrationApplicationResponse.kt index ab2aadf7..c8c83ba5 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/RegistrationApplicationResponse.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/RegistrationApplicationResponse.kt @@ -1,10 +1,9 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class RegistrationApplicationResponse( diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/RegistrationApplicationView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/RegistrationApplicationView.kt index f44109b5..0afc4a7b 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/RegistrationApplicationView.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/RegistrationApplicationView.kt @@ -1,11 +1,10 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import it.vercruysse.lemmyapi.Identity import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class RegistrationApplicationView( diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/RemoveComment.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/RemoveComment.kt index c30b21d1..12e737d3 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/RemoveComment.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/RemoveComment.kt @@ -1,14 +1,15 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class RemoveComment( val comment_id: CommentId, val removed: Boolean, - val reason: String? = null, + val reason: String, + /** Added in Lemmy 1.0.0 */ + val remove_children: Boolean? = null, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/RemoveCommunity.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/RemoveCommunity.kt index 38692e2a..245c0256 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/RemoveCommunity.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/RemoveCommunity.kt @@ -1,14 +1,13 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class RemoveCommunity( val community_id: CommunityId, val removed: Boolean, - val reason: String? = null, + val reason: String, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/RemovePost.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/RemovePost.kt index 72d35a25..75080a4a 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/RemovePost.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/RemovePost.kt @@ -1,14 +1,15 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class RemovePost( val post_id: PostId, val removed: Boolean, - val reason: String? = null, + val reason: String, + /** Added in Lemmy 1.0.0 */ + val remove_children: Boolean? = null, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ReportCombinedView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ReportCombinedView.kt new file mode 100644 index 00000000..f66724db --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ReportCombinedView.kt @@ -0,0 +1,11 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import kotlinx.serialization.ExperimentalSerializationApi +import kotlinx.serialization.json.JsonClassDiscriminator + +@CommonParcelize +@OptIn(ExperimentalSerializationApi::class) +@JsonClassDiscriminator("type_") +sealed interface ReportCombinedView : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ResendVerificationEmail.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ResendVerificationEmail.kt new file mode 100644 index 00000000..7c99a049 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ResendVerificationEmail.kt @@ -0,0 +1,11 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +data class ResendVerificationEmail( + val email: SensitiveString, +) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ResetPassword.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ResetPassword.kt new file mode 100644 index 00000000..f7898514 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ResetPassword.kt @@ -0,0 +1,11 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +data class ResetPassword( + val email: SensitiveString, +) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ResolveCommentReport.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ResolveCommentReport.kt index 56a3dbd1..c02d1008 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ResolveCommentReport.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ResolveCommentReport.kt @@ -1,10 +1,9 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class ResolveCommentReport( diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ResolveCommunityReport.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ResolveCommunityReport.kt new file mode 100644 index 00000000..f22d15cc --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ResolveCommunityReport.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +data class ResolveCommunityReport( + val report_id: CommunityReportId, + val resolved: Boolean, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ResolveObject.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ResolveObject.kt index 96ed8465..7b886a48 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ResolveObject.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ResolveObject.kt @@ -1,10 +1,9 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class ResolveObject( diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ResolveObjectResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ResolveObjectResponse.kt deleted file mode 100644 index b2a98351..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ResolveObjectResponse.kt +++ /dev/null @@ -1,15 +0,0 @@ -package it.vercruysse.lemmyapi.datatypes - -import it.vercruysse.lemmyapi.DatatypeRoot -import kotlinx.serialization.Serializable - -import it.vercruysse.lemmyapi.CommonParcelize - -@CommonParcelize -@Serializable -data class ResolveObjectResponse( - val comment: CommentView? = null, - val post: PostView? = null, - val community: CommunityView? = null, - val person: PersonView? = null, -) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ResolveObjectView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ResolveObjectView.kt new file mode 100644 index 00000000..82d85ebb --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ResolveObjectView.kt @@ -0,0 +1,11 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import kotlinx.serialization.ExperimentalSerializationApi +import kotlinx.serialization.json.JsonClassDiscriminator + +@CommonParcelize +@OptIn(ExperimentalSerializationApi::class) +@JsonClassDiscriminator("type_") +sealed interface ResolveObjectView : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ResolvePostReport.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ResolvePostReport.kt index 719859e1..75e4ae34 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ResolvePostReport.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ResolvePostReport.kt @@ -1,10 +1,9 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class ResolvePostReport( diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ResolvePrivateMessageReport.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ResolvePrivateMessageReport.kt index 48f9d684..2b0b2908 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ResolvePrivateMessageReport.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/ResolvePrivateMessageReport.kt @@ -1,10 +1,9 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class ResolvePrivateMessageReport( diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/RevokeInvitation.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/RevokeInvitation.kt new file mode 100644 index 00000000..3e67ec55 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/RevokeInvitation.kt @@ -0,0 +1,11 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +data class RevokeInvitation( + val token: String, +) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/SaveComment.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/SaveComment.kt index 2bffb41d..d3b9763a 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/SaveComment.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/SaveComment.kt @@ -1,10 +1,9 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class SaveComment( diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/SavePost.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/SavePost.kt index d9eee637..05e3552c 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/SavePost.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/SavePost.kt @@ -1,10 +1,9 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class SavePost( diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/SaveUserSettings.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/SaveUserSettings.kt index 4f6dbcb8..faee9e4f 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/SaveUserSettings.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/SaveUserSettings.kt @@ -1,43 +1,56 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot -import it.vercruysse.lemmyapi.dto.PostListingMode -import it.vercruysse.lemmyapi.dto.ListingType -import it.vercruysse.lemmyapi.dto.SortType +import it.vercruysse.lemmyapi.enums.CommentSortType +import it.vercruysse.lemmyapi.enums.ListingType +import it.vercruysse.lemmyapi.enums.PostListingMode +import it.vercruysse.lemmyapi.enums.SortType +import it.vercruysse.lemmyapi.enums.VoteShow import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class SaveUserSettings( val show_nsfw: Boolean? = null, val blur_nsfw: Boolean? = null, - val auto_expand: Boolean? = null, val theme: String? = null, - val default_sort_type: SortType? /* "Active" | "Hot" | "New" | "Old" | "TopDay" | "TopWeek" | "TopMonth" | "TopYear" | "TopAll" | "MostComments" | "NewComments" | "TopHour" | "TopSixHour" | "TopTwelveHour" | "TopThreeMonths" | "TopSixMonths" | "TopNineMonths" | "Controversial" | "Scaled" */ = null, - val default_listing_type: ListingType? /* "All" | "Local" | "Subscribed" | "ModeratorView" */ = null, + val default_listing_type: ListingType? /* "All" | "Local" | "Subscribed" | "ModeratorView" | "Suggested" */ = null, + val post_listing_mode: PostListingMode? /* "List" | "Card" | "SmallCard" */ = null, + val default_post_sort_type: SortType? /* "Active" | "Hot" | "New" | "Old" | "Top" | "MostComments" | "NewComments" | "Controversial" | "Scaled" */ = null, + val default_post_time_range_seconds: Long? = null, + /** Added in 1.0.0 */ + val default_items_per_page: Long? = null, + /** Added in 1.0.0 */ + val default_comment_sort_type: CommentSortType? /* "Hot" | "Top" | "New" | "Old" | "Controversial" */ = null, val interface_language: String? = null, - val avatar: String? = null, - val banner: String? = null, val display_name: String? = null, val email: String? = null, val bio: String? = null, val matrix_user_id: String? = null, val show_avatars: Boolean? = null, + /** Added in 1.0.0 */ + val show_media: Boolean? = null, val send_notifications_to_email: Boolean? = null, val bot_account: Boolean? = null, val show_bot_accounts: Boolean? = null, val show_read_posts: Boolean? = null, val discussion_languages: List? = null, + /** Added in 1.0.0 */ + val blocking_keywords: List? = null, val open_links_in_new_tab: Boolean? = null, val infinite_scroll_enabled: Boolean? = null, - val post_listing_mode: PostListingMode? /* "List" | "Card" | "SmallCard" */ = null, - val enable_keyboard_navigation: Boolean? = null, - val enable_animated_images: Boolean? = null, + val animated_images_enabled: Boolean? = null, + val private_messages_enabled: Boolean? = null, val collapse_bot_comments: Boolean? = null, - val show_scores: Boolean? = null, + val show_score: Boolean? = null, val show_upvotes: Boolean? = null, - val show_downvotes: Boolean? = null, + val show_downvotes: VoteShow? /* "show" | "show_for_others" | "hide" */ = null, val show_upvote_percentage: Boolean? = null, + /** Added in 1.0.0 */ + val auto_mark_fetched_posts_as_read: Boolean? = null, + /** Added in 1.0.0 */ + val hide_posts_with_media: Boolean? = null, + /** Added in 1.0.0 */ + val show_person_votes: Boolean? = null, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/Search.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/Search.kt index e325c1ae..b824944e 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/Search.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/Search.kt @@ -1,25 +1,32 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot -import it.vercruysse.lemmyapi.dto.ListingType -import it.vercruysse.lemmyapi.dto.SortType -import it.vercruysse.lemmyapi.dto.SearchType +import it.vercruysse.lemmyapi.enums.ListingType +import it.vercruysse.lemmyapi.enums.SearchType import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class Search( - val q: String, + val search_term: String, val community_id: CommunityId? = null, val community_name: String? = null, val creator_id: PersonId? = null, + /** Added in 1.0.0 */ + val creator_username: String? = null, val type_: SearchType? /* "All" | "Comments" | "Posts" | "Communities" | "Users" | "Url" */ = null, - val sort: SortType? /* "Active" | "Hot" | "New" | "Old" | "TopDay" | "TopWeek" | "TopMonth" | "TopYear" | "TopAll" | "MostComments" | "NewComments" | "TopHour" | "TopSixHour" | "TopTwelveHour" | "TopThreeMonths" | "TopSixMonths" | "TopNineMonths" | "Controversial" | "Scaled" */ = null, + val time_range_seconds: Long? = null, val listing_type: ListingType? /* "All" | "Local" | "Subscribed" | "ModeratorView" */ = null, + /** Removed in 1.0.0 */ val page: Long? = null, - val limit: Long? = null, /** Added in 0.19.6 */ - val post_title_only: Boolean? = null, + val title_only: Boolean? = null, + /** Added in 1.0.0 */ + val post_url_only: Boolean? = null, + /** Added in 1.0.0 */ + val show_nsfw: Boolean? = null, + /** Added in 1.0.0 */ + val page_cursor: PaginationCursor? = null, + val limit: Long? = null, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/SearchResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/SearchResponse.kt index 54d40e23..c280e238 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/SearchResponse.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/SearchResponse.kt @@ -1,17 +1,20 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot -import it.vercruysse.lemmyapi.dto.SearchType import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class SearchResponse( - val type_: SearchType /* "All" | "Comments" | "Posts" | "Communities" | "Users" | "Url" */, + val resolve: ResolveObjectView? = null, val comments: List, val posts: List, val communities: List, - val users: List, + val persons: List, + val multi_communities: List, + /** Added in 1.0.0 */ + val next_page: PaginationCursor? = null, + /** Added in 1.0.0 */ + val prev_page: PaginationCursor? = null, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/SensitiveString.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/SensitiveString.kt new file mode 100644 index 00000000..f8df7018 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/SensitiveString.kt @@ -0,0 +1,3 @@ +package it.vercruysse.lemmyapi.datatypes + +typealias SensitiveString = String diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/Site.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/Site.kt index 854c2ef8..1a91e9e2 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/Site.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/Site.kt @@ -1,23 +1,22 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import it.vercruysse.lemmyapi.Identity import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class Site( override val id: SiteId, val name: String, val sidebar: String? = null, - val published: String, - val updated: String? = null, + val published_at: String, + val updated_at: String? = null, val icon: String? = null, val banner: String? = null, - val description: String? = null, - val actor_id: String, + val summary: String? = null, + val ap_id: String, val last_refreshed_at: String, val inbox_url: String, val instance_id: InstanceId, diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/SiteAggregates.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/SiteAggregates.kt deleted file mode 100644 index d41147ec..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/SiteAggregates.kt +++ /dev/null @@ -1,20 +0,0 @@ -package it.vercruysse.lemmyapi.datatypes - -import it.vercruysse.lemmyapi.DatatypeRoot -import kotlinx.serialization.Serializable - -import it.vercruysse.lemmyapi.CommonParcelize - -@CommonParcelize -@Serializable -data class SiteAggregates( - val site_id: SiteId, - val users: Long, - val posts: Long, - val comments: Long, - val communities: Long, - val users_active_day: Long, - val users_active_week: Long, - val users_active_month: Long, - val users_active_half_year: Long, -) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/SiteResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/SiteResponse.kt index 68c5ceb0..de6c0df2 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/SiteResponse.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/SiteResponse.kt @@ -1,13 +1,11 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class SiteResponse( val site_view: SiteView, - val taglines: List, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/SiteView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/SiteView.kt index d06e4532..d7e3692a 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/SiteView.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/SiteView.kt @@ -1,18 +1,18 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import it.vercruysse.lemmyapi.Identity import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class SiteView( val site: Site, val local_site: LocalSite, val local_site_rate_limit: LocalSiteRateLimit, - val counts: SiteAggregates, + /** Added in 1.0.0 */ + val instance: Instance?, ) : DatatypeRoot, Identity { override val id: Long get() = site.id diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/Tagline.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/Tagline.kt index f80a81fa..a2a30d5a 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/Tagline.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/Tagline.kt @@ -1,16 +1,14 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class Tagline( - val id: Long, - val local_site_id: LocalSiteId, + val id: TaglineId, val content: String, - val published: String, - val updated: String? = null, + val published_at: String, + val updated_at: String? = null, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/TaglineId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/TaglineId.kt new file mode 100644 index 00000000..3b337205 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/TaglineId.kt @@ -0,0 +1,3 @@ +package it.vercruysse.lemmyapi.datatypes + +typealias TaglineId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/TaglineResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/TaglineResponse.kt new file mode 100644 index 00000000..8ca4de8d --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/TaglineResponse.kt @@ -0,0 +1,11 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +data class TaglineResponse( + val tagline: Tagline, +) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/TransferCommunity.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/TransferCommunity.kt index d9241311..41d8c171 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/TransferCommunity.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/TransferCommunity.kt @@ -1,10 +1,9 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class TransferCommunity( diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/UnreadCountsResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/UnreadCountsResponse.kt new file mode 100644 index 00000000..13482f27 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/UnreadCountsResponse.kt @@ -0,0 +1,14 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +data class UnreadCountsResponse( + val notification_count: Long, + val report_count: Long? = null, + val pending_follow_count: Long? = null, + val registration_application_count: Long? = null, +) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/UploadImageResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/UploadImageResponse.kt new file mode 100644 index 00000000..562c9935 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/UploadImageResponse.kt @@ -0,0 +1,15 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +data class UploadImageResponse( + val image_url: String, + val filename: String, + /* Added for pre V1 compatability, deletion requires a combination of filename and secret. + Pass this to delete endpoint */ + val delete_filename: String = filename, +) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/UserBlockInstanceCommunitiesParams.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/UserBlockInstanceCommunitiesParams.kt new file mode 100644 index 00000000..e1694ee6 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/UserBlockInstanceCommunitiesParams.kt @@ -0,0 +1,12 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +data class UserBlockInstanceCommunitiesParams( + val instance_id: InstanceId, + val block: Boolean, +) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/BlockInstance.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/UserBlockInstancePersonsParams.kt similarity index 86% rename from app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/BlockInstance.kt rename to app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/UserBlockInstancePersonsParams.kt index 41bbbcb0..98a6742b 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/BlockInstance.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/UserBlockInstancePersonsParams.kt @@ -1,13 +1,12 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable -data class BlockInstance( +data class UserBlockInstancePersonsParams( val instance_id: InstanceId, val block: Boolean, ) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/UserSettingsBackup.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/UserSettingsBackup.kt new file mode 100644 index 00000000..706ebd4c --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/UserSettingsBackup.kt @@ -0,0 +1,26 @@ +package it.vercruysse.lemmyapi.datatypes + +import it.vercruysse.lemmyapi.CommonParcelize +import it.vercruysse.lemmyapi.DatatypeRoot +import kotlinx.serialization.Serializable + +@CommonParcelize +@Serializable +data class UserSettingsBackup( + val display_name: String? = null, + val bio: String? = null, + val avatar: String? = null, + val banner: String? = null, + val matrix_id: String? = null, + val bot_account: Boolean? = null, + val settings: LocalUser? = null, + val followed_communities: List, + val saved_posts: List, + val saved_comments: List, + val blocked_communities: List, + val blocked_users: List, + val blocked_instances_communities: List, + val blocked_instances_persons: List, + val blocking_keywords: List, + val discussion_languages: List, +) : DatatypeRoot diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/VerifyEmail.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/VerifyEmail.kt index 1dd36e0b..afb0da44 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/VerifyEmail.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/VerifyEmail.kt @@ -1,10 +1,9 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class VerifyEmail( diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/VoteView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/VoteView.kt index c1409d50..7beb0371 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/VoteView.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/datatypes/VoteView.kt @@ -1,17 +1,17 @@ package it.vercruysse.lemmyapi.datatypes +import it.vercruysse.lemmyapi.CommonParcelize import it.vercruysse.lemmyapi.DatatypeRoot import it.vercruysse.lemmyapi.Identity import kotlinx.serialization.Serializable -import it.vercruysse.lemmyapi.CommonParcelize - @CommonParcelize @Serializable data class VoteView( val creator: Person, + val creator_banned: Boolean, val creator_banned_from_community: Boolean, - val score: Long, + val score: Int, ) : DatatypeRoot, Identity { override val id: Long get() = creator.id diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/dto/CustomDataTypes.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/dto/CustomDataTypes.kt index 4d2f6327..b4a917b3 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/dto/CustomDataTypes.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/dto/CustomDataTypes.kt @@ -5,12 +5,8 @@ package it.vercruysse.lemmyapi.dto import io.github.z4kn4fein.semver.Version import io.github.z4kn4fein.semver.toVersion import io.github.z4kn4fein.semver.withoutSuffixes -import it.vercruysse.lemmyapi.MINIMUM_API_VERSION -import it.vercruysse.lemmyapi.V0_18_0 -import it.vercruysse.lemmyapi.V0_19_0 -import it.vercruysse.lemmyapi.V0_19_4 +import it.vercruysse.lemmyapi.enums.VersionTracker import it.vercruysse.lemmyapi.utils.isBetweenVersions -import kotlinx.serialization.Serializable /* * Contains the datatypes that can't be autogenerated, bc Dukat doesn't support unions. @@ -22,133 +18,6 @@ import kotlinx.serialization.Serializable * */ -// GROUP 1 - -@Serializable -enum class SubscribedType { - Subscribed, - NotSubscribed, - Pending, -} - -@Serializable -enum class PostFeatureType { - Local, - Community, -} - -// GROUP 2 - -@Serializable -enum class ListingType(override val minimumVersion: Version = MINIMUM_API_VERSION, override val maximumVersion: Version? = null) : - VersionTracker { - All, - Local, - Subscribed, - ModeratorView(V0_19_0), -} - -@Serializable -enum class RegistrationMode(override val minimumVersion: Version = MINIMUM_API_VERSION, override val maximumVersion: Version? = null) : - VersionTracker { - Closed, - RequireApplication, - Open, -} - -@Serializable -enum class SearchType(override val minimumVersion: Version = MINIMUM_API_VERSION, override val maximumVersion: Version? = null) : - VersionTracker { - All, - Comments, - Posts, - Communities, - Users, - Url, -} - -@Serializable -enum class ModlogActionType(override val minimumVersion: Version = MINIMUM_API_VERSION, override val maximumVersion: Version? = null) : - VersionTracker { - All, - ModRemovePost, - ModLockPost, - ModFeaturePost, - ModRemoveComment, - ModRemoveCommunity, - ModBanFromCommunity, - ModAddCommunity, - ModTransferCommunity, - ModAdd, - ModBan, - ModHideCommunity, - AdminPurgePerson, - AdminPurgeCommunity, - AdminPurgePost, - AdminPurgeComment, -} - -@Serializable -enum class SortType(override val minimumVersion: Version = MINIMUM_API_VERSION, override val maximumVersion: Version? = null) : - VersionTracker { - Active, - Hot, - New, - Old, - TopDay, - TopWeek, - TopMonth, - TopYear, - TopAll, - MostComments, - NewComments, - TopHour(V0_18_0), - TopSixHour(V0_18_0), - TopTwelveHour(V0_18_0), - TopThreeMonths("0.18.1".toVersion()), - TopSixMonths("0.18.1".toVersion()), - TopNineMonths("0.18.1".toVersion()), - Controversial(V0_19_0), - Scaled(V0_19_0), -} - -@Serializable -enum class CommentSortType(override val minimumVersion: Version = MINIMUM_API_VERSION, override val maximumVersion: Version? = null) : - VersionTracker { - Hot, - Top, - New, - Old, - Controversial(V0_19_0), -} - -@Serializable -enum class PostListingMode(override val minimumVersion: Version = V0_19_0, override val maximumVersion: Version? = null) : VersionTracker { - List, - Card, - SmallCard, -} - -@Serializable -enum class CommunityVisibility(override val minimumVersion: Version = V0_19_4, override val maximumVersion: Version? = null) : - VersionTracker { - Public, - LocalOnly, -} - -/** - * Tracks the version of the supported entries from this enum - * Use this in conjunction with [getSupportedEntries] - * - * @property minimumVersion The version this entry was added - * @property maximumVersion The version this entry was removed, if null, it is still supported - */ -@Serializable -sealed interface VersionTracker { - val minimumVersion: Version - val maximumVersion: Version? -} - /** * Returns the supported entries for the given version. * It is possible that this list is empty, such case means this type is not used at all in a newer version diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/CommentSortType.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/CommentSortType.kt new file mode 100644 index 00000000..fcb83597 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/CommentSortType.kt @@ -0,0 +1,26 @@ +package it.vercruysse.lemmyapi.enums + +import io.github.z4kn4fein.semver.Version +import it.vercruysse.lemmyapi.MINIMUM_API_VERSION +import it.vercruysse.lemmyapi.V0_19_0 +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +enum class CommentSortType(override val minimumVersion: Version = MINIMUM_API_VERSION, override val maximumVersion: Version? = null) : + VersionTracker { + @SerialName("hot") + Hot, + + @SerialName("top") + Top, + + @SerialName("new") + New, + + @SerialName("old") + Old, + + @SerialName("controversial") + Controversial(V0_19_0), +} diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/CommunityFollowerState.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/CommunityFollowerState.kt new file mode 100644 index 00000000..f2305686 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/CommunityFollowerState.kt @@ -0,0 +1,30 @@ +package it.vercruysse.lemmyapi.enums + +import it.vercruysse.lemmyapi.v0.enums.SubscribedType +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +enum class CommunityFollowerState { + @SerialName("accepted") + Accepted, + + @SerialName("pending") + Pending, + + @SerialName("approval_required") + ApprovalRequired, + + @SerialName("denied") + Denied, + ; + + companion object { + internal fun from(d: SubscribedType): CommunityFollowerState? = + when (d) { + SubscribedType.Subscribed -> Accepted + SubscribedType.NotSubscribed -> null + SubscribedType.Pending -> Pending + } + } +} diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/CommunityNotificationsMode.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/CommunityNotificationsMode.kt new file mode 100644 index 00000000..84a9ad2e --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/CommunityNotificationsMode.kt @@ -0,0 +1,21 @@ +package it.vercruysse.lemmyapi.enums + +import io.github.z4kn4fein.semver.Version +import it.vercruysse.lemmyapi.V1_0_0 +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +enum class CommunityNotificationsMode(override val minimumVersion: Version = V1_0_0, override val maximumVersion: Version? = null) : VersionTracker { + @SerialName("all_posts_and_comments") + AllPostsAndComments, + + @SerialName("all_posts") + AllPosts, + + @SerialName("replies_and_mentions") + RepliesAndMentions, + + @SerialName("mute") + Mute, +} diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/CommunityVisibility.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/CommunityVisibility.kt new file mode 100644 index 00000000..58ae32fc --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/CommunityVisibility.kt @@ -0,0 +1,29 @@ +package it.vercruysse.lemmyapi.enums + +import io.github.z4kn4fein.semver.Version +import it.vercruysse.lemmyapi.V0_19_4 +import it.vercruysse.lemmyapi.V1_0_0 +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +enum class CommunityVisibility(override val minimumVersion: Version = V0_19_4, override val maximumVersion: Version? = null) : + VersionTracker { + @SerialName("public") + Public, + + @SerialName("local_only") + LocalOnly(V0_19_4, V1_0_0), + + @SerialName("unlisted") + Unlisted(V1_0_0), + + @SerialName("local_only_public") + LocalOnlyPublic(V1_0_0), + + @SerialName("local_only_private") + LocalOnlyPrivate(V1_0_0), + + @SerialName("private") + Private(V1_0_0), +} diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/FederationMode.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/FederationMode.kt new file mode 100644 index 00000000..8bdaa39d --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/FederationMode.kt @@ -0,0 +1,18 @@ +package it.vercruysse.lemmyapi.enums + +import io.github.z4kn4fein.semver.Version +import it.vercruysse.lemmyapi.V1_0_0 +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +enum class FederationMode(override val minimumVersion: Version = V1_0_0, override val maximumVersion: Version? = null) : VersionTracker { + @SerialName("all") + All, + + @SerialName("local") + Local, + + @SerialName("disable") + Disable, +} diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/GetFederatedInstancesKind.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/GetFederatedInstancesKind.kt new file mode 100644 index 00000000..bf678326 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/GetFederatedInstancesKind.kt @@ -0,0 +1,21 @@ +package it.vercruysse.lemmyapi.enums + +import io.github.z4kn4fein.semver.Version +import it.vercruysse.lemmyapi.V1_0_0 +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +enum class GetFederatedInstancesKind(override val minimumVersion: Version = V1_0_0, override val maximumVersion: Version? = null) : VersionTracker { + @SerialName("all") + All, + + @SerialName("linked") + Linked, + + @SerialName("allowed") + Allowed, + + @SerialName("blocked") + Blocked, +} diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/ImageMode.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/ImageMode.kt new file mode 100644 index 00000000..ebc25470 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/ImageMode.kt @@ -0,0 +1,18 @@ +package it.vercruysse.lemmyapi.enums + +import io.github.z4kn4fein.semver.Version +import it.vercruysse.lemmyapi.V1_0_0 +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +enum class ImageMode(override val minimumVersion: Version = V1_0_0, override val maximumVersion: Version? = null) : VersionTracker { + @SerialName("none") + None, + + @SerialName("store_link_previews") + StoreLinkPreviews, + + @SerialName("proxy_all_images") + ProxyAllImages, +} diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/LikeType.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/LikeType.kt new file mode 100644 index 00000000..909974ef --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/LikeType.kt @@ -0,0 +1,18 @@ +package it.vercruysse.lemmyapi.enums + +import io.github.z4kn4fein.semver.Version +import it.vercruysse.lemmyapi.V1_0_0 +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +enum class LikeType(override val minimumVersion: Version = V1_0_0, override val maximumVersion: Version? = null) : VersionTracker { + @SerialName("all") + All, + + @SerialName("liked_only") + LikedOnly, + + @SerialName("disliked_only") + DislikedOnly, +} diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/ListingType.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/ListingType.kt new file mode 100644 index 00000000..dee1671d --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/ListingType.kt @@ -0,0 +1,27 @@ +package it.vercruysse.lemmyapi.enums + +import io.github.z4kn4fein.semver.Version +import it.vercruysse.lemmyapi.MINIMUM_API_VERSION +import it.vercruysse.lemmyapi.V0_19_0 +import it.vercruysse.lemmyapi.V1_0_0 +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +enum class ListingType(override val minimumVersion: Version = MINIMUM_API_VERSION, override val maximumVersion: Version? = null) : + VersionTracker { + @SerialName("all") + All, + + @SerialName("local") + Local, + + @SerialName("subscribed") + Subscribed, + + @SerialName("moderator_view") + ModeratorView(V0_19_0), + + @SerialName("suggested") + Suggested(V1_0_0), +} diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/LocalUserSortType.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/LocalUserSortType.kt new file mode 100644 index 00000000..20284c44 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/LocalUserSortType.kt @@ -0,0 +1,15 @@ +package it.vercruysse.lemmyapi.enums + +import io.github.z4kn4fein.semver.Version +import it.vercruysse.lemmyapi.V1_0_0 +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +enum class LocalUserSortType(override val minimumVersion: Version = V1_0_0, override val maximumVersion: Version? = null) : VersionTracker { + @SerialName("new") + New, + + @SerialName("old") + Old, +} diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/ModlogActionType.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/ModlogActionType.kt new file mode 100644 index 00000000..0a1c1545 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/ModlogActionType.kt @@ -0,0 +1,77 @@ +package it.vercruysse.lemmyapi.enums + +import io.github.z4kn4fein.semver.Version +import it.vercruysse.lemmyapi.MINIMUM_API_VERSION +import it.vercruysse.lemmyapi.V1_0_0 +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +enum class ModlogActionType(override val minimumVersion: Version = MINIMUM_API_VERSION, override val maximumVersion: Version? = null) : + VersionTracker { + @SerialName("all") + All, + + @SerialName("mod_remove_post") + ModRemovePost, + + @SerialName("mod_lock_post") + ModLockPost, + + @SerialName("mod_feature_post") + ModFeaturePost, + + @SerialName("mod_remove_comment") + ModRemoveComment, + + @SerialName("mod_lock_comment") + ModLockComment(V1_0_0), + + @SerialName("admin_remove_community") + AdminRemoveCommunity(MINIMUM_API_VERSION), + + @SerialName("mod_ban_from_community") + ModBanFromCommunity, + + @SerialName("mod_add_to_community") + ModAddToCommunity(MINIMUM_API_VERSION), + + @SerialName("mod_transfer_community") + ModTransferCommunity, + + @SerialName("admin_add") + AdminAdd(MINIMUM_API_VERSION), + + @SerialName("admin_ban") + AdminBan(MINIMUM_API_VERSION), + + @SerialName("mod_change_community_visibility") + ModChangeCommunityVisibility(MINIMUM_API_VERSION), + + @SerialName("admin_purge_person") + AdminPurgePerson, + + @SerialName("admin_purge_community") + AdminPurgeCommunity, + + @SerialName("admin_purge_post") + AdminPurgePost, + + @SerialName("admin_purge_comment") + AdminPurgeComment, + + @SerialName("admin_block_instance") + AdminBlockInstance(V1_0_0), + + @SerialName("admin_allow_instance") + AdminAllowInstance(V1_0_0), + + @SerialName("mod_warn_comment") + ModWarnComment(V1_0_0), + + @SerialName("mod_warn_post") + ModWarnPost(V1_0_0), + + @SerialName("admin_feature_post_site") + AdminFeaturePostSite(V1_0_0), +} diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/ModlogKind.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/ModlogKind.kt new file mode 100644 index 00000000..f9e90f12 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/ModlogKind.kt @@ -0,0 +1,75 @@ +package it.vercruysse.lemmyapi.enums + +import io.github.z4kn4fein.semver.Version +import it.vercruysse.lemmyapi.V1_0_0 +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +enum class ModlogKind(override val minimumVersion: Version = V1_0_0, override val maximumVersion: Version? = null) : VersionTracker { + @SerialName("all") + All, + + @SerialName("admin_add") + AdminAdd, + + @SerialName("admin_ban") + AdminBan, + + @SerialName("admin_allow_instance") + AdminAllowInstance, + + @SerialName("admin_block_instance") + AdminBlockInstance, + + @SerialName("admin_purge_comment") + AdminPurgeComment, + + @SerialName("admin_purge_community") + AdminPurgeCommunity, + + @SerialName("admin_purge_person") + AdminPurgePerson, + + @SerialName("admin_purge_post") + AdminPurgePost, + + @SerialName("mod_add_to_community") + ModAddToCommunity, + + @SerialName("mod_ban_from_community") + ModBanFromCommunity, + + @SerialName("admin_feature_post_site") + AdminFeaturePostSite, + + @SerialName("mod_feature_post_community") + ModFeaturePostCommunity, + + @SerialName("mod_change_community_visibility") + ModChangeCommunityVisibility, + + @SerialName("mod_lock_post") + ModLockPost, + + @SerialName("mod_remove_comment") + ModRemoveComment, + + @SerialName("admin_remove_community") + AdminRemoveCommunity, + + @SerialName("mod_remove_post") + ModRemovePost, + + @SerialName("mod_transfer_community") + ModTransferCommunity, + + @SerialName("mod_lock_comment") + ModLockComment, + + @SerialName("mod_warn_comment") + ModWarnComment, + + @SerialName("mod_warn_post") + ModWarnPost, +} diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/MultiCommunityListingType.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/MultiCommunityListingType.kt new file mode 100644 index 00000000..24aa9bc3 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/MultiCommunityListingType.kt @@ -0,0 +1,18 @@ +package it.vercruysse.lemmyapi.enums + +import io.github.z4kn4fein.semver.Version +import it.vercruysse.lemmyapi.V1_0_0 +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +enum class MultiCommunityListingType(override val minimumVersion: Version = V1_0_0, override val maximumVersion: Version? = null) : VersionTracker { + @SerialName("all") + All, + + @SerialName("local") + Local, + + @SerialName("subscribed") + Subscribed, +} diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/MultiCommunitySortType.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/MultiCommunitySortType.kt new file mode 100644 index 00000000..a1338d2c --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/MultiCommunitySortType.kt @@ -0,0 +1,30 @@ +package it.vercruysse.lemmyapi.enums + +import io.github.z4kn4fein.semver.Version +import it.vercruysse.lemmyapi.V1_0_0 +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +enum class MultiCommunitySortType(override val minimumVersion: Version = V1_0_0, override val maximumVersion: Version? = null) : VersionTracker { + @SerialName("new") + New, + + @SerialName("old") + Old, + + @SerialName("name_asc") + NameAsc, + + @SerialName("name_desc") + NameDesc, + + @SerialName("communities") + Communities, + + @SerialName("subscribers") + Subscribers, + + @SerialName("subscribers_local") + SubscribersLocal, +} diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/NotificationDataType.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/NotificationDataType.kt new file mode 100644 index 00000000..ff7a7e4e --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/NotificationDataType.kt @@ -0,0 +1,27 @@ +package it.vercruysse.lemmyapi.enums + +import io.github.z4kn4fein.semver.Version +import it.vercruysse.lemmyapi.V1_0_0 +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +enum class NotificationDataType(override val minimumVersion: Version = V1_0_0, override val maximumVersion: Version? = null) : VersionTracker { + @SerialName("all") + All, + + @SerialName("reply") + Reply, + + @SerialName("mention") + Mention, + + @SerialName("private_message") + PrivateMessage, + + @SerialName("subscribed") + Subscribed, + + @SerialName("mod_action") + ModAction, +} diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/NotificationType.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/NotificationType.kt new file mode 100644 index 00000000..d7b087d5 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/NotificationType.kt @@ -0,0 +1,25 @@ +package it.vercruysse.lemmyapi.enums + +import io.github.z4kn4fein.semver.Version +import it.vercruysse.lemmyapi.MINIMUM_API_VERSION +import it.vercruysse.lemmyapi.V1_0_0 +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +enum class NotificationType(override val minimumVersion: Version = MINIMUM_API_VERSION, override val maximumVersion: Version? = null) : VersionTracker { + @SerialName("mention") + Mention, + + @SerialName("reply") + Reply, + + @SerialName("private_message") + PrivateMessage, + + @SerialName("subscribed") + Subscribed(V1_0_0), + + @SerialName("mod_action") + ModAction(V1_0_0), +} diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/PersonContentType.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/PersonContentType.kt new file mode 100644 index 00000000..f0f97600 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/PersonContentType.kt @@ -0,0 +1,18 @@ +package it.vercruysse.lemmyapi.enums + +import io.github.z4kn4fein.semver.Version +import it.vercruysse.lemmyapi.V1_0_0 +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +enum class PersonContentType(override val minimumVersion: Version = V1_0_0, override val maximumVersion: Version? = null) : VersionTracker { + @SerialName("all") + All, + + @SerialName("comments") + Comments, + + @SerialName("posts") + Posts, +} diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/PersonSortType.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/PersonSortType.kt new file mode 100644 index 00000000..5162a777 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/PersonSortType.kt @@ -0,0 +1,21 @@ +package it.vercruysse.lemmyapi.enums + +import io.github.z4kn4fein.semver.Version +import it.vercruysse.lemmyapi.V1_0_0 +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +enum class PersonSortType(override val minimumVersion: Version = V1_0_0, override val maximumVersion: Version? = null) : VersionTracker { + @SerialName("new") + New, + + @SerialName("old") + Old, + + @SerialName("post_score") + PostScore, + + @SerialName("comment_score") + CommentScore, +} diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/PostFeatureType.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/PostFeatureType.kt new file mode 100644 index 00000000..7654ba89 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/PostFeatureType.kt @@ -0,0 +1,13 @@ +package it.vercruysse.lemmyapi.enums + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +enum class PostFeatureType { + @SerialName("local") + Local, + + @SerialName("community") + Community, +} diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/PostListingMode.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/PostListingMode.kt new file mode 100644 index 00000000..0f9230e2 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/PostListingMode.kt @@ -0,0 +1,18 @@ +package it.vercruysse.lemmyapi.enums + +import io.github.z4kn4fein.semver.Version +import it.vercruysse.lemmyapi.V0_19_0 +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +enum class PostListingMode(override val minimumVersion: Version = V0_19_0, override val maximumVersion: Version? = null) : VersionTracker { + @SerialName("list") + List, + + @SerialName("card") + Card, + + @SerialName("small_card") + SmallCard, +} diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/PostNotificationsMode.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/PostNotificationsMode.kt new file mode 100644 index 00000000..c9046a6b --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/PostNotificationsMode.kt @@ -0,0 +1,18 @@ +package it.vercruysse.lemmyapi.enums + +import io.github.z4kn4fein.semver.Version +import it.vercruysse.lemmyapi.V1_0_0 +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +enum class PostNotificationsMode(override val minimumVersion: Version = V1_0_0, override val maximumVersion: Version? = null) : VersionTracker { + @SerialName("all_comments") + AllComments, + + @SerialName("replies_and_mentions") + RepliesAndMentions, + + @SerialName("mute") + Mute, +} diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/RegistrationMode.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/RegistrationMode.kt new file mode 100644 index 00000000..cb8faa5a --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/RegistrationMode.kt @@ -0,0 +1,23 @@ +package it.vercruysse.lemmyapi.enums + +import io.github.z4kn4fein.semver.Version +import it.vercruysse.lemmyapi.MINIMUM_API_VERSION +import it.vercruysse.lemmyapi.V1_0_0 +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +enum class RegistrationMode(override val minimumVersion: Version = MINIMUM_API_VERSION, override val maximumVersion: Version? = null) : + VersionTracker { + @SerialName("closed") + Closed, + + @SerialName("require_application") + RequireApplication, + + @SerialName("require_invitation") + RequireInvitation(V1_0_0), + + @SerialName("open") + Open, +} diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/ReportSortType.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/ReportSortType.kt new file mode 100644 index 00000000..7f4354bc --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/ReportSortType.kt @@ -0,0 +1,18 @@ +package it.vercruysse.lemmyapi.enums + +import io.github.z4kn4fein.semver.Version +import it.vercruysse.lemmyapi.V1_0_0 +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +enum class ReportSortType(override val minimumVersion: Version = V1_0_0, override val maximumVersion: Version? = null) : VersionTracker { + @SerialName("default") + Default, + + @SerialName("new") + New, + + @SerialName("old") + Old, +} diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/ReportType.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/ReportType.kt new file mode 100644 index 00000000..397567e7 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/ReportType.kt @@ -0,0 +1,25 @@ +package it.vercruysse.lemmyapi.enums + +import io.github.z4kn4fein.semver.Version +import it.vercruysse.lemmyapi.V1_0_0 +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +enum class ReportType(override val minimumVersion: Version = V1_0_0, override val maximumVersion: Version? = null) : + VersionTracker { + @SerialName("all") + All, + + @SerialName("posts") + Posts, + + @SerialName("comments") + Comments, + + @SerialName("private_messages") + PrivateMessages, + + @SerialName("communities") + Communities, +} diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/SearchType.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/SearchType.kt new file mode 100644 index 00000000..d154c977 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/SearchType.kt @@ -0,0 +1,28 @@ +package it.vercruysse.lemmyapi.enums + +import io.github.z4kn4fein.semver.Version +import it.vercruysse.lemmyapi.MINIMUM_API_VERSION +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +enum class SearchType(override val minimumVersion: Version = MINIMUM_API_VERSION, override val maximumVersion: Version? = null) : + VersionTracker { + @SerialName("all") + All, + + @SerialName("comments") + Comments, + + @SerialName("posts") + Posts, + + @SerialName("communities") + Communities, + + @SerialName("users") + Users, + + @SerialName("url") + Url, +} diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/SortType.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/SortType.kt new file mode 100644 index 00000000..dabb826e --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/SortType.kt @@ -0,0 +1,70 @@ +package it.vercruysse.lemmyapi.enums + +import io.github.z4kn4fein.semver.Version +import io.github.z4kn4fein.semver.toVersion +import it.vercruysse.lemmyapi.MINIMUM_API_VERSION +import it.vercruysse.lemmyapi.V0_18_0 +import it.vercruysse.lemmyapi.V0_19_0 +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +enum class SortType(override val minimumVersion: Version = MINIMUM_API_VERSION, override val maximumVersion: Version? = null) : + VersionTracker { + @SerialName("active") + Active, + + @SerialName("hot") + Hot, + + @SerialName("new") + New, + + @SerialName("old") + Old, + + @SerialName("top_day") + TopDay, + + @SerialName("top_week") + TopWeek, + + @SerialName("top_month") + TopMonth, + + @SerialName("top_year") + TopYear, + + @SerialName("top_all") + TopAll, + + @SerialName("most_comments") + MostComments, + + @SerialName("new_comments") + NewComments, + + @SerialName("top_hour") + TopHour(V0_18_0), + + @SerialName("top_six_hour") + TopSixHour(V0_18_0), + + @SerialName("top_twelve_hour") + TopTwelveHour(V0_18_0), + + @SerialName("top_three_months") + TopThreeMonths("0.18.1".toVersion()), + + @SerialName("top_six_months") + TopSixMonths("0.18.1".toVersion()), + + @SerialName("top_nine_months") + TopNineMonths("0.18.1".toVersion()), + + @SerialName("controversial") + Controversial(V0_19_0), + + @SerialName("scaled") + Scaled(V0_19_0), +} diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/VersionTracker.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/VersionTracker.kt new file mode 100644 index 00000000..f63a6ea8 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/VersionTracker.kt @@ -0,0 +1,18 @@ +package it.vercruysse.lemmyapi.enums + +import io.github.z4kn4fein.semver.Version +import it.vercruysse.lemmyapi.dto.getSupportedEntries +import kotlinx.serialization.Serializable + +/** + * Tracks the version of the supported entries from this enum + * Use this in conjunction with [getSupportedEntries] + * + * @property minimumVersion The version this entry was added + * @property maximumVersion The version this entry was removed, if null, it is still supported + */ +@Serializable +sealed interface VersionTracker { + val minimumVersion: Version + val maximumVersion: Version? +} diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/VoteShow.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/VoteShow.kt new file mode 100644 index 00000000..40888665 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/enums/VoteShow.kt @@ -0,0 +1,20 @@ +package it.vercruysse.lemmyapi.enums + +import io.github.z4kn4fein.semver.Version +import it.vercruysse.lemmyapi.MINIMUM_API_VERSION +import it.vercruysse.lemmyapi.V0_19_4 +import it.vercruysse.lemmyapi.V1_0_0 +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +enum class VoteShow(override val minimumVersion: Version = MINIMUM_API_VERSION, override val maximumVersion: Version? = null) : VersionTracker { + @SerialName("show") + Show, + + @SerialName("show_for_others") + ShowForOthers(V1_0_0), + + @SerialName("hide") + Hide(V0_19_4), +} diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/pictrs/PictrsAPI.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/pictrs/PictrsAPI.kt deleted file mode 100644 index d60d724f..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/pictrs/PictrsAPI.kt +++ /dev/null @@ -1,30 +0,0 @@ -package it.vercruysse.lemmyapi.pictrs - -import it.vercruysse.lemmyapi.pictrs.datatypes.DeleteImage -import it.vercruysse.lemmyapi.pictrs.datatypes.UploadImage -import it.vercruysse.lemmyapi.pictrs.datatypes.UploadImageResponse - -interface PictrsAPI { - var auth: String? - - /** - * Upload an image to the server. - * - * @POST(/pictrs/image) - */ - suspend fun uploadImage(form: UploadImage): Result - - /** - * Delete an image from the server. - * - * @POST(/pictrs/image/delete) - */ - suspend fun deleteImage(form: DeleteImage) = deleteImage("/pictrs/image/delete/${form.delete_token}/${form.filename}") - - /** - * Delete an image from the server. - * - * @POST(/pictrs/image/delete) - */ - suspend fun deleteImage(relativeUrl: String): Result -} diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/pictrs/PictrsService.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/pictrs/PictrsService.kt index 2d9a2051..d71dbc58 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/pictrs/PictrsService.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/pictrs/PictrsService.kt @@ -5,57 +5,75 @@ import io.ktor.client.call.* import io.ktor.client.request.* import io.ktor.client.request.forms.* import io.ktor.http.* -import it.vercruysse.lemmyapi.pictrs.datatypes.UploadImage -import it.vercruysse.lemmyapi.pictrs.datatypes.UploadImageResponse +import it.vercruysse.lemmyapi.datatypes.DeleteImageParams +import it.vercruysse.lemmyapi.datatypes.UploadImageResponse +import kotlinx.serialization.Serializable + +open class PictrsService(private val client: HttpClient, var auth: String?) { -open class PictrsService(private val client: HttpClient, override var auth: String?) : PictrsAPI { /** * Upload an image to the server. * * @POST(/pictrs/image) */ - override suspend fun uploadImage(form: UploadImage): Result = runCatching { + open suspend fun uploadImage(image: ByteArray): Result = runCatching { val resp = client.post("/pictrs/image") { auth?.let { cookie("jwt", it) } - setBody(createFormData(form.images)) + setBody(createFormData(image)) } - val imageResp = resp.body() + val imageResp = resp.body() + require(imageResp.msg == "ok") { "Pictrs upload failed: ${imageResp.msg}" } - imageResp.copy( - files = imageResp.files.map { - it.copy( - url = "${resp.call.request.url}/${it.file}", - delete_url = "${resp.call.request.url}/delete/${it.delete_token}/${it.file}", - ) - }, + val file = imageResp.files.firstOrNull() + ?: throw IllegalStateException("Pictrs upload response did not contain any files") + + UploadImageResponse( + image_url = "${resp.call.request.url}/${file.file}", + filename = file.file, + // Pre-v1 delete route needs the full relative pictrs delete path. + delete_filename = "/pictrs/image/delete/${file.delete_token}/${file.file}", ) } /** * Delete an image from the server. * - * @POST(/pictrs/image/delete) + * @GET(/pictrs/image/delete/{delete_token}/{file}) */ - override suspend fun deleteImage(relativeUrl: String): Result = runCatching { - client.get(relativeUrl) { + open suspend fun deleteMedia(form: DeleteImageParams): Result = runCatching { + require(form.filename.startsWith("/pictrs/image/delete/")) { + "For pre-v1 Lemmy, deleteMedia filename must be /pictrs/image/delete/{delete_token}/{file}" + } + + client.get(form.filename) { auth?.let { cookie("jwt", it) } }.body() } - private fun createFormData(images: List): MultiPartFormDataContent = + private fun createFormData(image: ByteArray): MultiPartFormDataContent = MultiPartFormDataContent( formData { - for (image in images) { - append( - "images[]", - image, - Headers.build { - // This is somehow needed, but it doesn't matter what you send - append(HttpHeaders.ContentDisposition, "filename=\"test.jpg\"") - }, - ) - } + append( + "images[]", + image, + Headers.build { + // Pictrs expects a file-like part with a content disposition. + append(HttpHeaders.ContentDisposition, "filename=\"image.jpg\"") + }, + ) }, ) + + @Serializable + private data class PictrsUploadImageResponse( + val msg: String, + val files: List = listOf(), + ) + + @Serializable + private data class PictrsImageFile( + val file: String, + val delete_token: String, + ) } diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/pictrs/datatypes/DeleteImage.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/pictrs/datatypes/DeleteImage.kt deleted file mode 100644 index 7d1fcdc9..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/pictrs/datatypes/DeleteImage.kt +++ /dev/null @@ -1,9 +0,0 @@ -package it.vercruysse.lemmyapi.pictrs.datatypes - -import kotlinx.serialization.Serializable - -@Serializable -data class DeleteImage( - val delete_token: String, - val filename: String, -) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/pictrs/datatypes/ImageFile.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/pictrs/datatypes/ImageFile.kt deleted file mode 100644 index 440387f5..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/pictrs/datatypes/ImageFile.kt +++ /dev/null @@ -1,14 +0,0 @@ -package it.vercruysse.lemmyapi.pictrs.datatypes - -import kotlinx.serialization.Serializable - -@Serializable -data class ImageFile( - val file: String, - val delete_token: String, - /** - * Set manually based on the above info, for convenience - */ - val url: String? = null, - val delete_url: String? = null, -) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/pictrs/datatypes/UploadImage.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/pictrs/datatypes/UploadImage.kt deleted file mode 100644 index 507f1f11..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/pictrs/datatypes/UploadImage.kt +++ /dev/null @@ -1,8 +0,0 @@ -package it.vercruysse.lemmyapi.pictrs.datatypes - -import kotlinx.serialization.Serializable - -@Serializable -data class UploadImage( - val images: List, -) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/pictrs/datatypes/UploadImageResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/pictrs/datatypes/UploadImageResponse.kt deleted file mode 100644 index f7114d87..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/pictrs/datatypes/UploadImageResponse.kt +++ /dev/null @@ -1,12 +0,0 @@ -package it.vercruysse.lemmyapi.pictrs.datatypes - -import kotlinx.serialization.Serializable - -@Serializable -data class UploadImageResponse( - /** - * "ok" if good includes files, else error message - */ - val msg: String, - val files: List = listOf(), -) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/utils/General.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/utils/General.kt index cd175543..a74cc1b7 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/utils/General.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/utils/General.kt @@ -77,3 +77,5 @@ internal fun constructBaseUrl(instance: String): String { return url.protocolWithAuthority } + +internal fun toAt(bool: Boolean): String? = if (bool) "" else null diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/utils/Ktor.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/utils/Ktor.kt index 3d07d3a7..e6daef64 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/utils/Ktor.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/utils/Ktor.kt @@ -3,8 +3,19 @@ package it.vercruysse.lemmyapi.utils import io.ktor.client.* import io.ktor.client.call.* import io.ktor.client.request.* +import io.ktor.client.request.forms.* import io.ktor.http.* +suspend inline fun HttpClient.deleteResult( + urlString: String, + builder: HttpRequestBuilder.() -> Unit = {}, +): Result = runCatching { delete(urlString, builder).body() } + +suspend inline fun HttpClient.deleteResult( + urlString: String, + body: T, +): Result = this.deleteResult(urlString) { setJsonBody(body) } + suspend inline fun HttpClient.getResult( urlString: String, builder: HttpRequestBuilder.() -> Unit = {}, @@ -35,6 +46,29 @@ suspend inline fun HttpClient.putResult( body: T, ): Result = this.putResult(urlString) { setJsonBody(body) } +suspend inline fun HttpClient.postUploadResult( + urlString: String, + image: ByteArray, + builder: HttpRequestBuilder.() -> Unit = {}, +): Result = runCatching { + post(urlString) { + setBody( + MultiPartFormDataContent( + formData { + append( + "image", // TODO: this might need to be images[] + image, + Headers.build { + append(HttpHeaders.ContentDisposition, "filename=\"image.jpg\"") + }, + ) + }, + ), + ) + builder() + }.body() +} + inline fun HttpRequestBuilder.addQueryParams(form: T) { toMap(form).forEach { (key, value) -> when (value) { diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/enums/CommentSortType.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/enums/CommentSortType.kt new file mode 100644 index 00000000..f0e98162 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/enums/CommentSortType.kt @@ -0,0 +1,39 @@ +package it.vercruysse.lemmyapi.v0.enums + +import kotlinx.serialization.Serializable +import it.vercruysse.lemmyapi.enums.CommentSortType as UniCommentSortType + +@Serializable +internal enum class CommentSortType { + Hot, + Top, + New, + Old, + Controversial, + ; + + fun toUni(): UniCommentSortType = + when (this) { + Hot -> UniCommentSortType.Hot + Top -> UniCommentSortType.Top + New -> UniCommentSortType.New + Old -> UniCommentSortType.Old + Controversial -> UniCommentSortType.Controversial + } + + companion object { + fun fromUniNullable(uni: UniCommentSortType?): CommentSortType? = + when (uni) { + null -> null + UniCommentSortType.Hot -> Hot + UniCommentSortType.Top -> Top + UniCommentSortType.New -> New + UniCommentSortType.Old -> Old + UniCommentSortType.Controversial -> Controversial + } + + fun fromUni(uni: UniCommentSortType): CommentSortType = fromUniNullable(uni) ?: error("No v0 mapping for $uni") + } +} + +internal fun CommentSortType?.toUni(): UniCommentSortType? = this?.toUni() diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/enums/CommunityVisibility.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/enums/CommunityVisibility.kt new file mode 100644 index 00000000..0a6b99c5 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/enums/CommunityVisibility.kt @@ -0,0 +1,31 @@ +package it.vercruysse.lemmyapi.v0.enums + +import kotlinx.serialization.Serializable +import it.vercruysse.lemmyapi.enums.CommunityVisibility as UniCommunityVisibility + +@Serializable +internal enum class CommunityVisibility { + Public, + LocalOnly, + ; + + fun toUni(): UniCommunityVisibility = + when (this) { + Public -> UniCommunityVisibility.Public + LocalOnly -> UniCommunityVisibility.LocalOnly + } + + companion object { + fun fromUniNullable(uni: UniCommunityVisibility?): CommunityVisibility? = + when (uni) { + null -> null + UniCommunityVisibility.Public -> Public + UniCommunityVisibility.LocalOnly -> LocalOnly + else -> null + } + + fun fromUni(uni: UniCommunityVisibility): CommunityVisibility = fromUniNullable(uni) ?: error("No v0 mapping for $uni") + } +} + +internal fun CommunityVisibility?.toUni(): UniCommunityVisibility? = this?.toUni() diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/enums/ListingType.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/enums/ListingType.kt new file mode 100644 index 00000000..b593a96a --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/enums/ListingType.kt @@ -0,0 +1,37 @@ +package it.vercruysse.lemmyapi.v0.enums + +import kotlinx.serialization.Serializable +import it.vercruysse.lemmyapi.enums.ListingType as UniListingType + +@Serializable +internal enum class ListingType { + All, + Local, + Subscribed, + ModeratorView, + ; + + fun toUni(): UniListingType = + when (this) { + All -> UniListingType.All + Local -> UniListingType.Local + Subscribed -> UniListingType.Subscribed + ModeratorView -> UniListingType.ModeratorView + } + + companion object { + fun fromUniNullable(uni: UniListingType?): ListingType? = + when (uni) { + null -> null + UniListingType.All -> All + UniListingType.Local -> Local + UniListingType.Subscribed -> Subscribed + UniListingType.ModeratorView -> ModeratorView + else -> null + } + + fun fromUni(uni: UniListingType): ListingType = fromUniNullable(uni) ?: error("No v0 mapping for $uni") + } +} + +internal fun ListingType?.toUni(): UniListingType? = this?.toUni() diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/enums/ModlogActionType.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/enums/ModlogActionType.kt new file mode 100644 index 00000000..54dac4ab --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/enums/ModlogActionType.kt @@ -0,0 +1,73 @@ +package it.vercruysse.lemmyapi.v0.enums + +import kotlinx.serialization.Serializable +import it.vercruysse.lemmyapi.enums.ModlogActionType as UniModlogActionType + +@Serializable +internal enum class ModlogActionType { + All, + ModRemovePost, + ModLockPost, + ModFeaturePost, + ModRemoveComment, + ModRemoveCommunity, + ModBanFromCommunity, + ModAddCommunity, + ModTransferCommunity, + ModAdd, + ModBan, + ModHideCommunity, + AdminPurgePerson, + AdminPurgeCommunity, + AdminPurgePost, + AdminPurgeComment, + ; + + fun toUni(): UniModlogActionType = + when (this) { + All -> UniModlogActionType.All + ModRemovePost -> UniModlogActionType.ModRemovePost + ModLockPost -> UniModlogActionType.ModLockPost + ModFeaturePost -> UniModlogActionType.ModFeaturePost + ModRemoveComment -> UniModlogActionType.ModRemoveComment + ModRemoveCommunity -> UniModlogActionType.AdminRemoveCommunity + ModBanFromCommunity -> UniModlogActionType.ModBanFromCommunity + ModAddCommunity -> UniModlogActionType.ModAddToCommunity + ModTransferCommunity -> UniModlogActionType.ModTransferCommunity + ModAdd -> UniModlogActionType.AdminAdd + ModBan -> UniModlogActionType.AdminBan + ModHideCommunity -> UniModlogActionType.ModChangeCommunityVisibility + AdminPurgePerson -> UniModlogActionType.AdminPurgePerson + AdminPurgeCommunity -> UniModlogActionType.AdminPurgeCommunity + AdminPurgePost -> UniModlogActionType.AdminPurgePost + AdminPurgeComment -> UniModlogActionType.AdminPurgeComment + } + + companion object { + fun fromUniNullable(uni: UniModlogActionType?): ModlogActionType? = + when (uni) { + null -> null + UniModlogActionType.All -> All + UniModlogActionType.ModRemovePost -> ModRemovePost + UniModlogActionType.ModLockPost -> ModLockPost + UniModlogActionType.ModFeaturePost -> ModFeaturePost + UniModlogActionType.ModRemoveComment -> ModRemoveComment + UniModlogActionType.AdminRemoveCommunity -> ModRemoveCommunity + UniModlogActionType.ModBanFromCommunity -> ModBanFromCommunity + UniModlogActionType.ModAddToCommunity -> ModAddCommunity + UniModlogActionType.ModTransferCommunity -> ModTransferCommunity + UniModlogActionType.AdminAdd -> ModAdd + UniModlogActionType.AdminBan -> ModBan + UniModlogActionType.ModChangeCommunityVisibility -> ModHideCommunity + UniModlogActionType.AdminPurgePerson -> AdminPurgePerson + UniModlogActionType.AdminPurgeCommunity -> AdminPurgeCommunity + UniModlogActionType.AdminPurgePost -> AdminPurgePost + UniModlogActionType.AdminPurgeComment -> AdminPurgeComment + else -> null + } + + fun fromUni(uni: UniModlogActionType): ModlogActionType = fromUniNullable(uni) ?: error("No v0 mapping for $uni") + } +} + +internal fun ModlogActionType?.toUni(): UniModlogActionType? = this?.toUni() diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/enums/PostFeatureType.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/enums/PostFeatureType.kt new file mode 100644 index 00000000..09ca42cf --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/enums/PostFeatureType.kt @@ -0,0 +1,30 @@ +package it.vercruysse.lemmyapi.v0.enums + +import kotlinx.serialization.Serializable +import it.vercruysse.lemmyapi.enums.PostFeatureType as UniPostFeatureType + +@Serializable +internal enum class PostFeatureType { + Local, + Community, + ; + + fun toUni(): UniPostFeatureType = + when (this) { + Local -> UniPostFeatureType.Local + Community -> UniPostFeatureType.Community + } + + companion object { + fun fromUniNullable(uni: UniPostFeatureType?): PostFeatureType? = + when (uni) { + null -> null + UniPostFeatureType.Local -> Local + UniPostFeatureType.Community -> Community + } + + fun fromUni(uni: UniPostFeatureType): PostFeatureType = fromUniNullable(uni) ?: error("No v0 mapping for $uni") + } +} + +internal fun PostFeatureType?.toUni(): UniPostFeatureType? = this?.toUni() diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/enums/PostListingMode.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/enums/PostListingMode.kt new file mode 100644 index 00000000..6a85f7cc --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/enums/PostListingMode.kt @@ -0,0 +1,33 @@ +package it.vercruysse.lemmyapi.v0.enums + +import kotlinx.serialization.Serializable +import it.vercruysse.lemmyapi.enums.PostListingMode as UniPostListingMode + +@Serializable +internal enum class PostListingMode { + List, + Card, + SmallCard, + ; + + fun toUni(): UniPostListingMode = + when (this) { + List -> UniPostListingMode.List + Card -> UniPostListingMode.Card + SmallCard -> UniPostListingMode.SmallCard + } + + companion object { + fun fromUniNullable(uni: UniPostListingMode?): PostListingMode? = + when (uni) { + null -> null + UniPostListingMode.List -> List + UniPostListingMode.Card -> Card + UniPostListingMode.SmallCard -> SmallCard + } + + fun fromUni(uni: UniPostListingMode): PostListingMode = fromUniNullable(uni) ?: error("No v0 mapping for $uni") + } +} + +internal fun PostListingMode?.toUni(): UniPostListingMode? = this?.toUni() diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/enums/RegistrationMode.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/enums/RegistrationMode.kt new file mode 100644 index 00000000..81b46296 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/enums/RegistrationMode.kt @@ -0,0 +1,39 @@ +package it.vercruysse.lemmyapi.v0.enums + +import kotlinx.serialization.Serializable +import it.vercruysse.lemmyapi.enums.RegistrationMode as UniRegistrationMode + +@Serializable +internal enum class RegistrationMode { + Closed, + RequireApplication, + Open, + ; + + fun toUni(): UniRegistrationMode = + when (this) { + Closed -> UniRegistrationMode.Closed + RequireApplication -> UniRegistrationMode.RequireApplication + Open -> UniRegistrationMode.Open + } + + companion object { + fun fromUniNullable(uni: UniRegistrationMode?): RegistrationMode? = + when (uni) { + null -> null + + UniRegistrationMode.Closed -> Closed + + UniRegistrationMode.RequireApplication -> RequireApplication + + UniRegistrationMode.RequireInvitation -> null + + // Not supported before 1.0.0 + UniRegistrationMode.Open -> Open + } + + fun fromUni(uni: UniRegistrationMode): RegistrationMode = fromUniNullable(uni) ?: error("No v0 mapping for $uni") + } +} + +internal fun RegistrationMode?.toUni(): UniRegistrationMode? = this?.toUni() diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/enums/SearchType.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/enums/SearchType.kt new file mode 100644 index 00000000..2ed92b24 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/enums/SearchType.kt @@ -0,0 +1,42 @@ +package it.vercruysse.lemmyapi.v0.enums + +import kotlinx.serialization.Serializable +import it.vercruysse.lemmyapi.enums.SearchType as UniSearchType + +@Serializable +internal enum class SearchType { + All, + Comments, + Posts, + Communities, + Users, + Url, + ; + + fun toUni(): UniSearchType = + when (this) { + All -> UniSearchType.All + Comments -> UniSearchType.Comments + Posts -> UniSearchType.Posts + Communities -> UniSearchType.Communities + Users -> UniSearchType.Users + Url -> UniSearchType.Url + } + + companion object { + fun fromUniNullable(uni: UniSearchType?): SearchType? = + when (uni) { + null -> null + UniSearchType.All -> All + UniSearchType.Comments -> Comments + UniSearchType.Posts -> Posts + UniSearchType.Communities -> Communities + UniSearchType.Users -> Users + UniSearchType.Url -> Url + } + + fun fromUni(uni: UniSearchType): SearchType = fromUniNullable(uni) ?: error("No v0 mapping for $uni") + } +} + +internal fun SearchType?.toUni(): UniSearchType? = this?.toUni() diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/enums/SortType.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/enums/SortType.kt new file mode 100644 index 00000000..838b360f --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/enums/SortType.kt @@ -0,0 +1,81 @@ +package it.vercruysse.lemmyapi.v0.enums + +import kotlinx.serialization.Serializable +import it.vercruysse.lemmyapi.enums.SortType as UniSortType + +@Serializable +internal enum class SortType { + Active, + Hot, + New, + Old, + TopDay, + TopWeek, + TopMonth, + TopYear, + TopAll, + MostComments, + NewComments, + TopHour, + TopSixHour, + TopTwelveHour, + TopThreeMonths, + TopSixMonths, + TopNineMonths, + Controversial, + Scaled, + ; + + fun toUni(): UniSortType = + when (this) { + Active -> UniSortType.Active + Hot -> UniSortType.Hot + New -> UniSortType.New + Old -> UniSortType.Old + TopDay -> UniSortType.TopDay + TopWeek -> UniSortType.TopWeek + TopMonth -> UniSortType.TopMonth + TopYear -> UniSortType.TopYear + TopAll -> UniSortType.TopAll + MostComments -> UniSortType.MostComments + NewComments -> UniSortType.NewComments + TopHour -> UniSortType.TopHour + TopSixHour -> UniSortType.TopSixHour + TopTwelveHour -> UniSortType.TopTwelveHour + TopThreeMonths -> UniSortType.TopThreeMonths + TopSixMonths -> UniSortType.TopSixMonths + TopNineMonths -> UniSortType.TopNineMonths + Controversial -> UniSortType.Controversial + Scaled -> UniSortType.Scaled + } + + companion object { + fun fromUniNullable(uni: UniSortType?): SortType? = + when (uni) { + null -> null + UniSortType.Active -> Active + UniSortType.Hot -> Hot + UniSortType.New -> New + UniSortType.Old -> Old + UniSortType.TopDay -> TopDay + UniSortType.TopWeek -> TopWeek + UniSortType.TopMonth -> TopMonth + UniSortType.TopYear -> TopYear + UniSortType.TopAll -> TopAll + UniSortType.MostComments -> MostComments + UniSortType.NewComments -> NewComments + UniSortType.TopHour -> TopHour + UniSortType.TopSixHour -> TopSixHour + UniSortType.TopTwelveHour -> TopTwelveHour + UniSortType.TopThreeMonths -> TopThreeMonths + UniSortType.TopSixMonths -> TopSixMonths + UniSortType.TopNineMonths -> TopNineMonths + UniSortType.Controversial -> Controversial + UniSortType.Scaled -> Scaled + } + + fun fromUni(uni: UniSortType): SortType = fromUniNullable(uni) ?: error("No v0 mapping for $uni") + } +} + +internal fun SortType?.toUni(): UniSortType? = this?.toUni() diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/enums/SubscribedType.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/enums/SubscribedType.kt new file mode 100644 index 00000000..b5470413 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/enums/SubscribedType.kt @@ -0,0 +1,10 @@ +package it.vercruysse.lemmyapi.v0.enums + +import kotlinx.serialization.Serializable + +@Serializable +internal enum class SubscribedType { + Subscribed, + NotSubscribed, + Pending, +} diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x17/x4/datatypes/GetSiteResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x17/x4/datatypes/GetSiteResponse.kt index 09e4af6c..5df1e24c 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x17/x4/datatypes/GetSiteResponse.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x17/x4/datatypes/GetSiteResponse.kt @@ -1,7 +1,7 @@ package it.vercruysse.lemmyapi.v0.x17.x4.datatypes -import kotlinx.serialization.Serializable import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.* +import kotlinx.serialization.Serializable @Serializable internal data class GetSiteResponse( diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/LemmyApiUniWrapper.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/LemmyApiUniWrapper.kt index e4d9f71d..e6ed9631 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/LemmyApiUniWrapper.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/LemmyApiUniWrapper.kt @@ -3,22 +3,39 @@ package it.vercruysse.lemmyapi.v0.x18.x5 import io.github.z4kn4fein.semver.Version import io.ktor.client.HttpClient import it.vercruysse.lemmyapi.LemmyApiBaseController +import it.vercruysse.lemmyapi.datatypes.ListCustomEmojis +import it.vercruysse.lemmyapi.datatypes.ListCustomEmojisResponse +import it.vercruysse.lemmyapi.datatypes.ListLoginsResponse +import it.vercruysse.lemmyapi.datatypes.ListNotifications +import it.vercruysse.lemmyapi.datatypes.MarkNotificationAsRead +import it.vercruysse.lemmyapi.datatypes.MyUserInfo +import it.vercruysse.lemmyapi.datatypes.PagedResponse +import it.vercruysse.lemmyapi.datatypes.UnreadCountsResponse import it.vercruysse.lemmyapi.dto.ExportUserSettingsResponse import it.vercruysse.lemmyapi.dto.ImportUserSettings +import it.vercruysse.lemmyapi.enums.NotificationDataType +import it.vercruysse.lemmyapi.enums.NotificationType +import it.vercruysse.lemmyapi.pictrs.PictrsService import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.GetCaptcha +import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.GetPersonDetails +import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.GetReportCount import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.GetUnreadCount +import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.GetUnreadRegistrationApplicationCount import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.MarkPostAsRead +import kotlin.map internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, baseUrl: String, auth: String?) : LemmyApiBaseController(client, actualVersion, baseUrl, auth) { - private val apiV18 = LemmyApiController(client, actualVersion, baseUrl, auth) + private val api = LemmyApiController(client, actualVersion, baseUrl, auth) + private val pictrsApi = PictrsService(client, auth) private val transformer = Transformer(auth ?: "") - override var auth: String? = auth + override var auth: String? + get() = super.auth set(value) { - transformer.auth = value ?: "" - field = value - apiV18.auth = value // Not sure if this needed + super.auth = value + api.auth = value + pictrsApi.auth = value } // START @@ -28,7 +45,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba * * @GET("site") */ - override suspend fun getSite(): Result = apiV18.getSite( + override suspend fun getSite(): Result = api.getSite( it.vercruysse.lemmyapi.v0.x18.x5.datatypes.GetSite(auth), ).map { transformer.toUni(it) @@ -41,7 +58,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun createSite( form: it.vercruysse.lemmyapi.datatypes.CreateSite, - ): Result = apiV18.createSite(transformer.fromUni(form)).map { transformer.toUni(it) } + ): Result = api.createSite(transformer.fromUni(form)).map { transformer.toUni(it) } /** * Edit your site. @@ -49,7 +66,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba * @PUT("site") */ override suspend fun editSite(form: it.vercruysse.lemmyapi.datatypes.EditSite): Result = - apiV18.editSite(transformer.fromUni(form)).map { transformer.toUni(it) } + api.editSite(transformer.fromUni(form)).map { transformer.toUni(it) } /** * Get the modlog. @@ -58,8 +75,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun getModlog( form: it.vercruysse.lemmyapi.datatypes.GetModlog, - ): Result = - apiV18.getModlog(transformer.fromUni(form)).map(transformer::toUni) + ): Result> = notSupported() /** * Search lemmy. @@ -67,7 +83,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba * @GET("search") */ override suspend fun search(form: it.vercruysse.lemmyapi.datatypes.Search): Result = - apiV18.search(transformer.fromUni(form)).map(transformer::toUni) + api.search(transformer.fromUni(form)).map(transformer::toUni) /** * Fetch a non-local / federated object. @@ -76,8 +92,8 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun resolveObject( form: it.vercruysse.lemmyapi.datatypes.ResolveObject, - ): Result = - apiV18.resolveObject(transformer.fromUni(form)).map(transformer::toUni) + ): Result = + api.resolveObject(transformer.fromUni(form)).map(transformer::toUni) /** * Get / fetch a community. @@ -87,7 +103,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba override suspend fun getCommunity( form: it.vercruysse.lemmyapi.datatypes.GetCommunity, ): Result = - apiV18.getCommunity(transformer.fromUni(form)).map(transformer::toUni) + api.getCommunity(transformer.fromUni(form)).map(transformer::toUni) /** * Create a new community. @@ -97,7 +113,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba override suspend fun createCommunity( form: it.vercruysse.lemmyapi.datatypes.CreateCommunity, ): Result = - apiV18.createCommunity(transformer.fromUni(form)).map(transformer::toUni) + api.createCommunity(transformer.fromUni(form)).map(transformer::toUni) /** * Edit a community. @@ -107,7 +123,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba override suspend fun editCommunity( form: it.vercruysse.lemmyapi.datatypes.EditCommunity, ): Result = - apiV18.editCommunity(transformer.fromUni(form)).map(transformer::toUni) + api.editCommunity(transformer.fromUni(form)).map(transformer::toUni) /** * Hide a community from public view. @@ -115,7 +131,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba * @PUT("community/hide") */ override suspend fun hideCommunity(form: it.vercruysse.lemmyapi.datatypes.HideCommunity): Result = - apiV18.hideCommunity(transformer.fromUni(form)) + api.hideCommunity(transformer.fromUni(form)) /** * List communities, with various filters. @@ -124,8 +140,12 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun listCommunities( form: it.vercruysse.lemmyapi.datatypes.ListCommunities, - ): Result = - apiV18.listCommunities(transformer.fromUni(form)).map(transformer::toUni) + ): Result> = + api.listCommunities(transformer.fromUni(form)).map { + PagedResponse( + items = it.communities.map(transformer::toUni), + ) + } /** * Follow / subscribe to a community. @@ -135,7 +155,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba override suspend fun followCommunity( form: it.vercruysse.lemmyapi.datatypes.FollowCommunity, ): Result = - apiV18.followCommunity(transformer.fromUni(form)).map(transformer::toUni) + api.followCommunity(transformer.fromUni(form)).map(transformer::toUni) /** * Block a community. @@ -144,8 +164,13 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun blockCommunity( form: it.vercruysse.lemmyapi.datatypes.BlockCommunity, - ): Result = - apiV18.blockCommunity(transformer.fromUni(form)).map(transformer::toUni) + ): Result = + api.blockCommunity(transformer.fromUni(form)).map { resp -> + it.vercruysse.lemmyapi.datatypes.CommunityResponse( + transformer.toUni(resp.community_view), + emptyList(), + ) + } /** * Delete a community. @@ -155,7 +180,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba override suspend fun deleteCommunity( form: it.vercruysse.lemmyapi.datatypes.DeleteCommunity, ): Result = - apiV18.deleteCommunity(transformer.fromUni(form)).map(transformer::toUni) + api.deleteCommunity(transformer.fromUni(form)).map(transformer::toUni) /** * A moderator remove for a community. @@ -165,7 +190,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba override suspend fun removeCommunity( form: it.vercruysse.lemmyapi.datatypes.RemoveCommunity, ): Result = - apiV18.removeCommunity(transformer.fromUni(form)).map(transformer::toUni) + api.removeCommunity(transformer.fromUni(form)).map(transformer::toUni) /** * Transfer your community to an existing moderator. @@ -174,8 +199,16 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun transferCommunity( form: it.vercruysse.lemmyapi.datatypes.TransferCommunity, - ): Result = - apiV18.transferCommunity(transformer.fromUni(form)).map(transformer::toUni) + ): Result = + api.transferCommunity(transformer.fromUni(form)).map { communityResponse -> + val uniCommunityResponse = transformer.toUni(communityResponse) + it.vercruysse.lemmyapi.datatypes.GetCommunityResponse( + community_view = uniCommunityResponse.community_view, + site = null, + moderators = emptyList(), + discussion_languages = uniCommunityResponse.discussion_languages, + ) + } /** * Ban a user from a community. @@ -184,8 +217,8 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun banFromCommunity( form: it.vercruysse.lemmyapi.datatypes.BanFromCommunity, - ): Result = - apiV18.banFromCommunity(transformer.fromUni(form)).map(transformer::toUni) + ): Result = + api.banFromCommunity(transformer.fromUni(form)).map(transformer::toUni) /** * Add a moderator to your community. @@ -195,15 +228,15 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba override suspend fun addModToCommunity( form: it.vercruysse.lemmyapi.datatypes.AddModToCommunity, ): Result = - apiV18.addModToCommunity(transformer.fromUni(form)).map(transformer::toUni) + api.addModToCommunity(transformer.fromUni(form)).map(transformer::toUni) /** * Fetch federated instances. * * @GET("federated_instances") */ - override suspend fun getFederatedInstances(): Result = - apiV18.getFederatedInstances(it.vercruysse.lemmyapi.v0.x18.x5.datatypes.GetFederatedInstances(auth)).map(transformer::toUni) + override suspend fun getFederatedInstances(form: it.vercruysse.lemmyapi.datatypes.GetFederatedInstances): Result> = + notSupported() // Not used and complex to map /** * Get / fetch a post. @@ -211,7 +244,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba * @GET("post") */ override suspend fun getPost(form: it.vercruysse.lemmyapi.datatypes.GetPost): Result = - apiV18.getPost(transformer.fromUni(form)).map(transformer::toUni) + api.getPost(transformer.fromUni(form)).map(transformer::toUni) /** * Edit a post. @@ -219,7 +252,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba * @PUT("post") */ override suspend fun editPost(form: it.vercruysse.lemmyapi.datatypes.EditPost): Result = - apiV18.editPost(transformer.fromUni(form)).map(transformer::toUni) + api.editPost(transformer.fromUni(form)).map(transformer::toUni) /** * Create a post. @@ -229,7 +262,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba override suspend fun createPost( form: it.vercruysse.lemmyapi.datatypes.CreatePost, ): Result = - apiV18.createPost(transformer.fromUni(form)).map(transformer::toUni) + api.createPost(transformer.fromUni(form)).map(transformer::toUni) /** * Get / fetch posts, with various filters. @@ -238,8 +271,10 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun getPosts( form: it.vercruysse.lemmyapi.datatypes.GetPosts, - ): Result = - apiV18.getPosts(transformer.fromUni(form.toPostsForm())).map(transformer::toUni) + ): Result> = + api.getPosts(transformer.fromUni(form.toPostsForm())).map { resp -> + PagedResponse(resp.posts.map(transformer::toUni)) + } /** * Delete a post. @@ -249,7 +284,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba override suspend fun deletePost( form: it.vercruysse.lemmyapi.datatypes.DeletePost, ): Result = - apiV18.deletePost(transformer.fromUni(form)).map(transformer::toUni) + api.deletePost(transformer.fromUni(form)).map(transformer::toUni) /** * A moderator remove for a post. @@ -259,18 +294,32 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba override suspend fun removePost( form: it.vercruysse.lemmyapi.datatypes.RemovePost, ): Result = - apiV18.removePost(transformer.fromUni(form)).map(transformer::toUni) + api.removePost(transformer.fromUni(form)).map(transformer::toUni) /** * Mark a post as read. * + * @POST("post/mark_as_read") + */ + override suspend fun markPostAsRead(form: it.vercruysse.lemmyapi.datatypes.MarkPostAsRead): Result = + api.markPostAsRead( + MarkPostAsRead( + post_id = form.post_id, + read = form.read, + auth = "" + auth, + ), + ).map(transformer::toUni) + + /** + * Mark multiple posts as read. + * * Maps v19 logic * * @POST("post/mark_as_read") */ - override suspend fun markPostAsRead(form: it.vercruysse.lemmyapi.datatypes.MarkPostAsRead): Result = form.post_ids + override suspend fun markManyPostsAsRead(form: it.vercruysse.lemmyapi.datatypes.MarkManyPostsAsRead): Result = form.post_ids .map { MarkPostAsRead(post_id = it, read = form.read, auth = "" + auth) } - .map { apiV18.markPostAsRead(it) } + .map { api.markPostAsRead(it) } .map { it.map { } } .firstOrNull { it.isFailure } ?: Result.success(Unit) @@ -280,7 +329,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba * @POST("post/lock") */ override suspend fun lockPost(form: it.vercruysse.lemmyapi.datatypes.LockPost): Result = - apiV18.lockPost(transformer.fromUni(form)).map(transformer::toUni) + api.lockPost(transformer.fromUni(form)).map(transformer::toUni) /** * A moderator can feature a community post ( IE stick it to the top of a community ). @@ -290,7 +339,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba override suspend fun featurePost( form: it.vercruysse.lemmyapi.datatypes.FeaturePost, ): Result = - apiV18.featurePost(transformer.fromUni(form)).map(transformer::toUni) + api.featurePost(transformer.fromUni(form)).map(transformer::toUni) /** * Like / vote on a post. @@ -300,7 +349,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba override suspend fun createPostLike( form: it.vercruysse.lemmyapi.datatypes.CreatePostLike, ): Result = - apiV18.createPostLike(transformer.fromUni(form)).map(transformer::toUni) + api.createPostLike(transformer.fromUni(form)).map(transformer::toUni) /** * Save a post. @@ -308,7 +357,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba * @PUT("post/save") */ override suspend fun savePost(form: it.vercruysse.lemmyapi.datatypes.SavePost): Result = - apiV18.savePost(transformer.fromUni(form)).map(transformer::toUni) + api.savePost(transformer.fromUni(form)).map(transformer::toUni) /** * Report a post. @@ -318,7 +367,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba override suspend fun createPostReport( form: it.vercruysse.lemmyapi.datatypes.CreatePostReport, ): Result = - apiV18.createPostReport(transformer.fromUni(form)).map(transformer::toUni) + api.createPostReport(transformer.fromUni(form)).map(transformer::toUni) /** * Resolve a post report. Only a mod can do this. @@ -328,17 +377,59 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba override suspend fun resolvePostReport( form: it.vercruysse.lemmyapi.datatypes.ResolvePostReport, ): Result = - apiV18.resolvePostReport(transformer.fromUni(form)).map(transformer::toUni) - - /** - * List post reports. - * - * @GET("post/report/list") - */ - override suspend fun listPostReports( - form: it.vercruysse.lemmyapi.datatypes.ListPostReports, - ): Result = - apiV18.listPostReports(transformer.fromUni(form)).map(transformer::toUni) + api.resolvePostReport(transformer.fromUni(form)).map(transformer::toUni) + + /** + * List reports. + */ + override suspend fun listReports( + form: it.vercruysse.lemmyapi.datatypes.ListReports, + ): Result> = + when (form.type_) { + it.vercruysse.lemmyapi.enums.ReportType.Communities -> notSupported() + + it.vercruysse.lemmyapi.enums.ReportType.Posts -> { + api.listPostReports(transformer.fromUniP(form)).map { resp -> + PagedResponse(resp.post_reports.map(transformer::toUni)) + } + } + + it.vercruysse.lemmyapi.enums.ReportType.Comments -> { + api.listCommentReports(transformer.fromUniC(form)).map { resp -> + PagedResponse(resp.comment_reports.map(transformer::toUni)) + } + } + + it.vercruysse.lemmyapi.enums.ReportType.PrivateMessages -> { + api.listPrivateMessageReports(transformer.fromUniPm(form)).map { resp -> + PagedResponse(resp.private_message_reports.map(transformer::toUni)) + } + } + + it.vercruysse.lemmyapi.enums.ReportType.All -> { + runCatching { + val postsResp = api.listPostReports(transformer.fromUniP(form)).getOrThrow() + val commentsResp = api.listCommentReports(transformer.fromUniC(form)).getOrThrow() + val privateMessagesResp = api.listPrivateMessageReports(transformer.fromUniPm(form)).getOrThrow() + + val allReports = mutableListOf() + + allReports.addAll( + postsResp.post_reports.map(transformer::toUni), + ) + + allReports.addAll( + commentsResp.comment_reports.map(transformer::toUni), + ) + + allReports.addAll( + privateMessagesResp.private_message_reports.map(transformer::toUni), + ) + + PagedResponse(allReports) + } + } + } /** * Fetch metadata for any given site. @@ -348,7 +439,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba override suspend fun getSiteMetadata( form: it.vercruysse.lemmyapi.datatypes.GetSiteMetadata, ): Result = - apiV18.getSiteMetadata(transformer.fromUni(form)).map(transformer::toUni) + api.getSiteMetadata(transformer.fromUni(form)).map(transformer::toUni) /** * Get / fetch comment. @@ -358,7 +449,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba override suspend fun getComment( form: it.vercruysse.lemmyapi.datatypes.GetComment, ): Result = - apiV18.getComment(transformer.fromUni(form)).map(transformer::toUni) + api.getComment(transformer.fromUni(form)).map(transformer::toUni) /** * Create a comment. @@ -368,7 +459,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba override suspend fun createComment( form: it.vercruysse.lemmyapi.datatypes.CreateComment, ): Result = - apiV18.createComment(transformer.fromUni(form)).map(transformer::toUni) + api.createComment(transformer.fromUni(form)).map(transformer::toUni) /** * Edit a comment. @@ -378,7 +469,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba override suspend fun editComment( form: it.vercruysse.lemmyapi.datatypes.EditComment, ): Result = - apiV18.editComment(transformer.fromUni(form)).map(transformer::toUni) + api.editComment(transformer.fromUni(form)).map(transformer::toUni) /** * Get / fetch comments. @@ -387,8 +478,10 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun getComments( form: it.vercruysse.lemmyapi.datatypes.GetComments, - ): Result = - apiV18.getComments(transformer.fromUni(form)).map(transformer::toUni) + ): Result> = + api.getComments(transformer.fromUni(form)).map { resp -> + PagedResponse(resp.comments.map(transformer::toUni)) + } /** * Delete a comment. @@ -398,7 +491,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba override suspend fun deleteComment( form: it.vercruysse.lemmyapi.datatypes.DeleteComment, ): Result = - apiV18.deleteComment(transformer.fromUni(form)).map(transformer::toUni) + api.deleteComment(transformer.fromUni(form)).map(transformer::toUni) /** * A moderator remove for a comment. @@ -408,17 +501,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba override suspend fun removeComment( form: it.vercruysse.lemmyapi.datatypes.RemoveComment, ): Result = - apiV18.removeComment(transformer.fromUni(form)).map(transformer::toUni) - - /** - * Mark a comment as read. - * - * @POST("comment/mark_as_read") - */ - override suspend fun markCommentReplyAsRead( - form: it.vercruysse.lemmyapi.datatypes.MarkCommentReplyAsRead, - ): Result = - apiV18.markCommentReplyAsRead(transformer.fromUni(form)).map(transformer::toUni) + api.removeComment(transformer.fromUni(form)).map(transformer::toUni) /** * Distinguishes a comment (speak as moderator) @@ -428,7 +511,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba override suspend fun distinguishComment( form: it.vercruysse.lemmyapi.datatypes.DistinguishComment, ): Result = - apiV18.distinguishComment(transformer.fromUni(form)).map(transformer::toUni) + api.distinguishComment(transformer.fromUni(form)).map(transformer::toUni) /** * Like / vote on a comment. @@ -438,7 +521,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba override suspend fun createCommentLike( form: it.vercruysse.lemmyapi.datatypes.CreateCommentLike, ): Result = - apiV18.createCommentLike(transformer.fromUni(form)).map(transformer::toUni) + api.createCommentLike(transformer.fromUni(form)).map(transformer::toUni) /** * Save a comment. @@ -448,7 +531,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba override suspend fun saveComment( form: it.vercruysse.lemmyapi.datatypes.SaveComment, ): Result = - apiV18.saveComment(transformer.fromUni(form)).map(transformer::toUni) + api.saveComment(transformer.fromUni(form)).map(transformer::toUni) /** * Report a comment. @@ -458,7 +541,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba override suspend fun createCommentReport( form: it.vercruysse.lemmyapi.datatypes.CreateCommentReport, ): Result = - apiV18.createCommentReport(transformer.fromUni(form)).map(transformer::toUni) + api.createCommentReport(transformer.fromUni(form)).map(transformer::toUni) /** * Resolve a comment report. Only a mod can do this. @@ -468,17 +551,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba override suspend fun resolveCommentReport( form: it.vercruysse.lemmyapi.datatypes.ResolveCommentReport, ): Result = - apiV18.resolveCommentReport(transformer.fromUni(form)).map(transformer::toUni) - - /** - * List comment reports. - * - * @GET("comment/report/list") - */ - override suspend fun listCommentReports( - form: it.vercruysse.lemmyapi.datatypes.ListCommentReports, - ): Result = - apiV18.listCommentReports(transformer.fromUni(form)).map(transformer::toUni) + api.resolveCommentReport(transformer.fromUni(form)).map(transformer::toUni) /** * Edit a private message. @@ -488,7 +561,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba override suspend fun editPrivateMessage( form: it.vercruysse.lemmyapi.datatypes.EditPrivateMessage, ): Result = - apiV18.editPrivateMessage(transformer.fromUni(form)).map(transformer::toUni) + api.editPrivateMessage(transformer.fromUni(form)).map(transformer::toUni) /** * Create a private message. @@ -498,17 +571,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba override suspend fun createPrivateMessage( form: it.vercruysse.lemmyapi.datatypes.CreatePrivateMessage, ): Result = - apiV18.createPrivateMessage(transformer.fromUni(form)).map(transformer::toUni) - - /** - * Get / fetch private messages. - * - * @GET("private_message/list") - */ - override suspend fun getPrivateMessages( - form: it.vercruysse.lemmyapi.datatypes.GetPrivateMessages, - ): Result = - apiV18.getPrivateMessages(transformer.fromUni(form)).map(transformer::toUni) + api.createPrivateMessage(transformer.fromUni(form)).map(transformer::toUni) /** * Delete a private message. @@ -518,17 +581,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba override suspend fun deletePrivateMessage( form: it.vercruysse.lemmyapi.datatypes.DeletePrivateMessage, ): Result = - apiV18.deletePrivateMessage(transformer.fromUni(form)).map(transformer::toUni) - - /** - * Mark a private message as read. - * - * @POST("private_message/mark_as_read") - */ - override suspend fun markPrivateMessageAsRead( - form: it.vercruysse.lemmyapi.datatypes.MarkPrivateMessageAsRead, - ): Result = - apiV18.markPrivateMessageAsRead(transformer.fromUni(form)).map(transformer::toUni) + api.deletePrivateMessage(transformer.fromUni(form)).map(transformer::toUni) /** * Create a report for a private message. @@ -538,7 +591,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba override suspend fun createPrivateMessageReport( form: it.vercruysse.lemmyapi.datatypes.CreatePrivateMessageReport, ): Result = - apiV18.createPrivateMessageReport(transformer.fromUni(form)).map(transformer::toUni) + api.createPrivateMessageReport(transformer.fromUni(form)).map(transformer::toUni) /** * Resolve a report for a private message. @@ -548,17 +601,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba override suspend fun resolvePrivateMessageReport( form: it.vercruysse.lemmyapi.datatypes.ResolvePrivateMessageReport, ): Result = - apiV18.resolvePrivateMessageReport(transformer.fromUni(form)).map(transformer::toUni) - - /** - * List private message reports. - * - * @GET("private_message/report/list") - */ - override suspend fun listPrivateMessageReports( - form: it.vercruysse.lemmyapi.datatypes.ListPrivateMessageReports, - ): Result = - apiV18.listPrivateMessageReports(transformer.fromUni(form)).map(transformer::toUni) + api.resolvePrivateMessageReport(transformer.fromUni(form)).map(transformer::toUni) /** * Get the details for a person. @@ -568,7 +611,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba override suspend fun getPersonDetails( form: it.vercruysse.lemmyapi.datatypes.GetPersonDetails, ): Result = - apiV18.getPersonDetails(transformer.fromUni(form)).map(transformer::toUni) + api.getPersonDetails(transformer.fromUni(form)).map(transformer::toUni) /** * Register a new user. @@ -576,7 +619,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba * @POST("user/register") */ override suspend fun register(form: it.vercruysse.lemmyapi.datatypes.Register): Result = - apiV18.register(transformer.fromUni(form)).map(transformer::toUni) + api.register(transformer.fromUni(form)).map(transformer::toUni) /** * Fetch a Captcha. @@ -584,37 +627,56 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba * @GET("user/get_captcha") */ override suspend fun getCaptcha(): Result = - apiV18.getCaptcha(GetCaptcha(auth)).map(transformer::toUni) + api.getCaptcha(GetCaptcha(auth)).map(transformer::toUni) /** - * Get mentions for your user. - * - * @GET("user/mention") - */ - override suspend fun getPersonMentions( - form: it.vercruysse.lemmyapi.datatypes.GetPersonMentions, - ): Result = - apiV18.getPersonMentions(transformer.fromUni(form)).map(transformer::toUni) - - /** - * Mark a person mention as read. - * - * @POST("user/mention/mark_as_read") + * Mark a notification as read */ - override suspend fun markPersonMentionAsRead( - form: it.vercruysse.lemmyapi.datatypes.MarkPersonMentionAsRead, - ): Result = - apiV18.markPersonMentionAsRead(transformer.fromUni(form)).map(transformer::toUni) + override suspend fun markNotificationAsRead(form: MarkNotificationAsRead): Result = + when (form._kind) { + NotificationType.Mention -> api.markPersonMentionAsRead(transformer.fromUniM(form)).map { } + NotificationType.Reply -> api.markCommentReplyAsRead(transformer.fromUniR(form)).map { } + NotificationType.PrivateMessage -> api.markPrivateMessageAsRead(transformer.fromUniP(form)).map { } + NotificationType.Subscribed, NotificationType.ModAction -> notSupported() + null -> notSupported() + } /** - * Get comment replies. - * - * @GET("user/replies") - */ - override suspend fun getReplies( - form: it.vercruysse.lemmyapi.datatypes.GetReplies, - ): Result = - apiV18.getReplies(transformer.fromUni(form)).map(transformer::toUni) + * List notifications. + */ + override suspend fun listNotifications(form: ListNotifications): Result> = when (form.type_) { + NotificationDataType.All -> + runCatching { + val replies = api.getReplies(transformer.fromUniR(form)).getOrThrow().replies.map(transformer::toUni) + val mentionReplies = api.getPersonMentions(transformer.fromUniM(form)).getOrThrow().mentions.map(transformer::toUni) + val privateMessages = api.getPrivateMessages(transformer.fromUniP(form)).getOrThrow().private_messages.map(transformer::toUniPMV) + + PagedResponse( + buildList { + addAll(replies) + addAll(mentionReplies) + addAll(privateMessages) + }, + ) + } + + NotificationDataType.Reply -> + api.getReplies(transformer.fromUniR(form)).map { resp -> + PagedResponse(resp.replies.map(transformer::toUni)) + } + + NotificationDataType.Mention -> + api.getPersonMentions(transformer.fromUniM(form)).map { resp -> + PagedResponse(resp.mentions.map(transformer::toUni)) + } + + NotificationDataType.PrivateMessage -> + api.getPrivateMessages(transformer.fromUniP(form)).map { resp -> + PagedResponse(resp.private_messages.map(transformer::toUniPMV)) + } + + NotificationDataType.Subscribed, NotificationDataType.ModAction -> Result.success(PagedResponse(emptyList())) + } /** * Ban a person from your site. @@ -623,16 +685,20 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun banPerson( form: it.vercruysse.lemmyapi.datatypes.BanPerson, - ): Result = - apiV18.banPerson(transformer.fromUni(form)).map(transformer::toUni) + ): Result = + api.banPerson(transformer.fromUni(form)).map { resp -> + it.vercruysse.lemmyapi.datatypes.PersonResponse(transformer.toUni(resp.person_view)) + } /** * Get a list of banned users * * @GET("user/banned") */ - override suspend fun getBannedPersons(): Result = - apiV18.getBannedPersons(it.vercruysse.lemmyapi.v0.x18.x5.datatypes.GetBannedPersons(auth ?: "")).map(transformer::toUni) + override suspend fun getBannedPersons(): Result> = + api.getBannedPersons(it.vercruysse.lemmyapi.v0.x18.x5.datatypes.GetBannedPersons(auth ?: "")).map { resp -> + PagedResponse(resp.banned.map(transformer::toUni)) + } /** * Block a person. @@ -641,8 +707,10 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun blockPerson( form: it.vercruysse.lemmyapi.datatypes.BlockPerson, - ): Result = - apiV18.blockPerson(transformer.fromUni(form)).map(transformer::toUni) + ): Result = + api.blockPerson(transformer.fromUni(form)).map { resp -> + it.vercruysse.lemmyapi.datatypes.PersonResponse(transformer.toUni(resp.person_view)) + } /** * Log into lemmy. @@ -650,7 +718,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba * @POST("user/login") */ override suspend fun login(form: it.vercruysse.lemmyapi.datatypes.Login): Result = - apiV18.login(transformer.fromUni(form)).map(transformer::toUni) + api.login(transformer.fromUni(form)).map(transformer::toUni) /** * Delete your account. @@ -658,31 +726,31 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba * @POST("user/delete_account") */ override suspend fun deleteAccount(form: it.vercruysse.lemmyapi.datatypes.DeleteAccount): Result = - apiV18.deleteAccount(transformer.fromUni(form)) + api.deleteAccount(transformer.fromUni(form)) /** * Reset your password. * * @POST("user/password_reset") */ - override suspend fun resetPassword(form: it.vercruysse.lemmyapi.datatypes.PasswordReset): Result = - apiV18.passwordReset(transformer.fromUni(form)) + override suspend fun resetPassword(form: it.vercruysse.lemmyapi.datatypes.ResetPassword): Result = + api.passwordReset(transformer.fromUni(form)) /** * Change your password from an email / token based reset. * * @POST("user/password_change") */ - override suspend fun changePasswordAfterReset(form: it.vercruysse.lemmyapi.datatypes.PasswordChangeAfterReset): Result = - apiV18.passwordChangeAfterReset(transformer.fromUni(form)) + override suspend fun changePasswordAfterReset(form: it.vercruysse.lemmyapi.datatypes.ChangePasswordAfterReset): Result = + api.passwordChangeAfterReset(transformer.fromUni(form)) /** * Mark all replies as read. * * @POST("user/mark_all_as_read") */ - override suspend fun markAllAsRead(): Result = - apiV18.markAllAsRead(it.vercruysse.lemmyapi.v0.x18.x5.datatypes.MarkAllAsRead(auth ?: "")).map(transformer::toUni) + override suspend fun markAllNotificationsAsRead(): Result = + api.markAllAsRead(it.vercruysse.lemmyapi.v0.x18.x5.datatypes.MarkAllAsRead(auth ?: "")).map {} /** * Save your user settings. @@ -691,7 +759,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun saveUserSettings( form: it.vercruysse.lemmyapi.datatypes.SaveUserSettings, - ): Result = apiV18.saveUserSettings(transformer.fromUni(form)) + ): Result = api.saveUserSettings(transformer.fromUni(form)) /** * Change your user password. @@ -701,25 +769,23 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba override suspend fun changePassword( form: it.vercruysse.lemmyapi.datatypes.ChangePassword, ): Result = - apiV18.changePassword(transformer.fromUni(form)).map(transformer::toUni) - - /** - * Get counts for your reports - * - * @GET("user/report_count") - */ - override suspend fun getReportCount( - form: it.vercruysse.lemmyapi.datatypes.GetReportCount, - ): Result = - apiV18.getReportCount(transformer.fromUni(form)).map(transformer::toUni) + api.changePassword(transformer.fromUni(form)).map(transformer::toUni) /** * Get your unread counts * - * @GET("user/unread_count") */ - override suspend fun getUnreadCount(): Result = - apiV18.getUnreadCount(GetUnreadCount(auth ?: "")).map(transformer::toUni) + override suspend fun getUnreadCounts(): Result = runCatching { + val d = api.getUnreadCount(GetUnreadCount(auth ?: "")).getOrThrow() + val reportCount = api.getReportCount(GetReportCount(null, auth ?: "")).getOrNull() + val applicationCount = api.getUnreadRegistrationApplicationCount(GetUnreadRegistrationApplicationCount(auth ?: "")).getOrNull() + + UnreadCountsResponse( + notification_count = d.replies + d.mentions + d.private_messages, + report_count = (reportCount?.post_reports ?: 0L) + (reportCount?.comment_reports ?: 0L) + (reportCount?.comment_reports ?: 0L), + registration_application_count = applicationCount?.registration_applications, + ) + } /** * Verify your email @@ -727,7 +793,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba * @POST("user/verify_email") */ override suspend fun verifyEmail(form: it.vercruysse.lemmyapi.datatypes.VerifyEmail): Result = - apiV18.verifyEmail(transformer.fromUni(form)) + api.verifyEmail(transformer.fromUni(form)) /** * Leave the Site admins. @@ -735,7 +801,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba * @POST("user/leave_admin") */ override suspend fun leaveAdmin(): Result = - apiV18.leaveAdmin(it.vercruysse.lemmyapi.v0.x18.x5.datatypes.LeaveAdmin(auth ?: "")).map(transformer::toUni) + api.leaveAdmin(it.vercruysse.lemmyapi.v0.x18.x5.datatypes.LeaveAdmin(auth ?: "")).map(transformer::toUni) /** * Mark donation dialog as shown. @@ -752,17 +818,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba override suspend fun addAdmin( form: it.vercruysse.lemmyapi.datatypes.AddAdmin, ): Result = - apiV18.addAdmin(transformer.fromUni(form)).map(transformer::toUni) - - /** - * Get the unread registration applications count. - * - * @GET("admin/registration_application/count") - */ - override suspend fun getUnreadRegistrationApplicationCount(): Result = - apiV18.getUnreadRegistrationApplicationCount( - it.vercruysse.lemmyapi.v0.x18.x5.datatypes.GetUnreadRegistrationApplicationCount(auth ?: ""), - ).map(transformer::toUni) + api.addAdmin(transformer.fromUni(form)).map(transformer::toUni) /** * List the registration applications. @@ -771,8 +827,10 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun listRegistrationApplications( form: it.vercruysse.lemmyapi.datatypes.ListRegistrationApplications, - ): Result = - apiV18.listRegistrationApplications(transformer.fromUni(form)).map(transformer::toUni) + ): Result> = + api.listRegistrationApplications(transformer.fromUni(form)).map { resp -> + PagedResponse(resp.registration_applications.map(transformer::toUni)) + } /** * Approve a registration application @@ -782,7 +840,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba override suspend fun approveRegistrationApplication( form: it.vercruysse.lemmyapi.datatypes.ApproveRegistrationApplication, ): Result = - apiV18.approveRegistrationApplication(transformer.fromUni(form)).map(transformer::toUni) + api.approveRegistrationApplication(transformer.fromUni(form)).map(transformer::toUni) /** * Purge / Delete a person from the database. @@ -790,7 +848,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba * @POST("admin/purge/person") */ override suspend fun purgePerson(form: it.vercruysse.lemmyapi.datatypes.PurgePerson): Result = - apiV18.purgePerson(transformer.fromUni(form)) + api.purgePerson(transformer.fromUni(form)) /** * Purge / Delete a community from the database. @@ -798,7 +856,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba * @POST("admin/purge/community") */ override suspend fun purgeCommunity(form: it.vercruysse.lemmyapi.datatypes.PurgeCommunity): Result = - apiV18.purgeCommunity(transformer.fromUni(form)) + api.purgeCommunity(transformer.fromUni(form)) /** * Purge / Delete a post from the database. @@ -806,7 +864,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba * @POST("admin/purge/post") */ override suspend fun purgePost(form: it.vercruysse.lemmyapi.datatypes.PurgePost): Result = - apiV18.purgePost(transformer.fromUni(form)) + api.purgePost(transformer.fromUni(form)) /** * Purge / Delete a comment from the database. @@ -814,7 +872,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba * @POST("admin/purge/comment") */ override suspend fun purgeComment(form: it.vercruysse.lemmyapi.datatypes.PurgeComment): Result = - apiV18.purgeComment(transformer.fromUni(form)) + api.purgeComment(transformer.fromUni(form)) /** * Edit an existing custom emoji @@ -824,7 +882,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba override suspend fun editCustomEmoji( form: it.vercruysse.lemmyapi.datatypes.EditCustomEmoji, ): Result = - apiV18.editCustomEmoji(transformer.fromUni(form)).map(transformer::toUni) + api.editCustomEmoji(transformer.fromUni(form)).map(transformer::toUni) /** * Create a new custom emoji @@ -834,7 +892,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba override suspend fun createCustomEmoji( form: it.vercruysse.lemmyapi.datatypes.CreateCustomEmoji, ): Result = - apiV18.createCustomEmoji(transformer.fromUni(form)).map(transformer::toUni) + api.createCustomEmoji(transformer.fromUni(form)).map(transformer::toUni) /** * Delete a custom emoji @@ -843,18 +901,28 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun deleteCustomEmoji( form: it.vercruysse.lemmyapi.datatypes.DeleteCustomEmoji, - ): Result = apiV18.deleteCustomEmoji(transformer.fromUni(form)) + ): Result = api.deleteCustomEmoji(transformer.fromUni(form)) + + /** + * List custom emojis + * + * @GET("custom_emoji/list") + */ + override suspend fun listCustomEmojis(form: ListCustomEmojis): Result = + api.getSite(it.vercruysse.lemmyapi.v0.x18.x5.datatypes.GetSite(auth)).map { + ListCustomEmojisResponse(it.custom_emojis.map(transformer::toUni)) + } /** * Block an instance. * * @POST("site/block") */ - override suspend fun blockInstance( - form: it.vercruysse.lemmyapi.datatypes.BlockInstance, - ): Result = notSupported() + override suspend fun userBlockInstanceCommunities( + form: it.vercruysse.lemmyapi.datatypes.UserBlockInstanceCommunitiesParams, + ): Result = notSupported() - // TODO possible supported by using old logic, might not be worth the effort + // possible supported by using old logic, but not be worth the effort /** * Generate a TOTP / two-factor secret. @@ -874,9 +942,9 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba * * @POST("user/totp/update") */ - override suspend fun updateTotp( - form: it.vercruysse.lemmyapi.datatypes.UpdateTotp, - ): Result = notSupported() + override suspend fun editTotp( + form: it.vercruysse.lemmyapi.datatypes.EditTotp, + ): Result = notSupported() /** * Export a backup of your user settings, including your saved content, @@ -898,7 +966,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba * * @GET("user/list_logins") */ - override suspend fun listLogins(): Result> = notSupported() + override suspend fun listLogins(): Result = notSupported() /** * Returns an error message if your auth token is invalid @@ -907,7 +975,17 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun validateAuth(): Result = // This request can only fail if the auth token is invalid - apiV18.getPersonMentions(it.vercruysse.lemmyapi.v0.x18.x5.datatypes.GetPersonMentions(auth = auth ?: "")).map { } + api.getPersonMentions(it.vercruysse.lemmyapi.v0.x18.x5.datatypes.GetPersonMentions(auth = auth ?: "")).map { } + + /** + * Get data of current user + * + * @GET("/account") + */ + override suspend fun getMyUser(): Result = + api.getSite(it.vercruysse.lemmyapi.v0.x18.x5.datatypes.GetSite(auth)) + .mapCatching { it.my_user ?: throw IllegalStateException("Auth invalid") } + .map { transformer.toUni(it) } /** * Logout your user @@ -923,7 +1001,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun listPostLikes( form: it.vercruysse.lemmyapi.datatypes.ListPostLikes, - ): Result = notSupported() + ): Result> = notSupported() /** * List a comment's likes. Admin-only. @@ -932,7 +1010,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun listCommentLikes( form: it.vercruysse.lemmyapi.datatypes.ListCommentLikes, - ): Result = notSupported() + ): Result> = notSupported() /** * List all the media for your user @@ -941,23 +1019,25 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun listMedia( form: it.vercruysse.lemmyapi.datatypes.ListMedia, - ): Result = notSupported() + ): Result> = notSupported() /** * List all the media known to your instance. * * @GET("admin/list_all_media") */ - override suspend fun listAllMedia( + override suspend fun listMediaAdmin( form: it.vercruysse.lemmyapi.datatypes.ListMedia, - ): Result = notSupported() + ): Result> = notSupported() /** * Hide a post from list views. * * @POST("post/hide") */ - override suspend fun hidePost(form: it.vercruysse.lemmyapi.datatypes.HidePost): Result = notSupported() + override suspend fun hidePost(form: it.vercruysse.lemmyapi.datatypes.HidePost): Result = notSupported() + + override suspend fun hidePosts(form: it.vercruysse.lemmyapi.datatypes.HidePosts): Result = notSupported() /** * Get the application a user submitted when they first registered their account @@ -967,4 +1047,239 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba override suspend fun getRegistrationApplication( form: it.vercruysse.lemmyapi.datatypes.GetRegistrationApplication, ): Result = notSupported() + + /** + * List the content for a person. + * + * @GET("person/content") + */ + override suspend fun listPersonContent( + form: it.vercruysse.lemmyapi.datatypes.ListPersonContent, + ): Result> { + val getPersonDetailsForm = GetPersonDetails( + username = form.username, + person_id = form.person_id, + community_id = form.community_id, + page = form.page, + limit = form.limit, + auth = auth, + ) + return api.getPersonDetails(getPersonDetailsForm).map { response -> + val comments = when (form.type_) { + it.vercruysse.lemmyapi.enums.PersonContentType.Posts -> emptyList() + else -> response.comments.map { transformer.toUni(it) } + } + val posts = when (form.type_) { + it.vercruysse.lemmyapi.enums.PersonContentType.Comments -> emptyList() + else -> response.posts.map { transformer.toUni(it) } + } + PagedResponse(items = comments + posts) + } + } + + override suspend fun uploadImage(image: ByteArray): Result = + pictrsApi.uploadImage(image) + + override suspend fun uploadCommunityBanner( + image: ByteArray, + form: it.vercruysse.lemmyapi.datatypes.CommunityIdQuery, + ): Result = + uploadAndApplyImage(image) { imageUrl -> + api.editCommunity( + it.vercruysse.lemmyapi.v0.x18.x5.datatypes.EditCommunity( + community_id = form.id, + banner = imageUrl, + auth = auth ?: "", + ), + ).map {} + } + + override suspend fun uploadCommunityIcon( + image: ByteArray, + form: it.vercruysse.lemmyapi.datatypes.CommunityIdQuery, + ): Result = + uploadAndApplyImage(image) { imageUrl -> + api.editCommunity( + it.vercruysse.lemmyapi.v0.x18.x5.datatypes.EditCommunity( + community_id = form.id, + icon = imageUrl, + auth = auth ?: "", + ), + ).map {} + } + + override suspend fun uploadSiteBanner(image: ByteArray): Result = + uploadAndApplyImage(image) { imageUrl -> + api.editSite( + it.vercruysse.lemmyapi.v0.x18.x5.datatypes.EditSite( + banner = imageUrl, + auth = auth ?: "", + ), + ).map {} + } + + override suspend fun uploadSiteIcon(image: ByteArray): Result = + uploadAndApplyImage(image) { imageUrl -> + api.editSite( + it.vercruysse.lemmyapi.v0.x18.x5.datatypes.EditSite( + icon = imageUrl, + auth = auth ?: "", + ), + ).map {} + } + + override suspend fun uploadUserAvatar(image: ByteArray): Result = + uploadAndApplyImage(image) { imageUrl -> + api.saveUserSettings( + it.vercruysse.lemmyapi.v0.x18.x5.datatypes.SaveUserSettings( + avatar = imageUrl, + auth = auth ?: "", + ), + ) + } + + override suspend fun uploadUserBanner(image: ByteArray): Result = + uploadAndApplyImage(image) { imageUrl -> + api.saveUserSettings( + it.vercruysse.lemmyapi.v0.x18.x5.datatypes.SaveUserSettings( + banner = imageUrl, + auth = auth ?: "", + ), + ) + } + + override suspend fun deleteUserAvatar(): Result = + api.saveUserSettings(it.vercruysse.lemmyapi.v0.x18.x5.datatypes.SaveUserSettings(avatar = "", auth = auth ?: "")) + + override suspend fun deleteUserBanner(): Result = + api.saveUserSettings(it.vercruysse.lemmyapi.v0.x18.x5.datatypes.SaveUserSettings(banner = "", auth = auth ?: "")) + + override suspend fun deleteCommunityBanner(form: it.vercruysse.lemmyapi.datatypes.CommunityIdQuery): Result = + api.editCommunity( + it.vercruysse.lemmyapi.v0.x18.x5.datatypes.EditCommunity( + community_id = form.id, + banner = "", + auth = auth ?: "", + ), + ).map {} + + override suspend fun deleteCommunityIcon(form: it.vercruysse.lemmyapi.datatypes.CommunityIdQuery): Result = + api.editCommunity( + it.vercruysse.lemmyapi.v0.x18.x5.datatypes.EditCommunity( + community_id = form.id, + icon = "", + auth = auth ?: "", + ), + ).map {} + + override suspend fun deleteSiteBanner(): Result = + api.editSite( + it.vercruysse.lemmyapi.v0.x18.x5.datatypes.EditSite( + banner = "", + auth = auth ?: "", + ), + ).map {} + + override suspend fun deleteSiteIcon(): Result = + api.editSite( + it.vercruysse.lemmyapi.v0.x18.x5.datatypes.EditSite( + icon = "", + auth = auth ?: "", + ), + ).map {} + + override suspend fun deleteMedia(form: it.vercruysse.lemmyapi.datatypes.DeleteImageParams): Result = + pictrsApi.deleteMedia(form) + + override suspend fun adminListUsers(form: it.vercruysse.lemmyapi.datatypes.AdminListUsers): Result> = notSupported() + + override suspend fun getRandomCommunity(form: it.vercruysse.lemmyapi.datatypes.GetRandomCommunity): Result = notSupported() + + override suspend fun createCommunityReport(form: it.vercruysse.lemmyapi.datatypes.CreateCommunityReport): Result = notSupported() + + override suspend fun resolveCommunityReport(form: it.vercruysse.lemmyapi.datatypes.ResolveCommunityReport): Result = notSupported() + + override suspend fun createCommunityTag(form: it.vercruysse.lemmyapi.datatypes.CreateCommunityTag): Result = notSupported() + + override suspend fun editCommunityTag(form: it.vercruysse.lemmyapi.datatypes.EditCommunityTag): Result = notSupported() + + override suspend fun deleteCommunityTag(form: it.vercruysse.lemmyapi.datatypes.DeleteCommunityTag): Result = notSupported() + + override suspend fun editCommunityNotifications(form: it.vercruysse.lemmyapi.datatypes.EditCommunityNotifications): Result = notSupported() + + override suspend fun approveCommunityPendingFollow(form: it.vercruysse.lemmyapi.datatypes.ApproveCommunityPendingFollower): Result = notSupported() + + override suspend fun listCommunityPendingFollows(form: it.vercruysse.lemmyapi.datatypes.ListCommunityPendingFollows): Result> = notSupported() + + override suspend fun modEditPost(form: it.vercruysse.lemmyapi.datatypes.ModEditPost): Result = notSupported() + + override suspend fun editPostNotifications(form: it.vercruysse.lemmyapi.datatypes.EditPostNotifications): Result = notSupported() + + override suspend fun warnPost(form: it.vercruysse.lemmyapi.datatypes.CreatePostWarning): Result = notSupported() + + override suspend fun getCommentsSlim(form: it.vercruysse.lemmyapi.datatypes.GetComments): Result> = notSupported() + + override suspend fun lockComment(form: it.vercruysse.lemmyapi.datatypes.LockComment): Result = notSupported() + + override suspend fun warnComment(form: it.vercruysse.lemmyapi.datatypes.CreateCommentWarning): Result = notSupported() + + override suspend fun notePerson(form: it.vercruysse.lemmyapi.datatypes.NotePerson): Result = notSupported() + + override suspend fun listPersonSaved(form: it.vercruysse.lemmyapi.datatypes.ListPersonSaved): Result> = notSupported() + + override suspend fun listPersonRead(form: it.vercruysse.lemmyapi.datatypes.ListPersonRead): Result> = notSupported() + + override suspend fun listPersonHidden(form: it.vercruysse.lemmyapi.datatypes.ListPersonHidden): Result> = notSupported() + + override suspend fun listPersonLiked(form: it.vercruysse.lemmyapi.datatypes.ListPersonLiked): Result> = notSupported() + + override suspend fun resendVerificationEmail(form: it.vercruysse.lemmyapi.datatypes.ResendVerificationEmail): Result = notSupported() + + override suspend fun authenticateWithOAuth(form: it.vercruysse.lemmyapi.datatypes.AuthenticateWithOauth): Result = notSupported() + + override suspend fun userBlockInstancePersons(form: it.vercruysse.lemmyapi.datatypes.UserBlockInstancePersonsParams): Result = notSupported() + + override suspend fun adminAllowInstance(form: it.vercruysse.lemmyapi.datatypes.AdminAllowInstanceParams): Result = notSupported() + + override suspend fun adminBlockInstance(form: it.vercruysse.lemmyapi.datatypes.AdminBlockInstanceParams): Result = notSupported() + + override suspend fun createTagline(form: it.vercruysse.lemmyapi.datatypes.CreateTagline): Result = notSupported() + + override suspend fun editTagline(form: it.vercruysse.lemmyapi.datatypes.EditTagline): Result = notSupported() + + override suspend fun deleteTagline(form: it.vercruysse.lemmyapi.datatypes.DeleteTagline): Result = notSupported() + + override suspend fun listTaglines(form: it.vercruysse.lemmyapi.datatypes.ListTaglines): Result> = notSupported() + + override suspend fun createOAuthProvider(form: it.vercruysse.lemmyapi.datatypes.CreateOAuthProvider): Result = notSupported() + + override suspend fun editOAuthProvider(form: it.vercruysse.lemmyapi.datatypes.EditOAuthProvider): Result = notSupported() + + override suspend fun deleteOAuthProvider(form: it.vercruysse.lemmyapi.datatypes.DeleteOAuthProvider): Result = notSupported() + + override suspend fun getMultiCommunity(form: it.vercruysse.lemmyapi.datatypes.GetMultiCommunity): Result = notSupported() + + override suspend fun createMultiCommunity(form: it.vercruysse.lemmyapi.datatypes.CreateMultiCommunity): Result = notSupported() + + override suspend fun editMultiCommunity(form: it.vercruysse.lemmyapi.datatypes.EditMultiCommunity): Result = notSupported() + + override suspend fun createMultiCommunityEntry(form: it.vercruysse.lemmyapi.datatypes.CreateOrDeleteMultiCommunityEntry): Result = notSupported() + + override suspend fun deleteMultiCommunityEntry(form: it.vercruysse.lemmyapi.datatypes.CreateOrDeleteMultiCommunityEntry): Result = notSupported() + + override suspend fun followMultiCommunity(form: it.vercruysse.lemmyapi.datatypes.FollowMultiCommunity): Result = notSupported() + + override suspend fun listMultiCommunities(form: it.vercruysse.lemmyapi.datatypes.ListMultiCommunities): Result> = notSupported() + + override suspend fun deleteMediaAdmin(form: it.vercruysse.lemmyapi.datatypes.DeleteImageParams): Result = notSupported() + + override suspend fun imageHealth(): Result = notSupported() + + override suspend fun listPersons(form: it.vercruysse.lemmyapi.datatypes.ListPersons): Result> = notSupported() + + override suspend fun createRegistrationInvitation(form: it.vercruysse.lemmyapi.datatypes.CreateInvitation): Result = notSupported() + + override suspend fun revokeRegistrationInvitation(form: it.vercruysse.lemmyapi.datatypes.RevokeInvitation): Result = notSupported() + + override suspend fun listRegistrationInvitations(form: it.vercruysse.lemmyapi.datatypes.ListInvitations): Result> = notSupported() } diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/MapperGenerator.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/MapperGenerator.kt index c662470b..88da1f03 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/MapperGenerator.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/MapperGenerator.kt @@ -9,28 +9,14 @@ internal interface MapperGenerator { fun toUni(d: LocalSiteRateLimit): it.vercruysse.lemmyapi.datatypes.LocalSiteRateLimit - fun toUni(d: CommentReplyView): it.vercruysse.lemmyapi.datatypes.CommentReplyView - fun toUni(d: CommentReportView): it.vercruysse.lemmyapi.datatypes.CommentReportView fun toUni(d: CommentView): it.vercruysse.lemmyapi.datatypes.CommentView - fun toUni(d: Community): it.vercruysse.lemmyapi.datatypes.Community - - fun toUni(d: CommunityAggregates): it.vercruysse.lemmyapi.datatypes.CommunityAggregates + fun toUni(d: Community, counts: CommunityAggregates): it.vercruysse.lemmyapi.datatypes.Community fun toUni(d: CommunityView): it.vercruysse.lemmyapi.datatypes.CommunityView - fun toUniF(d: Instance): it.vercruysse.lemmyapi.datatypes.InstanceWithFederationState = - it.vercruysse.lemmyapi.datatypes.InstanceWithFederationState( - id = d.id, - domain = d.domain, - published = d.published, - updated = d.updated, - software = d.software, - version = d.version, - ) - fun toUni(d: SiteMetadata): it.vercruysse.lemmyapi.datatypes.LinkMetadata = it.vercruysse.lemmyapi.datatypes.LinkMetadata( title = d.title, @@ -41,9 +27,7 @@ internal interface MapperGenerator { fun toUni(d: GetSiteResponse): it.vercruysse.lemmyapi.datatypes.GetSiteResponse - fun toUni(d: LocalSite): it.vercruysse.lemmyapi.datatypes.LocalSite - - fun toUni(d: PersonMentionView): it.vercruysse.lemmyapi.datatypes.PersonMentionView + fun toUni(d: LocalSite, counts: SiteAggregates): it.vercruysse.lemmyapi.datatypes.LocalSite fun toUni(d: PersonView, is_admin: Boolean = false): it.vercruysse.lemmyapi.datatypes.PersonView @@ -54,31 +38,15 @@ internal interface MapperGenerator { fun toUni(d: AddAdminResponse): it.vercruysse.lemmyapi.datatypes.AddAdminResponse fun toUni(d: AddModToCommunityResponse): it.vercruysse.lemmyapi.datatypes.AddModToCommunityResponse - fun toUni(d: AdminPurgeComment): it.vercruysse.lemmyapi.datatypes.AdminPurgeComment - fun toUni(d: AdminPurgeCommentView): it.vercruysse.lemmyapi.datatypes.AdminPurgeCommentView - fun toUni(d: AdminPurgeCommunity): it.vercruysse.lemmyapi.datatypes.AdminPurgeCommunity - fun toUni(d: AdminPurgeCommunityView): it.vercruysse.lemmyapi.datatypes.AdminPurgeCommunityView - fun toUni(d: AdminPurgePerson): it.vercruysse.lemmyapi.datatypes.AdminPurgePerson - fun toUni(d: AdminPurgePersonView): it.vercruysse.lemmyapi.datatypes.AdminPurgePersonView - fun toUni(d: AdminPurgePost): it.vercruysse.lemmyapi.datatypes.AdminPurgePost - fun toUni(d: AdminPurgePostView): it.vercruysse.lemmyapi.datatypes.AdminPurgePostView - fun toUni(d: BanFromCommunityResponse): it.vercruysse.lemmyapi.datatypes.BanFromCommunityResponse - fun toUni(d: BannedPersonsResponse): it.vercruysse.lemmyapi.datatypes.BannedPersonsResponse - fun toUni(d: BanPersonResponse): it.vercruysse.lemmyapi.datatypes.BanPersonResponse - fun toUni(d: BlockCommunityResponse): it.vercruysse.lemmyapi.datatypes.BlockCommunityResponse - fun toUni(d: BlockPersonResponse): it.vercruysse.lemmyapi.datatypes.BlockPersonResponse + fun toUni(d: BanFromCommunityResponse): it.vercruysse.lemmyapi.datatypes.PersonResponse fun toUni(d: CaptchaResponse): it.vercruysse.lemmyapi.datatypes.CaptchaResponse - fun toUni(d: Comment): it.vercruysse.lemmyapi.datatypes.Comment - fun toUni(d: CommentAggregates): it.vercruysse.lemmyapi.datatypes.CommentAggregates - fun toUni(d: CommentReply): it.vercruysse.lemmyapi.datatypes.CommentReply - fun toUni(d: CommentReplyResponse): it.vercruysse.lemmyapi.datatypes.CommentReplyResponse + fun toUni(d: Comment, counts: CommentAggregates): it.vercruysse.lemmyapi.datatypes.Comment fun toUni(d: CommentReport): it.vercruysse.lemmyapi.datatypes.CommentReport fun toUni(d: CommentReportResponse): it.vercruysse.lemmyapi.datatypes.CommentReportResponse fun toUni(d: CommentResponse): it.vercruysse.lemmyapi.datatypes.CommentResponse - fun toUni(d: CommunityBlockView): it.vercruysse.lemmyapi.datatypes.CommunityBlockView fun toUni(d: CommunityFollowerView): it.vercruysse.lemmyapi.datatypes.CommunityFollowerView fun toUni(d: CommunityModeratorView): it.vercruysse.lemmyapi.datatypes.CommunityModeratorView fun toUni(d: CommunityResponse): it.vercruysse.lemmyapi.datatypes.CommunityResponse @@ -87,65 +55,20 @@ internal interface MapperGenerator { fun toUni(d: CustomEmojiKeyword): it.vercruysse.lemmyapi.datatypes.CustomEmojiKeyword fun toUni(d: CustomEmojiResponse): it.vercruysse.lemmyapi.datatypes.CustomEmojiResponse fun toUni(d: CustomEmojiView): it.vercruysse.lemmyapi.datatypes.CustomEmojiView - fun toUni(d: FederatedInstances): it.vercruysse.lemmyapi.datatypes.FederatedInstances fun toUni(d: GetCaptchaResponse): it.vercruysse.lemmyapi.datatypes.GetCaptchaResponse - fun toUni(d: GetCommentsResponse): it.vercruysse.lemmyapi.datatypes.GetCommentsResponse fun toUni(d: GetCommunityResponse): it.vercruysse.lemmyapi.datatypes.GetCommunityResponse - fun toUni(d: GetFederatedInstancesResponse): it.vercruysse.lemmyapi.datatypes.GetFederatedInstancesResponse - fun toUni(d: GetModlogResponse): it.vercruysse.lemmyapi.datatypes.GetModlogResponse fun toUni(d: GetPersonDetailsResponse): it.vercruysse.lemmyapi.datatypes.GetPersonDetailsResponse - fun toUni(d: GetPersonMentionsResponse): it.vercruysse.lemmyapi.datatypes.GetPersonMentionsResponse fun toUni(d: GetPostResponse): it.vercruysse.lemmyapi.datatypes.GetPostResponse - fun toUni(d: GetPostsResponse): it.vercruysse.lemmyapi.datatypes.GetPostsResponse - fun toUni(d: GetRepliesResponse): it.vercruysse.lemmyapi.datatypes.GetRepliesResponse - fun toUni(d: GetReportCountResponse): it.vercruysse.lemmyapi.datatypes.GetReportCountResponse fun toUni(d: GetSiteMetadataResponse): it.vercruysse.lemmyapi.datatypes.GetSiteMetadataResponse - fun toUni(d: GetUnreadCountResponse): it.vercruysse.lemmyapi.datatypes.GetUnreadCountResponse - fun toUni( - d: GetUnreadRegistrationApplicationCountResponse, - ): it.vercruysse.lemmyapi.datatypes.GetUnreadRegistrationApplicationCountResponse fun toUni(d: Instance): it.vercruysse.lemmyapi.datatypes.Instance fun toUni(d: Language): it.vercruysse.lemmyapi.datatypes.Language - fun toUni(d: ListCommentReportsResponse): it.vercruysse.lemmyapi.datatypes.ListCommentReportsResponse - fun toUni(d: ListCommunitiesResponse): it.vercruysse.lemmyapi.datatypes.ListCommunitiesResponse - fun toUni(d: ListPostReportsResponse): it.vercruysse.lemmyapi.datatypes.ListPostReportsResponse - fun toUni(d: ListPrivateMessageReportsResponse): it.vercruysse.lemmyapi.datatypes.ListPrivateMessageReportsResponse - fun toUni(d: ListRegistrationApplicationsResponse): it.vercruysse.lemmyapi.datatypes.ListRegistrationApplicationsResponse fun toUni(d: LocalUserView): it.vercruysse.lemmyapi.datatypes.LocalUserView fun toUni(d: LoginResponse): it.vercruysse.lemmyapi.datatypes.LoginResponse - fun toUni(d: ModAdd): it.vercruysse.lemmyapi.datatypes.ModAdd - fun toUni(d: ModAddCommunity): it.vercruysse.lemmyapi.datatypes.ModAddCommunity - fun toUni(d: ModAddCommunityView): it.vercruysse.lemmyapi.datatypes.ModAddCommunityView - fun toUni(d: ModAddView): it.vercruysse.lemmyapi.datatypes.ModAddView - fun toUni(d: ModBan): it.vercruysse.lemmyapi.datatypes.ModBan - fun toUni(d: ModBanFromCommunity): it.vercruysse.lemmyapi.datatypes.ModBanFromCommunity - fun toUni(d: ModBanFromCommunityView): it.vercruysse.lemmyapi.datatypes.ModBanFromCommunityView - fun toUni(d: ModBanView): it.vercruysse.lemmyapi.datatypes.ModBanView - fun toUni(d: ModFeaturePost): it.vercruysse.lemmyapi.datatypes.ModFeaturePost - fun toUni(d: ModFeaturePostView): it.vercruysse.lemmyapi.datatypes.ModFeaturePostView - fun toUni(d: ModHideCommunity): it.vercruysse.lemmyapi.datatypes.ModHideCommunity - fun toUni(d: ModHideCommunityView): it.vercruysse.lemmyapi.datatypes.ModHideCommunityView - fun toUni(d: ModLockPost): it.vercruysse.lemmyapi.datatypes.ModLockPost - fun toUni(d: ModLockPostView): it.vercruysse.lemmyapi.datatypes.ModLockPostView - fun toUni(d: ModlogListParams): it.vercruysse.lemmyapi.datatypes.ModlogListParams - fun toUni(d: ModRemoveComment): it.vercruysse.lemmyapi.datatypes.ModRemoveComment - fun toUni(d: ModRemoveCommentView): it.vercruysse.lemmyapi.datatypes.ModRemoveCommentView - fun toUni(d: ModRemoveCommunity): it.vercruysse.lemmyapi.datatypes.ModRemoveCommunity - fun toUni(d: ModRemoveCommunityView): it.vercruysse.lemmyapi.datatypes.ModRemoveCommunityView - fun toUni(d: ModRemovePost): it.vercruysse.lemmyapi.datatypes.ModRemovePost - fun toUni(d: ModRemovePostView): it.vercruysse.lemmyapi.datatypes.ModRemovePostView - fun toUni(d: ModTransferCommunity): it.vercruysse.lemmyapi.datatypes.ModTransferCommunity - fun toUni(d: ModTransferCommunityView): it.vercruysse.lemmyapi.datatypes.ModTransferCommunityView - fun toUni(d: Person): it.vercruysse.lemmyapi.datatypes.Person - fun toUni(d: PersonAggregates): it.vercruysse.lemmyapi.datatypes.PersonAggregates - fun toUni(d: PersonBlockView): it.vercruysse.lemmyapi.datatypes.PersonBlockView - fun toUni(d: PersonMention): it.vercruysse.lemmyapi.datatypes.PersonMention - fun toUni(d: PersonMentionResponse): it.vercruysse.lemmyapi.datatypes.PersonMentionResponse - - fun toUni(d: Post): it.vercruysse.lemmyapi.datatypes.Post - fun toUni(d: PostAggregates): it.vercruysse.lemmyapi.datatypes.PostAggregates + fun toUni(d: Person, counts: PersonAggregates): it.vercruysse.lemmyapi.datatypes.Person + + fun toUni(d: Post, counts: PostAggregates): it.vercruysse.lemmyapi.datatypes.Post fun toUni(d: PostReport): it.vercruysse.lemmyapi.datatypes.PostReport fun toUni(d: PostReportResponse): it.vercruysse.lemmyapi.datatypes.PostReportResponse @@ -156,15 +79,13 @@ internal interface MapperGenerator { fun toUni(d: PrivateMessageReportResponse): it.vercruysse.lemmyapi.datatypes.PrivateMessageReportResponse fun toUni(d: PrivateMessageReportView): it.vercruysse.lemmyapi.datatypes.PrivateMessageReportView fun toUni(d: PrivateMessageResponse): it.vercruysse.lemmyapi.datatypes.PrivateMessageResponse - fun toUni(d: PrivateMessagesResponse): it.vercruysse.lemmyapi.datatypes.PrivateMessagesResponse fun toUni(d: PrivateMessageView): it.vercruysse.lemmyapi.datatypes.PrivateMessageView fun toUni(d: RegistrationApplication): it.vercruysse.lemmyapi.datatypes.RegistrationApplication fun toUni(d: RegistrationApplicationResponse): it.vercruysse.lemmyapi.datatypes.RegistrationApplicationResponse fun toUni(d: RegistrationApplicationView): it.vercruysse.lemmyapi.datatypes.RegistrationApplicationView - fun toUni(d: ResolveObjectResponse): it.vercruysse.lemmyapi.datatypes.ResolveObjectResponse + fun toUni(d: ResolveObjectResponse): it.vercruysse.lemmyapi.datatypes.SearchResponse fun toUni(d: SearchResponse): it.vercruysse.lemmyapi.datatypes.SearchResponse fun toUni(d: Site): it.vercruysse.lemmyapi.datatypes.Site - fun toUni(d: SiteAggregates): it.vercruysse.lemmyapi.datatypes.SiteAggregates fun toUni(d: SiteResponse): it.vercruysse.lemmyapi.datatypes.SiteResponse fun toUni(d: SiteView): it.vercruysse.lemmyapi.datatypes.SiteView fun toUni(d: Tagline): it.vercruysse.lemmyapi.datatypes.Tagline @@ -249,41 +170,29 @@ internal interface MapperGenerator { fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPersonDetails): GetPersonDetails - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPersonMentions): GetPersonMentions - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPost): GetPost fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPosts): GetPosts - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPrivateMessages): GetPrivateMessages - - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetReplies): GetReplies - - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetReportCount): GetReportCount fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetSiteMetadata): GetSiteMetadata fun fromUni(d: it.vercruysse.lemmyapi.datatypes.HideCommunity): HideCommunity - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListCommentReports): ListCommentReports + fun fromUniC(d: it.vercruysse.lemmyapi.datatypes.ListReports): ListCommentReports fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListCommunities): ListCommunities - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListPostReports): ListPostReports + fun fromUniP(d: it.vercruysse.lemmyapi.datatypes.ListReports): ListPostReports - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListPrivateMessageReports): ListPrivateMessageReports + fun fromUniPm(d: it.vercruysse.lemmyapi.datatypes.ListReports): ListPrivateMessageReports fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListRegistrationApplications): ListRegistrationApplications fun fromUni(d: it.vercruysse.lemmyapi.datatypes.LockPost): LockPost fun fromUni(d: it.vercruysse.lemmyapi.datatypes.Login): Login - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.MarkCommentReplyAsRead): MarkCommentReplyAsRead - - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.MarkPersonMentionAsRead): MarkPersonMentionAsRead - - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.MarkPrivateMessageAsRead): MarkPrivateMessageAsRead - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PasswordChangeAfterReset): PasswordChangeAfterReset - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PasswordReset): PasswordReset + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ChangePasswordAfterReset): PasswordChangeAfterReset + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ResetPassword): PasswordReset fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PurgeComment): PurgeComment diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/Transformer.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/Transformer.kt index e5426400..4cf0043c 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/Transformer.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/Transformer.kt @@ -1,50 +1,42 @@ package it.vercruysse.lemmyapi.v0.x18.x5 -import it.vercruysse.lemmyapi.datatypes.InstanceWithFederationState -import it.vercruysse.lemmyapi.datatypes.LinkMetadata -import it.vercruysse.lemmyapi.dto.CommunityVisibility -import it.vercruysse.lemmyapi.dto.PostListingMode -import it.vercruysse.lemmyapi.dto.SortType -import it.vercruysse.lemmyapi.dto.SubscribedType +import it.vercruysse.lemmyapi.datatypes.CommentActions +import it.vercruysse.lemmyapi.datatypes.CommunityActions +import it.vercruysse.lemmyapi.datatypes.MarkNotificationAsRead +import it.vercruysse.lemmyapi.datatypes.Notification +import it.vercruysse.lemmyapi.datatypes.NotificationView +import it.vercruysse.lemmyapi.datatypes.PersonActions +import it.vercruysse.lemmyapi.datatypes.PostActions +import it.vercruysse.lemmyapi.enums.CommentSortType +import it.vercruysse.lemmyapi.enums.CommunityFollowerState +import it.vercruysse.lemmyapi.enums.CommunityVisibility +import it.vercruysse.lemmyapi.enums.FederationMode +import it.vercruysse.lemmyapi.enums.ImageMode +import it.vercruysse.lemmyapi.enums.NotificationType +import it.vercruysse.lemmyapi.enums.PostListingMode +import it.vercruysse.lemmyapi.enums.SortType +import it.vercruysse.lemmyapi.enums.VoteShow +import it.vercruysse.lemmyapi.utils.toAt import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.LocalUser -import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.SiteMetadata import it.vercruysse.lemmyapi.datatypes.AddAdmin as LemmyapiDatatypesAddAdmin import it.vercruysse.lemmyapi.datatypes.AddAdminResponse as LemmyapiDatatypesAddAdminResponse import it.vercruysse.lemmyapi.datatypes.AddModToCommunity as LemmyapiDatatypesAddModToCommunity import it.vercruysse.lemmyapi.datatypes.AddModToCommunityResponse as LemmyapiDatatypesAddModToCommunityResponse -import it.vercruysse.lemmyapi.datatypes.AdminPurgeComment as LemmyapiDatatypesAdminPurgeComment -import it.vercruysse.lemmyapi.datatypes.AdminPurgeCommentView as LemmyapiDatatypesAdminPurgeCommentView -import it.vercruysse.lemmyapi.datatypes.AdminPurgeCommunity as LemmyapiDatatypesAdminPurgeCommunity -import it.vercruysse.lemmyapi.datatypes.AdminPurgeCommunityView as LemmyapiDatatypesAdminPurgeCommunityView -import it.vercruysse.lemmyapi.datatypes.AdminPurgePerson as LemmyapiDatatypesAdminPurgePerson -import it.vercruysse.lemmyapi.datatypes.AdminPurgePersonView as LemmyapiDatatypesAdminPurgePersonView -import it.vercruysse.lemmyapi.datatypes.AdminPurgePost as LemmyapiDatatypesAdminPurgePost -import it.vercruysse.lemmyapi.datatypes.AdminPurgePostView as LemmyapiDatatypesAdminPurgePostView import it.vercruysse.lemmyapi.datatypes.ApproveRegistrationApplication as LemmyapiDatatypesApproveRegistrationApplication import it.vercruysse.lemmyapi.datatypes.BanFromCommunity as LemmyapiDatatypesBanFromCommunity -import it.vercruysse.lemmyapi.datatypes.BanFromCommunityResponse as LemmyapiDatatypesBanFromCommunityResponse import it.vercruysse.lemmyapi.datatypes.BanPerson as LemmyapiDatatypesBanPerson -import it.vercruysse.lemmyapi.datatypes.BanPersonResponse as LemmyapiDatatypesBanPersonResponse -import it.vercruysse.lemmyapi.datatypes.BannedPersonsResponse as LemmyapiDatatypesBannedPersonsResponse import it.vercruysse.lemmyapi.datatypes.BlockCommunity as LemmyapiDatatypesBlockCommunity -import it.vercruysse.lemmyapi.datatypes.BlockCommunityResponse as LemmyapiDatatypesBlockCommunityResponse import it.vercruysse.lemmyapi.datatypes.BlockPerson as LemmyapiDatatypesBlockPerson -import it.vercruysse.lemmyapi.datatypes.BlockPersonResponse as LemmyapiDatatypesBlockPersonResponse import it.vercruysse.lemmyapi.datatypes.CaptchaResponse as LemmyapiDatatypesCaptchaResponse import it.vercruysse.lemmyapi.datatypes.ChangePassword as LemmyapiDatatypesChangePassword +import it.vercruysse.lemmyapi.datatypes.ChangePasswordAfterReset as LemmyapiDatatypesPasswordChangeAfterReset import it.vercruysse.lemmyapi.datatypes.Comment as LemmyapiDatatypesComment -import it.vercruysse.lemmyapi.datatypes.CommentAggregates as LemmyapiDatatypesCommentAggregates -import it.vercruysse.lemmyapi.datatypes.CommentReply as LemmyapiDatatypesCommentReply -import it.vercruysse.lemmyapi.datatypes.CommentReplyResponse as LemmyapiDatatypesCommentReplyResponse -import it.vercruysse.lemmyapi.datatypes.CommentReplyView as LemmyapiDatatypesCommentReplyView import it.vercruysse.lemmyapi.datatypes.CommentReport as LemmyapiDatatypesCommentReport import it.vercruysse.lemmyapi.datatypes.CommentReportResponse as LemmyapiDatatypesCommentReportResponse import it.vercruysse.lemmyapi.datatypes.CommentReportView as LemmyapiDatatypesCommentReportView import it.vercruysse.lemmyapi.datatypes.CommentResponse as LemmyapiDatatypesCommentResponse import it.vercruysse.lemmyapi.datatypes.CommentView as LemmyapiDatatypesCommentView import it.vercruysse.lemmyapi.datatypes.Community as LemmyapiDatatypesCommunity -import it.vercruysse.lemmyapi.datatypes.CommunityAggregates as LemmyapiDatatypesCommunityAggregates -import it.vercruysse.lemmyapi.datatypes.CommunityBlockView as LemmyapiDatatypesCommunityBlockView import it.vercruysse.lemmyapi.datatypes.CommunityFollowerView as LemmyapiDatatypesCommunityFollowerView import it.vercruysse.lemmyapi.datatypes.CommunityModeratorView as LemmyapiDatatypesCommunityModeratorView import it.vercruysse.lemmyapi.datatypes.CommunityResponse as LemmyapiDatatypesCommunityResponse @@ -78,48 +70,28 @@ import it.vercruysse.lemmyapi.datatypes.EditPost as LemmyapiDatatypesEditPost import it.vercruysse.lemmyapi.datatypes.EditPrivateMessage as LemmyapiDatatypesEditPrivateMessage import it.vercruysse.lemmyapi.datatypes.EditSite as LemmyapiDatatypesEditSite import it.vercruysse.lemmyapi.datatypes.FeaturePost as LemmyapiDatatypesFeaturePost -import it.vercruysse.lemmyapi.datatypes.FederatedInstances as LemmyapiDatatypesFederatedInstances import it.vercruysse.lemmyapi.datatypes.FollowCommunity as LemmyapiDatatypesFollowCommunity import it.vercruysse.lemmyapi.datatypes.GetCaptchaResponse as LemmyapiDatatypesGetCaptchaResponse import it.vercruysse.lemmyapi.datatypes.GetComment as LemmyapiDatatypesGetComment import it.vercruysse.lemmyapi.datatypes.GetComments as LemmyapiDatatypesGetComments -import it.vercruysse.lemmyapi.datatypes.GetCommentsResponse as LemmyapiDatatypesGetCommentsResponse import it.vercruysse.lemmyapi.datatypes.GetCommunity as LemmyapiDatatypesGetCommunity import it.vercruysse.lemmyapi.datatypes.GetCommunityResponse as LemmyapiDatatypesGetCommunityResponse -import it.vercruysse.lemmyapi.datatypes.GetFederatedInstancesResponse as LemmyapiDatatypesGetFederatedInstancesResponse import it.vercruysse.lemmyapi.datatypes.GetModlog as LemmyapiDatatypesGetModlog -import it.vercruysse.lemmyapi.datatypes.GetModlogResponse as LemmyapiDatatypesGetModlogResponse import it.vercruysse.lemmyapi.datatypes.GetPersonDetails as LemmyapiDatatypesGetPersonDetails import it.vercruysse.lemmyapi.datatypes.GetPersonDetailsResponse as LemmyapiDatatypesGetPersonDetailsResponse -import it.vercruysse.lemmyapi.datatypes.GetPersonMentions as LemmyapiDatatypesGetPersonMentions -import it.vercruysse.lemmyapi.datatypes.GetPersonMentionsResponse as LemmyapiDatatypesGetPersonMentionsResponse import it.vercruysse.lemmyapi.datatypes.GetPost as LemmyapiDatatypesGetPost import it.vercruysse.lemmyapi.datatypes.GetPostResponse as LemmyapiDatatypesGetPostResponse import it.vercruysse.lemmyapi.datatypes.GetPosts as LemmyapiDatatypesGetPosts -import it.vercruysse.lemmyapi.datatypes.GetPostsResponse as LemmyapiDatatypesGetPostsResponse -import it.vercruysse.lemmyapi.datatypes.GetPrivateMessages as LemmyapiDatatypesGetPrivateMessages -import it.vercruysse.lemmyapi.datatypes.GetReplies as LemmyapiDatatypesGetReplies -import it.vercruysse.lemmyapi.datatypes.GetRepliesResponse as LemmyapiDatatypesGetRepliesResponse -import it.vercruysse.lemmyapi.datatypes.GetReportCount as LemmyapiDatatypesGetReportCount -import it.vercruysse.lemmyapi.datatypes.GetReportCountResponse as LemmyapiDatatypesGetReportCountResponse import it.vercruysse.lemmyapi.datatypes.GetSiteMetadata as LemmyapiDatatypesGetSiteMetadata import it.vercruysse.lemmyapi.datatypes.GetSiteMetadataResponse as LemmyapiDatatypesGetSiteMetadataResponse import it.vercruysse.lemmyapi.datatypes.GetSiteResponse as LemmyapiDatatypesGetSiteResponse -import it.vercruysse.lemmyapi.datatypes.GetUnreadCountResponse as LemmyapiDatatypesGetUnreadCountResponse -import it.vercruysse.lemmyapi.datatypes.GetUnreadRegistrationApplicationCountResponse as LemmyapiDatatypesGetUnreadRegistrationApplicationCountResponse import it.vercruysse.lemmyapi.datatypes.HideCommunity as LemmyapiDatatypesHideCommunity import it.vercruysse.lemmyapi.datatypes.Instance as LemmyapiDatatypesInstance import it.vercruysse.lemmyapi.datatypes.Language as LemmyapiDatatypesLanguage -import it.vercruysse.lemmyapi.datatypes.ListCommentReports as LemmyapiDatatypesListCommentReports -import it.vercruysse.lemmyapi.datatypes.ListCommentReportsResponse as LemmyapiDatatypesListCommentReportsResponse import it.vercruysse.lemmyapi.datatypes.ListCommunities as LemmyapiDatatypesListCommunities -import it.vercruysse.lemmyapi.datatypes.ListCommunitiesResponse as LemmyapiDatatypesListCommunitiesResponse -import it.vercruysse.lemmyapi.datatypes.ListPostReports as LemmyapiDatatypesListPostReports -import it.vercruysse.lemmyapi.datatypes.ListPostReportsResponse as LemmyapiDatatypesListPostReportsResponse -import it.vercruysse.lemmyapi.datatypes.ListPrivateMessageReports as LemmyapiDatatypesListPrivateMessageReports -import it.vercruysse.lemmyapi.datatypes.ListPrivateMessageReportsResponse as LemmyapiDatatypesListPrivateMessageReportsResponse +import it.vercruysse.lemmyapi.datatypes.ListNotifications as LemmyapiDatatypesListNotifications import it.vercruysse.lemmyapi.datatypes.ListRegistrationApplications as LemmyapiDatatypesListRegistrationApplications -import it.vercruysse.lemmyapi.datatypes.ListRegistrationApplicationsResponse as LemmyapiDatatypesListRegistrationApplicationsResponse +import it.vercruysse.lemmyapi.datatypes.ListReports as LemmyapiDatatypesListReports import it.vercruysse.lemmyapi.datatypes.LocalSite as LemmyapiDatatypesLocalSite import it.vercruysse.lemmyapi.datatypes.LocalSiteRateLimit as LemmyapiDatatypesLocalSiteRateLimit import it.vercruysse.lemmyapi.datatypes.LocalUser as LemmyapiDatatypesLocalUser @@ -127,44 +99,11 @@ import it.vercruysse.lemmyapi.datatypes.LocalUserView as LemmyapiDatatypesLocalU import it.vercruysse.lemmyapi.datatypes.LockPost as LemmyapiDatatypesLockPost import it.vercruysse.lemmyapi.datatypes.Login as LemmyapiDatatypesLogin import it.vercruysse.lemmyapi.datatypes.LoginResponse as LemmyapiDatatypesLoginResponse -import it.vercruysse.lemmyapi.datatypes.MarkCommentReplyAsRead as LemmyapiDatatypesMarkCommentReplyAsRead -import it.vercruysse.lemmyapi.datatypes.MarkPersonMentionAsRead as LemmyapiDatatypesMarkPersonMentionAsRead -import it.vercruysse.lemmyapi.datatypes.MarkPrivateMessageAsRead as LemmyapiDatatypesMarkPrivateMessageAsRead -import it.vercruysse.lemmyapi.datatypes.ModAdd as LemmyapiDatatypesModAdd -import it.vercruysse.lemmyapi.datatypes.ModAddCommunity as LemmyapiDatatypesModAddCommunity -import it.vercruysse.lemmyapi.datatypes.ModAddCommunityView as LemmyapiDatatypesModAddCommunityView -import it.vercruysse.lemmyapi.datatypes.ModAddView as LemmyapiDatatypesModAddView -import it.vercruysse.lemmyapi.datatypes.ModBan as LemmyapiDatatypesModBan -import it.vercruysse.lemmyapi.datatypes.ModBanFromCommunity as LemmyapiDatatypesModBanFromCommunity -import it.vercruysse.lemmyapi.datatypes.ModBanFromCommunityView as LemmyapiDatatypesModBanFromCommunityView -import it.vercruysse.lemmyapi.datatypes.ModBanView as LemmyapiDatatypesModBanView -import it.vercruysse.lemmyapi.datatypes.ModFeaturePost as LemmyapiDatatypesModFeaturePost -import it.vercruysse.lemmyapi.datatypes.ModFeaturePostView as LemmyapiDatatypesModFeaturePostView -import it.vercruysse.lemmyapi.datatypes.ModHideCommunity as LemmyapiDatatypesModHideCommunity -import it.vercruysse.lemmyapi.datatypes.ModHideCommunityView as LemmyapiDatatypesModHideCommunityView -import it.vercruysse.lemmyapi.datatypes.ModLockPost as LemmyapiDatatypesModLockPost -import it.vercruysse.lemmyapi.datatypes.ModLockPostView as LemmyapiDatatypesModLockPostView -import it.vercruysse.lemmyapi.datatypes.ModRemoveComment as LemmyapiDatatypesModRemoveComment -import it.vercruysse.lemmyapi.datatypes.ModRemoveCommentView as LemmyapiDatatypesModRemoveCommentView -import it.vercruysse.lemmyapi.datatypes.ModRemoveCommunity as LemmyapiDatatypesModRemoveCommunity -import it.vercruysse.lemmyapi.datatypes.ModRemoveCommunityView as LemmyapiDatatypesModRemoveCommunityView -import it.vercruysse.lemmyapi.datatypes.ModRemovePost as LemmyapiDatatypesModRemovePost -import it.vercruysse.lemmyapi.datatypes.ModRemovePostView as LemmyapiDatatypesModRemovePostView -import it.vercruysse.lemmyapi.datatypes.ModTransferCommunity as LemmyapiDatatypesModTransferCommunity -import it.vercruysse.lemmyapi.datatypes.ModTransferCommunityView as LemmyapiDatatypesModTransferCommunityView -import it.vercruysse.lemmyapi.datatypes.ModlogListParams as LemmyapiDatatypesModlogListParams import it.vercruysse.lemmyapi.datatypes.MyUserInfo as LemmyapiDatatypesMyUserInfo -import it.vercruysse.lemmyapi.datatypes.PasswordChangeAfterReset as LemmyapiDatatypesPasswordChangeAfterReset -import it.vercruysse.lemmyapi.datatypes.PasswordReset as LemmyapiDatatypesPasswordReset import it.vercruysse.lemmyapi.datatypes.Person as LemmyapiDatatypesPerson -import it.vercruysse.lemmyapi.datatypes.PersonAggregates as LemmyapiDatatypesPersonAggregates -import it.vercruysse.lemmyapi.datatypes.PersonBlockView as LemmyapiDatatypesPersonBlockView -import it.vercruysse.lemmyapi.datatypes.PersonMention as LemmyapiDatatypesPersonMention -import it.vercruysse.lemmyapi.datatypes.PersonMentionResponse as LemmyapiDatatypesPersonMentionResponse -import it.vercruysse.lemmyapi.datatypes.PersonMentionView as LemmyapiDatatypesPersonMentionView +import it.vercruysse.lemmyapi.datatypes.PersonResponse as LemmyapiDatatypesPersonResponse import it.vercruysse.lemmyapi.datatypes.PersonView as LemmyapiDatatypesPersonView import it.vercruysse.lemmyapi.datatypes.Post as LemmyapiDatatypesPost -import it.vercruysse.lemmyapi.datatypes.PostAggregates as LemmyapiDatatypesPostAggregates import it.vercruysse.lemmyapi.datatypes.PostReport as LemmyapiDatatypesPostReport import it.vercruysse.lemmyapi.datatypes.PostReportResponse as LemmyapiDatatypesPostReportResponse import it.vercruysse.lemmyapi.datatypes.PostReportView as LemmyapiDatatypesPostReportView @@ -176,7 +115,6 @@ import it.vercruysse.lemmyapi.datatypes.PrivateMessageReportResponse as Lemmyapi import it.vercruysse.lemmyapi.datatypes.PrivateMessageReportView as LemmyapiDatatypesPrivateMessageReportView import it.vercruysse.lemmyapi.datatypes.PrivateMessageResponse as LemmyapiDatatypesPrivateMessageResponse import it.vercruysse.lemmyapi.datatypes.PrivateMessageView as LemmyapiDatatypesPrivateMessageView -import it.vercruysse.lemmyapi.datatypes.PrivateMessagesResponse as LemmyapiDatatypesPrivateMessagesResponse import it.vercruysse.lemmyapi.datatypes.PurgeComment as LemmyapiDatatypesPurgeComment import it.vercruysse.lemmyapi.datatypes.PurgeCommunity as LemmyapiDatatypesPurgeCommunity import it.vercruysse.lemmyapi.datatypes.PurgePerson as LemmyapiDatatypesPurgePerson @@ -188,9 +126,9 @@ import it.vercruysse.lemmyapi.datatypes.RegistrationApplicationView as LemmyapiD import it.vercruysse.lemmyapi.datatypes.RemoveComment as LemmyapiDatatypesRemoveComment import it.vercruysse.lemmyapi.datatypes.RemoveCommunity as LemmyapiDatatypesRemoveCommunity import it.vercruysse.lemmyapi.datatypes.RemovePost as LemmyapiDatatypesRemovePost +import it.vercruysse.lemmyapi.datatypes.ResetPassword as LemmyapiDatatypesPasswordReset import it.vercruysse.lemmyapi.datatypes.ResolveCommentReport as LemmyapiDatatypesResolveCommentReport import it.vercruysse.lemmyapi.datatypes.ResolveObject as LemmyapiDatatypesResolveObject -import it.vercruysse.lemmyapi.datatypes.ResolveObjectResponse as LemmyapiDatatypesResolveObjectResponse import it.vercruysse.lemmyapi.datatypes.ResolvePostReport as LemmyapiDatatypesResolvePostReport import it.vercruysse.lemmyapi.datatypes.ResolvePrivateMessageReport as LemmyapiDatatypesResolvePrivateMessageReport import it.vercruysse.lemmyapi.datatypes.SaveComment as LemmyapiDatatypesSaveComment @@ -199,40 +137,32 @@ import it.vercruysse.lemmyapi.datatypes.SaveUserSettings as LemmyapiDatatypesSav import it.vercruysse.lemmyapi.datatypes.Search as LemmyapiDatatypesSearch import it.vercruysse.lemmyapi.datatypes.SearchResponse as LemmyapiDatatypesSearchResponse import it.vercruysse.lemmyapi.datatypes.Site as LemmyapiDatatypesSite -import it.vercruysse.lemmyapi.datatypes.SiteAggregates as LemmyapiDatatypesSiteAggregates import it.vercruysse.lemmyapi.datatypes.SiteResponse as LemmyapiDatatypesSiteResponse import it.vercruysse.lemmyapi.datatypes.SiteView as LemmyapiDatatypesSiteView import it.vercruysse.lemmyapi.datatypes.Tagline as LemmyapiDatatypesTagline import it.vercruysse.lemmyapi.datatypes.TransferCommunity as LemmyapiDatatypesTransferCommunity import it.vercruysse.lemmyapi.datatypes.VerifyEmail as LemmyapiDatatypesVerifyEmail +import it.vercruysse.lemmyapi.v0.enums.CommentSortType as V0CommentSortType +import it.vercruysse.lemmyapi.v0.enums.ListingType as V0ListingType +import it.vercruysse.lemmyapi.v0.enums.ModlogActionType as V0ModlogActionType +import it.vercruysse.lemmyapi.v0.enums.PostFeatureType as V0PostFeatureType +import it.vercruysse.lemmyapi.v0.enums.RegistrationMode as V0RegistrationMode +import it.vercruysse.lemmyapi.v0.enums.SearchType as V0SearchType +import it.vercruysse.lemmyapi.v0.enums.SortType as V0SortType import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.AddAdmin as X5DatatypesAddAdmin import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.AddAdminResponse as X5DatatypesAddAdminResponse import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.AddModToCommunity as X5DatatypesAddModToCommunity import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.AddModToCommunityResponse as X5DatatypesAddModToCommunityResponse -import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.AdminPurgeComment as X5DatatypesAdminPurgeComment -import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.AdminPurgeCommentView as X5DatatypesAdminPurgeCommentView -import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.AdminPurgeCommunity as X5DatatypesAdminPurgeCommunity -import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.AdminPurgeCommunityView as X5DatatypesAdminPurgeCommunityView -import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.AdminPurgePerson as X5DatatypesAdminPurgePerson -import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.AdminPurgePersonView as X5DatatypesAdminPurgePersonView -import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.AdminPurgePost as X5DatatypesAdminPurgePost -import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.AdminPurgePostView as X5DatatypesAdminPurgePostView import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.ApproveRegistrationApplication as X5DatatypesApproveRegistrationApplication import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.BanFromCommunity as X5DatatypesBanFromCommunity import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.BanFromCommunityResponse as X5DatatypesBanFromCommunityResponse import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.BanPerson as X5DatatypesBanPerson -import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.BanPersonResponse as X5DatatypesBanPersonResponse -import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.BannedPersonsResponse as X5DatatypesBannedPersonsResponse import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.BlockCommunity as X5DatatypesBlockCommunity -import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.BlockCommunityResponse as X5DatatypesBlockCommunityResponse import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.BlockPerson as X5DatatypesBlockPerson -import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.BlockPersonResponse as X5DatatypesBlockPersonResponse import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.CaptchaResponse as X5DatatypesCaptchaResponse import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.ChangePassword as X5DatatypesChangePassword import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.Comment as X5DatatypesComment import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.CommentAggregates as X5DatatypesCommentAggregates -import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.CommentReply as X5DatatypesCommentReply -import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.CommentReplyResponse as X5DatatypesCommentReplyResponse import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.CommentReplyView as X5DatatypesCommentReplyView import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.CommentReport as X5DatatypesCommentReport import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.CommentReportResponse as X5DatatypesCommentReportResponse @@ -241,7 +171,6 @@ import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.CommentResponse as X5Datatypes import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.CommentView as X5DatatypesCommentView import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.Community as X5DatatypesCommunity import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.CommunityAggregates as X5DatatypesCommunityAggregates -import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.CommunityBlockView as X5DatatypesCommunityBlockView import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.CommunityFollowerView as X5DatatypesCommunityFollowerView import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.CommunityModeratorView as X5DatatypesCommunityModeratorView import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.CommunityResponse as X5DatatypesCommunityResponse @@ -275,48 +204,32 @@ import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.EditPost as X5DatatypesEditPos import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.EditPrivateMessage as X5DatatypesEditPrivateMessage import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.EditSite as X5DatatypesEditSite import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.FeaturePost as X5DatatypesFeaturePost -import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.FederatedInstances as X5DatatypesFederatedInstances import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.FollowCommunity as X5DatatypesFollowCommunity import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.GetCaptchaResponse as X5DatatypesGetCaptchaResponse import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.GetComment as X5DatatypesGetComment import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.GetComments as X5DatatypesGetComments -import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.GetCommentsResponse as X5DatatypesGetCommentsResponse import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.GetCommunity as X5DatatypesGetCommunity import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.GetCommunityResponse as X5DatatypesGetCommunityResponse -import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.GetFederatedInstancesResponse as X5DatatypesGetFederatedInstancesResponse import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.GetModlog as X5DatatypesGetModlog -import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.GetModlogResponse as X5DatatypesGetModlogResponse import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.GetPersonDetails as X5DatatypesGetPersonDetails import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.GetPersonDetailsResponse as X5DatatypesGetPersonDetailsResponse import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.GetPersonMentions as X5DatatypesGetPersonMentions -import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.GetPersonMentionsResponse as X5DatatypesGetPersonMentionsResponse import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.GetPost as X5DatatypesGetPost import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.GetPostResponse as X5DatatypesGetPostResponse import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.GetPosts as X5DatatypesGetPosts -import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.GetPostsResponse as X5DatatypesGetPostsResponse import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.GetPrivateMessages as X5DatatypesGetPrivateMessages import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.GetReplies as X5DatatypesGetReplies -import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.GetRepliesResponse as X5DatatypesGetRepliesResponse -import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.GetReportCount as X5DatatypesGetReportCount -import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.GetReportCountResponse as X5DatatypesGetReportCountResponse import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.GetSiteMetadata as X5DatatypesGetSiteMetadata import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.GetSiteMetadataResponse as X5DatatypesGetSiteMetadataResponse import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.GetSiteResponse as X5DatatypesGetSiteResponse -import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.GetUnreadCountResponse as X5DatatypesGetUnreadCountResponse -import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.GetUnreadRegistrationApplicationCountResponse as X5DatatypesGetUnreadRegistrationApplicationCountResponse import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.HideCommunity as X5DatatypesHideCommunity import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.Instance as X5DatatypesInstance import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.Language as X5DatatypesLanguage import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.ListCommentReports as X5DatatypesListCommentReports -import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.ListCommentReportsResponse as X5DatatypesListCommentReportsResponse import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.ListCommunities as X5DatatypesListCommunities -import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.ListCommunitiesResponse as X5DatatypesListCommunitiesResponse import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.ListPostReports as X5DatatypesListPostReports -import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.ListPostReportsResponse as X5DatatypesListPostReportsResponse import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.ListPrivateMessageReports as X5DatatypesListPrivateMessageReports -import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.ListPrivateMessageReportsResponse as X5DatatypesListPrivateMessageReportsResponse import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.ListRegistrationApplications as X5DatatypesListRegistrationApplications -import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.ListRegistrationApplicationsResponse as X5DatatypesListRegistrationApplicationsResponse import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.LocalSite as X5DatatypesLocalSite import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.LocalSiteRateLimit as X5DatatypesLocalSiteRateLimit import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.LocalUser as X5DatatypesLocalUser @@ -327,37 +240,11 @@ import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.LoginResponse as X5DatatypesLo import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.MarkCommentReplyAsRead as X5DatatypesMarkCommentReplyAsRead import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.MarkPersonMentionAsRead as X5DatatypesMarkPersonMentionAsRead import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.MarkPrivateMessageAsRead as X5DatatypesMarkPrivateMessageAsRead -import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.ModAdd as X5DatatypesModAdd -import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.ModAddCommunity as X5DatatypesModAddCommunity -import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.ModAddCommunityView as X5DatatypesModAddCommunityView -import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.ModAddView as X5DatatypesModAddView -import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.ModBan as X5DatatypesModBan -import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.ModBanFromCommunity as X5DatatypesModBanFromCommunity -import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.ModBanFromCommunityView as X5DatatypesModBanFromCommunityView -import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.ModBanView as X5DatatypesModBanView -import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.ModFeaturePost as X5DatatypesModFeaturePost -import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.ModFeaturePostView as X5DatatypesModFeaturePostView -import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.ModHideCommunity as X5DatatypesModHideCommunity -import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.ModHideCommunityView as X5DatatypesModHideCommunityView -import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.ModLockPost as X5DatatypesModLockPost -import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.ModLockPostView as X5DatatypesModLockPostView -import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.ModRemoveComment as X5DatatypesModRemoveComment -import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.ModRemoveCommentView as X5DatatypesModRemoveCommentView -import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.ModRemoveCommunity as X5DatatypesModRemoveCommunity -import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.ModRemoveCommunityView as X5DatatypesModRemoveCommunityView -import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.ModRemovePost as X5DatatypesModRemovePost -import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.ModRemovePostView as X5DatatypesModRemovePostView -import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.ModTransferCommunity as X5DatatypesModTransferCommunity -import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.ModTransferCommunityView as X5DatatypesModTransferCommunityView -import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.ModlogListParams as X5DatatypesModlogListParams import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.MyUserInfo as X5DatatypesMyUserInfo import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.PasswordChangeAfterReset as X5DatatypesPasswordChangeAfterReset import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.PasswordReset as X5DatatypesPasswordReset import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.Person as X5DatatypesPerson import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.PersonAggregates as X5DatatypesPersonAggregates -import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.PersonBlockView as X5DatatypesPersonBlockView -import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.PersonMention as X5DatatypesPersonMention -import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.PersonMentionResponse as X5DatatypesPersonMentionResponse import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.PersonMentionView as X5DatatypesPersonMentionView import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.PersonView as X5DatatypesPersonView import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.Post as X5DatatypesPost @@ -373,7 +260,6 @@ import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.PrivateMessageReportResponse a import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.PrivateMessageReportView as X5DatatypesPrivateMessageReportView import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.PrivateMessageResponse as X5DatatypesPrivateMessageResponse import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.PrivateMessageView as X5DatatypesPrivateMessageView -import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.PrivateMessagesResponse as X5DatatypesPrivateMessagesResponse import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.PurgeComment as X5DatatypesPurgeComment import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.PurgeCommunity as X5DatatypesPurgeCommunity import it.vercruysse.lemmyapi.v0.x18.x5.datatypes.PurgePerson as X5DatatypesPurgePerson @@ -418,27 +304,36 @@ internal class Transformer(var auth: String) : MapperGenerator { email = d.email, show_nsfw = d.show_nsfw, theme = d.theme, - default_sort_type = d.default_sort_type, - default_listing_type = d.default_listing_type, + default_post_sort_type = d.default_sort_type.toUni(), + default_listing_type = d.default_listing_type.toUni(), interface_language = d.interface_language, show_avatars = d.show_avatars, send_notifications_to_email = d.send_notifications_to_email, - show_scores = d.show_scores, show_bot_accounts = d.show_bot_accounts, show_read_posts = d.show_read_posts, email_verified = d.email_verified, accepted_application = d.accepted_application, open_links_in_new_tab = d.open_links_in_new_tab, blur_nsfw = false, - auto_expand = false, infinite_scroll_enabled = true, admin = false, post_listing_mode = PostListingMode.Card, totp_2fa_enabled = d.let { this.mapLocalUserTotp(it) }, - enable_keyboard_navigation = false, - enable_animated_images = true, + animated_images_enabled = true, collapse_bot_comments = false, - last_donation_notification = "", + last_donation_notification_at = "", + show_score = d.show_scores, + show_upvotes = d.show_scores, + show_downvotes = VoteShow.Show, + show_person_votes = d.show_scores, + show_upvote_percentage = d.show_scores, + hide_posts_with_media = false, + show_media = true, + private_messages_enabled = true, + default_comment_sort_type = CommentSortType.Hot, + auto_mark_fetched_posts_as_read = false, + default_post_time_range_seconds = 0, + default_items_per_page = 20, ) override fun toUni(d: X5DatatypesMyUserInfo): LemmyapiDatatypesMyUserInfo = @@ -446,240 +341,216 @@ internal class Transformer(var auth: String) : MapperGenerator { local_user_view = this.toUni(d = d.local_user_view), follows = d.follows.map { this.toUni(d = it) }, moderates = d.moderates.map { this.toUni(d = it) }, - community_blocks = d.community_blocks.map { this.toUni(d = it) }, - instance_blocks = listOf(), - person_blocks = d.person_blocks.map { this.toUni(d = it) }, + community_blocks = d.community_blocks.map { this.toUni(d = it.community, counts = X5DatatypesCommunityAggregates(-1, -1, -1, -1, -1, "", -1, -1, -1, -1, -1)) }, + instance_communities_blocks = emptyList(), + instance_persons_blocks = emptyList(), + person_blocks = d.person_blocks.map { this.toUni(d = it.target) }, discussion_languages = d.discussion_languages, + multi_community_follows = emptyList(), ) override fun toUni(d: X5DatatypesLocalSiteRateLimit): LemmyapiDatatypesLocalSiteRateLimit = LemmyapiDatatypesLocalSiteRateLimit( local_site_id = d.local_site_id, - message = d.message, - message_per_second = d.message_per_second, - post = d.post, - post_per_second = d.post_per_second, - register = d.register, - register_per_second = d.register_per_second, - image = d.image, - image_per_second = d.image_per_second, - comment = d.comment, - comment_per_second = d.comment_per_second, - search = d.search, - search_per_second = d.search_per_second, - published = addTimezoneOffset(d.published), - updated = addTimezoneOffsetNullable(d.updated), - import_user_settings = -1, - import_user_settings_per_second = -1, - ) - - override fun toUni(d: X5DatatypesCommentReplyView): LemmyapiDatatypesCommentReplyView = - LemmyapiDatatypesCommentReplyView( - comment_reply = this.toUni(d = d.comment_reply), - comment = this.toUni(d = d.comment), - creator = this.toUni(d = d.creator), - post = this.toUni(d = d.post), - community = this.toUni(d = d.community), - recipient = this.toUni(d = d.recipient), - counts = this.toUni(d = d.counts), - creator_banned_from_community = d.creator_banned_from_community, - banned_from_community = false, - creator_is_moderator = false, - creator_is_admin = false, - subscribed = d.subscribed, - saved = d.saved, - creator_blocked = d.creator_blocked, - my_vote = d.my_vote, + message_max_requests = d.message, + message_interval_seconds = d.message_per_second, + post_max_requests = d.post, + post_interval_seconds = d.post_per_second, + register_max_requests = d.register, + register_interval_seconds = d.register_per_second, + image_max_requests = d.image, + image_interval_seconds = d.image_per_second, + comment_max_requests = d.comment, + comment_interval_seconds = d.comment_per_second, + search_max_requests = d.search, + search_interval_seconds = d.search_per_second, + published_at = addTimezoneOffset(d.published), + updated_at = addTimezoneOffsetNullable(d.updated), + import_user_settings_max_requests = -1, + import_user_settings_interval_seconds = -1, ) override fun toUni(d: X5DatatypesCommentReportView): LemmyapiDatatypesCommentReportView = LemmyapiDatatypesCommentReportView( comment_report = this.toUni(d = d.comment_report), - comment = this.toUni(d = d.comment), - post = this.toUni(d = d.post), - community = this.toUni(d = d.community), + comment = this.toUni(d = d.comment, d.counts), + post = this.toUni(d = d.post, counts = X5DatatypesPostAggregates(-1, -1, -1, -1, -1, -1, "", "", "", false, false, -1, -1)), + community = this.toUni(d = d.community, counts = X5DatatypesCommunityAggregates(-1, -1, -1, -1, -1, "", -1, -1, -1, -1, -1)), creator = this.toUni(d = d.creator), comment_creator = this.toUni(d = d.comment_creator), - counts = this.toUni(d = d.counts), creator_banned_from_community = d.creator_banned_from_community, creator_is_moderator = false, creator_is_admin = false, - creator_blocked = false, - subscribed = SubscribedType.NotSubscribed, - saved = false, - my_vote = d.my_vote, + creator_banned = d.creator.banned, resolver = d.resolver?.let { this.toUni(d = it) }, + comment_actions = CommentActions(d.my_vote, null, null), ) override fun toUni(d: X5DatatypesCommentView): LemmyapiDatatypesCommentView = LemmyapiDatatypesCommentView( - comment = this.toUni(d = d.comment), + comment = this.toUni(d = d.comment, d.counts), creator = this.toUni(d = d.creator), - post = this.toUni(d = d.post), - community = this.toUni(d = d.community), - counts = this.toUni(d = d.counts), + post = this.toUni(d = d.post, counts = X5DatatypesPostAggregates(-1, -1, -1, -1, -1, -1, "", "", "", false, false, -1, -1)), + community = this.toUni(d = d.community, counts = X5DatatypesCommunityAggregates(-1, -1, -1, -1, -1, "", -1, -1, -1, -1, -1)), creator_banned_from_community = d.creator_banned_from_community, - banned_from_community = false, creator_is_moderator = false, creator_is_admin = false, - subscribed = d.subscribed, - saved = d.saved, - creator_blocked = d.creator_blocked, - my_vote = d.my_vote, + tags = emptyList(), + creator_banned = d.creator.banned, + creator_ban_expires_at = addTimezoneOffsetNullable(d.creator.ban_expires), + can_mod = false, + person_actions = PersonActions(if (d.creator_blocked) "" else null), + comment_actions = CommentActions(d.my_vote, null, if (d.saved) "" else null), + community_actions = CommunityActions(null, CommunityFollowerState.from(d.subscribed)), ) - override fun toUni(d: X5DatatypesCommunity): LemmyapiDatatypesCommunity = + override fun toUni(d: X5DatatypesCommunity, counts: X5DatatypesCommunityAggregates): LemmyapiDatatypesCommunity = LemmyapiDatatypesCommunity( id = d.id, name = d.name, title = d.title, - description = d.description, + summary = d.description, removed = d.removed, - published = addTimezoneOffset(d.published), - updated = addTimezoneOffsetNullable(d.updated), + published_at = addTimezoneOffset(d.published), + updated_at = addTimezoneOffsetNullable(d.updated), deleted = d.deleted, nsfw = d.nsfw, - actor_id = d.actor_id, + ap_id = d.actor_id, local = d.local, icon = d.icon, banner = d.banner, - hidden = d.hidden, posting_restricted_to_mods = d.posting_restricted_to_mods, instance_id = d.instance_id, - visibility = CommunityVisibility.Public, - ) - - override fun toUni(d: X5DatatypesCommunityAggregates): LemmyapiDatatypesCommunityAggregates = - LemmyapiDatatypesCommunityAggregates( - community_id = d.community_id, - subscribers = d.subscribers, - posts = d.posts, - comments = d.comments, - published = addTimezoneOffset(d.published), - users_active_day = d.users_active_day, - users_active_week = d.users_active_week, - users_active_month = d.users_active_month, - users_active_half_year = d.users_active_half_year, + visibility = if (d.hidden) CommunityVisibility.Unlisted else CommunityVisibility.Public, + subscribers = counts.subscribers, + posts = counts.posts, + comments = counts.comments, + users_active_day = counts.users_active_day, + users_active_week = counts.users_active_week, + users_active_month = counts.users_active_month, + users_active_half_year = counts.users_active_half_year, subscribers_local = -1, + report_count = -1, + unresolved_report_count = -1, + local_removed = false, + last_refreshed_at = "", ) override fun toUni(d: X5DatatypesCommunityView): LemmyapiDatatypesCommunityView = LemmyapiDatatypesCommunityView( - community = this.toUni(d = d.community), - subscribed = d.subscribed, - blocked = d.blocked, - counts = this.toUni(d = d.counts), - banned_from_community = false, + community = this.toUni(d = d.community, d.counts), + can_mod = false, + tags = emptyList(), + community_actions = CommunityActions(null, CommunityFollowerState.from(d.subscribed), if (d.blocked) "" else null), ) - override fun toUni(d: SiteMetadata): LinkMetadata = super.toUni(d) - override fun toUni(d: X5DatatypesGetSiteResponse): LemmyapiDatatypesGetSiteResponse = LemmyapiDatatypesGetSiteResponse( site_view = this.toUni(d = d.site_view), admins = d.admins.map { this.toUni(d = it) }, version = d.version, - my_user = d.my_user?.let { this.toUni(d = it) }, all_languages = d.all_languages.map { this.toUni(d = it) }, discussion_languages = d.discussion_languages, - taglines = d.taglines.map { this.toUni(d = it) }, - custom_emojis = d.custom_emojis.map { this.toUni(d = it) }, - blocked_urls = listOf(), + blocked_urls = emptyList(), + tagline = if (d.taglines.isEmpty()) null else this.toUni(d = d.taglines.random()), + oauth_providers = emptyList(), + admin_oauth_providers = emptyList(), + active_plugins = emptyList(), + captcha_enabled = false, ) - override fun toUni(d: X5DatatypesLocalSite): LemmyapiDatatypesLocalSite = + override fun toUni(d: X5DatatypesLocalSite, counts: X5DatatypesSiteAggregates): LemmyapiDatatypesLocalSite = LemmyapiDatatypesLocalSite( id = d.id, site_id = d.site_id, site_setup = d.site_setup, - enable_downvotes = d.enable_downvotes, - enable_nsfw = d.enable_nsfw, community_creation_admin_only = d.community_creation_admin_only, - require_email_verification = d.require_email_verification, + email_verification_required = d.require_email_verification, application_question = d.application_question, private_instance = d.private_instance, default_theme = d.default_theme, - default_post_listing_type = d.default_post_listing_type, + default_post_listing_type = d.default_post_listing_type.toUni(), legal_information = d.legal_information, - hide_modlog_mod_names = d.hide_modlog_mod_names, application_email_admins = d.application_email_admins, slur_filter_regex = d.slur_filter_regex, - actor_name_max_length = d.actor_name_max_length, federation_enabled = d.federation_enabled, - captcha_enabled = d.captcha_enabled, - captcha_difficulty = d.captcha_difficulty, - published = addTimezoneOffset(d.published), - updated = addTimezoneOffsetNullable(d.updated), - registration_mode = d.registration_mode, + published_at = addTimezoneOffset(d.published), + updated_at = addTimezoneOffsetNullable(d.updated), + registration_mode = d.registration_mode.toUni(), reports_email_admins = d.reports_email_admins, federation_signed_fetch = false, default_post_listing_mode = PostListingMode.Card, - default_sort_type = SortType.Active, - ) - - override fun toUni(d: X5DatatypesPersonMentionView): LemmyapiDatatypesPersonMentionView = - LemmyapiDatatypesPersonMentionView( - person_mention = this.toUni(d = d.person_mention), - comment = this.toUni(d = d.comment), - creator = this.toUni(d = d.creator), - post = this.toUni(d = d.post), - community = this.toUni(d = d.community), - recipient = this.toUni(d = d.recipient), - counts = this.toUni(d = d.counts), - creator_banned_from_community = d.creator_banned_from_community, - banned_from_community = false, - creator_is_moderator = false, - creator_is_admin = false, - subscribed = d.subscribed, - saved = d.saved, - creator_blocked = d.creator_blocked, - my_vote = d.my_vote, + default_post_sort_type = SortType.Active, + nsfw_content_disallowed = !d.enable_nsfw, + oauth_registration = false, + email_notifications_disabled = false, + suggested_multi_community_id = null, + default_comment_sort_type = CommentSortType.Hot, + default_post_time_range_seconds = null, + post_upvotes = FederationMode.All, + post_downvotes = if (d.enable_downvotes) FederationMode.All else FederationMode.Disable, + comment_upvotes = FederationMode.All, + comment_downvotes = if (d.enable_downvotes) FederationMode.All else FederationMode.Disable, + users = counts.users, + posts = counts.posts, + comments = counts.comments, + communities = counts.communities, + users_active_day = counts.users_active_day, + users_active_week = counts.users_active_week, + users_active_month = counts.users_active_month, + users_active_half_year = counts.users_active_half_year, + default_items_per_page = 20, + image_mode = ImageMode.StoreLinkPreviews, + image_upload_timeout_seconds = 0, + image_max_thumbnail_size = 0, + image_max_avatar_size = 0, + image_max_banner_size = 0, + image_max_upload_size = 0, + image_allow_video_uploads = false, + image_upload_disabled = false, + max_invites_per_user_allowed = 0, ) override fun toUni(d: X5DatatypesPersonView, is_admin: Boolean): LemmyapiDatatypesPersonView = LemmyapiDatatypesPersonView( - person = this.toUni(d = d.person), - counts = this.toUni(d = d.counts), + person = this.toUni(d = d.person, d.counts), is_admin = is_admin, + person_actions = null, + banned = d.person.banned, + ban_expires_at = addTimezoneOffsetNullable(d.person.ban_expires), ) override fun toUni(d: X5DatatypesPostReportView): LemmyapiDatatypesPostReportView = LemmyapiDatatypesPostReportView( post_report = this.toUni(d = d.post_report), - post = this.toUni(d = d.post), - community = this.toUni(d = d.community), + post = this.toUni(d = d.post, d.counts), + community = this.toUni(d = d.community, counts = X5DatatypesCommunityAggregates(-1, -1, -1, -1, -1, "", -1, -1, -1, -1, -1)), creator = this.toUni(d = d.creator), post_creator = this.toUni(d = d.post_creator), - creator_banned_from_community = d.creator_banned_from_community, + post_actions = PostActions(null, null, null, null, null, d.my_vote, null), + person_actions = null, + community_actions = null, + resolver = d.resolver?.let { this.toUni(d = it) }, creator_is_moderator = false, creator_is_admin = false, - subscribed = SubscribedType.NotSubscribed, - saved = false, - read = false, - hidden = false, - creator_blocked = false, - my_vote = d.my_vote, - unread_comments = 0, - counts = this.toUni(d = d.counts), - resolver = d.resolver?.let { this.toUni(d = it) }, + creator_banned = d.creator.banned, + creator_banned_from_community = d.creator_banned_from_community, ) override fun toUni(d: X5DatatypesPostView): LemmyapiDatatypesPostView = LemmyapiDatatypesPostView( - post = this.toUni(d = d.post), + post = this.toUni(d = d.post, d.counts), creator = this.toUni(d = d.creator), - community = this.toUni(d = d.community), - creator_banned_from_community = d.creator_banned_from_community, - banned_from_community = false, - creator_is_moderator = false, + community = this.toUni(d = d.community, counts = X5DatatypesCommunityAggregates(-1, -1, -1, -1, -1, "", -1, -1, -1, -1, -1)), + post_actions = PostActions(toAt(d.read), null, d.counts.comments - d.unread_comments, toAt(d.saved), null, d.my_vote, null), + person_actions = PersonActions(toAt(d.creator_blocked)), + community_actions = CommunityActions(null, CommunityFollowerState.from(d.subscribed)), + tags = emptyList(), + can_mod = false, + creator_banned = d.creator.banned, + creator_ban_expires_at = addTimezoneOffsetNullable(d.creator.ban_expires), creator_is_admin = false, - counts = this.toUni(d = d.counts), - subscribed = d.subscribed, - saved = d.saved, - read = d.read, - hidden = false, - creator_blocked = d.creator_blocked, - my_vote = d.my_vote, - unread_comments = d.unread_comments, + creator_is_moderator = false, + creator_banned_from_community = d.creator_banned_from_community, ) override fun toUni(d: X5DatatypesAddAdminResponse): LemmyapiDatatypesAddAdminResponse = @@ -691,92 +562,10 @@ internal class Transformer(var auth: String) : MapperGenerator { moderators = d.moderators.map { this.toUni(d = it) }, ) - override fun toUni(d: X5DatatypesAdminPurgeComment): LemmyapiDatatypesAdminPurgeComment = - LemmyapiDatatypesAdminPurgeComment( - id = d.id, - admin_person_id = d.admin_person_id, - post_id = d.post_id, - reason = d.reason, - when_ = addTimezoneOffset(d.when_), - ) - - override fun toUni(d: X5DatatypesAdminPurgeCommentView): LemmyapiDatatypesAdminPurgeCommentView = - LemmyapiDatatypesAdminPurgeCommentView( - admin_purge_comment = this.toUni(d = d.admin_purge_comment), - admin = d.admin?.let { this.toUni(d = it) }, - post = this.toUni(d = d.post), - ) - - override fun toUni(d: X5DatatypesAdminPurgeCommunity): LemmyapiDatatypesAdminPurgeCommunity = - LemmyapiDatatypesAdminPurgeCommunity( - id = d.id, - admin_person_id = d.admin_person_id, - reason = d.reason, - when_ = addTimezoneOffset(d.when_), - ) - - override fun toUni(d: X5DatatypesAdminPurgeCommunityView): LemmyapiDatatypesAdminPurgeCommunityView = LemmyapiDatatypesAdminPurgeCommunityView( - admin_purge_community = this.toUni(d = d.admin_purge_community), - admin = d.admin?.let { this.toUni(d = it) }, - ) - - override fun toUni(d: X5DatatypesAdminPurgePerson): LemmyapiDatatypesAdminPurgePerson = - LemmyapiDatatypesAdminPurgePerson( - id = d.id, - admin_person_id = d.admin_person_id, - reason = d.reason, - when_ = addTimezoneOffset(d.when_), - ) - - override fun toUni(d: X5DatatypesAdminPurgePersonView): LemmyapiDatatypesAdminPurgePersonView = - LemmyapiDatatypesAdminPurgePersonView( - admin_purge_person = this.toUni(d = d.admin_purge_person), - admin = d.admin?.let { this.toUni(d = it) }, - ) - - override fun toUni(d: X5DatatypesAdminPurgePost): LemmyapiDatatypesAdminPurgePost = - LemmyapiDatatypesAdminPurgePost( - id = d.id, - admin_person_id = d.admin_person_id, - community_id = d.community_id, - reason = d.reason, - when_ = addTimezoneOffset(d.when_), - ) - - override fun toUni(d: X5DatatypesAdminPurgePostView): LemmyapiDatatypesAdminPurgePostView = - LemmyapiDatatypesAdminPurgePostView( - admin_purge_post = this.toUni(d = d.admin_purge_post), - admin = d.admin?.let { this.toUni(d = it) }, - community = this.toUni(d = d.community), - ) - - override fun toUni(d: X5DatatypesBanFromCommunityResponse): LemmyapiDatatypesBanFromCommunityResponse = LemmyapiDatatypesBanFromCommunityResponse( + override fun toUni(d: X5DatatypesBanFromCommunityResponse): LemmyapiDatatypesPersonResponse = LemmyapiDatatypesPersonResponse( person_view = this.toUni(d = d.person_view), - banned = d.banned, - ) - - override fun toUni(d: X5DatatypesBannedPersonsResponse): LemmyapiDatatypesBannedPersonsResponse = - LemmyapiDatatypesBannedPersonsResponse( - banned = d.banned.map { this.toUni(d = it) }, - ) - - override fun toUni(d: X5DatatypesBanPersonResponse): LemmyapiDatatypesBanPersonResponse = - LemmyapiDatatypesBanPersonResponse( - person_view = this.toUni(d = d.person_view), - banned = d.banned, - ) - - override fun toUni(d: X5DatatypesBlockCommunityResponse): LemmyapiDatatypesBlockCommunityResponse = LemmyapiDatatypesBlockCommunityResponse( - community_view = this.toUni(d = d.community_view), - blocked = d.blocked, ) - override fun toUni(d: X5DatatypesBlockPersonResponse): LemmyapiDatatypesBlockPersonResponse = - LemmyapiDatatypesBlockPersonResponse( - person_view = this.toUni(d = d.person_view), - blocked = d.blocked, - ) - override fun toUni(d: X5DatatypesCaptchaResponse): LemmyapiDatatypesCaptchaResponse = LemmyapiDatatypesCaptchaResponse( png = d.png, @@ -784,46 +573,30 @@ internal class Transformer(var auth: String) : MapperGenerator { uuid = d.uuid, ) - override fun toUni(d: X5DatatypesComment): LemmyapiDatatypesComment = LemmyapiDatatypesComment( + override fun toUni(d: X5DatatypesComment, counts: X5DatatypesCommentAggregates): LemmyapiDatatypesComment = LemmyapiDatatypesComment( id = d.id, creator_id = d.creator_id, post_id = d.post_id, content = d.content, removed = d.removed, - published = addTimezoneOffset(d.published), - updated = addTimezoneOffsetNullable(d.updated), + published_at = addTimezoneOffset(d.published), + updated_at = addTimezoneOffsetNullable(d.updated), deleted = d.deleted, ap_id = d.ap_id, local = d.local, path = d.path, distinguished = d.distinguished, language_id = d.language_id, + score = counts.score, + upvotes = counts.upvotes, + downvotes = counts.downvotes, + child_count = counts.child_count, + report_count = -1, + unresolved_report_count = -1, + federation_pending = false, + locked = false, ) - override fun toUni(d: X5DatatypesCommentAggregates): LemmyapiDatatypesCommentAggregates = - LemmyapiDatatypesCommentAggregates( - comment_id = d.comment_id, - score = d.score, - upvotes = d.upvotes, - downvotes = d.downvotes, - published = addTimezoneOffset(d.published), - child_count = d.child_count, - ) - - override fun toUni(d: X5DatatypesCommentReply): LemmyapiDatatypesCommentReply = - LemmyapiDatatypesCommentReply( - id = d.id, - recipient_id = d.recipient_id, - comment_id = d.comment_id, - read = d.read, - published = d.published, - ) - - override fun toUni(d: X5DatatypesCommentReplyResponse): LemmyapiDatatypesCommentReplyResponse = - LemmyapiDatatypesCommentReplyResponse( - comment_reply_view = this.toUni(d = d.comment_reply_view), - ) - override fun toUni(d: X5DatatypesCommentReport): LemmyapiDatatypesCommentReport = LemmyapiDatatypesCommentReport( id = d.id, @@ -833,8 +606,8 @@ internal class Transformer(var auth: String) : MapperGenerator { reason = d.reason, resolved = d.resolved, resolver_id = d.resolver_id, - published = addTimezoneOffset(d.published), - updated = d.updated, + published_at = addTimezoneOffset(d.published), + updated_at = d.updated, ) override fun toUni(d: X5DatatypesCommentReportResponse): LemmyapiDatatypesCommentReportResponse = @@ -845,23 +618,16 @@ internal class Transformer(var auth: String) : MapperGenerator { override fun toUni(d: X5DatatypesCommentResponse): LemmyapiDatatypesCommentResponse = LemmyapiDatatypesCommentResponse( comment_view = this.toUni(d = d.comment_view), - recipient_ids = d.recipient_ids, - ) - - override fun toUni(d: X5DatatypesCommunityBlockView): LemmyapiDatatypesCommunityBlockView = - LemmyapiDatatypesCommunityBlockView( - person = this.toUni(d = d.person), - community = this.toUni(d = d.community), ) override fun toUni(d: X5DatatypesCommunityFollowerView): LemmyapiDatatypesCommunityFollowerView = LemmyapiDatatypesCommunityFollowerView( - community = this.toUni(d = d.community), + community = this.toUni(d = d.community, counts = X5DatatypesCommunityAggregates(-1, -1, -1, -1, -1, "", -1, -1, -1, -1, -1)), follower = this.toUni(d = d.follower), ) override fun toUni(d: X5DatatypesCommunityModeratorView): LemmyapiDatatypesCommunityModeratorView = LemmyapiDatatypesCommunityModeratorView( - community = this.toUni(d = d.community), + community = this.toUni(d = d.community, counts = X5DatatypesCommunityAggregates(-1, -1, -1, -1, -1, "", -1, -1, -1, -1, -1)), moderator = this.toUni(d = d.moderator), ) @@ -874,13 +640,12 @@ internal class Transformer(var auth: String) : MapperGenerator { override fun toUni(d: X5DatatypesCustomEmoji): LemmyapiDatatypesCustomEmoji = LemmyapiDatatypesCustomEmoji( id = d.id, - local_site_id = d.local_site_id, shortcode = d.shortcode, image_url = d.image_url, alt_text = d.alt_text, category = d.category, - published = addTimezoneOffset(d.published), - updated = d.updated, + published_at = addTimezoneOffset(d.published), + updated_at = d.updated, ) override fun toUni(d: X5DatatypesCustomEmojiKeyword): LemmyapiDatatypesCustomEmojiKeyword = @@ -900,23 +665,11 @@ internal class Transformer(var auth: String) : MapperGenerator { keywords = d.keywords.map { this.toUni(d = it) }, ) - override fun toUni(d: X5DatatypesFederatedInstances): LemmyapiDatatypesFederatedInstances = - LemmyapiDatatypesFederatedInstances( - linked = d.linked.map { this.toUniF(d = it) }, - allowed = d.allowed.map { this.toUniF(d = it) }, - blocked = d.blocked.map { this.toUniF(d = it) }, - ) - override fun toUni(d: X5DatatypesGetCaptchaResponse): LemmyapiDatatypesGetCaptchaResponse = LemmyapiDatatypesGetCaptchaResponse( ok = d.ok?.let { this.toUni(d = it) }, ) - override fun toUni(d: X5DatatypesGetCommentsResponse): LemmyapiDatatypesGetCommentsResponse = - LemmyapiDatatypesGetCommentsResponse( - comments = d.comments.map { this.toUni(d = it) }, - ) - override fun toUni(d: X5DatatypesGetCommunityResponse): LemmyapiDatatypesGetCommunityResponse = LemmyapiDatatypesGetCommunityResponse( community_view = this.toUni(d = d.community_view), @@ -925,39 +678,10 @@ internal class Transformer(var auth: String) : MapperGenerator { discussion_languages = d.discussion_languages, ) - override fun toUni(d: X5DatatypesGetFederatedInstancesResponse): LemmyapiDatatypesGetFederatedInstancesResponse = - LemmyapiDatatypesGetFederatedInstancesResponse( - federated_instances = d.federated_instances?.let { this.toUni(d = it) }, - ) - - override fun toUni(d: X5DatatypesGetModlogResponse): LemmyapiDatatypesGetModlogResponse = - LemmyapiDatatypesGetModlogResponse( - removed_posts = d.removed_posts.map { this.toUni(d = it) }, - locked_posts = d.locked_posts.map { this.toUni(d = it) }, - featured_posts = d.featured_posts.map { this.toUni(d = it) }, - removed_comments = d.removed_comments.map { this.toUni(d = it) }, - removed_communities = d.removed_communities.map { this.toUni(d = it) }, - banned_from_community = d.banned_from_community.map { this.toUni(d = it) }, - banned = d.banned.map { this.toUni(d = it) }, - added_to_community = d.added_to_community.map { this.toUni(d = it) }, - transferred_to_community = d.transferred_to_community.map { this.toUni(d = it) }, - added = d.added.map { this.toUni(d = it) }, - admin_purged_persons = d.admin_purged_persons.map { this.toUni(d = it) }, - admin_purged_communities = d.admin_purged_communities.map { this.toUni(d = it) }, - admin_purged_posts = d.admin_purged_posts.map { this.toUni(d = it) }, - admin_purged_comments = d.admin_purged_comments.map { this.toUni(d = it) }, - hidden_communities = d.hidden_communities.map { this.toUni(d = it) }, - ) - override fun toUni(d: X5DatatypesGetPersonDetailsResponse): LemmyapiDatatypesGetPersonDetailsResponse = LemmyapiDatatypesGetPersonDetailsResponse( person_view = this.toUni(d = d.person_view), - comments = d.comments.map { this.toUni(d = it) }, - posts = d.posts.map { this.toUni(d = it) }, moderates = d.moderates.map { this.toUni(d = it) }, - ) - - override fun toUni(d: X5DatatypesGetPersonMentionsResponse): LemmyapiDatatypesGetPersonMentionsResponse = LemmyapiDatatypesGetPersonMentionsResponse( - mentions = d.mentions.map { this.toUni(d = it) }, + multi_communities_created = emptyList(), ) override fun toUni(d: X5DatatypesGetPostResponse): LemmyapiDatatypesGetPostResponse = @@ -968,43 +692,94 @@ internal class Transformer(var auth: String) : MapperGenerator { cross_posts = d.cross_posts.map { this.toUni(d = it) }, ) - override fun toUni(d: X5DatatypesGetPostsResponse): LemmyapiDatatypesGetPostsResponse = - LemmyapiDatatypesGetPostsResponse( - posts = d.posts.map { this.toUni(d = it) }, + fun toUni(d: X5DatatypesCommentReplyView): NotificationView = + NotificationView( + notification = Notification( + id = d.comment_reply.id, + recipient_id = d.comment_reply.recipient_id, + comment_id = d.comment_reply.comment_id, + read = d.comment_reply.read, + published_at = addTimezoneOffset(d.comment_reply.published), + kind = NotificationType.Reply, + post_id = d.post.id, + creator_id = d.creator.id, + ), + data = this.toUniCV(d), ) - override fun toUni(d: X5DatatypesGetRepliesResponse): LemmyapiDatatypesGetRepliesResponse = - LemmyapiDatatypesGetRepliesResponse( - replies = d.replies.map { this.toUni(d = it) }, + fun toUniCV(d: X5DatatypesCommentReplyView): LemmyapiDatatypesCommentView = + LemmyapiDatatypesCommentView( + comment = this.toUni(d = d.comment, d.counts), + creator = this.toUni(d = d.creator), + post = this.toUni(d = d.post, counts = X5DatatypesPostAggregates(-1, -1, -1, -1, -1, -1, "", "", "", false, false, -1, -1)), + community = this.toUni(d = d.community, counts = X5DatatypesCommunityAggregates(-1, -1, -1, -1, -1, "", -1, -1, -1, -1, -1)), + creator_banned_from_community = d.creator_banned_from_community, + creator_is_moderator = false, + creator_is_admin = false, + tags = emptyList(), + creator_banned = d.creator.banned, + creator_ban_expires_at = addTimezoneOffsetNullable(d.creator.ban_expires), + can_mod = false, + person_actions = PersonActions(if (d.creator_blocked) "" else null), + comment_actions = CommentActions(d.my_vote, null, if (d.saved) "" else null), + community_actions = CommunityActions(null, CommunityFollowerState.from(d.subscribed)), + ) + + fun toUni(d: X5DatatypesPersonMentionView): NotificationView = + NotificationView( + notification = Notification( + id = d.person_mention.id, + recipient_id = d.person_mention.recipient_id, + comment_id = d.person_mention.comment_id, + read = d.person_mention.read, + published_at = addTimezoneOffset(d.person_mention.published), + kind = NotificationType.Mention, + post_id = d.post.id, + creator_id = d.creator.id, + ), + data = this.toUniPV(d), + ) + + fun toUniPV(d: X5DatatypesPersonMentionView): LemmyapiDatatypesCommentView = + LemmyapiDatatypesCommentView( + comment = this.toUni(d = d.comment, d.counts), + creator = this.toUni(d = d.creator), + post = this.toUni(d = d.post, counts = X5DatatypesPostAggregates(-1, -1, -1, -1, -1, -1, "", "", "", false, false, -1, -1)), + community = this.toUni(d = d.community, counts = X5DatatypesCommunityAggregates(-1, -1, -1, -1, -1, "", -1, -1, -1, -1, -1)), + creator_banned_from_community = d.creator_banned_from_community, + creator_is_moderator = false, + creator_is_admin = false, + tags = emptyList(), + creator_banned = d.creator.banned, + creator_ban_expires_at = addTimezoneOffsetNullable(d.creator.ban_expires), + can_mod = false, + person_actions = PersonActions(if (d.creator_blocked) "" else null), + comment_actions = CommentActions(d.my_vote, null, if (d.saved) "" else null), + community_actions = CommunityActions(null, CommunityFollowerState.from(d.subscribed)), + ) + + fun toUniPMV(d: X5DatatypesPrivateMessageView): NotificationView = + NotificationView( + notification = Notification( + id = d.private_message.id, + recipient_id = d.private_message.recipient_id, + read = d.private_message.read, + published_at = addTimezoneOffset(d.private_message.published), + kind = NotificationType.PrivateMessage, + creator_id = d.creator.id, + ), + data = this.toUni(d), ) - override fun toUni(d: X5DatatypesGetReportCountResponse): LemmyapiDatatypesGetReportCountResponse = LemmyapiDatatypesGetReportCountResponse( - community_id = d.community_id, - comment_reports = d.comment_reports, - post_reports = d.post_reports, - private_message_reports = d.private_message_reports, - ) - override fun toUni(d: X5DatatypesGetSiteMetadataResponse): LemmyapiDatatypesGetSiteMetadataResponse = LemmyapiDatatypesGetSiteMetadataResponse( metadata = this.toUni(d = d.metadata), ) - override fun toUni(d: X5DatatypesGetUnreadCountResponse): LemmyapiDatatypesGetUnreadCountResponse = LemmyapiDatatypesGetUnreadCountResponse( - replies = d.replies, - mentions = d.mentions, - private_messages = d.private_messages, - ) - - override fun toUni(d: X5DatatypesGetUnreadRegistrationApplicationCountResponse): LemmyapiDatatypesGetUnreadRegistrationApplicationCountResponse = - LemmyapiDatatypesGetUnreadRegistrationApplicationCountResponse( - registration_applications = d.registration_applications, - ) - override fun toUni(d: X5DatatypesInstance): LemmyapiDatatypesInstance = LemmyapiDatatypesInstance( id = d.id, domain = d.domain, - published = addTimezoneOffset(d.published), - updated = addTimezoneOffsetNullable(d.updated), + published_at = addTimezoneOffset(d.published), + updated_at = addTimezoneOffsetNullable(d.updated), software = d.software, version = d.version, ) @@ -1015,33 +790,12 @@ internal class Transformer(var auth: String) : MapperGenerator { name = d.name, ) - override fun toUni(d: X5DatatypesListCommentReportsResponse): LemmyapiDatatypesListCommentReportsResponse = LemmyapiDatatypesListCommentReportsResponse( - comment_reports = d.comment_reports.map { this.toUni(d = it) }, - ) - - override fun toUni(d: X5DatatypesListCommunitiesResponse): LemmyapiDatatypesListCommunitiesResponse = LemmyapiDatatypesListCommunitiesResponse( - communities = d.communities.map { this.toUni(d = it) }, - ) - - override fun toUni(d: X5DatatypesListPostReportsResponse): LemmyapiDatatypesListPostReportsResponse = LemmyapiDatatypesListPostReportsResponse( - post_reports = d.post_reports.map { this.toUni(d = it) }, - ) - - override fun toUni(d: X5DatatypesListPrivateMessageReportsResponse): LemmyapiDatatypesListPrivateMessageReportsResponse = - LemmyapiDatatypesListPrivateMessageReportsResponse( - private_message_reports = d.private_message_reports.map { this.toUni(d = it) }, - ) - - override fun toUni(d: X5DatatypesListRegistrationApplicationsResponse): LemmyapiDatatypesListRegistrationApplicationsResponse = - LemmyapiDatatypesListRegistrationApplicationsResponse( - registration_applications = d.registration_applications.map { this.toUni(d = it) }, - ) - override fun toUni(d: X5DatatypesLocalUserView): LemmyapiDatatypesLocalUserView = LemmyapiDatatypesLocalUserView( local_user = this.toUni(d = d.local_user), - person = this.toUni(d = d.person), - counts = this.toUni(d = d.counts), + person = this.toUni(d = d.person, d.counts), + banned = d.person.banned, + ban_expires_at = addTimezoneOffsetNullable(d.person.ban_expires), ) override fun toUni(d: X5DatatypesLoginResponse): LemmyapiDatatypesLoginResponse = @@ -1051,254 +805,30 @@ internal class Transformer(var auth: String) : MapperGenerator { verify_email_sent = d.verify_email_sent, ) - override fun toUni(d: X5DatatypesModAdd): LemmyapiDatatypesModAdd = LemmyapiDatatypesModAdd( - id = d.id, - mod_person_id = d.mod_person_id, - other_person_id = d.other_person_id, - removed = d.removed, - when_ = addTimezoneOffset(d.when_), - ) - - override fun toUni(d: X5DatatypesModAddCommunity): LemmyapiDatatypesModAddCommunity = - LemmyapiDatatypesModAddCommunity( - id = d.id, - mod_person_id = d.mod_person_id, - other_person_id = d.other_person_id, - community_id = d.community_id, - removed = d.removed, - when_ = addTimezoneOffset(d.when_), - ) - - override fun toUni(d: X5DatatypesModAddCommunityView): LemmyapiDatatypesModAddCommunityView = - LemmyapiDatatypesModAddCommunityView( - mod_add_community = this.toUni(d = d.mod_add_community), - moderator = d.moderator?.let { this.toUni(d = it) }, - community = this.toUni(d = d.community), - modded_person = this.toUni(d = d.modded_person), - ) - - override fun toUni(d: X5DatatypesModAddView): LemmyapiDatatypesModAddView = - LemmyapiDatatypesModAddView( - mod_add = this.toUni(d = d.mod_add), - moderator = d.moderator?.let { this.toUni(d = it) }, - modded_person = this.toUni(d = d.modded_person), - ) - - override fun toUni(d: X5DatatypesModBan): LemmyapiDatatypesModBan = LemmyapiDatatypesModBan( - id = d.id, - mod_person_id = d.mod_person_id, - other_person_id = d.other_person_id, - reason = d.reason, - banned = d.banned, - expires = addTimezoneOffsetNullable(d.expires), - when_ = addTimezoneOffset(d.when_), - ) - - override fun toUni(d: X5DatatypesModBanFromCommunity): LemmyapiDatatypesModBanFromCommunity = - LemmyapiDatatypesModBanFromCommunity( - id = d.id, - mod_person_id = d.mod_person_id, - other_person_id = d.other_person_id, - community_id = d.community_id, - reason = d.reason, - banned = d.banned, - expires = addTimezoneOffsetNullable(d.expires), - when_ = addTimezoneOffset(d.when_), - ) - - override fun toUni(d: X5DatatypesModBanFromCommunityView): LemmyapiDatatypesModBanFromCommunityView = LemmyapiDatatypesModBanFromCommunityView( - mod_ban_from_community = this.toUni(d = d.mod_ban_from_community), - moderator = d.moderator?.let { this.toUni(d = it) }, - community = this.toUni(d = d.community), - banned_person = this.toUni(d = d.banned_person), - ) - - override fun toUni(d: X5DatatypesModBanView): LemmyapiDatatypesModBanView = - LemmyapiDatatypesModBanView( - mod_ban = this.toUni(d = d.mod_ban), - moderator = d.moderator?.let { this.toUni(d = it) }, - banned_person = this.toUni(d = d.banned_person), - ) + fun toUni(d: X5DatatypesPerson) = this.toUni(d, X5DatatypesPersonAggregates(-1, -1, -1, -1, -1, -1)) - override fun toUni(d: X5DatatypesModFeaturePost): LemmyapiDatatypesModFeaturePost = - LemmyapiDatatypesModFeaturePost( - id = d.id, - mod_person_id = d.mod_person_id, - post_id = d.post_id, - featured = d.featured, - when_ = addTimezoneOffset(d.when_), - is_featured_community = d.is_featured_community, - ) - - override fun toUni(d: X5DatatypesModFeaturePostView): LemmyapiDatatypesModFeaturePostView = - LemmyapiDatatypesModFeaturePostView( - mod_feature_post = this.toUni(d = d.mod_feature_post), - moderator = d.moderator?.let { this.toUni(d = it) }, - post = this.toUni(d = d.post), - community = this.toUni(d = d.community), - ) - - override fun toUni(d: X5DatatypesModHideCommunity): LemmyapiDatatypesModHideCommunity = - LemmyapiDatatypesModHideCommunity( - id = d.id, - community_id = d.community_id, - mod_person_id = d.mod_person_id, - when_ = addTimezoneOffset(d.when_), - reason = d.reason, - hidden = d.hidden, - ) - - override fun toUni(d: X5DatatypesModHideCommunityView): LemmyapiDatatypesModHideCommunityView = - LemmyapiDatatypesModHideCommunityView( - mod_hide_community = this.toUni(d = d.mod_hide_community), - admin = d.admin?.let { this.toUni(d = it) }, - community = this.toUni(d = d.community), - ) - - override fun toUni(d: X5DatatypesModLockPost): LemmyapiDatatypesModLockPost = - LemmyapiDatatypesModLockPost( - id = d.id, - mod_person_id = d.mod_person_id, - post_id = d.post_id, - locked = d.locked, - when_ = addTimezoneOffset(d.when_), - ) - - override fun toUni(d: X5DatatypesModLockPostView): LemmyapiDatatypesModLockPostView = - LemmyapiDatatypesModLockPostView( - mod_lock_post = this.toUni(d = d.mod_lock_post), - moderator = d.moderator?.let { this.toUni(d = it) }, - post = this.toUni(d = d.post), - community = this.toUni(d = d.community), - ) - - override fun toUni(d: X5DatatypesModlogListParams): LemmyapiDatatypesModlogListParams = - LemmyapiDatatypesModlogListParams( - community_id = d.community_id, - mod_person_id = d.mod_person_id, - other_person_id = d.other_person_id, - page = d.page, - limit = d.limit, - hide_modlog_names = d.hide_modlog_names, - ) - - override fun toUni(d: X5DatatypesModRemoveComment): LemmyapiDatatypesModRemoveComment = - LemmyapiDatatypesModRemoveComment( - id = d.id, - mod_person_id = d.mod_person_id, - comment_id = d.comment_id, - reason = d.reason, - removed = d.removed, - when_ = addTimezoneOffset(d.when_), - ) - - override fun toUni(d: X5DatatypesModRemoveCommentView): LemmyapiDatatypesModRemoveCommentView = - LemmyapiDatatypesModRemoveCommentView( - mod_remove_comment = this.toUni(d = d.mod_remove_comment), - moderator = d.moderator?.let { this.toUni(d = it) }, - comment = this.toUni(d = d.comment), - commenter = this.toUni(d = d.commenter), - post = this.toUni(d = d.post), - community = this.toUni(d = d.community), - ) - - override fun toUni(d: X5DatatypesModRemoveCommunity): LemmyapiDatatypesModRemoveCommunity = - LemmyapiDatatypesModRemoveCommunity( - id = d.id, - mod_person_id = d.mod_person_id, - community_id = d.community_id, - reason = d.reason, - removed = d.removed, - when_ = addTimezoneOffset(d.when_), - ) - - override fun toUni(d: X5DatatypesModRemoveCommunityView): LemmyapiDatatypesModRemoveCommunityView = LemmyapiDatatypesModRemoveCommunityView( - mod_remove_community = this.toUni(d = d.mod_remove_community), - moderator = d.moderator?.let { this.toUni(d = it) }, - community = this.toUni(d = d.community), - ) - - override fun toUni(d: X5DatatypesModRemovePost): LemmyapiDatatypesModRemovePost = - LemmyapiDatatypesModRemovePost( - id = d.id, - mod_person_id = d.mod_person_id, - post_id = d.post_id, - reason = d.reason, - removed = d.removed, - when_ = addTimezoneOffset(d.when_), - ) - - override fun toUni(d: X5DatatypesModRemovePostView): LemmyapiDatatypesModRemovePostView = - LemmyapiDatatypesModRemovePostView( - mod_remove_post = this.toUni(d = d.mod_remove_post), - moderator = d.moderator?.let { this.toUni(d = it) }, - post = this.toUni(d = d.post), - community = this.toUni(d = d.community), - ) - - override fun toUni(d: X5DatatypesModTransferCommunity): LemmyapiDatatypesModTransferCommunity = - LemmyapiDatatypesModTransferCommunity( - id = d.id, - mod_person_id = d.mod_person_id, - other_person_id = d.other_person_id, - community_id = d.community_id, - when_ = addTimezoneOffset(d.when_), - ) - - override fun toUni(d: X5DatatypesModTransferCommunityView): LemmyapiDatatypesModTransferCommunityView = LemmyapiDatatypesModTransferCommunityView( - mod_transfer_community = this.toUni(d = d.mod_transfer_community), - moderator = d.moderator?.let { this.toUni(d = it) }, - community = this.toUni(d = d.community), - modded_person = this.toUni(d = d.modded_person), - ) - - override fun toUni(d: X5DatatypesPerson): LemmyapiDatatypesPerson = LemmyapiDatatypesPerson( + override fun toUni(d: X5DatatypesPerson, counts: X5DatatypesPersonAggregates): LemmyapiDatatypesPerson = LemmyapiDatatypesPerson( id = d.id, name = d.name, display_name = d.display_name, avatar = d.avatar, - banned = d.banned, - published = addTimezoneOffset(d.published), - updated = addTimezoneOffsetNullable(d.updated), - actor_id = d.actor_id, + published_at = addTimezoneOffset(d.published), + updated_at = addTimezoneOffsetNullable(d.updated), + last_refreshed_at = "", + ap_id = d.actor_id, bio = d.bio, local = d.local, banner = d.banner, deleted = d.deleted, matrix_user_id = d.matrix_user_id, bot_account = d.bot_account, - ban_expires = addTimezoneOffsetNullable(d.ban_expires), +// ban_expires = addTimezoneOffsetNullable(d.ban_expires), instance_id = d.instance_id, + post_count = counts.post_count, + comment_count = counts.comment_count, ) - override fun toUni(d: X5DatatypesPersonAggregates): LemmyapiDatatypesPersonAggregates = - LemmyapiDatatypesPersonAggregates( - person_id = d.person_id, - post_count = d.post_count, - comment_count = d.comment_count, - ) - - override fun toUni(d: X5DatatypesPersonBlockView): LemmyapiDatatypesPersonBlockView = - LemmyapiDatatypesPersonBlockView( - person = this.toUni(d = d.person), - target = this.toUni(d = d.target), - ) - - override fun toUni(d: X5DatatypesPersonMention): LemmyapiDatatypesPersonMention = - LemmyapiDatatypesPersonMention( - id = d.id, - recipient_id = d.recipient_id, - comment_id = d.comment_id, - read = d.read, - published = d.published, - ) - - override fun toUni(d: X5DatatypesPersonMentionResponse): LemmyapiDatatypesPersonMentionResponse = - LemmyapiDatatypesPersonMentionResponse( - person_mention_view = this.toUni(d = d.person_mention_view), - ) - - override fun toUni(d: X5DatatypesPost): LemmyapiDatatypesPost = LemmyapiDatatypesPost( + override fun toUni(d: X5DatatypesPost, counts: X5DatatypesPostAggregates): LemmyapiDatatypesPost = LemmyapiDatatypesPost( id = d.id, name = d.name, url = d.url, @@ -1307,8 +837,8 @@ internal class Transformer(var auth: String) : MapperGenerator { community_id = d.community_id, removed = d.removed, locked = d.locked, - published = addTimezoneOffset(d.published), - updated = addTimezoneOffsetNullable(d.updated), + published_at = addTimezoneOffset(d.published), + updated_at = addTimezoneOffsetNullable(d.updated), deleted = d.deleted, nsfw = d.nsfw, embed_title = d.embed_title, @@ -1320,19 +850,16 @@ internal class Transformer(var auth: String) : MapperGenerator { language_id = d.language_id, featured_community = d.featured_community, featured_local = d.featured_local, + comments = counts.comments, + score = counts.score, + upvotes = counts.upvotes, + downvotes = counts.downvotes, + newest_comment_time_at = addTimezoneOffset(counts.newest_comment_time), + report_count = -1, + unresolved_report_count = -1, + federation_pending = false, ) - override fun toUni(d: X5DatatypesPostAggregates): LemmyapiDatatypesPostAggregates = - LemmyapiDatatypesPostAggregates( - post_id = d.post_id, - comments = d.comments, - score = d.score, - upvotes = d.upvotes, - downvotes = d.downvotes, - published = addTimezoneOffset(d.published), - newest_comment_time = addTimezoneOffset(d.newest_comment_time), - ) - override fun toUni(d: X5DatatypesPostReport): LemmyapiDatatypesPostReport = LemmyapiDatatypesPostReport( id = d.id, @@ -1344,8 +871,9 @@ internal class Transformer(var auth: String) : MapperGenerator { reason = d.reason, resolved = d.resolved, resolver_id = d.resolver_id, - published = addTimezoneOffset(d.published), - updated = d.updated, + published_at = addTimezoneOffset(d.published), + updated_at = d.updated, + violates_instance_rules = false, ) override fun toUni(d: X5DatatypesPostReportResponse): LemmyapiDatatypesPostReportResponse = @@ -1366,10 +894,12 @@ internal class Transformer(var auth: String) : MapperGenerator { content = d.content, deleted = d.deleted, read = d.read, - published = addTimezoneOffset(d.published), - updated = addTimezoneOffsetNullable(d.updated), + published_at = addTimezoneOffset(d.published), + updated_at = addTimezoneOffsetNullable(d.updated), ap_id = d.ap_id, local = d.local, + removed = false, + deleted_by_recipient = false, ) override fun toUni(d: X5DatatypesPrivateMessageReport): LemmyapiDatatypesPrivateMessageReport = @@ -1381,8 +911,8 @@ internal class Transformer(var auth: String) : MapperGenerator { reason = d.reason, resolved = d.resolved, resolver_id = d.resolver_id, - published = addTimezoneOffset(d.published), - updated = d.updated, + published_at = addTimezoneOffset(d.published), + updated_at = d.updated, ) override fun toUni(d: X5DatatypesPrivateMessageReportResponse): LemmyapiDatatypesPrivateMessageReportResponse = LemmyapiDatatypesPrivateMessageReportResponse( @@ -1395,16 +925,14 @@ internal class Transformer(var auth: String) : MapperGenerator { private_message_creator = this.toUni(d = d.private_message_creator), creator = this.toUni(d = d.creator), resolver = d.resolver?.let { this.toUni(d = it) }, + creator_is_admin = d.creator.admin, + creator_banned = d.creator.banned, ) override fun toUni(d: X5DatatypesPrivateMessageResponse): LemmyapiDatatypesPrivateMessageResponse = LemmyapiDatatypesPrivateMessageResponse( private_message_view = this.toUni(d = d.private_message_view), ) - override fun toUni(d: X5DatatypesPrivateMessagesResponse): LemmyapiDatatypesPrivateMessagesResponse = LemmyapiDatatypesPrivateMessagesResponse( - private_messages = d.private_messages.map { this.toUni(d = it) }, - ) - override fun toUni(d: X5DatatypesPrivateMessageView): LemmyapiDatatypesPrivateMessageView = LemmyapiDatatypesPrivateMessageView( private_message = this.toUni(d = d.private_message), @@ -1418,7 +946,7 @@ internal class Transformer(var auth: String) : MapperGenerator { answer = d.answer, admin_id = d.admin_id, deny_reason = d.deny_reason, - published = d.published, + published_at = d.published, ) override fun toUni(d: X5DatatypesRegistrationApplicationResponse): LemmyapiDatatypesRegistrationApplicationResponse = @@ -1433,74 +961,65 @@ internal class Transformer(var auth: String) : MapperGenerator { admin = d.admin?.let { this.toUni(d = it) }, ) - override fun toUni(d: X5DatatypesResolveObjectResponse): LemmyapiDatatypesResolveObjectResponse = - LemmyapiDatatypesResolveObjectResponse( - comment = d.comment?.let { this.toUni(d = it) }, - post = d.post?.let { this.toUni(d = it) }, - community = d.community?.let { this.toUni(d = it) }, - person = d.person?.let { this.toUni(d = it) }, + override fun toUni(d: X5DatatypesResolveObjectResponse): LemmyapiDatatypesSearchResponse = + LemmyapiDatatypesSearchResponse( + resolve = when { + d.post != null -> toUni(d.post) + d.comment != null -> toUni(d.comment) + d.community != null -> toUni(d.community) + d.person != null -> toUni(d.person) + else -> null + }, + comments = emptyList(), + posts = emptyList(), + communities = emptyList(), + persons = emptyList(), + multi_communities = emptyList(), ) override fun toUni(d: X5DatatypesSearchResponse): LemmyapiDatatypesSearchResponse = LemmyapiDatatypesSearchResponse( - type_ = d.type_, - comments = d.comments.map { this.toUni(d = it) }, - posts = d.posts.map { this.toUni(d = it) }, - communities = d.communities.map { this.toUni(d = it) }, - users = d.users.map { this.toUni(d = it) }, + comments = d.comments.map(this@Transformer::toUni), + posts = d.posts.map(this@Transformer::toUni), + communities = d.communities.map(this@Transformer::toUni), + persons = d.users.map(this@Transformer::toUni), + multi_communities = emptyList(), ) override fun toUni(d: X5DatatypesSite): LemmyapiDatatypesSite = LemmyapiDatatypesSite( id = d.id, name = d.name, sidebar = d.sidebar, - published = addTimezoneOffset(d.published), - updated = addTimezoneOffsetNullable(d.updated), + published_at = addTimezoneOffset(d.published), + updated_at = addTimezoneOffsetNullable(d.updated), icon = d.icon, banner = d.banner, - description = d.description, - actor_id = d.actor_id, + summary = d.description, + ap_id = d.actor_id, last_refreshed_at = addTimezoneOffset(d.last_refreshed_at), inbox_url = d.inbox_url, instance_id = d.instance_id, ) - override fun toUni(d: X5DatatypesSiteAggregates): LemmyapiDatatypesSiteAggregates = - LemmyapiDatatypesSiteAggregates( - site_id = d.site_id, - users = d.users, - posts = d.posts, - comments = d.comments, - communities = d.communities, - users_active_day = d.users_active_day, - users_active_week = d.users_active_week, - users_active_month = d.users_active_month, - users_active_half_year = d.users_active_half_year, - ) - override fun toUni(d: X5DatatypesSiteResponse): LemmyapiDatatypesSiteResponse = LemmyapiDatatypesSiteResponse( site_view = this.toUni(d = d.site_view), - taglines = d.taglines.map { this.toUni(d = it) }, ) override fun toUni(d: X5DatatypesSiteView): LemmyapiDatatypesSiteView = LemmyapiDatatypesSiteView( site = this.toUni(d = d.site), - local_site = this.toUni(d = d.local_site), + local_site = this.toUni(d = d.local_site, counts = d.counts), local_site_rate_limit = this.toUni(d = d.local_site_rate_limit), - counts = this.toUni(d = d.counts), + instance = null, ) override fun toUni(d: X5DatatypesTagline): LemmyapiDatatypesTagline = LemmyapiDatatypesTagline( id = d.id, - local_site_id = d.local_site_id, content = d.content, - published = addTimezoneOffset(d.published), - updated = d.updated, + published_at = addTimezoneOffset(d.published), + updated_at = d.updated, ) - override fun toUniF(d: X5DatatypesInstance): InstanceWithFederationState = super.toUniF(d) - override fun fromUni(d: LemmyapiDatatypesAddAdmin): X5DatatypesAddAdmin = X5DatatypesAddAdmin( person_id = d.person_id, added = d.added, @@ -1527,18 +1046,18 @@ internal class Transformer(var auth: String) : MapperGenerator { community_id = d.community_id, person_id = d.person_id, ban = d.ban, - remove_data = d.remove_data, + remove_data = d.remove_or_restore_data, reason = d.reason, - expires = d.expires, + expires = d.expires_at, auth = auth, ) override fun fromUni(d: LemmyapiDatatypesBanPerson): X5DatatypesBanPerson = X5DatatypesBanPerson( person_id = d.person_id, ban = d.ban, - remove_data = d.remove_data, + remove_data = d.remove_or_restore_data, reason = d.reason, - expires = d.expires, + expires = d.expires_at, auth = auth, ) @@ -1591,9 +1110,7 @@ internal class Transformer(var auth: String) : MapperGenerator { X5DatatypesCreateCommunity( name = d.name, title = d.title, - description = d.description, - icon = d.icon, - banner = d.banner, + description = d.summary, nsfw = d.nsfw, posting_restricted_to_mods = d.posting_restricted_to_mods, discussion_languages = d.discussion_languages, @@ -1653,43 +1170,42 @@ internal class Transformer(var auth: String) : MapperGenerator { X5DatatypesCreateSite( name = d.name, sidebar = d.sidebar, - description = d.description, - icon = d.icon, - banner = d.banner, - enable_downvotes = d.enable_downvotes, - enable_nsfw = d.enable_nsfw, + description = d.summary, + enable_downvotes = when (d.post_downvotes) { + FederationMode.Local, FederationMode.All -> true + FederationMode.Disable -> false + null -> null + }, + enable_nsfw = if (d.nsfw_content_disallowed == null) null else !d.nsfw_content_disallowed, community_creation_admin_only = d.community_creation_admin_only, - require_email_verification = d.require_email_verification, + require_email_verification = d.email_verification_required, application_question = d.application_question, private_instance = d.private_instance, default_theme = d.default_theme, - default_post_listing_type = d.default_post_listing_type, + default_post_listing_type = V0ListingType.fromUniNullable(d.default_post_listing_type), legal_information = d.legal_information, application_email_admins = d.application_email_admins, - hide_modlog_mod_names = d.hide_modlog_mod_names, discussion_languages = d.discussion_languages, slur_filter_regex = d.slur_filter_regex, - actor_name_max_length = d.actor_name_max_length, - rate_limit_message = d.rate_limit_message, - rate_limit_message_per_second = d.rate_limit_message_per_second, - rate_limit_post = d.rate_limit_post, - rate_limit_post_per_second = d.rate_limit_post_per_second, - rate_limit_register = d.rate_limit_register, - rate_limit_register_per_second = d.rate_limit_register_per_second, - rate_limit_image = d.rate_limit_image, - rate_limit_image_per_second = d.rate_limit_image_per_second, - rate_limit_comment = d.rate_limit_comment, - rate_limit_comment_per_second = d.rate_limit_comment_per_second, - rate_limit_search = d.rate_limit_search, - rate_limit_search_per_second = d.rate_limit_search_per_second, + rate_limit_message = d.rate_limit_message_max_requests, + rate_limit_message_per_second = d.rate_limit_message_interval_seconds, + rate_limit_post = d.rate_limit_post_max_requests, + rate_limit_post_per_second = d.rate_limit_post_interval_seconds, + rate_limit_register = d.rate_limit_register_max_requests, + rate_limit_register_per_second = d.rate_limit_register_interval_seconds, + rate_limit_image = d.rate_limit_image_max_requests, + rate_limit_image_per_second = d.rate_limit_image_interval_seconds, + rate_limit_comment = d.rate_limit_comment_max_requests, + rate_limit_comment_per_second = d.rate_limit_comment_interval_seconds, + rate_limit_search = d.rate_limit_search_max_requests, + rate_limit_search_per_second = d.rate_limit_search_interval_seconds, federation_enabled = d.federation_enabled, - federation_debug = d.federation_debug, - captcha_enabled = d.captcha_enabled, - captcha_difficulty = d.captcha_difficulty, + captcha_enabled = null, + captcha_difficulty = null, allowed_instances = d.allowed_instances, blocked_instances = d.blocked_instances, taglines = d.taglines, - registration_mode = d.registration_mode, + registration_mode = V0RegistrationMode.fromUniNullable(d.registration_mode), auth = auth, ) @@ -1752,9 +1268,7 @@ internal class Transformer(var auth: String) : MapperGenerator { X5DatatypesEditCommunity( community_id = d.community_id, title = d.title, - description = d.description, - icon = d.icon, - banner = d.banner, + description = d.summary, nsfw = d.nsfw, posting_restricted_to_mods = d.posting_restricted_to_mods, discussion_languages = d.discussion_languages, @@ -1764,10 +1278,10 @@ internal class Transformer(var auth: String) : MapperGenerator { override fun fromUni(d: LemmyapiDatatypesEditCustomEmoji): X5DatatypesEditCustomEmoji = X5DatatypesEditCustomEmoji( id = d.id, - category = d.category, - image_url = d.image_url, - alt_text = d.alt_text, - keywords = d.keywords, + category = d.category!!, + image_url = d.image_url!!, + alt_text = d.alt_text!!, + keywords = d.keywords ?: emptyList(), auth = auth, ) @@ -1791,43 +1305,44 @@ internal class Transformer(var auth: String) : MapperGenerator { override fun fromUni(d: LemmyapiDatatypesEditSite): X5DatatypesEditSite = X5DatatypesEditSite( name = d.name, sidebar = d.sidebar, - description = d.description, - icon = d.icon, - banner = d.banner, - enable_downvotes = d.enable_downvotes, + description = d.summary, + enable_downvotes = when (d.post_downvotes) { + FederationMode.Local, FederationMode.All -> true + FederationMode.Disable -> false + null -> null + }, enable_nsfw = d.enable_nsfw, community_creation_admin_only = d.community_creation_admin_only, - require_email_verification = d.require_email_verification, + require_email_verification = d.email_verification_required, application_question = d.application_question, private_instance = d.private_instance, default_theme = d.default_theme, - default_post_listing_type = d.default_post_listing_type, + default_post_listing_type = V0ListingType.fromUniNullable(d.default_post_listing_type), legal_information = d.legal_information, application_email_admins = d.application_email_admins, hide_modlog_mod_names = d.hide_modlog_mod_names, discussion_languages = d.discussion_languages, slur_filter_regex = d.slur_filter_regex, - actor_name_max_length = d.actor_name_max_length, - rate_limit_message = d.rate_limit_message, - rate_limit_message_per_second = d.rate_limit_message_per_second, - rate_limit_post = d.rate_limit_post, - rate_limit_post_per_second = d.rate_limit_post_per_second, - rate_limit_register = d.rate_limit_register, - rate_limit_register_per_second = d.rate_limit_register_per_second, - rate_limit_image = d.rate_limit_image, - rate_limit_image_per_second = d.rate_limit_image_per_second, - rate_limit_comment = d.rate_limit_comment, - rate_limit_comment_per_second = d.rate_limit_comment_per_second, - rate_limit_search = d.rate_limit_search, - rate_limit_search_per_second = d.rate_limit_search_per_second, + rate_limit_message = d.rate_limit_message_max_requests, + rate_limit_message_per_second = d.rate_limit_message_interval_seconds, + rate_limit_post = d.rate_limit_post_max_requests, + rate_limit_post_per_second = d.rate_limit_post_interval_seconds, + rate_limit_register = d.rate_limit_register_max_requests, + rate_limit_register_per_second = d.rate_limit_register_interval_seconds, + rate_limit_image = d.rate_limit_image_max_requests, + rate_limit_image_per_second = d.rate_limit_image_interval_seconds, + rate_limit_comment = d.rate_limit_comment_max_requests, + rate_limit_comment_per_second = d.rate_limit_comment_interval_seconds, + rate_limit_search = d.rate_limit_search_max_requests, + rate_limit_search_per_second = d.rate_limit_search_interval_seconds, federation_enabled = d.federation_enabled, federation_debug = d.federation_debug, - captcha_enabled = d.captcha_enabled, - captcha_difficulty = d.captcha_difficulty, + captcha_enabled = null, + captcha_difficulty = null, allowed_instances = d.allowed_instances, blocked_instances = d.blocked_instances, taglines = d.taglines, - registration_mode = d.registration_mode, + registration_mode = V0RegistrationMode.fromUniNullable(d.registration_mode), reports_email_admins = d.reports_email_admins, auth = auth, ) @@ -1836,7 +1351,7 @@ internal class Transformer(var auth: String) : MapperGenerator { X5DatatypesFeaturePost( post_id = d.post_id, featured = d.featured, - feature_type = d.feature_type, + feature_type = V0PostFeatureType.fromUni(d.feature_type), auth = auth, ) @@ -1855,8 +1370,8 @@ internal class Transformer(var auth: String) : MapperGenerator { override fun fromUni(d: LemmyapiDatatypesGetComments): X5DatatypesGetComments = X5DatatypesGetComments( - type_ = d.type_, - sort = d.sort, + type_ = V0ListingType.fromUniNullable(d.type_), + sort = V0CommentSortType.fromUniNullable(d.sort), max_depth = d.max_depth, page = d.page, limit = d.limit, @@ -1880,7 +1395,7 @@ internal class Transformer(var auth: String) : MapperGenerator { community_id = d.community_id, page = d.page, limit = d.limit, - type_ = d.type_, + type_ = V0ModlogActionType.fromUniNullable(d.type_), other_person_id = d.other_person_id, auth = auth, ) @@ -1889,20 +1404,6 @@ internal class Transformer(var auth: String) : MapperGenerator { X5DatatypesGetPersonDetails( person_id = d.person_id, username = d.username, - sort = d.sort, - page = d.page, - limit = d.limit, - community_id = d.community_id, - saved_only = d.saved_only, - auth = auth, - ) - - override fun fromUni(d: LemmyapiDatatypesGetPersonMentions): X5DatatypesGetPersonMentions = - X5DatatypesGetPersonMentions( - sort = d.sort, - page = d.page, - limit = d.limit, - unread_only = d.unread_only, auth = auth, ) @@ -1913,36 +1414,38 @@ internal class Transformer(var auth: String) : MapperGenerator { ) override fun fromUni(d: LemmyapiDatatypesGetPosts): X5DatatypesGetPosts = X5DatatypesGetPosts( - type_ = d.type_, - sort = d.sort, + type_ = V0ListingType.fromUniNullable(d.type_), + sort = V0SortType.fromUniNullable(d.sort), page = d.page, limit = d.limit, community_id = d.community_id, community_name = d.community_name, - saved_only = d.saved_only, auth = auth, ) - override fun fromUni(d: LemmyapiDatatypesGetPrivateMessages): X5DatatypesGetPrivateMessages = - X5DatatypesGetPrivateMessages( - unread_only = d.unread_only, + fun fromUniR(d: LemmyapiDatatypesListNotifications): X5DatatypesGetReplies = + X5DatatypesGetReplies( + sort = V0CommentSortType.New, page = d.page, limit = d.limit, + unread_only = d.unread_only, auth = auth, ) - override fun fromUni(d: LemmyapiDatatypesGetReplies): X5DatatypesGetReplies = - X5DatatypesGetReplies( - sort = d.sort, + fun fromUniM(d: LemmyapiDatatypesListNotifications): X5DatatypesGetPersonMentions = + X5DatatypesGetPersonMentions( + sort = V0CommentSortType.New, page = d.page, limit = d.limit, unread_only = d.unread_only, auth = auth, ) - override fun fromUni(d: LemmyapiDatatypesGetReportCount): X5DatatypesGetReportCount = - X5DatatypesGetReportCount( - community_id = d.community_id, + fun fromUniP(d: LemmyapiDatatypesListNotifications): X5DatatypesGetPrivateMessages = + X5DatatypesGetPrivateMessages( + page = d.page, + limit = d.limit, + unread_only = d.unread_only, auth = auth, ) @@ -1959,7 +1462,7 @@ internal class Transformer(var auth: String) : MapperGenerator { auth = auth, ) - override fun fromUni(d: LemmyapiDatatypesListCommentReports): X5DatatypesListCommentReports = + override fun fromUniC(d: LemmyapiDatatypesListReports): X5DatatypesListCommentReports = X5DatatypesListCommentReports( page = d.page, limit = d.limit, @@ -1970,15 +1473,15 @@ internal class Transformer(var auth: String) : MapperGenerator { override fun fromUni(d: LemmyapiDatatypesListCommunities): X5DatatypesListCommunities = X5DatatypesListCommunities( - type_ = d.type_, - sort = d.sort, + type_ = V0ListingType.fromUniNullable(d.type_), + sort = V0SortType.fromUniNullable(d.sort), show_nsfw = d.show_nsfw, page = d.page, limit = d.limit, auth = auth, ) - override fun fromUni(d: LemmyapiDatatypesListPostReports): X5DatatypesListPostReports = + override fun fromUniP(d: LemmyapiDatatypesListReports): X5DatatypesListPostReports = X5DatatypesListPostReports( page = d.page, limit = d.limit, @@ -1987,7 +1490,7 @@ internal class Transformer(var auth: String) : MapperGenerator { auth = auth, ) - override fun fromUni(d: LemmyapiDatatypesListPrivateMessageReports): X5DatatypesListPrivateMessageReports = X5DatatypesListPrivateMessageReports( + override fun fromUniPm(d: LemmyapiDatatypesListReports): X5DatatypesListPrivateMessageReports = X5DatatypesListPrivateMessageReports( page = d.page, limit = d.limit, unresolved_only = d.unresolved_only, @@ -2013,20 +1516,20 @@ internal class Transformer(var auth: String) : MapperGenerator { totp_2fa_token = d.totp_2fa_token, ) - override fun fromUni(d: LemmyapiDatatypesMarkCommentReplyAsRead): X5DatatypesMarkCommentReplyAsRead = X5DatatypesMarkCommentReplyAsRead( - comment_reply_id = d.comment_reply_id, + fun fromUniR(d: MarkNotificationAsRead): X5DatatypesMarkCommentReplyAsRead = X5DatatypesMarkCommentReplyAsRead( + comment_reply_id = d.notification_id, read = d.read, auth = auth, ) - override fun fromUni(d: LemmyapiDatatypesMarkPersonMentionAsRead): X5DatatypesMarkPersonMentionAsRead = X5DatatypesMarkPersonMentionAsRead( - person_mention_id = d.person_mention_id, + fun fromUniM(d: MarkNotificationAsRead): X5DatatypesMarkPersonMentionAsRead = X5DatatypesMarkPersonMentionAsRead( + person_mention_id = d.notification_id, read = d.read, auth = auth, ) - override fun fromUni(d: LemmyapiDatatypesMarkPrivateMessageAsRead): X5DatatypesMarkPrivateMessageAsRead = X5DatatypesMarkPrivateMessageAsRead( - private_message_id = d.private_message_id, + fun fromUniP(d: MarkNotificationAsRead): X5DatatypesMarkPrivateMessageAsRead = X5DatatypesMarkPrivateMessageAsRead( + private_message_id = d.notification_id, read = d.read, auth = auth, ) @@ -2073,7 +1576,7 @@ internal class Transformer(var auth: String) : MapperGenerator { username = d.username, password = d.password, password_verify = d.password_verify, - show_nsfw = d.show_nsfw, + show_nsfw = d.show_nsfw ?: false, email = d.email, captcha_uuid = d.captcha_uuid, captcha_answer = d.captcha_answer, @@ -2147,13 +1650,11 @@ internal class Transformer(var auth: String) : MapperGenerator { override fun fromUni(d: LemmyapiDatatypesSaveUserSettings): X5DatatypesSaveUserSettings = X5DatatypesSaveUserSettings( show_nsfw = d.show_nsfw, - show_scores = d.show_scores, + show_scores = d.show_score, theme = d.theme, - default_sort_type = d.default_sort_type, - default_listing_type = d.default_listing_type, + default_sort_type = V0SortType.fromUniNullable(d.default_post_sort_type), + default_listing_type = V0ListingType.fromUniNullable(d.default_listing_type), interface_language = d.interface_language, - avatar = d.avatar, - banner = d.banner, display_name = d.display_name, email = d.email, bio = d.bio, @@ -2169,13 +1670,12 @@ internal class Transformer(var auth: String) : MapperGenerator { ) override fun fromUni(d: LemmyapiDatatypesSearch): X5DatatypesSearch = X5DatatypesSearch( - q = d.q, + q = d.search_term, community_id = d.community_id, community_name = d.community_name, creator_id = d.creator_id, - type_ = d.type_, - sort = d.sort, - listing_type = d.listing_type, + type_ = V0SearchType.fromUniNullable(d.type_), + listing_type = V0ListingType.fromUniNullable(d.listing_type), page = d.page, limit = d.limit, auth = auth, diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/CommentId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/CommentId.kt index 4805f9d5..f80cac11 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/CommentId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/CommentId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x18.x5.datatypes -typealias CommentId = Long +internal typealias CommentId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/CommentReplyId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/CommentReplyId.kt index 5f9d0e7e..8797b458 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/CommentReplyId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/CommentReplyId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x18.x5.datatypes -typealias CommentReplyId = Long +internal typealias CommentReplyId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/CommentReplyView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/CommentReplyView.kt index 47db25cc..8154f995 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/CommentReplyView.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/CommentReplyView.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x18.x5.datatypes -import it.vercruysse.lemmyapi.dto.SubscribedType +import it.vercruysse.lemmyapi.v0.enums.SubscribedType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/CommentReportId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/CommentReportId.kt index 5a8b4411..c6afc636 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/CommentReportId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/CommentReportId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x18.x5.datatypes -typealias CommentReportId = Long +internal typealias CommentReportId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/CommentView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/CommentView.kt index 1fd11a75..32210113 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/CommentView.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/CommentView.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x18.x5.datatypes -import it.vercruysse.lemmyapi.dto.SubscribedType +import it.vercruysse.lemmyapi.v0.enums.SubscribedType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/CommunityId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/CommunityId.kt index b3437a64..cf7aa1c4 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/CommunityId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/CommunityId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x18.x5.datatypes -typealias CommunityId = Long +internal typealias CommunityId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/CommunityView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/CommunityView.kt index e341a8c7..c7c4cd3b 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/CommunityView.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/CommunityView.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x18.x5.datatypes -import it.vercruysse.lemmyapi.dto.SubscribedType +import it.vercruysse.lemmyapi.v0.enums.SubscribedType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/CreateSite.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/CreateSite.kt index b136b5e2..842d109c 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/CreateSite.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/CreateSite.kt @@ -1,7 +1,7 @@ package it.vercruysse.lemmyapi.v0.x18.x5.datatypes -import it.vercruysse.lemmyapi.dto.ListingType -import it.vercruysse.lemmyapi.dto.RegistrationMode +import it.vercruysse.lemmyapi.v0.enums.ListingType +import it.vercruysse.lemmyapi.v0.enums.RegistrationMode import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/CustomEmojiId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/CustomEmojiId.kt index 616606f7..4308312f 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/CustomEmojiId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/CustomEmojiId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x18.x5.datatypes -typealias CustomEmojiId = Long +internal typealias CustomEmojiId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/EditSite.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/EditSite.kt index 52548b07..a67e2a7a 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/EditSite.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/EditSite.kt @@ -1,7 +1,7 @@ package it.vercruysse.lemmyapi.v0.x18.x5.datatypes -import it.vercruysse.lemmyapi.dto.ListingType -import it.vercruysse.lemmyapi.dto.RegistrationMode +import it.vercruysse.lemmyapi.v0.enums.ListingType +import it.vercruysse.lemmyapi.v0.enums.RegistrationMode import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/FeaturePost.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/FeaturePost.kt index ee38d365..aa0e26ac 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/FeaturePost.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/FeaturePost.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x18.x5.datatypes -import it.vercruysse.lemmyapi.dto.PostFeatureType +import it.vercruysse.lemmyapi.v0.enums.PostFeatureType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/GetComments.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/GetComments.kt index 59cb08a9..689534c9 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/GetComments.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/GetComments.kt @@ -1,7 +1,7 @@ package it.vercruysse.lemmyapi.v0.x18.x5.datatypes -import it.vercruysse.lemmyapi.dto.CommentSortType -import it.vercruysse.lemmyapi.dto.ListingType +import it.vercruysse.lemmyapi.v0.enums.CommentSortType +import it.vercruysse.lemmyapi.v0.enums.ListingType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/GetModlog.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/GetModlog.kt index 66dcb35c..aeed7d77 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/GetModlog.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/GetModlog.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x18.x5.datatypes -import it.vercruysse.lemmyapi.dto.ModlogActionType +import it.vercruysse.lemmyapi.v0.enums.ModlogActionType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/GetPersonDetails.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/GetPersonDetails.kt index 0bea6c7e..f082d08d 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/GetPersonDetails.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/GetPersonDetails.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x18.x5.datatypes -import it.vercruysse.lemmyapi.dto.SortType +import it.vercruysse.lemmyapi.v0.enums.SortType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/GetPersonMentions.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/GetPersonMentions.kt index b712576d..b388a01a 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/GetPersonMentions.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/GetPersonMentions.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x18.x5.datatypes -import it.vercruysse.lemmyapi.dto.CommentSortType +import it.vercruysse.lemmyapi.v0.enums.CommentSortType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/GetPosts.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/GetPosts.kt index 652fa490..1dc67764 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/GetPosts.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/GetPosts.kt @@ -1,7 +1,7 @@ package it.vercruysse.lemmyapi.v0.x18.x5.datatypes -import it.vercruysse.lemmyapi.dto.ListingType -import it.vercruysse.lemmyapi.dto.SortType +import it.vercruysse.lemmyapi.v0.enums.ListingType +import it.vercruysse.lemmyapi.v0.enums.SortType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/GetReplies.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/GetReplies.kt index c51a2cf9..7d73d492 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/GetReplies.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/GetReplies.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x18.x5.datatypes -import it.vercruysse.lemmyapi.dto.CommentSortType +import it.vercruysse.lemmyapi.v0.enums.CommentSortType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/InstanceId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/InstanceId.kt index 0244b898..dcce228b 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/InstanceId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/InstanceId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x18.x5.datatypes -typealias InstanceId = Long +internal typealias InstanceId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/LanguageId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/LanguageId.kt index 1dab8ff6..aff4003b 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/LanguageId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/LanguageId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x18.x5.datatypes -typealias LanguageId = Long +internal typealias LanguageId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/ListCommunities.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/ListCommunities.kt index ecbf5dc8..d1642079 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/ListCommunities.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/ListCommunities.kt @@ -1,7 +1,7 @@ package it.vercruysse.lemmyapi.v0.x18.x5.datatypes -import it.vercruysse.lemmyapi.dto.ListingType -import it.vercruysse.lemmyapi.dto.SortType +import it.vercruysse.lemmyapi.v0.enums.ListingType +import it.vercruysse.lemmyapi.v0.enums.SortType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/LocalSite.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/LocalSite.kt index e172fe7c..f9330717 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/LocalSite.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/LocalSite.kt @@ -1,7 +1,7 @@ package it.vercruysse.lemmyapi.v0.x18.x5.datatypes -import it.vercruysse.lemmyapi.dto.ListingType -import it.vercruysse.lemmyapi.dto.RegistrationMode +import it.vercruysse.lemmyapi.v0.enums.ListingType +import it.vercruysse.lemmyapi.v0.enums.RegistrationMode import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/LocalSiteId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/LocalSiteId.kt index 0598d012..466e7894 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/LocalSiteId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/LocalSiteId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x18.x5.datatypes -typealias LocalSiteId = Long +internal typealias LocalSiteId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/LocalUser.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/LocalUser.kt index 42711eea..2d226029 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/LocalUser.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/LocalUser.kt @@ -1,7 +1,7 @@ package it.vercruysse.lemmyapi.v0.x18.x5.datatypes -import it.vercruysse.lemmyapi.dto.ListingType -import it.vercruysse.lemmyapi.dto.SortType +import it.vercruysse.lemmyapi.v0.enums.ListingType +import it.vercruysse.lemmyapi.v0.enums.SortType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/LocalUserId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/LocalUserId.kt index 38ae48fe..f00bf78f 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/LocalUserId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/LocalUserId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x18.x5.datatypes -typealias LocalUserId = Long +internal typealias LocalUserId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/ModlogListParams.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/ModlogListParams.kt deleted file mode 100644 index 3b83c4b3..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/ModlogListParams.kt +++ /dev/null @@ -1,13 +0,0 @@ -package it.vercruysse.lemmyapi.v0.x18.x5.datatypes - -import kotlinx.serialization.Serializable - -@Serializable -internal data class ModlogListParams( - val community_id: CommunityId? = null, - val mod_person_id: PersonId? = null, - val other_person_id: PersonId? = null, - val page: Long? = null, - val limit: Long? = null, - val hide_modlog_names: Boolean, -) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/PersonId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/PersonId.kt index 40d3abbb..4734b3fc 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/PersonId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/PersonId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x18.x5.datatypes -typealias PersonId = Long +internal typealias PersonId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/PersonMentionId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/PersonMentionId.kt index 9c197bdd..8f510a69 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/PersonMentionId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/PersonMentionId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x18.x5.datatypes -typealias PersonMentionId = Long +internal typealias PersonMentionId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/PersonMentionView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/PersonMentionView.kt index 8bef3237..36fe05db 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/PersonMentionView.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/PersonMentionView.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x18.x5.datatypes -import it.vercruysse.lemmyapi.dto.SubscribedType +import it.vercruysse.lemmyapi.v0.enums.SubscribedType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/PostId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/PostId.kt index ecaebaa6..891099a2 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/PostId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/PostId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x18.x5.datatypes -typealias PostId = Long +internal typealias PostId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/PostReportId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/PostReportId.kt index cc7e3265..00e1231c 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/PostReportId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/PostReportId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x18.x5.datatypes -typealias PostReportId = Long +internal typealias PostReportId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/PostView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/PostView.kt index c640c214..f1d9543f 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/PostView.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/PostView.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x18.x5.datatypes -import it.vercruysse.lemmyapi.dto.SubscribedType +import it.vercruysse.lemmyapi.v0.enums.SubscribedType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/PrivateMessageId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/PrivateMessageId.kt index 036e57b3..b5cd470d 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/PrivateMessageId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/PrivateMessageId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x18.x5.datatypes -typealias PrivateMessageId = Long +internal typealias PrivateMessageId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/PrivateMessageReportId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/PrivateMessageReportId.kt index a8e4059f..f657dad4 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/PrivateMessageReportId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/PrivateMessageReportId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x18.x5.datatypes -typealias PrivateMessageReportId = Long +internal typealias PrivateMessageReportId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/SaveUserSettings.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/SaveUserSettings.kt index 5e4cac9c..25358b4d 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/SaveUserSettings.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/SaveUserSettings.kt @@ -1,7 +1,7 @@ package it.vercruysse.lemmyapi.v0.x18.x5.datatypes -import it.vercruysse.lemmyapi.dto.ListingType -import it.vercruysse.lemmyapi.dto.SortType +import it.vercruysse.lemmyapi.v0.enums.ListingType +import it.vercruysse.lemmyapi.v0.enums.SortType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/Search.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/Search.kt index c9c4d9d4..b469b927 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/Search.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/Search.kt @@ -1,8 +1,8 @@ package it.vercruysse.lemmyapi.v0.x18.x5.datatypes -import it.vercruysse.lemmyapi.dto.ListingType -import it.vercruysse.lemmyapi.dto.SearchType -import it.vercruysse.lemmyapi.dto.SortType +import it.vercruysse.lemmyapi.v0.enums.ListingType +import it.vercruysse.lemmyapi.v0.enums.SearchType +import it.vercruysse.lemmyapi.v0.enums.SortType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/SearchResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/SearchResponse.kt index 6cab4926..79116a96 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/SearchResponse.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/SearchResponse.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x18.x5.datatypes -import it.vercruysse.lemmyapi.dto.SearchType +import it.vercruysse.lemmyapi.v0.enums.SearchType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/SiteId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/SiteId.kt index a8ca5d95..f06ce48b 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/SiteId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x18/x5/datatypes/SiteId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x18.x5.datatypes -typealias SiteId = Long +internal typealias SiteId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/LemmyApiController.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/LemmyApiController.kt index 0a93234e..a424621d 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/LemmyApiController.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/LemmyApiController.kt @@ -707,7 +707,7 @@ internal class LemmyApiController(client: HttpClient, auth: String?) : * * @POST("site/block") */ - override suspend fun blockInstance(form: BlockInstance): Result = + override suspend fun blockInstance(form: BlockInstance): Result = client.postResult("site/block", form) /** diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/LemmyApiRouter.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/LemmyApiRouter.kt index 6117dcd5..2334cec6 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/LemmyApiRouter.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/LemmyApiRouter.kt @@ -615,7 +615,7 @@ internal abstract class LemmyApiRouter(client: HttpClient, auth: String?) : Auth * * @POST("site/block") */ - abstract suspend fun blockInstance(form: BlockInstance): Result + abstract suspend fun blockInstance(form: BlockInstance): Result /** * Generate a TOTP / two-factor secret. diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/LemmyApiUniWrapper.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/LemmyApiUniWrapper.kt index 30750850..e39139bf 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/LemmyApiUniWrapper.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/LemmyApiUniWrapper.kt @@ -3,12 +3,25 @@ package it.vercruysse.lemmyapi.v0.x19.x0 import io.github.z4kn4fein.semver.Version import io.ktor.client.HttpClient import it.vercruysse.lemmyapi.LemmyApiBaseController +import it.vercruysse.lemmyapi.datatypes.ListCustomEmojis +import it.vercruysse.lemmyapi.datatypes.ListCustomEmojisResponse +import it.vercruysse.lemmyapi.datatypes.ListLoginsResponse +import it.vercruysse.lemmyapi.datatypes.ListNotifications +import it.vercruysse.lemmyapi.datatypes.MarkNotificationAsRead +import it.vercruysse.lemmyapi.datatypes.MyUserInfo +import it.vercruysse.lemmyapi.datatypes.PagedResponse +import it.vercruysse.lemmyapi.datatypes.UnreadCountsResponse import it.vercruysse.lemmyapi.dto.ExportUserSettingsResponse import it.vercruysse.lemmyapi.dto.ImportUserSettings +import it.vercruysse.lemmyapi.enums.NotificationDataType +import it.vercruysse.lemmyapi.enums.NotificationType +import it.vercruysse.lemmyapi.pictrs.PictrsService +import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.GetPersonDetails internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, baseUrl: String, auth: String?) : LemmyApiBaseController(client, actualVersion, baseUrl, auth) { private val api = LemmyApiController(client, auth) + private val pictrsApi = PictrsService(client, auth) private val transformer = Transformer() override var auth: String? @@ -16,6 +29,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba set(value) { super.auth = value api.auth = value + pictrsApi.auth = value } /** @@ -49,8 +63,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun getModlog( form: it.vercruysse.lemmyapi.datatypes.GetModlog, - ): Result = - api.getModlog(transformer.fromUni(form)).map(transformer::toUni) + ): Result> = notSupported() /** * Search lemmy. @@ -67,7 +80,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun resolveObject( form: it.vercruysse.lemmyapi.datatypes.ResolveObject, - ): Result = + ): Result = api.resolveObject(transformer.fromUni(form)).map(transformer::toUni) /** @@ -115,8 +128,8 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun listCommunities( form: it.vercruysse.lemmyapi.datatypes.ListCommunities, - ): Result = - api.listCommunities(transformer.fromUni(form)).map(transformer::toUni) + ): Result> = + api.listCommunities(transformer.fromUni(form)).map { PagedResponse(it.communities.map(transformer::toUni)) } /** * Follow / subscribe to a community. @@ -135,7 +148,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun blockCommunity( form: it.vercruysse.lemmyapi.datatypes.BlockCommunity, - ): Result = + ): Result = api.blockCommunity(transformer.fromUni(form)).map(transformer::toUni) /** @@ -165,8 +178,16 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun transferCommunity( form: it.vercruysse.lemmyapi.datatypes.TransferCommunity, - ): Result = - api.transferCommunity(transformer.fromUni(form)).map(transformer::toUni) + ): Result = + api.transferCommunity(transformer.fromUni(form)).map { communityResponse -> + val uniCommunityResponse = transformer.toUni(communityResponse) + it.vercruysse.lemmyapi.datatypes.GetCommunityResponse( + community_view = uniCommunityResponse.community_view, + site = null, + moderators = emptyList(), + discussion_languages = uniCommunityResponse.discussion_languages, + ) + } /** * Ban a user from a community. @@ -175,7 +196,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun banFromCommunity( form: it.vercruysse.lemmyapi.datatypes.BanFromCommunity, - ): Result = + ): Result = api.banFromCommunity(transformer.fromUni(form)).map(transformer::toUni) /** @@ -193,8 +214,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba * * @GET("federated_instances") */ - override suspend fun getFederatedInstances(): Result = - api.getFederatedInstances().map(transformer::toUni) + override suspend fun getFederatedInstances(form: it.vercruysse.lemmyapi.datatypes.GetFederatedInstances): Result> = notSupported() /** * Get / fetch a post. @@ -229,8 +249,8 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun getPosts( form: it.vercruysse.lemmyapi.datatypes.GetPosts, - ): Result = - api.getPosts(transformer.fromUni(form.toValidatedForm())).map(transformer::toUni) + ): Result> = + api.getPosts(transformer.fromUni(form.toValidatedForm())).map { PagedResponse(it.posts.map(transformer::toUni)) } /** * Delete a post. @@ -257,7 +277,27 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba * * @POST("post/mark_as_read") */ - override suspend fun markPostAsRead(form: it.vercruysse.lemmyapi.datatypes.MarkPostAsRead): Result = + override suspend fun markPostAsRead(form: it.vercruysse.lemmyapi.datatypes.MarkPostAsRead): Result = + api.markPostAsRead( + it.vercruysse.lemmyapi.v0.x19.x0.datatypes.MarkPostAsRead( + post_ids = listOf(form.post_id), + read = form.read, + ), + ).fold( + onSuccess = { _ -> + api.getPost(it.vercruysse.lemmyapi.v0.x19.x0.datatypes.GetPost(id = form.post_id)) + .map(transformer::toUni) + .map { post -> it.vercruysse.lemmyapi.datatypes.PostResponse(post_view = post.post_view) } + }, + onFailure = { Result.failure(it) }, + ) + + /** + * Mark multiple posts as read. + * + * @POST("post/mark_as_read") + */ + override suspend fun markManyPostsAsRead(form: it.vercruysse.lemmyapi.datatypes.MarkManyPostsAsRead): Result = api.markPostAsRead(transformer.fromUni(form)) /** @@ -317,14 +357,56 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba api.resolvePostReport(transformer.fromUni(form)).map(transformer::toUni) /** - * List post reports. - * - * @GET("post/report/list") + * List reports. */ - override suspend fun listPostReports( - form: it.vercruysse.lemmyapi.datatypes.ListPostReports, - ): Result = - api.listPostReports(transformer.fromUni(form)).map(transformer::toUni) + override suspend fun listReports( + form: it.vercruysse.lemmyapi.datatypes.ListReports, + ): Result> = + when (form.type_) { + it.vercruysse.lemmyapi.enums.ReportType.Communities -> notSupported() + + it.vercruysse.lemmyapi.enums.ReportType.Posts -> { + api.listPostReports(transformer.fromUniP(form)).map { resp -> + PagedResponse(resp.post_reports.map(transformer::toUni)) + } + } + + it.vercruysse.lemmyapi.enums.ReportType.Comments -> { + api.listCommentReports(transformer.fromUniC(form)).map { resp -> + PagedResponse(resp.comment_reports.map(transformer::toUni)) + } + } + + it.vercruysse.lemmyapi.enums.ReportType.PrivateMessages -> { + api.listPrivateMessageReports(transformer.fromUniPm(form)).map { resp -> + PagedResponse(resp.private_message_reports.map(transformer::toUni)) + } + } + + it.vercruysse.lemmyapi.enums.ReportType.All -> { + runCatching { + val postsResp = api.listPostReports(transformer.fromUniP(form)).getOrThrow() + val commentsResp = api.listCommentReports(transformer.fromUniC(form)).getOrThrow() + val privateMessagesResp = api.listPrivateMessageReports(transformer.fromUniPm(form)).getOrThrow() + + val allReports = mutableListOf() + + allReports.addAll( + postsResp.post_reports.map(transformer::toUni), + ) + + allReports.addAll( + commentsResp.comment_reports.map(transformer::toUni), + ) + + allReports.addAll( + privateMessagesResp.private_message_reports.map(transformer::toUni), + ) + + PagedResponse(allReports) + } + } + } /** * Fetch metadata for any given site. @@ -373,8 +455,8 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun getComments( form: it.vercruysse.lemmyapi.datatypes.GetComments, - ): Result = - api.getComments(transformer.fromUni(form)).map(transformer::toUni) + ): Result> = + api.getComments(transformer.fromUni(form)).map { PagedResponse(it.comments.map(transformer::toUni)) } /** * Delete a comment. @@ -396,16 +478,6 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba ): Result = api.removeComment(transformer.fromUni(form)).map(transformer::toUni) - /** - * Mark a comment as read. - * - * @POST("comment/mark_as_read") - */ - override suspend fun markCommentReplyAsRead( - form: it.vercruysse.lemmyapi.datatypes.MarkCommentReplyAsRead, - ): Result = - api.markCommentReplyAsRead(transformer.fromUni(form)).map(transformer::toUni) - /** * Distinguishes a comment (speak as moderator) * @@ -456,16 +528,6 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba ): Result = api.resolveCommentReport(transformer.fromUni(form)).map(transformer::toUni) - /** - * List comment reports. - * - * @GET("comment/report/list") - */ - override suspend fun listCommentReports( - form: it.vercruysse.lemmyapi.datatypes.ListCommentReports, - ): Result = - api.listCommentReports(transformer.fromUni(form)).map(transformer::toUni) - /** * Edit a private message. * @@ -486,16 +548,6 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba ): Result = api.createPrivateMessage(transformer.fromUni(form)).map(transformer::toUni) - /** - * Get / fetch private messages. - * - * @GET("private_message/list") - */ - override suspend fun getPrivateMessages( - form: it.vercruysse.lemmyapi.datatypes.GetPrivateMessages, - ): Result = - api.getPrivateMessages(transformer.fromUni(form)).map(transformer::toUni) - /** * Delete a private message. * @@ -506,16 +558,6 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba ): Result = api.deletePrivateMessage(transformer.fromUni(form)).map(transformer::toUni) - /** - * Mark a private message as read. - * - * @POST("private_message/mark_as_read") - */ - override suspend fun markPrivateMessageAsRead( - form: it.vercruysse.lemmyapi.datatypes.MarkPrivateMessageAsRead, - ): Result = - api.markPrivateMessageAsRead(transformer.fromUni(form)).map(transformer::toUni) - /** * Create a report for a private message. * @@ -536,16 +578,6 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba ): Result = api.resolvePrivateMessageReport(transformer.fromUni(form)).map(transformer::toUni) - /** - * List private message reports. - * - * @GET("private_message/report/list") - */ - override suspend fun listPrivateMessageReports( - form: it.vercruysse.lemmyapi.datatypes.ListPrivateMessageReports, - ): Result = - api.listPrivateMessageReports(transformer.fromUni(form)).map(transformer::toUni) - /** * Get the details for a person. * @@ -573,34 +605,47 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba api.getCaptcha().map(transformer::toUni) /** - * Get mentions for your user. - * - * @GET("user/mention") + * Mark a notification as read */ - override suspend fun getPersonMentions( - form: it.vercruysse.lemmyapi.datatypes.GetPersonMentions, - ): Result = - api.getPersonMentions(transformer.fromUni(form)).map(transformer::toUni) + override suspend fun markNotificationAsRead(form: MarkNotificationAsRead): Result = + when (form._kind) { + NotificationType.Mention -> api.markPersonMentionAsRead(transformer.fromUniM(form)).map { } + NotificationType.Reply -> api.markCommentReplyAsRead(transformer.fromUniR(form)).map { } + NotificationType.PrivateMessage -> api.markPrivateMessageAsRead(transformer.fromUniP(form)).map { } + NotificationType.Subscribed, NotificationType.ModAction -> notSupported() + null -> notSupported() + } /** - * Mark a person mention as read. - * - * @POST("user/mention/mark_as_read") + * List notifications. */ - override suspend fun markPersonMentionAsRead( - form: it.vercruysse.lemmyapi.datatypes.MarkPersonMentionAsRead, - ): Result = - api.markPersonMentionAsRead(transformer.fromUni(form)).map(transformer::toUni) + override suspend fun listNotifications(form: ListNotifications): Result> = + when (form.type_) { + NotificationDataType.All -> + runCatching { + val replies = api.getReplies(transformer.fromUniR(form)).getOrThrow().replies.map(transformer::toUni) + val mentionReplies = api.getPersonMentions(transformer.fromUniM(form)).getOrThrow().mentions.map(transformer::toUni) + val privateMessages = api.getPrivateMessages(transformer.fromUniP(form)).getOrThrow().private_messages.map(transformer::toUniPMV) + PagedResponse( + buildList { + addAll(replies) + addAll(mentionReplies) + addAll(privateMessages) + }, + ) + } - /** - * Get comment replies. - * - * @GET("user/replies") - */ - override suspend fun getReplies( - form: it.vercruysse.lemmyapi.datatypes.GetReplies, - ): Result = - api.getReplies(transformer.fromUni(form)).map(transformer::toUni) + NotificationDataType.Reply -> + api.getReplies(transformer.fromUniR(form)).map { resp -> PagedResponse(resp.replies.map(transformer::toUni)) } + + NotificationDataType.Mention -> + api.getPersonMentions(transformer.fromUniM(form)).map { resp -> PagedResponse(resp.mentions.map(transformer::toUni)) } + + NotificationDataType.PrivateMessage -> + api.getPrivateMessages(transformer.fromUniP(form)).map { resp -> PagedResponse(resp.private_messages.map(transformer::toUniPMV)) } + + NotificationDataType.Subscribed, NotificationDataType.ModAction -> Result.success(PagedResponse(emptyList())) + } /** * Ban a person from your site. @@ -609,7 +654,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun banPerson( form: it.vercruysse.lemmyapi.datatypes.BanPerson, - ): Result = + ): Result = api.banPerson(transformer.fromUni(form)).map(transformer::toUni) /** @@ -617,8 +662,8 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba * * @GET("user/banned") */ - override suspend fun getBannedPersons(): Result = - api.getBannedPersons().map(transformer::toUni) + override suspend fun getBannedPersons(): Result> = + api.getBannedPersons().map { resp -> PagedResponse(resp.banned.map(transformer::toUni)) } /** * Block a person. @@ -627,7 +672,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun blockPerson( form: it.vercruysse.lemmyapi.datatypes.BlockPerson, - ): Result = + ): Result = api.blockPerson(transformer.fromUni(form)).map(transformer::toUni) /** @@ -651,7 +696,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba * * @POST("user/password_reset") */ - override suspend fun resetPassword(form: it.vercruysse.lemmyapi.datatypes.PasswordReset): Result = + override suspend fun resetPassword(form: it.vercruysse.lemmyapi.datatypes.ResetPassword): Result = api.resetPassword(transformer.fromUni(form)) /** @@ -659,7 +704,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba * * @POST("user/password_change") */ - override suspend fun changePasswordAfterReset(form: it.vercruysse.lemmyapi.datatypes.PasswordChangeAfterReset): Result = + override suspend fun changePasswordAfterReset(form: it.vercruysse.lemmyapi.datatypes.ChangePasswordAfterReset): Result = api.changePasswordAfterReset(transformer.fromUni(form)) /** @@ -667,8 +712,8 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba * * @POST("user/mark_all_as_read") */ - override suspend fun markAllAsRead(): Result = - api.markAllAsRead().map(transformer::toUni) + override suspend fun markAllNotificationsAsRead(): Result = + api.markAllAsRead().map {} /** * Save your user settings. @@ -688,23 +733,16 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba ): Result = api.changePassword(transformer.fromUni(form)).map(transformer::toUni) - /** - * Get counts for your reports - * - * @GET("user/report_count") - */ - override suspend fun getReportCount( - form: it.vercruysse.lemmyapi.datatypes.GetReportCount, - ): Result = - api.getReportCount(transformer.fromUni(form)).map(transformer::toUni) - - /** - * Get your unread counts - * - * @GET("user/unread_count") - */ - override suspend fun getUnreadCount(): Result = - api.getUnreadCount().map(transformer::toUni) + override suspend fun getUnreadCounts(): Result = runCatching { + val d = api.getUnreadCount().getOrThrow() + val reportCount = api.getReportCount(it.vercruysse.lemmyapi.v0.x19.x0.datatypes.GetReportCount()).getOrNull() + val applicationCount = api.getUnreadRegistrationApplicationCount().getOrNull() + UnreadCountsResponse( + notification_count = d.replies + d.mentions + d.private_messages, + report_count = (reportCount?.post_reports ?: 0L) + (reportCount?.comment_reports ?: 0L) + (reportCount?.private_message_reports ?: 0L), + registration_application_count = applicationCount?.registration_applications, + ) + } /** * Verify your email @@ -739,14 +777,6 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba ): Result = api.addAdmin(transformer.fromUni(form)).map(transformer::toUni) - /** - * Get the unread registration applications count. - * - * @GET("admin/registration_application/count") - */ - override suspend fun getUnreadRegistrationApplicationCount(): Result = - api.getUnreadRegistrationApplicationCount().map(transformer::toUni) - /** * List the registration applications. * @@ -754,8 +784,8 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun listRegistrationApplications( form: it.vercruysse.lemmyapi.datatypes.ListRegistrationApplications, - ): Result = - api.listRegistrationApplications(transformer.fromUni(form)).map(transformer::toUni) + ): Result> = + api.listRegistrationApplications(transformer.fromUni(form)).map { resp -> PagedResponse(resp.registration_applications.map(transformer::toUni)) } /** * Approve a registration application @@ -827,15 +857,25 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba override suspend fun deleteCustomEmoji(form: it.vercruysse.lemmyapi.datatypes.DeleteCustomEmoji): Result = api.deleteCustomEmoji(transformer.fromUni(form)) + /** + * List custom emojis + * + * @GET("custom_emoji/list") + */ + override suspend fun listCustomEmojis(form: ListCustomEmojis): Result = + api.getSite().map { + ListCustomEmojisResponse(it.custom_emojis.map(transformer::toUni)) + } + /** * Block an instance. * * @POST("site/block") */ - override suspend fun blockInstance( - form: it.vercruysse.lemmyapi.datatypes.BlockInstance, - ): Result = - api.blockInstance(transformer.fromUni(form)).map(transformer::toUni) + override suspend fun userBlockInstanceCommunities( + form: it.vercruysse.lemmyapi.datatypes.UserBlockInstanceCommunitiesParams, + ): Result = + api.blockInstance(transformer.fromUni(form)) /** * Generate a TOTP / two-factor secret. @@ -856,9 +896,9 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba * * @POST("user/totp/update") */ - override suspend fun updateTotp( - form: it.vercruysse.lemmyapi.datatypes.UpdateTotp, - ): Result = + override suspend fun editTotp( + form: it.vercruysse.lemmyapi.datatypes.EditTotp, + ): Result = api.updateTotp(transformer.fromUni(form)).map(transformer::toUni) /** @@ -883,8 +923,8 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba * * @GET("user/list_logins") */ - override suspend fun listLogins(): Result> = - api.listLogins().map { it.map(transformer::toUni) } + override suspend fun listLogins(): Result = + api.listLogins().map { ListLoginsResponse(logins = it.map(transformer::toUni)) } /** * Returns an error message if your auth token is invalid @@ -907,7 +947,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun listPostLikes( form: it.vercruysse.lemmyapi.datatypes.ListPostLikes, - ): Result = + ): Result> = notSupported() /** @@ -917,7 +957,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun listCommentLikes( form: it.vercruysse.lemmyapi.datatypes.ListCommentLikes, - ): Result = + ): Result> = notSupported() /** @@ -927,7 +967,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun listMedia( form: it.vercruysse.lemmyapi.datatypes.ListMedia, - ): Result = + ): Result> = notSupported() /** @@ -935,9 +975,9 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba * * @GET("admin/list_all_media") */ - override suspend fun listAllMedia( + override suspend fun listMediaAdmin( form: it.vercruysse.lemmyapi.datatypes.ListMedia, - ): Result = + ): Result> = notSupported() /** @@ -945,7 +985,10 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba * * @POST("post/hide") */ - override suspend fun hidePost(form: it.vercruysse.lemmyapi.datatypes.HidePost): Result = + override suspend fun hidePost(form: it.vercruysse.lemmyapi.datatypes.HidePost): Result = + notSupported() + + override suspend fun hidePosts(form: it.vercruysse.lemmyapi.datatypes.HidePosts): Result = notSupported() /** @@ -956,4 +999,238 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba override suspend fun getRegistrationApplication( form: it.vercruysse.lemmyapi.datatypes.GetRegistrationApplication, ): Result = notSupported() + + /** + * Get data of current user + * + * @GET("/account") + */ + override suspend fun getMyUser(): Result = + api.getSite() + .mapCatching { it.my_user ?: throw IllegalStateException("Auth invalid") } + .map { transformer.toUni(it) } + + /** + * List the content for a person. + * + * @GET("person/content") + */ + override suspend fun listPersonContent( + form: it.vercruysse.lemmyapi.datatypes.ListPersonContent, + ): Result> { + val getPersonDetailsForm = GetPersonDetails( + username = form.username, + person_id = form.person_id, + community_id = form.community_id, + page = form.page, + limit = form.limit, + ) + return api.getPersonDetails(getPersonDetailsForm).map { response -> + val comments = when (form.type_) { + it.vercruysse.lemmyapi.enums.PersonContentType.Posts -> emptyList() + else -> response.comments.map { transformer.toUni(it) } + } + val posts = when (form.type_) { + it.vercruysse.lemmyapi.enums.PersonContentType.Comments -> emptyList() + else -> response.posts.map { transformer.toUni(it) } + } + PagedResponse(items = comments + posts) + } + } + + override suspend fun uploadImage(image: ByteArray): Result = + pictrsApi.uploadImage(image) + + override suspend fun uploadCommunityBanner( + image: ByteArray, + form: it.vercruysse.lemmyapi.datatypes.CommunityIdQuery, + ): Result = + uploadAndApplyImage(image) { imageUrl -> + api.editCommunity( + it.vercruysse.lemmyapi.v0.x19.x0.datatypes.EditCommunity( + community_id = form.id, + banner = imageUrl, + ), + ).map {} + } + + override suspend fun uploadCommunityIcon( + image: ByteArray, + form: it.vercruysse.lemmyapi.datatypes.CommunityIdQuery, + ): Result = + uploadAndApplyImage(image) { imageUrl -> + api.editCommunity( + it.vercruysse.lemmyapi.v0.x19.x0.datatypes.EditCommunity( + community_id = form.id, + icon = imageUrl, + ), + ).map {} + } + + override suspend fun uploadSiteBanner(image: ByteArray): Result = + uploadAndApplyImage(image) { imageUrl -> + api.editSite( + it.vercruysse.lemmyapi.v0.x19.x0.datatypes.EditSite( + banner = imageUrl, + ), + ).map {} + } + + override suspend fun uploadSiteIcon(image: ByteArray): Result = + uploadAndApplyImage(image) { imageUrl -> + api.editSite( + it.vercruysse.lemmyapi.v0.x19.x0.datatypes.EditSite( + icon = imageUrl, + ), + ).map {} + } + + override suspend fun uploadUserAvatar(image: ByteArray): Result = + uploadAndApplyImage(image) { imageUrl -> + api.saveUserSettings( + it.vercruysse.lemmyapi.v0.x19.x0.datatypes.SaveUserSettings( + avatar = imageUrl, + ), + ) + } + + override suspend fun uploadUserBanner(image: ByteArray): Result = + uploadAndApplyImage(image) { imageUrl -> + api.saveUserSettings( + it.vercruysse.lemmyapi.v0.x19.x0.datatypes.SaveUserSettings( + banner = imageUrl, + ), + ) + } + + override suspend fun deleteUserAvatar(): Result = + api.saveUserSettings(it.vercruysse.lemmyapi.v0.x19.x0.datatypes.SaveUserSettings(avatar = "")) + + override suspend fun deleteUserBanner(): Result = + api.saveUserSettings(it.vercruysse.lemmyapi.v0.x19.x0.datatypes.SaveUserSettings(banner = "")) + + override suspend fun deleteCommunityBanner(form: it.vercruysse.lemmyapi.datatypes.CommunityIdQuery): Result = + api.editCommunity( + it.vercruysse.lemmyapi.v0.x19.x0.datatypes.EditCommunity( + community_id = form.id, + banner = "", + ), + ).map {} + + override suspend fun deleteCommunityIcon(form: it.vercruysse.lemmyapi.datatypes.CommunityIdQuery): Result = + api.editCommunity( + it.vercruysse.lemmyapi.v0.x19.x0.datatypes.EditCommunity( + community_id = form.id, + icon = "", + ), + ).map {} + + override suspend fun deleteSiteBanner(): Result = + api.editSite( + it.vercruysse.lemmyapi.v0.x19.x0.datatypes.EditSite( + banner = "", + ), + ).map {} + + override suspend fun deleteSiteIcon(): Result = + api.editSite( + it.vercruysse.lemmyapi.v0.x19.x0.datatypes.EditSite( + icon = "", + ), + ).map {} + + override suspend fun deleteMedia(form: it.vercruysse.lemmyapi.datatypes.DeleteImageParams): Result = + pictrsApi.deleteMedia(form) + + override suspend fun adminListUsers(form: it.vercruysse.lemmyapi.datatypes.AdminListUsers): Result> = notSupported() + + override suspend fun getRandomCommunity(form: it.vercruysse.lemmyapi.datatypes.GetRandomCommunity): Result = notSupported() + + override suspend fun createCommunityReport(form: it.vercruysse.lemmyapi.datatypes.CreateCommunityReport): Result = notSupported() + + override suspend fun resolveCommunityReport(form: it.vercruysse.lemmyapi.datatypes.ResolveCommunityReport): Result = notSupported() + + override suspend fun createCommunityTag(form: it.vercruysse.lemmyapi.datatypes.CreateCommunityTag): Result = notSupported() + + override suspend fun editCommunityTag(form: it.vercruysse.lemmyapi.datatypes.EditCommunityTag): Result = notSupported() + + override suspend fun deleteCommunityTag(form: it.vercruysse.lemmyapi.datatypes.DeleteCommunityTag): Result = notSupported() + + override suspend fun editCommunityNotifications(form: it.vercruysse.lemmyapi.datatypes.EditCommunityNotifications): Result = notSupported() + + override suspend fun approveCommunityPendingFollow(form: it.vercruysse.lemmyapi.datatypes.ApproveCommunityPendingFollower): Result = notSupported() + + override suspend fun listCommunityPendingFollows(form: it.vercruysse.lemmyapi.datatypes.ListCommunityPendingFollows): Result> = notSupported() + + override suspend fun modEditPost(form: it.vercruysse.lemmyapi.datatypes.ModEditPost): Result = notSupported() + + override suspend fun editPostNotifications(form: it.vercruysse.lemmyapi.datatypes.EditPostNotifications): Result = notSupported() + + override suspend fun warnPost(form: it.vercruysse.lemmyapi.datatypes.CreatePostWarning): Result = notSupported() + + override suspend fun getCommentsSlim(form: it.vercruysse.lemmyapi.datatypes.GetComments): Result> = notSupported() + + override suspend fun lockComment(form: it.vercruysse.lemmyapi.datatypes.LockComment): Result = notSupported() + + override suspend fun warnComment(form: it.vercruysse.lemmyapi.datatypes.CreateCommentWarning): Result = notSupported() + + override suspend fun notePerson(form: it.vercruysse.lemmyapi.datatypes.NotePerson): Result = notSupported() + + override suspend fun listPersonSaved(form: it.vercruysse.lemmyapi.datatypes.ListPersonSaved): Result> = notSupported() + + override suspend fun listPersonRead(form: it.vercruysse.lemmyapi.datatypes.ListPersonRead): Result> = notSupported() + + override suspend fun listPersonHidden(form: it.vercruysse.lemmyapi.datatypes.ListPersonHidden): Result> = notSupported() + + override suspend fun listPersonLiked(form: it.vercruysse.lemmyapi.datatypes.ListPersonLiked): Result> = notSupported() + + override suspend fun resendVerificationEmail(form: it.vercruysse.lemmyapi.datatypes.ResendVerificationEmail): Result = notSupported() + + override suspend fun authenticateWithOAuth(form: it.vercruysse.lemmyapi.datatypes.AuthenticateWithOauth): Result = notSupported() + + override suspend fun userBlockInstancePersons(form: it.vercruysse.lemmyapi.datatypes.UserBlockInstancePersonsParams): Result = notSupported() + + override suspend fun adminAllowInstance(form: it.vercruysse.lemmyapi.datatypes.AdminAllowInstanceParams): Result = notSupported() + + override suspend fun adminBlockInstance(form: it.vercruysse.lemmyapi.datatypes.AdminBlockInstanceParams): Result = notSupported() + + override suspend fun createTagline(form: it.vercruysse.lemmyapi.datatypes.CreateTagline): Result = notSupported() + + override suspend fun editTagline(form: it.vercruysse.lemmyapi.datatypes.EditTagline): Result = notSupported() + + override suspend fun deleteTagline(form: it.vercruysse.lemmyapi.datatypes.DeleteTagline): Result = notSupported() + + override suspend fun listTaglines(form: it.vercruysse.lemmyapi.datatypes.ListTaglines): Result> = notSupported() + + override suspend fun createOAuthProvider(form: it.vercruysse.lemmyapi.datatypes.CreateOAuthProvider): Result = notSupported() + + override suspend fun editOAuthProvider(form: it.vercruysse.lemmyapi.datatypes.EditOAuthProvider): Result = notSupported() + + override suspend fun deleteOAuthProvider(form: it.vercruysse.lemmyapi.datatypes.DeleteOAuthProvider): Result = notSupported() + + override suspend fun getMultiCommunity(form: it.vercruysse.lemmyapi.datatypes.GetMultiCommunity): Result = notSupported() + + override suspend fun createMultiCommunity(form: it.vercruysse.lemmyapi.datatypes.CreateMultiCommunity): Result = notSupported() + + override suspend fun editMultiCommunity(form: it.vercruysse.lemmyapi.datatypes.EditMultiCommunity): Result = notSupported() + + override suspend fun createMultiCommunityEntry(form: it.vercruysse.lemmyapi.datatypes.CreateOrDeleteMultiCommunityEntry): Result = notSupported() + + override suspend fun deleteMultiCommunityEntry(form: it.vercruysse.lemmyapi.datatypes.CreateOrDeleteMultiCommunityEntry): Result = notSupported() + + override suspend fun followMultiCommunity(form: it.vercruysse.lemmyapi.datatypes.FollowMultiCommunity): Result = notSupported() + + override suspend fun listMultiCommunities(form: it.vercruysse.lemmyapi.datatypes.ListMultiCommunities): Result> = notSupported() + + override suspend fun deleteMediaAdmin(form: it.vercruysse.lemmyapi.datatypes.DeleteImageParams): Result = notSupported() + + override suspend fun imageHealth(): Result = notSupported() + + override suspend fun listPersons(form: it.vercruysse.lemmyapi.datatypes.ListPersons): Result> = notSupported() + + override suspend fun createRegistrationInvitation(form: it.vercruysse.lemmyapi.datatypes.CreateInvitation): Result = notSupported() + + override suspend fun revokeRegistrationInvitation(form: it.vercruysse.lemmyapi.datatypes.RevokeInvitation): Result = notSupported() + + override suspend fun listRegistrationInvitations(form: it.vercruysse.lemmyapi.datatypes.ListInvitations): Result> = notSupported() } diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/MapperGenerator.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/MapperGenerator.kt index 092be0a6..d44007d7 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/MapperGenerator.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/MapperGenerator.kt @@ -4,15 +4,11 @@ import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.* internal interface MapperGenerator { - fun toUni(d: CommentReplyView): it.vercruysse.lemmyapi.datatypes.CommentReplyView - fun toUni(d: CommentReportView): it.vercruysse.lemmyapi.datatypes.CommentReportView fun toUni(d: CommentView): it.vercruysse.lemmyapi.datatypes.CommentView - fun toUni(d: Community): it.vercruysse.lemmyapi.datatypes.Community - - fun toUni(d: CommunityAggregates): it.vercruysse.lemmyapi.datatypes.CommunityAggregates + fun toUni(d: Community, counts: CommunityAggregates): it.vercruysse.lemmyapi.datatypes.Community fun toUni(d: CommunityView): it.vercruysse.lemmyapi.datatypes.CommunityView @@ -26,11 +22,7 @@ internal interface MapperGenerator { fun toUni(d: GetSiteResponse): it.vercruysse.lemmyapi.datatypes.GetSiteResponse - fun toUni(d: LocalSite): it.vercruysse.lemmyapi.datatypes.LocalSite - - fun toUni(d: PersonMentionView): it.vercruysse.lemmyapi.datatypes.PersonMentionView - - fun toUni(d: PostAggregates): it.vercruysse.lemmyapi.datatypes.PostAggregates + fun toUni(d: LocalSite, counts: SiteAggregates): it.vercruysse.lemmyapi.datatypes.LocalSite fun toUni(d: PostReportView): it.vercruysse.lemmyapi.datatypes.PostReportView @@ -39,32 +31,18 @@ internal interface MapperGenerator { // GENERATED fun toUni(d: AddAdminResponse): it.vercruysse.lemmyapi.datatypes.AddAdminResponse fun toUni(d: AddModToCommunityResponse): it.vercruysse.lemmyapi.datatypes.AddModToCommunityResponse - fun toUni(d: AdminPurgeComment): it.vercruysse.lemmyapi.datatypes.AdminPurgeComment - fun toUni(d: AdminPurgeCommentView): it.vercruysse.lemmyapi.datatypes.AdminPurgeCommentView - fun toUni(d: AdminPurgeCommunity): it.vercruysse.lemmyapi.datatypes.AdminPurgeCommunity - fun toUni(d: AdminPurgeCommunityView): it.vercruysse.lemmyapi.datatypes.AdminPurgeCommunityView - fun toUni(d: AdminPurgePerson): it.vercruysse.lemmyapi.datatypes.AdminPurgePerson - fun toUni(d: AdminPurgePersonView): it.vercruysse.lemmyapi.datatypes.AdminPurgePersonView - fun toUni(d: AdminPurgePost): it.vercruysse.lemmyapi.datatypes.AdminPurgePost - fun toUni(d: AdminPurgePostView): it.vercruysse.lemmyapi.datatypes.AdminPurgePostView - fun toUni(d: BanFromCommunityResponse): it.vercruysse.lemmyapi.datatypes.BanFromCommunityResponse - fun toUni(d: BannedPersonsResponse): it.vercruysse.lemmyapi.datatypes.BannedPersonsResponse - fun toUni(d: BanPersonResponse): it.vercruysse.lemmyapi.datatypes.BanPersonResponse - fun toUni(d: BlockCommunityResponse): it.vercruysse.lemmyapi.datatypes.BlockCommunityResponse - fun toUni(d: BlockInstanceResponse): it.vercruysse.lemmyapi.datatypes.BlockInstanceResponse - fun toUni(d: BlockPersonResponse): it.vercruysse.lemmyapi.datatypes.BlockPersonResponse + fun toUni(d: BanFromCommunityResponse): it.vercruysse.lemmyapi.datatypes.PersonResponse + fun toUni(d: BanPersonResponse): it.vercruysse.lemmyapi.datatypes.PersonResponse + fun toUni(d: BlockCommunityResponse): it.vercruysse.lemmyapi.datatypes.CommunityResponse + fun toUni(d: BlockPersonResponse): it.vercruysse.lemmyapi.datatypes.PersonResponse fun toUni(d: CaptchaResponse): it.vercruysse.lemmyapi.datatypes.CaptchaResponse - fun toUni(d: Comment): it.vercruysse.lemmyapi.datatypes.Comment - fun toUni(d: CommentAggregates): it.vercruysse.lemmyapi.datatypes.CommentAggregates - fun toUni(d: CommentReply): it.vercruysse.lemmyapi.datatypes.CommentReply - fun toUni(d: CommentReplyResponse): it.vercruysse.lemmyapi.datatypes.CommentReplyResponse + fun toUni(d: Comment, counts: CommentAggregates): it.vercruysse.lemmyapi.datatypes.Comment fun toUni(d: CommentReport): it.vercruysse.lemmyapi.datatypes.CommentReport fun toUni(d: CommentReportResponse): it.vercruysse.lemmyapi.datatypes.CommentReportResponse fun toUni(d: CommentResponse): it.vercruysse.lemmyapi.datatypes.CommentResponse - fun toUni(d: CommunityBlockView): it.vercruysse.lemmyapi.datatypes.CommunityBlockView fun toUni(d: CommunityFollowerView): it.vercruysse.lemmyapi.datatypes.CommunityFollowerView fun toUni(d: CommunityModeratorView): it.vercruysse.lemmyapi.datatypes.CommunityModeratorView fun toUni(d: CommunityResponse): it.vercruysse.lemmyapi.datatypes.CommunityResponse @@ -73,72 +51,25 @@ internal interface MapperGenerator { fun toUni(d: CustomEmojiKeyword): it.vercruysse.lemmyapi.datatypes.CustomEmojiKeyword fun toUni(d: CustomEmojiResponse): it.vercruysse.lemmyapi.datatypes.CustomEmojiResponse fun toUni(d: CustomEmojiView): it.vercruysse.lemmyapi.datatypes.CustomEmojiView - fun toUni(d: FederatedInstances): it.vercruysse.lemmyapi.datatypes.FederatedInstances fun toUni(d: GenerateTotpSecretResponse): it.vercruysse.lemmyapi.datatypes.GenerateTotpSecretResponse fun toUni(d: GetCaptchaResponse): it.vercruysse.lemmyapi.datatypes.GetCaptchaResponse - fun toUni(d: GetCommentsResponse): it.vercruysse.lemmyapi.datatypes.GetCommentsResponse fun toUni(d: GetCommunityResponse): it.vercruysse.lemmyapi.datatypes.GetCommunityResponse - fun toUni(d: GetFederatedInstancesResponse): it.vercruysse.lemmyapi.datatypes.GetFederatedInstancesResponse - fun toUni(d: GetModlogResponse): it.vercruysse.lemmyapi.datatypes.GetModlogResponse fun toUni(d: GetPersonDetailsResponse): it.vercruysse.lemmyapi.datatypes.GetPersonDetailsResponse - fun toUni(d: GetPersonMentionsResponse): it.vercruysse.lemmyapi.datatypes.GetPersonMentionsResponse fun toUni(d: GetPostResponse): it.vercruysse.lemmyapi.datatypes.GetPostResponse - fun toUni(d: GetPostsResponse): it.vercruysse.lemmyapi.datatypes.GetPostsResponse - fun toUni(d: GetRepliesResponse): it.vercruysse.lemmyapi.datatypes.GetRepliesResponse - fun toUni(d: GetReportCountResponse): it.vercruysse.lemmyapi.datatypes.GetReportCountResponse fun toUni(d: GetSiteMetadataResponse): it.vercruysse.lemmyapi.datatypes.GetSiteMetadataResponse - - fun toUni(d: GetUnreadCountResponse): it.vercruysse.lemmyapi.datatypes.GetUnreadCountResponse - fun toUni( - d: GetUnreadRegistrationApplicationCountResponse, - ): it.vercruysse.lemmyapi.datatypes.GetUnreadRegistrationApplicationCountResponse fun toUni(d: Instance): it.vercruysse.lemmyapi.datatypes.Instance - fun toUni(d: InstanceBlockView): it.vercruysse.lemmyapi.datatypes.InstanceBlockView - fun toUni(d: InstanceWithFederationState): it.vercruysse.lemmyapi.datatypes.InstanceWithFederationState fun toUni(d: Language): it.vercruysse.lemmyapi.datatypes.Language - fun toUni(d: ListCommentReportsResponse): it.vercruysse.lemmyapi.datatypes.ListCommentReportsResponse - fun toUni(d: ListCommunitiesResponse): it.vercruysse.lemmyapi.datatypes.ListCommunitiesResponse - fun toUni(d: ListPostReportsResponse): it.vercruysse.lemmyapi.datatypes.ListPostReportsResponse - fun toUni(d: ListPrivateMessageReportsResponse): it.vercruysse.lemmyapi.datatypes.ListPrivateMessageReportsResponse - fun toUni(d: ListRegistrationApplicationsResponse): it.vercruysse.lemmyapi.datatypes.ListRegistrationApplicationsResponse fun toUni(d: LocalSiteRateLimit): it.vercruysse.lemmyapi.datatypes.LocalSiteRateLimit fun toUni(d: LocalUser): it.vercruysse.lemmyapi.datatypes.LocalUser fun toUni(d: LocalUserView): it.vercruysse.lemmyapi.datatypes.LocalUserView fun toUni(d: LoginResponse): it.vercruysse.lemmyapi.datatypes.LoginResponse fun toUni(d: LoginToken): it.vercruysse.lemmyapi.datatypes.LoginToken - fun toUni(d: ModAdd): it.vercruysse.lemmyapi.datatypes.ModAdd - fun toUni(d: ModAddCommunity): it.vercruysse.lemmyapi.datatypes.ModAddCommunity - fun toUni(d: ModAddCommunityView): it.vercruysse.lemmyapi.datatypes.ModAddCommunityView - fun toUni(d: ModAddView): it.vercruysse.lemmyapi.datatypes.ModAddView - fun toUni(d: ModBan): it.vercruysse.lemmyapi.datatypes.ModBan - fun toUni(d: ModBanFromCommunity): it.vercruysse.lemmyapi.datatypes.ModBanFromCommunity - fun toUni(d: ModBanFromCommunityView): it.vercruysse.lemmyapi.datatypes.ModBanFromCommunityView - fun toUni(d: ModBanView): it.vercruysse.lemmyapi.datatypes.ModBanView - fun toUni(d: ModFeaturePost): it.vercruysse.lemmyapi.datatypes.ModFeaturePost - fun toUni(d: ModFeaturePostView): it.vercruysse.lemmyapi.datatypes.ModFeaturePostView - fun toUni(d: ModHideCommunity): it.vercruysse.lemmyapi.datatypes.ModHideCommunity - fun toUni(d: ModHideCommunityView): it.vercruysse.lemmyapi.datatypes.ModHideCommunityView - fun toUni(d: ModLockPost): it.vercruysse.lemmyapi.datatypes.ModLockPost - fun toUni(d: ModLockPostView): it.vercruysse.lemmyapi.datatypes.ModLockPostView - fun toUni(d: ModlogListParams): it.vercruysse.lemmyapi.datatypes.ModlogListParams - fun toUni(d: ModRemoveComment): it.vercruysse.lemmyapi.datatypes.ModRemoveComment - fun toUni(d: ModRemoveCommentView): it.vercruysse.lemmyapi.datatypes.ModRemoveCommentView - fun toUni(d: ModRemoveCommunity): it.vercruysse.lemmyapi.datatypes.ModRemoveCommunity - fun toUni(d: ModRemoveCommunityView): it.vercruysse.lemmyapi.datatypes.ModRemoveCommunityView - fun toUni(d: ModRemovePost): it.vercruysse.lemmyapi.datatypes.ModRemovePost - fun toUni(d: ModRemovePostView): it.vercruysse.lemmyapi.datatypes.ModRemovePostView - fun toUni(d: ModTransferCommunity): it.vercruysse.lemmyapi.datatypes.ModTransferCommunity - fun toUni(d: ModTransferCommunityView): it.vercruysse.lemmyapi.datatypes.ModTransferCommunityView fun toUni(d: MyUserInfo): it.vercruysse.lemmyapi.datatypes.MyUserInfo - fun toUni(d: Person): it.vercruysse.lemmyapi.datatypes.Person - fun toUni(d: PersonAggregates): it.vercruysse.lemmyapi.datatypes.PersonAggregates - fun toUni(d: PersonBlockView): it.vercruysse.lemmyapi.datatypes.PersonBlockView - fun toUni(d: PersonMention): it.vercruysse.lemmyapi.datatypes.PersonMention - fun toUni(d: PersonMentionResponse): it.vercruysse.lemmyapi.datatypes.PersonMentionResponse + fun toUni(d: Person, counts: PersonAggregates): it.vercruysse.lemmyapi.datatypes.Person fun toUni(d: PersonView): it.vercruysse.lemmyapi.datatypes.PersonView - fun toUni(d: Post): it.vercruysse.lemmyapi.datatypes.Post + fun toUni(d: Post, counts: PostAggregates): it.vercruysse.lemmyapi.datatypes.Post fun toUni(d: PostReport): it.vercruysse.lemmyapi.datatypes.PostReport fun toUni(d: PostReportResponse): it.vercruysse.lemmyapi.datatypes.PostReportResponse @@ -150,20 +81,18 @@ internal interface MapperGenerator { fun toUni(d: PrivateMessageReportResponse): it.vercruysse.lemmyapi.datatypes.PrivateMessageReportResponse fun toUni(d: PrivateMessageReportView): it.vercruysse.lemmyapi.datatypes.PrivateMessageReportView fun toUni(d: PrivateMessageResponse): it.vercruysse.lemmyapi.datatypes.PrivateMessageResponse - fun toUni(d: PrivateMessagesResponse): it.vercruysse.lemmyapi.datatypes.PrivateMessagesResponse fun toUni(d: PrivateMessageView): it.vercruysse.lemmyapi.datatypes.PrivateMessageView - fun toUni(d: ReadableFederationState): it.vercruysse.lemmyapi.datatypes.ReadableFederationState + fun toUni(d: ReadableFederationState): it.vercruysse.lemmyapi.datatypes.FederationQueueState fun toUni(d: RegistrationApplication): it.vercruysse.lemmyapi.datatypes.RegistrationApplication fun toUni(d: RegistrationApplicationResponse): it.vercruysse.lemmyapi.datatypes.RegistrationApplicationResponse fun toUni(d: RegistrationApplicationView): it.vercruysse.lemmyapi.datatypes.RegistrationApplicationView - fun toUni(d: ResolveObjectResponse): it.vercruysse.lemmyapi.datatypes.ResolveObjectResponse + fun toUni(d: ResolveObjectResponse): it.vercruysse.lemmyapi.datatypes.SearchResponse fun toUni(d: SearchResponse): it.vercruysse.lemmyapi.datatypes.SearchResponse fun toUni(d: Site): it.vercruysse.lemmyapi.datatypes.Site - fun toUni(d: SiteAggregates): it.vercruysse.lemmyapi.datatypes.SiteAggregates fun toUni(d: SiteResponse): it.vercruysse.lemmyapi.datatypes.SiteResponse fun toUni(d: SiteView): it.vercruysse.lemmyapi.datatypes.SiteView fun toUni(d: Tagline): it.vercruysse.lemmyapi.datatypes.Tagline - fun toUni(d: UpdateTotpResponse): it.vercruysse.lemmyapi.datatypes.UpdateTotpResponse + fun toUni(d: UpdateTotpResponse): it.vercruysse.lemmyapi.datatypes.EditTotpResponse // body mappings fun fromUni(d: it.vercruysse.lemmyapi.datatypes.AddAdmin): AddAdmin @@ -172,7 +101,7 @@ internal interface MapperGenerator { fun fromUni(d: it.vercruysse.lemmyapi.datatypes.BanFromCommunity): BanFromCommunity fun fromUni(d: it.vercruysse.lemmyapi.datatypes.BanPerson): BanPerson fun fromUni(d: it.vercruysse.lemmyapi.datatypes.BlockCommunity): BlockCommunity - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.BlockInstance): BlockInstance + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.UserBlockInstanceCommunitiesParams): BlockInstance fun fromUni(d: it.vercruysse.lemmyapi.datatypes.BlockPerson): BlockPerson fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ChangePassword): ChangePassword fun fromUni(d: it.vercruysse.lemmyapi.datatypes.CreateComment): CreateComment @@ -206,27 +135,23 @@ internal interface MapperGenerator { fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetCommunity): GetCommunity fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetModlog): GetModlog fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPersonDetails): GetPersonDetails - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPersonMentions): GetPersonMentions fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPost): GetPost fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPosts): GetPosts - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPrivateMessages): GetPrivateMessages - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetReplies): GetReplies - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetReportCount): GetReportCount + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetSiteMetadata): GetSiteMetadata fun fromUni(d: it.vercruysse.lemmyapi.datatypes.HideCommunity): HideCommunity - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListCommentReports): ListCommentReports + fun fromUniC(d: it.vercruysse.lemmyapi.datatypes.ListReports): ListCommentReports + fun fromUniP(d: it.vercruysse.lemmyapi.datatypes.ListReports): ListPostReports + fun fromUniPm(d: it.vercruysse.lemmyapi.datatypes.ListReports): ListPrivateMessageReports + + // Legacy specific list*Requests (still used internally) fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListCommunities): ListCommunities - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListPostReports): ListPostReports - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListPrivateMessageReports): ListPrivateMessageReports fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListRegistrationApplications): ListRegistrationApplications fun fromUni(d: it.vercruysse.lemmyapi.datatypes.LockPost): LockPost fun fromUni(d: it.vercruysse.lemmyapi.datatypes.Login): Login - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.MarkCommentReplyAsRead): MarkCommentReplyAsRead - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.MarkPersonMentionAsRead): MarkPersonMentionAsRead - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.MarkPostAsRead): MarkPostAsRead - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.MarkPrivateMessageAsRead): MarkPrivateMessageAsRead - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PasswordChangeAfterReset): PasswordChangeAfterReset - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PasswordReset): PasswordReset + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.MarkManyPostsAsRead): MarkPostAsRead + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ChangePasswordAfterReset): PasswordChangeAfterReset + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ResetPassword): PasswordReset fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PurgeComment): PurgeComment fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PurgeCommunity): PurgeCommunity fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PurgePerson): PurgePerson @@ -244,6 +169,6 @@ internal interface MapperGenerator { fun fromUni(d: it.vercruysse.lemmyapi.datatypes.SaveUserSettings): SaveUserSettings fun fromUni(d: it.vercruysse.lemmyapi.datatypes.Search): Search fun fromUni(d: it.vercruysse.lemmyapi.datatypes.TransferCommunity): TransferCommunity - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.UpdateTotp): UpdateTotp + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.EditTotp): UpdateTotp fun fromUni(d: it.vercruysse.lemmyapi.datatypes.VerifyEmail): VerifyEmail } diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/Transformer.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/Transformer.kt index 685de190..fe84c4f2 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/Transformer.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/Transformer.kt @@ -1,50 +1,41 @@ package it.vercruysse.lemmyapi.v0.x19.x0 -import it.vercruysse.lemmyapi.datatypes.LinkMetadata -import it.vercruysse.lemmyapi.dto.CommunityVisibility -import it.vercruysse.lemmyapi.dto.PostListingMode -import it.vercruysse.lemmyapi.dto.SortType -import it.vercruysse.lemmyapi.dto.SubscribedType -import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.SiteMetadata +import it.vercruysse.lemmyapi.datatypes.CommentActions +import it.vercruysse.lemmyapi.datatypes.CommunityActions +import it.vercruysse.lemmyapi.datatypes.MarkNotificationAsRead +import it.vercruysse.lemmyapi.datatypes.Notification +import it.vercruysse.lemmyapi.datatypes.NotificationView +import it.vercruysse.lemmyapi.datatypes.PersonActions +import it.vercruysse.lemmyapi.datatypes.PostActions +import it.vercruysse.lemmyapi.enums.CommentSortType +import it.vercruysse.lemmyapi.enums.CommunityFollowerState +import it.vercruysse.lemmyapi.enums.CommunityVisibility +import it.vercruysse.lemmyapi.enums.FederationMode +import it.vercruysse.lemmyapi.enums.ImageMode +import it.vercruysse.lemmyapi.enums.NotificationType +import it.vercruysse.lemmyapi.enums.PostListingMode +import it.vercruysse.lemmyapi.enums.SortType +import it.vercruysse.lemmyapi.enums.VoteShow +import it.vercruysse.lemmyapi.utils.toAt import it.vercruysse.lemmyapi.datatypes.AddAdmin as LemmyapiDatatypesAddAdmin import it.vercruysse.lemmyapi.datatypes.AddAdminResponse as LemmyapiDatatypesAddAdminResponse import it.vercruysse.lemmyapi.datatypes.AddModToCommunity as LemmyapiDatatypesAddModToCommunity import it.vercruysse.lemmyapi.datatypes.AddModToCommunityResponse as LemmyapiDatatypesAddModToCommunityResponse -import it.vercruysse.lemmyapi.datatypes.AdminPurgeComment as LemmyapiDatatypesAdminPurgeComment -import it.vercruysse.lemmyapi.datatypes.AdminPurgeCommentView as LemmyapiDatatypesAdminPurgeCommentView -import it.vercruysse.lemmyapi.datatypes.AdminPurgeCommunity as LemmyapiDatatypesAdminPurgeCommunity -import it.vercruysse.lemmyapi.datatypes.AdminPurgeCommunityView as LemmyapiDatatypesAdminPurgeCommunityView -import it.vercruysse.lemmyapi.datatypes.AdminPurgePerson as LemmyapiDatatypesAdminPurgePerson -import it.vercruysse.lemmyapi.datatypes.AdminPurgePersonView as LemmyapiDatatypesAdminPurgePersonView -import it.vercruysse.lemmyapi.datatypes.AdminPurgePost as LemmyapiDatatypesAdminPurgePost -import it.vercruysse.lemmyapi.datatypes.AdminPurgePostView as LemmyapiDatatypesAdminPurgePostView import it.vercruysse.lemmyapi.datatypes.ApproveRegistrationApplication as LemmyapiDatatypesApproveRegistrationApplication import it.vercruysse.lemmyapi.datatypes.BanFromCommunity as LemmyapiDatatypesBanFromCommunity -import it.vercruysse.lemmyapi.datatypes.BanFromCommunityResponse as LemmyapiDatatypesBanFromCommunityResponse import it.vercruysse.lemmyapi.datatypes.BanPerson as LemmyapiDatatypesBanPerson -import it.vercruysse.lemmyapi.datatypes.BanPersonResponse as LemmyapiDatatypesBanPersonResponse -import it.vercruysse.lemmyapi.datatypes.BannedPersonsResponse as LemmyapiDatatypesBannedPersonsResponse import it.vercruysse.lemmyapi.datatypes.BlockCommunity as LemmyapiDatatypesBlockCommunity -import it.vercruysse.lemmyapi.datatypes.BlockCommunityResponse as LemmyapiDatatypesBlockCommunityResponse -import it.vercruysse.lemmyapi.datatypes.BlockInstance as LemmyapiDatatypesBlockInstance -import it.vercruysse.lemmyapi.datatypes.BlockInstanceResponse as LemmyapiDatatypesBlockInstanceResponse import it.vercruysse.lemmyapi.datatypes.BlockPerson as LemmyapiDatatypesBlockPerson -import it.vercruysse.lemmyapi.datatypes.BlockPersonResponse as LemmyapiDatatypesBlockPersonResponse import it.vercruysse.lemmyapi.datatypes.CaptchaResponse as LemmyapiDatatypesCaptchaResponse import it.vercruysse.lemmyapi.datatypes.ChangePassword as LemmyapiDatatypesChangePassword +import it.vercruysse.lemmyapi.datatypes.ChangePasswordAfterReset as LemmyapiDatatypesPasswordChangeAfterReset import it.vercruysse.lemmyapi.datatypes.Comment as LemmyapiDatatypesComment -import it.vercruysse.lemmyapi.datatypes.CommentAggregates as LemmyapiDatatypesCommentAggregates -import it.vercruysse.lemmyapi.datatypes.CommentReply as LemmyapiDatatypesCommentReply -import it.vercruysse.lemmyapi.datatypes.CommentReplyResponse as LemmyapiDatatypesCommentReplyResponse -import it.vercruysse.lemmyapi.datatypes.CommentReplyView as LemmyapiDatatypesCommentReplyView import it.vercruysse.lemmyapi.datatypes.CommentReport as LemmyapiDatatypesCommentReport import it.vercruysse.lemmyapi.datatypes.CommentReportResponse as LemmyapiDatatypesCommentReportResponse import it.vercruysse.lemmyapi.datatypes.CommentReportView as LemmyapiDatatypesCommentReportView import it.vercruysse.lemmyapi.datatypes.CommentResponse as LemmyapiDatatypesCommentResponse import it.vercruysse.lemmyapi.datatypes.CommentView as LemmyapiDatatypesCommentView import it.vercruysse.lemmyapi.datatypes.Community as LemmyapiDatatypesCommunity -import it.vercruysse.lemmyapi.datatypes.CommunityAggregates as LemmyapiDatatypesCommunityAggregates -import it.vercruysse.lemmyapi.datatypes.CommunityBlockView as LemmyapiDatatypesCommunityBlockView import it.vercruysse.lemmyapi.datatypes.CommunityFollowerView as LemmyapiDatatypesCommunityFollowerView import it.vercruysse.lemmyapi.datatypes.CommunityModeratorView as LemmyapiDatatypesCommunityModeratorView import it.vercruysse.lemmyapi.datatypes.CommunityResponse as LemmyapiDatatypesCommunityResponse @@ -77,52 +68,32 @@ import it.vercruysse.lemmyapi.datatypes.EditCustomEmoji as LemmyapiDatatypesEdit import it.vercruysse.lemmyapi.datatypes.EditPost as LemmyapiDatatypesEditPost import it.vercruysse.lemmyapi.datatypes.EditPrivateMessage as LemmyapiDatatypesEditPrivateMessage import it.vercruysse.lemmyapi.datatypes.EditSite as LemmyapiDatatypesEditSite +import it.vercruysse.lemmyapi.datatypes.EditTotp as LemmyapiDatatypesUpdateTotp +import it.vercruysse.lemmyapi.datatypes.EditTotpResponse as LemmyapiDatatypesUpdateTotpResponse import it.vercruysse.lemmyapi.datatypes.FeaturePost as LemmyapiDatatypesFeaturePost -import it.vercruysse.lemmyapi.datatypes.FederatedInstances as LemmyapiDatatypesFederatedInstances +import it.vercruysse.lemmyapi.datatypes.FederationQueueState as LemmyapiDatatypesReadableFederationState import it.vercruysse.lemmyapi.datatypes.FollowCommunity as LemmyapiDatatypesFollowCommunity import it.vercruysse.lemmyapi.datatypes.GenerateTotpSecretResponse as LemmyapiDatatypesGenerateTotpSecretResponse import it.vercruysse.lemmyapi.datatypes.GetCaptchaResponse as LemmyapiDatatypesGetCaptchaResponse import it.vercruysse.lemmyapi.datatypes.GetComment as LemmyapiDatatypesGetComment import it.vercruysse.lemmyapi.datatypes.GetComments as LemmyapiDatatypesGetComments -import it.vercruysse.lemmyapi.datatypes.GetCommentsResponse as LemmyapiDatatypesGetCommentsResponse import it.vercruysse.lemmyapi.datatypes.GetCommunity as LemmyapiDatatypesGetCommunity import it.vercruysse.lemmyapi.datatypes.GetCommunityResponse as LemmyapiDatatypesGetCommunityResponse -import it.vercruysse.lemmyapi.datatypes.GetFederatedInstancesResponse as LemmyapiDatatypesGetFederatedInstancesResponse import it.vercruysse.lemmyapi.datatypes.GetModlog as LemmyapiDatatypesGetModlog -import it.vercruysse.lemmyapi.datatypes.GetModlogResponse as LemmyapiDatatypesGetModlogResponse import it.vercruysse.lemmyapi.datatypes.GetPersonDetails as LemmyapiDatatypesGetPersonDetails import it.vercruysse.lemmyapi.datatypes.GetPersonDetailsResponse as LemmyapiDatatypesGetPersonDetailsResponse -import it.vercruysse.lemmyapi.datatypes.GetPersonMentions as LemmyapiDatatypesGetPersonMentions -import it.vercruysse.lemmyapi.datatypes.GetPersonMentionsResponse as LemmyapiDatatypesGetPersonMentionsResponse import it.vercruysse.lemmyapi.datatypes.GetPost as LemmyapiDatatypesGetPost import it.vercruysse.lemmyapi.datatypes.GetPostResponse as LemmyapiDatatypesGetPostResponse import it.vercruysse.lemmyapi.datatypes.GetPosts as LemmyapiDatatypesGetPosts -import it.vercruysse.lemmyapi.datatypes.GetPostsResponse as LemmyapiDatatypesGetPostsResponse -import it.vercruysse.lemmyapi.datatypes.GetPrivateMessages as LemmyapiDatatypesGetPrivateMessages -import it.vercruysse.lemmyapi.datatypes.GetReplies as LemmyapiDatatypesGetReplies -import it.vercruysse.lemmyapi.datatypes.GetRepliesResponse as LemmyapiDatatypesGetRepliesResponse -import it.vercruysse.lemmyapi.datatypes.GetReportCount as LemmyapiDatatypesGetReportCount -import it.vercruysse.lemmyapi.datatypes.GetReportCountResponse as LemmyapiDatatypesGetReportCountResponse import it.vercruysse.lemmyapi.datatypes.GetSiteMetadata as LemmyapiDatatypesGetSiteMetadata import it.vercruysse.lemmyapi.datatypes.GetSiteMetadataResponse as LemmyapiDatatypesGetSiteMetadataResponse import it.vercruysse.lemmyapi.datatypes.GetSiteResponse as LemmyapiDatatypesGetSiteResponse -import it.vercruysse.lemmyapi.datatypes.GetUnreadCountResponse as LemmyapiDatatypesGetUnreadCountResponse -import it.vercruysse.lemmyapi.datatypes.GetUnreadRegistrationApplicationCountResponse as LemmyapiDatatypesGetUnreadRegistrationApplicationCountResponse import it.vercruysse.lemmyapi.datatypes.HideCommunity as LemmyapiDatatypesHideCommunity import it.vercruysse.lemmyapi.datatypes.Instance as LemmyapiDatatypesInstance -import it.vercruysse.lemmyapi.datatypes.InstanceBlockView as LemmyapiDatatypesInstanceBlockView -import it.vercruysse.lemmyapi.datatypes.InstanceWithFederationState as LemmyapiDatatypesInstanceWithFederationState import it.vercruysse.lemmyapi.datatypes.Language as LemmyapiDatatypesLanguage -import it.vercruysse.lemmyapi.datatypes.ListCommentReports as LemmyapiDatatypesListCommentReports -import it.vercruysse.lemmyapi.datatypes.ListCommentReportsResponse as LemmyapiDatatypesListCommentReportsResponse import it.vercruysse.lemmyapi.datatypes.ListCommunities as LemmyapiDatatypesListCommunities -import it.vercruysse.lemmyapi.datatypes.ListCommunitiesResponse as LemmyapiDatatypesListCommunitiesResponse -import it.vercruysse.lemmyapi.datatypes.ListPostReports as LemmyapiDatatypesListPostReports -import it.vercruysse.lemmyapi.datatypes.ListPostReportsResponse as LemmyapiDatatypesListPostReportsResponse -import it.vercruysse.lemmyapi.datatypes.ListPrivateMessageReports as LemmyapiDatatypesListPrivateMessageReports -import it.vercruysse.lemmyapi.datatypes.ListPrivateMessageReportsResponse as LemmyapiDatatypesListPrivateMessageReportsResponse +import it.vercruysse.lemmyapi.datatypes.ListNotifications as LemmyapiDatatypesListNotifications import it.vercruysse.lemmyapi.datatypes.ListRegistrationApplications as LemmyapiDatatypesListRegistrationApplications -import it.vercruysse.lemmyapi.datatypes.ListRegistrationApplicationsResponse as LemmyapiDatatypesListRegistrationApplicationsResponse import it.vercruysse.lemmyapi.datatypes.LocalSite as LemmyapiDatatypesLocalSite import it.vercruysse.lemmyapi.datatypes.LocalSiteRateLimit as LemmyapiDatatypesLocalSiteRateLimit import it.vercruysse.lemmyapi.datatypes.LocalUser as LemmyapiDatatypesLocalUser @@ -131,45 +102,11 @@ import it.vercruysse.lemmyapi.datatypes.LockPost as LemmyapiDatatypesLockPost import it.vercruysse.lemmyapi.datatypes.Login as LemmyapiDatatypesLogin import it.vercruysse.lemmyapi.datatypes.LoginResponse as LemmyapiDatatypesLoginResponse import it.vercruysse.lemmyapi.datatypes.LoginToken as LemmyapiDatatypesLoginToken -import it.vercruysse.lemmyapi.datatypes.MarkCommentReplyAsRead as LemmyapiDatatypesMarkCommentReplyAsRead -import it.vercruysse.lemmyapi.datatypes.MarkPersonMentionAsRead as LemmyapiDatatypesMarkPersonMentionAsRead -import it.vercruysse.lemmyapi.datatypes.MarkPostAsRead as LemmyapiDatatypesMarkPostAsRead -import it.vercruysse.lemmyapi.datatypes.MarkPrivateMessageAsRead as LemmyapiDatatypesMarkPrivateMessageAsRead -import it.vercruysse.lemmyapi.datatypes.ModAdd as LemmyapiDatatypesModAdd -import it.vercruysse.lemmyapi.datatypes.ModAddCommunity as LemmyapiDatatypesModAddCommunity -import it.vercruysse.lemmyapi.datatypes.ModAddCommunityView as LemmyapiDatatypesModAddCommunityView -import it.vercruysse.lemmyapi.datatypes.ModAddView as LemmyapiDatatypesModAddView -import it.vercruysse.lemmyapi.datatypes.ModBan as LemmyapiDatatypesModBan -import it.vercruysse.lemmyapi.datatypes.ModBanFromCommunity as LemmyapiDatatypesModBanFromCommunity -import it.vercruysse.lemmyapi.datatypes.ModBanFromCommunityView as LemmyapiDatatypesModBanFromCommunityView -import it.vercruysse.lemmyapi.datatypes.ModBanView as LemmyapiDatatypesModBanView -import it.vercruysse.lemmyapi.datatypes.ModFeaturePost as LemmyapiDatatypesModFeaturePost -import it.vercruysse.lemmyapi.datatypes.ModFeaturePostView as LemmyapiDatatypesModFeaturePostView -import it.vercruysse.lemmyapi.datatypes.ModHideCommunity as LemmyapiDatatypesModHideCommunity -import it.vercruysse.lemmyapi.datatypes.ModHideCommunityView as LemmyapiDatatypesModHideCommunityView -import it.vercruysse.lemmyapi.datatypes.ModLockPost as LemmyapiDatatypesModLockPost -import it.vercruysse.lemmyapi.datatypes.ModLockPostView as LemmyapiDatatypesModLockPostView -import it.vercruysse.lemmyapi.datatypes.ModRemoveComment as LemmyapiDatatypesModRemoveComment -import it.vercruysse.lemmyapi.datatypes.ModRemoveCommentView as LemmyapiDatatypesModRemoveCommentView -import it.vercruysse.lemmyapi.datatypes.ModRemoveCommunity as LemmyapiDatatypesModRemoveCommunity -import it.vercruysse.lemmyapi.datatypes.ModRemoveCommunityView as LemmyapiDatatypesModRemoveCommunityView -import it.vercruysse.lemmyapi.datatypes.ModRemovePost as LemmyapiDatatypesModRemovePost -import it.vercruysse.lemmyapi.datatypes.ModRemovePostView as LemmyapiDatatypesModRemovePostView -import it.vercruysse.lemmyapi.datatypes.ModTransferCommunity as LemmyapiDatatypesModTransferCommunity -import it.vercruysse.lemmyapi.datatypes.ModTransferCommunityView as LemmyapiDatatypesModTransferCommunityView -import it.vercruysse.lemmyapi.datatypes.ModlogListParams as LemmyapiDatatypesModlogListParams +import it.vercruysse.lemmyapi.datatypes.MarkManyPostsAsRead as LemmyapiDatatypesMarkPostAsRead import it.vercruysse.lemmyapi.datatypes.MyUserInfo as LemmyapiDatatypesMyUserInfo -import it.vercruysse.lemmyapi.datatypes.PasswordChangeAfterReset as LemmyapiDatatypesPasswordChangeAfterReset -import it.vercruysse.lemmyapi.datatypes.PasswordReset as LemmyapiDatatypesPasswordReset import it.vercruysse.lemmyapi.datatypes.Person as LemmyapiDatatypesPerson -import it.vercruysse.lemmyapi.datatypes.PersonAggregates as LemmyapiDatatypesPersonAggregates -import it.vercruysse.lemmyapi.datatypes.PersonBlockView as LemmyapiDatatypesPersonBlockView -import it.vercruysse.lemmyapi.datatypes.PersonMention as LemmyapiDatatypesPersonMention -import it.vercruysse.lemmyapi.datatypes.PersonMentionResponse as LemmyapiDatatypesPersonMentionResponse -import it.vercruysse.lemmyapi.datatypes.PersonMentionView as LemmyapiDatatypesPersonMentionView import it.vercruysse.lemmyapi.datatypes.PersonView as LemmyapiDatatypesPersonView import it.vercruysse.lemmyapi.datatypes.Post as LemmyapiDatatypesPost -import it.vercruysse.lemmyapi.datatypes.PostAggregates as LemmyapiDatatypesPostAggregates import it.vercruysse.lemmyapi.datatypes.PostReport as LemmyapiDatatypesPostReport import it.vercruysse.lemmyapi.datatypes.PostReportResponse as LemmyapiDatatypesPostReportResponse import it.vercruysse.lemmyapi.datatypes.PostReportView as LemmyapiDatatypesPostReportView @@ -181,12 +118,10 @@ import it.vercruysse.lemmyapi.datatypes.PrivateMessageReportResponse as Lemmyapi import it.vercruysse.lemmyapi.datatypes.PrivateMessageReportView as LemmyapiDatatypesPrivateMessageReportView import it.vercruysse.lemmyapi.datatypes.PrivateMessageResponse as LemmyapiDatatypesPrivateMessageResponse import it.vercruysse.lemmyapi.datatypes.PrivateMessageView as LemmyapiDatatypesPrivateMessageView -import it.vercruysse.lemmyapi.datatypes.PrivateMessagesResponse as LemmyapiDatatypesPrivateMessagesResponse import it.vercruysse.lemmyapi.datatypes.PurgeComment as LemmyapiDatatypesPurgeComment import it.vercruysse.lemmyapi.datatypes.PurgeCommunity as LemmyapiDatatypesPurgeCommunity import it.vercruysse.lemmyapi.datatypes.PurgePerson as LemmyapiDatatypesPurgePerson import it.vercruysse.lemmyapi.datatypes.PurgePost as LemmyapiDatatypesPurgePost -import it.vercruysse.lemmyapi.datatypes.ReadableFederationState as LemmyapiDatatypesReadableFederationState import it.vercruysse.lemmyapi.datatypes.Register as LemmyapiDatatypesRegister import it.vercruysse.lemmyapi.datatypes.RegistrationApplication as LemmyapiDatatypesRegistrationApplication import it.vercruysse.lemmyapi.datatypes.RegistrationApplicationResponse as LemmyapiDatatypesRegistrationApplicationResponse @@ -194,9 +129,9 @@ import it.vercruysse.lemmyapi.datatypes.RegistrationApplicationView as LemmyapiD import it.vercruysse.lemmyapi.datatypes.RemoveComment as LemmyapiDatatypesRemoveComment import it.vercruysse.lemmyapi.datatypes.RemoveCommunity as LemmyapiDatatypesRemoveCommunity import it.vercruysse.lemmyapi.datatypes.RemovePost as LemmyapiDatatypesRemovePost +import it.vercruysse.lemmyapi.datatypes.ResetPassword as LemmyapiDatatypesPasswordReset import it.vercruysse.lemmyapi.datatypes.ResolveCommentReport as LemmyapiDatatypesResolveCommentReport import it.vercruysse.lemmyapi.datatypes.ResolveObject as LemmyapiDatatypesResolveObject -import it.vercruysse.lemmyapi.datatypes.ResolveObjectResponse as LemmyapiDatatypesResolveObjectResponse import it.vercruysse.lemmyapi.datatypes.ResolvePostReport as LemmyapiDatatypesResolvePostReport import it.vercruysse.lemmyapi.datatypes.ResolvePrivateMessageReport as LemmyapiDatatypesResolvePrivateMessageReport import it.vercruysse.lemmyapi.datatypes.SaveComment as LemmyapiDatatypesSaveComment @@ -205,44 +140,38 @@ import it.vercruysse.lemmyapi.datatypes.SaveUserSettings as LemmyapiDatatypesSav import it.vercruysse.lemmyapi.datatypes.Search as LemmyapiDatatypesSearch import it.vercruysse.lemmyapi.datatypes.SearchResponse as LemmyapiDatatypesSearchResponse import it.vercruysse.lemmyapi.datatypes.Site as LemmyapiDatatypesSite -import it.vercruysse.lemmyapi.datatypes.SiteAggregates as LemmyapiDatatypesSiteAggregates import it.vercruysse.lemmyapi.datatypes.SiteResponse as LemmyapiDatatypesSiteResponse import it.vercruysse.lemmyapi.datatypes.SiteView as LemmyapiDatatypesSiteView import it.vercruysse.lemmyapi.datatypes.Tagline as LemmyapiDatatypesTagline import it.vercruysse.lemmyapi.datatypes.TransferCommunity as LemmyapiDatatypesTransferCommunity -import it.vercruysse.lemmyapi.datatypes.UpdateTotp as LemmyapiDatatypesUpdateTotp -import it.vercruysse.lemmyapi.datatypes.UpdateTotpResponse as LemmyapiDatatypesUpdateTotpResponse +import it.vercruysse.lemmyapi.datatypes.UserBlockInstanceCommunitiesParams as LemmyapiDatatypesBlockInstance import it.vercruysse.lemmyapi.datatypes.VerifyEmail as LemmyapiDatatypesVerifyEmail +import it.vercruysse.lemmyapi.v0.enums.CommentSortType as V0CommentSortType +import it.vercruysse.lemmyapi.v0.enums.ListingType as V0ListingType +import it.vercruysse.lemmyapi.v0.enums.ModlogActionType as V0ModlogActionType +import it.vercruysse.lemmyapi.v0.enums.PostFeatureType as V0PostFeatureType +import it.vercruysse.lemmyapi.v0.enums.PostListingMode as V0PostListingMode +import it.vercruysse.lemmyapi.v0.enums.RegistrationMode as V0RegistrationMode +import it.vercruysse.lemmyapi.v0.enums.SearchType as V0SearchType +import it.vercruysse.lemmyapi.v0.enums.SortType as V0SortType import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.AddAdmin as X0DatatypesAddAdmin import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.AddAdminResponse as X0DatatypesAddAdminResponse import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.AddModToCommunity as X0DatatypesAddModToCommunity import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.AddModToCommunityResponse as X0DatatypesAddModToCommunityResponse -import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.AdminPurgeComment as X0DatatypesAdminPurgeComment -import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.AdminPurgeCommentView as X0DatatypesAdminPurgeCommentView -import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.AdminPurgeCommunity as X0DatatypesAdminPurgeCommunity -import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.AdminPurgeCommunityView as X0DatatypesAdminPurgeCommunityView -import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.AdminPurgePerson as X0DatatypesAdminPurgePerson -import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.AdminPurgePersonView as X0DatatypesAdminPurgePersonView -import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.AdminPurgePost as X0DatatypesAdminPurgePost -import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.AdminPurgePostView as X0DatatypesAdminPurgePostView import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.ApproveRegistrationApplication as X0DatatypesApproveRegistrationApplication import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.BanFromCommunity as X0DatatypesBanFromCommunity import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.BanFromCommunityResponse as X0DatatypesBanFromCommunityResponse import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.BanPerson as X0DatatypesBanPerson import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.BanPersonResponse as X0DatatypesBanPersonResponse -import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.BannedPersonsResponse as X0DatatypesBannedPersonsResponse import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.BlockCommunity as X0DatatypesBlockCommunity import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.BlockCommunityResponse as X0DatatypesBlockCommunityResponse import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.BlockInstance as X0DatatypesBlockInstance -import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.BlockInstanceResponse as X0DatatypesBlockInstanceResponse import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.BlockPerson as X0DatatypesBlockPerson import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.BlockPersonResponse as X0DatatypesBlockPersonResponse import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.CaptchaResponse as X0DatatypesCaptchaResponse import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.ChangePassword as X0DatatypesChangePassword import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.Comment as X0DatatypesComment import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.CommentAggregates as X0DatatypesCommentAggregates -import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.CommentReply as X0DatatypesCommentReply -import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.CommentReplyResponse as X0DatatypesCommentReplyResponse import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.CommentReplyView as X0DatatypesCommentReplyView import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.CommentReport as X0DatatypesCommentReport import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.CommentReportResponse as X0DatatypesCommentReportResponse @@ -251,7 +180,6 @@ import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.CommentResponse as X0Datatypes import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.CommentView as X0DatatypesCommentView import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.Community as X0DatatypesCommunity import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.CommunityAggregates as X0DatatypesCommunityAggregates -import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.CommunityBlockView as X0DatatypesCommunityBlockView import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.CommunityFollowerView as X0DatatypesCommunityFollowerView import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.CommunityModeratorView as X0DatatypesCommunityModeratorView import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.CommunityResponse as X0DatatypesCommunityResponse @@ -285,51 +213,33 @@ import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.EditPost as X0DatatypesEditPos import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.EditPrivateMessage as X0DatatypesEditPrivateMessage import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.EditSite as X0DatatypesEditSite import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.FeaturePost as X0DatatypesFeaturePost -import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.FederatedInstances as X0DatatypesFederatedInstances import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.FollowCommunity as X0DatatypesFollowCommunity import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.GenerateTotpSecretResponse as X0DatatypesGenerateTotpSecretResponse import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.GetCaptchaResponse as X0DatatypesGetCaptchaResponse import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.GetComment as X0DatatypesGetComment import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.GetComments as X0DatatypesGetComments -import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.GetCommentsResponse as X0DatatypesGetCommentsResponse import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.GetCommunity as X0DatatypesGetCommunity import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.GetCommunityResponse as X0DatatypesGetCommunityResponse -import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.GetFederatedInstancesResponse as X0DatatypesGetFederatedInstancesResponse import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.GetModlog as X0DatatypesGetModlog -import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.GetModlogResponse as X0DatatypesGetModlogResponse import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.GetPersonDetails as X0DatatypesGetPersonDetails import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.GetPersonDetailsResponse as X0DatatypesGetPersonDetailsResponse import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.GetPersonMentions as X0DatatypesGetPersonMentions -import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.GetPersonMentionsResponse as X0DatatypesGetPersonMentionsResponse import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.GetPost as X0DatatypesGetPost import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.GetPostResponse as X0DatatypesGetPostResponse import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.GetPosts as X0DatatypesGetPosts -import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.GetPostsResponse as X0DatatypesGetPostsResponse import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.GetPrivateMessages as X0DatatypesGetPrivateMessages import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.GetReplies as X0DatatypesGetReplies -import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.GetRepliesResponse as X0DatatypesGetRepliesResponse -import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.GetReportCount as X0DatatypesGetReportCount -import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.GetReportCountResponse as X0DatatypesGetReportCountResponse import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.GetSiteMetadata as X0DatatypesGetSiteMetadata import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.GetSiteMetadataResponse as X0DatatypesGetSiteMetadataResponse import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.GetSiteResponse as X0DatatypesGetSiteResponse -import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.GetUnreadCountResponse as X0DatatypesGetUnreadCountResponse -import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.GetUnreadRegistrationApplicationCountResponse as X0DatatypesGetUnreadRegistrationApplicationCountResponse import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.HideCommunity as X0DatatypesHideCommunity import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.Instance as X0DatatypesInstance -import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.InstanceBlockView as X0DatatypesInstanceBlockView -import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.InstanceWithFederationState as X0DatatypesInstanceWithFederationState import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.Language as X0DatatypesLanguage import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.ListCommentReports as X0DatatypesListCommentReports -import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.ListCommentReportsResponse as X0DatatypesListCommentReportsResponse import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.ListCommunities as X0DatatypesListCommunities -import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.ListCommunitiesResponse as X0DatatypesListCommunitiesResponse import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.ListPostReports as X0DatatypesListPostReports -import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.ListPostReportsResponse as X0DatatypesListPostReportsResponse import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.ListPrivateMessageReports as X0DatatypesListPrivateMessageReports -import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.ListPrivateMessageReportsResponse as X0DatatypesListPrivateMessageReportsResponse import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.ListRegistrationApplications as X0DatatypesListRegistrationApplications -import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.ListRegistrationApplicationsResponse as X0DatatypesListRegistrationApplicationsResponse import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.LocalSite as X0DatatypesLocalSite import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.LocalSiteRateLimit as X0DatatypesLocalSiteRateLimit import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.LocalUser as X0DatatypesLocalUser @@ -342,37 +252,11 @@ import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.MarkCommentReplyAsRead as X0Da import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.MarkPersonMentionAsRead as X0DatatypesMarkPersonMentionAsRead import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.MarkPostAsRead as X0DatatypesMarkPostAsRead import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.MarkPrivateMessageAsRead as X0DatatypesMarkPrivateMessageAsRead -import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.ModAdd as X0DatatypesModAdd -import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.ModAddCommunity as X0DatatypesModAddCommunity -import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.ModAddCommunityView as X0DatatypesModAddCommunityView -import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.ModAddView as X0DatatypesModAddView -import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.ModBan as X0DatatypesModBan -import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.ModBanFromCommunity as X0DatatypesModBanFromCommunity -import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.ModBanFromCommunityView as X0DatatypesModBanFromCommunityView -import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.ModBanView as X0DatatypesModBanView -import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.ModFeaturePost as X0DatatypesModFeaturePost -import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.ModFeaturePostView as X0DatatypesModFeaturePostView -import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.ModHideCommunity as X0DatatypesModHideCommunity -import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.ModHideCommunityView as X0DatatypesModHideCommunityView -import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.ModLockPost as X0DatatypesModLockPost -import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.ModLockPostView as X0DatatypesModLockPostView -import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.ModRemoveComment as X0DatatypesModRemoveComment -import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.ModRemoveCommentView as X0DatatypesModRemoveCommentView -import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.ModRemoveCommunity as X0DatatypesModRemoveCommunity -import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.ModRemoveCommunityView as X0DatatypesModRemoveCommunityView -import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.ModRemovePost as X0DatatypesModRemovePost -import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.ModRemovePostView as X0DatatypesModRemovePostView -import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.ModTransferCommunity as X0DatatypesModTransferCommunity -import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.ModTransferCommunityView as X0DatatypesModTransferCommunityView -import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.ModlogListParams as X0DatatypesModlogListParams import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.MyUserInfo as X0DatatypesMyUserInfo import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.PasswordChangeAfterReset as X0DatatypesPasswordChangeAfterReset import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.PasswordReset as X0DatatypesPasswordReset import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.Person as X0DatatypesPerson import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.PersonAggregates as X0DatatypesPersonAggregates -import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.PersonBlockView as X0DatatypesPersonBlockView -import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.PersonMention as X0DatatypesPersonMention -import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.PersonMentionResponse as X0DatatypesPersonMentionResponse import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.PersonMentionView as X0DatatypesPersonMentionView import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.PersonView as X0DatatypesPersonView import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.Post as X0DatatypesPost @@ -388,7 +272,6 @@ import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.PrivateMessageReportResponse a import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.PrivateMessageReportView as X0DatatypesPrivateMessageReportView import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.PrivateMessageResponse as X0DatatypesPrivateMessageResponse import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.PrivateMessageView as X0DatatypesPrivateMessageView -import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.PrivateMessagesResponse as X0DatatypesPrivateMessagesResponse import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.PurgeComment as X0DatatypesPurgeComment import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.PurgeCommunity as X0DatatypesPurgeCommunity import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.PurgePerson as X0DatatypesPurgePerson @@ -423,217 +306,179 @@ import it.vercruysse.lemmyapi.v0.x19.x0.datatypes.VerifyEmail as X0DatatypesVeri // Based on tags/0.19.0 internal class Transformer : MapperGenerator { - override fun toUni(d: X0DatatypesCommentReplyView): LemmyapiDatatypesCommentReplyView = - LemmyapiDatatypesCommentReplyView( - comment_reply = this.toUni(d = d.comment_reply), - comment = this.toUni(d = d.comment), - creator = this.toUni(d = d.creator), - post = this.toUni(d = d.post), - community = this.toUni(d = d.community), - recipient = this.toUni(d = d.recipient), - counts = this.toUni(d = d.counts), - creator_banned_from_community = d.creator_banned_from_community, - banned_from_community = false, - creator_is_moderator = d.creator_is_moderator, - creator_is_admin = d.creator_is_admin, - subscribed = d.subscribed, - saved = d.saved, - creator_blocked = d.creator_blocked, - my_vote = d.my_vote, - ) - override fun toUni(d: X0DatatypesCommentReportView): LemmyapiDatatypesCommentReportView = LemmyapiDatatypesCommentReportView( comment_report = this.toUni(d = d.comment_report), - comment = this.toUni(d = d.comment), - post = this.toUni(d = d.post), - community = this.toUni(d = d.community), + comment = this.toUni(d = d.comment, d.counts), + post = this.toUni(d = d.post, counts = X0DatatypesPostAggregates(-1, -1, -1, -1, -1, "")), + community = this.toUni(d = d.community, counts = X0DatatypesCommunityAggregates(-1, -1, -1, -1, "", -1, -1, -1, -1)), creator = this.toUni(d = d.creator), comment_creator = this.toUni(d = d.comment_creator), - counts = this.toUni(d = d.counts), creator_banned_from_community = d.creator_banned_from_community, creator_is_moderator = false, creator_is_admin = false, - creator_blocked = false, - subscribed = SubscribedType.NotSubscribed, - saved = false, - my_vote = d.my_vote, + creator_banned = d.creator.banned, resolver = d.resolver?.let { this.toUni(d = it) }, + comment_actions = CommentActions(d.my_vote, null, null), ) override fun toUni(d: X0DatatypesCommentView): LemmyapiDatatypesCommentView = LemmyapiDatatypesCommentView( - comment = this.toUni(d = d.comment), + comment = this.toUni(d = d.comment, d.counts), creator = this.toUni(d = d.creator), - post = this.toUni(d = d.post), - community = this.toUni(d = d.community), - counts = this.toUni(d = d.counts), + post = this.toUni(d = d.post, counts = X0DatatypesPostAggregates(-1, -1, -1, -1, -1, "")), + community = this.toUni(d = d.community, counts = X0DatatypesCommunityAggregates(-1, -1, -1, -1, "", -1, -1, -1, -1)), creator_banned_from_community = d.creator_banned_from_community, - banned_from_community = false, creator_is_moderator = false, creator_is_admin = d.creator_is_admin, - subscribed = d.subscribed, - saved = d.saved, - creator_blocked = d.creator_blocked, - my_vote = d.my_vote, + tags = emptyList(), + creator_banned = d.creator.banned, + creator_ban_expires_at = d.creator.ban_expires, + can_mod = false, + person_actions = PersonActions(if (d.creator_blocked) "" else null), + comment_actions = CommentActions(d.my_vote, null, if (d.saved) "" else null), + community_actions = CommunityActions(null, CommunityFollowerState.from(d.subscribed)), ) - override fun toUni(d: X0DatatypesCommunity): LemmyapiDatatypesCommunity = + override fun toUni(d: X0DatatypesCommunity, counts: X0DatatypesCommunityAggregates): LemmyapiDatatypesCommunity = LemmyapiDatatypesCommunity( id = d.id, name = d.name, title = d.title, - description = d.description, + summary = d.description, removed = d.removed, - published = d.published, - updated = d.updated, + published_at = d.published, + updated_at = d.updated, deleted = d.deleted, nsfw = d.nsfw, - actor_id = d.actor_id, + ap_id = d.actor_id, local = d.local, icon = d.icon, banner = d.banner, - hidden = d.hidden, posting_restricted_to_mods = d.posting_restricted_to_mods, instance_id = d.instance_id, - visibility = CommunityVisibility.Public, - ) - - override fun toUni(d: X0DatatypesCommunityAggregates): LemmyapiDatatypesCommunityAggregates = - LemmyapiDatatypesCommunityAggregates( - community_id = d.community_id, - subscribers = d.subscribers, - posts = d.posts, - comments = d.comments, - published = d.published, - users_active_day = d.users_active_day, - users_active_week = d.users_active_week, - users_active_month = d.users_active_month, - users_active_half_year = d.users_active_half_year, + visibility = if (d.hidden) CommunityVisibility.Unlisted else CommunityVisibility.Public, + subscribers = counts.subscribers, + posts = counts.posts, + comments = counts.comments, + users_active_day = counts.users_active_day, + users_active_week = counts.users_active_week, + users_active_month = counts.users_active_month, + users_active_half_year = counts.users_active_half_year, subscribers_local = -1, + report_count = -1, + unresolved_report_count = -1, + local_removed = false, + last_refreshed_at = "", ) override fun toUni(d: X0DatatypesCommunityView): LemmyapiDatatypesCommunityView = LemmyapiDatatypesCommunityView( - community = this.toUni(d = d.community), - subscribed = d.subscribed, - blocked = d.blocked, - counts = this.toUni(d = d.counts), - banned_from_community = false, + community = this.toUni(d = d.community, d.counts), + can_mod = false, + tags = emptyList(), + community_actions = CommunityActions(null, CommunityFollowerState.from(d.subscribed), if (d.blocked) "" else null), ) - override fun toUni(d: SiteMetadata): LinkMetadata = super.toUni(d) - override fun toUni(d: X0DatatypesGetSiteResponse): LemmyapiDatatypesGetSiteResponse = LemmyapiDatatypesGetSiteResponse( site_view = this.toUni(d = d.site_view), admins = d.admins.map { this.toUni(d = it) }, version = d.version, - my_user = d.my_user?.let { this.toUni(d = it) }, all_languages = d.all_languages.map { this.toUni(d = it) }, discussion_languages = d.discussion_languages, - taglines = d.taglines.map { this.toUni(d = it) }, - custom_emojis = d.custom_emojis.map { this.toUni(d = it) }, - blocked_urls = listOf(), + blocked_urls = emptyList(), + tagline = if (d.taglines.isEmpty()) null else this.toUni(d = d.taglines.random()), + oauth_providers = emptyList(), + admin_oauth_providers = emptyList(), + active_plugins = emptyList(), + captcha_enabled = false, ) - override fun toUni(d: X0DatatypesLocalSite): LemmyapiDatatypesLocalSite = + override fun toUni(d: X0DatatypesLocalSite, counts: X0DatatypesSiteAggregates): LemmyapiDatatypesLocalSite = LemmyapiDatatypesLocalSite( id = d.id, site_id = d.site_id, site_setup = d.site_setup, - enable_downvotes = d.enable_downvotes, - enable_nsfw = d.enable_nsfw, community_creation_admin_only = d.community_creation_admin_only, - require_email_verification = d.require_email_verification, + email_verification_required = d.require_email_verification, application_question = d.application_question, private_instance = d.private_instance, default_theme = d.default_theme, - default_post_listing_type = d.default_post_listing_type, + default_post_listing_type = d.default_post_listing_type.toUni(), legal_information = d.legal_information, - hide_modlog_mod_names = d.hide_modlog_mod_names, application_email_admins = d.application_email_admins, slur_filter_regex = d.slur_filter_regex, - actor_name_max_length = d.actor_name_max_length, federation_enabled = d.federation_enabled, - captcha_enabled = d.captcha_enabled, - captcha_difficulty = d.captcha_difficulty, - published = d.published, - updated = d.updated, - registration_mode = d.registration_mode, + published_at = d.published, + updated_at = d.updated, + registration_mode = d.registration_mode.toUni(), reports_email_admins = d.reports_email_admins, federation_signed_fetch = d.federation_signed_fetch, default_post_listing_mode = PostListingMode.Card, - default_sort_type = SortType.Active, - ) - - override fun toUni(d: X0DatatypesPersonMentionView): LemmyapiDatatypesPersonMentionView = - LemmyapiDatatypesPersonMentionView( - person_mention = this.toUni(d = d.person_mention), - comment = this.toUni(d = d.comment), - creator = this.toUni(d = d.creator), - post = this.toUni(d = d.post), - community = this.toUni(d = d.community), - recipient = this.toUni(d = d.recipient), - counts = this.toUni(d = d.counts), - creator_banned_from_community = d.creator_banned_from_community, - banned_from_community = false, - creator_is_moderator = d.creator_is_moderator, - creator_is_admin = d.creator_is_admin, - subscribed = d.subscribed, - saved = d.saved, - creator_blocked = d.creator_blocked, - my_vote = d.my_vote, - ) - - override fun toUni(d: X0DatatypesPostAggregates): LemmyapiDatatypesPostAggregates = - LemmyapiDatatypesPostAggregates( - post_id = d.post_id, - comments = d.comments, - score = d.score, - upvotes = d.upvotes, - downvotes = d.downvotes, - published = d.published, - newest_comment_time = "", + default_post_sort_type = SortType.Active, + nsfw_content_disallowed = !d.enable_nsfw, + oauth_registration = false, + email_notifications_disabled = false, + suggested_multi_community_id = null, + default_comment_sort_type = CommentSortType.Hot, + default_post_time_range_seconds = null, + post_upvotes = FederationMode.All, + post_downvotes = if (d.enable_downvotes) FederationMode.All else FederationMode.Disable, + comment_upvotes = FederationMode.All, + comment_downvotes = if (d.enable_downvotes) FederationMode.All else FederationMode.Disable, + users = counts.users, + posts = counts.posts, + comments = counts.comments, + communities = counts.communities, + users_active_day = counts.users_active_day, + users_active_week = counts.users_active_week, + users_active_month = counts.users_active_month, + users_active_half_year = counts.users_active_half_year, + default_items_per_page = 20, + image_mode = ImageMode.StoreLinkPreviews, + image_upload_timeout_seconds = 0, + image_max_thumbnail_size = 0, + image_max_avatar_size = 0, + image_max_banner_size = 0, + image_max_upload_size = 0, + image_allow_video_uploads = false, + image_upload_disabled = false, + max_invites_per_user_allowed = 0, ) override fun toUni(d: X0DatatypesPostReportView): LemmyapiDatatypesPostReportView = LemmyapiDatatypesPostReportView( post_report = this.toUni(d = d.post_report), - post = this.toUni(d = d.post), - community = this.toUni(d = d.community), + post = this.toUni(d = d.post, d.counts), + community = this.toUni(d = d.community, counts = X0DatatypesCommunityAggregates(-1, -1, -1, -1, "", -1, -1, -1, -1)), creator = this.toUni(d = d.creator), post_creator = this.toUni(d = d.post_creator), + resolver = d.resolver?.let { this.toUni(d = it) }, + post_actions = PostActions(like_score = d.my_vote), + person_actions = null, + community_actions = null, creator_banned_from_community = d.creator_banned_from_community, + creator_banned = d.creator.banned, creator_is_moderator = false, creator_is_admin = false, - subscribed = SubscribedType.NotSubscribed, - saved = false, - read = false, - hidden = false, - creator_blocked = false, - my_vote = d.my_vote, - unread_comments = 0, - counts = this.toUni(d = d.counts), - resolver = d.resolver?.let { this.toUni(d = it) }, + ) override fun toUni(d: X0DatatypesPostView): LemmyapiDatatypesPostView = LemmyapiDatatypesPostView( - post = this.toUni(d = d.post), + post = this.toUni(d = d.post, d.counts), creator = this.toUni(d = d.creator), - community = this.toUni(d = d.community), + community = this.toUni(d = d.community, counts = X0DatatypesCommunityAggregates(-1, -1, -1, -1, "", -1, -1, -1, -1)), + post_actions = PostActions(toAt(d.read), null, d.counts.comments - d.unread_comments, toAt(d.saved), null, d.my_vote, null), + person_actions = PersonActions(toAt(d.creator_blocked)), + community_actions = CommunityActions(null, CommunityFollowerState.from(d.subscribed)), + tags = emptyList(), + can_mod = false, creator_banned_from_community = d.creator_banned_from_community, - banned_from_community = false, - creator_is_moderator = d.creator_is_moderator, + creator_banned = d.creator.banned, + creator_ban_expires_at = d.creator.ban_expires, creator_is_admin = d.creator_is_admin, - counts = this.toUni(d = d.counts), - subscribed = d.subscribed, - saved = d.saved, - read = d.read, - hidden = false, - creator_blocked = d.creator_blocked, - my_vote = d.my_vote, - unread_comments = d.unread_comments, + creator_is_moderator = d.creator_is_moderator, ) override fun toUni(d: X0DatatypesAddAdminResponse): LemmyapiDatatypesAddAdminResponse = @@ -645,96 +490,17 @@ internal class Transformer : MapperGenerator { moderators = d.moderators.map { this.toUni(d = it) }, ) - override fun toUni(d: X0DatatypesAdminPurgeComment): LemmyapiDatatypesAdminPurgeComment = - LemmyapiDatatypesAdminPurgeComment( - id = d.id, - admin_person_id = d.admin_person_id, - post_id = d.post_id, - reason = d.reason, - when_ = d.when_, - ) + override fun toUni(d: X0DatatypesBanFromCommunityResponse): it.vercruysse.lemmyapi.datatypes.PersonResponse = + it.vercruysse.lemmyapi.datatypes.PersonResponse(person_view = this.toUni(d = d.person_view)) - override fun toUni(d: X0DatatypesAdminPurgeCommentView): LemmyapiDatatypesAdminPurgeCommentView = - LemmyapiDatatypesAdminPurgeCommentView( - admin_purge_comment = this.toUni(d = d.admin_purge_comment), - admin = d.admin?.let { this.toUni(d = it) }, - post = this.toUni(d = d.post), - ) + override fun toUni(d: X0DatatypesBanPersonResponse): it.vercruysse.lemmyapi.datatypes.PersonResponse = + it.vercruysse.lemmyapi.datatypes.PersonResponse(person_view = this.toUni(d = d.person_view)) - override fun toUni(d: X0DatatypesAdminPurgeCommunity): LemmyapiDatatypesAdminPurgeCommunity = - LemmyapiDatatypesAdminPurgeCommunity( - id = d.id, - admin_person_id = d.admin_person_id, - reason = d.reason, - when_ = d.when_, - ) + override fun toUni(d: X0DatatypesBlockCommunityResponse): LemmyapiDatatypesCommunityResponse = + LemmyapiDatatypesCommunityResponse(community_view = this.toUni(d = d.community_view), discussion_languages = emptyList()) - override fun toUni(d: X0DatatypesAdminPurgeCommunityView): LemmyapiDatatypesAdminPurgeCommunityView = LemmyapiDatatypesAdminPurgeCommunityView( - admin_purge_community = this.toUni(d = d.admin_purge_community), - admin = d.admin?.let { this.toUni(d = it) }, - ) - - override fun toUni(d: X0DatatypesAdminPurgePerson): LemmyapiDatatypesAdminPurgePerson = - LemmyapiDatatypesAdminPurgePerson( - id = d.id, - admin_person_id = d.admin_person_id, - reason = d.reason, - when_ = d.when_, - ) - - override fun toUni(d: X0DatatypesAdminPurgePersonView): LemmyapiDatatypesAdminPurgePersonView = - LemmyapiDatatypesAdminPurgePersonView( - admin_purge_person = this.toUni(d = d.admin_purge_person), - admin = d.admin?.let { this.toUni(d = it) }, - ) - - override fun toUni(d: X0DatatypesAdminPurgePost): LemmyapiDatatypesAdminPurgePost = - LemmyapiDatatypesAdminPurgePost( - id = d.id, - admin_person_id = d.admin_person_id, - community_id = d.community_id, - reason = d.reason, - when_ = d.when_, - ) - - override fun toUni(d: X0DatatypesAdminPurgePostView): LemmyapiDatatypesAdminPurgePostView = - LemmyapiDatatypesAdminPurgePostView( - admin_purge_post = this.toUni(d = d.admin_purge_post), - admin = d.admin?.let { this.toUni(d = it) }, - community = this.toUni(d = d.community), - ) - - override fun toUni(d: X0DatatypesBanFromCommunityResponse): LemmyapiDatatypesBanFromCommunityResponse = LemmyapiDatatypesBanFromCommunityResponse( - person_view = this.toUni(d = d.person_view), - banned = d.banned, - ) - - override fun toUni(d: X0DatatypesBannedPersonsResponse): LemmyapiDatatypesBannedPersonsResponse = - LemmyapiDatatypesBannedPersonsResponse( - banned = d.banned.map { this.toUni(d = it) }, - ) - - override fun toUni(d: X0DatatypesBanPersonResponse): LemmyapiDatatypesBanPersonResponse = - LemmyapiDatatypesBanPersonResponse( - person_view = this.toUni(d = d.person_view), - banned = d.banned, - ) - - override fun toUni(d: X0DatatypesBlockCommunityResponse): LemmyapiDatatypesBlockCommunityResponse = LemmyapiDatatypesBlockCommunityResponse( - community_view = this.toUni(d = d.community_view), - blocked = d.blocked, - ) - - override fun toUni(d: X0DatatypesBlockInstanceResponse): LemmyapiDatatypesBlockInstanceResponse = - LemmyapiDatatypesBlockInstanceResponse( - blocked = d.blocked, - ) - - override fun toUni(d: X0DatatypesBlockPersonResponse): LemmyapiDatatypesBlockPersonResponse = - LemmyapiDatatypesBlockPersonResponse( - person_view = this.toUni(d = d.person_view), - blocked = d.blocked, - ) + override fun toUni(d: X0DatatypesBlockPersonResponse): it.vercruysse.lemmyapi.datatypes.PersonResponse = + it.vercruysse.lemmyapi.datatypes.PersonResponse(person_view = this.toUni(d = d.person_view)) override fun toUni(d: X0DatatypesCaptchaResponse): LemmyapiDatatypesCaptchaResponse = LemmyapiDatatypesCaptchaResponse( @@ -743,46 +509,30 @@ internal class Transformer : MapperGenerator { uuid = d.uuid, ) - override fun toUni(d: X0DatatypesComment): LemmyapiDatatypesComment = LemmyapiDatatypesComment( + override fun toUni(d: X0DatatypesComment, counts: X0DatatypesCommentAggregates): LemmyapiDatatypesComment = LemmyapiDatatypesComment( id = d.id, creator_id = d.creator_id, post_id = d.post_id, content = d.content, removed = d.removed, - published = d.published, - updated = d.updated, + published_at = d.published, + updated_at = d.updated, deleted = d.deleted, ap_id = d.ap_id, local = d.local, path = d.path, distinguished = d.distinguished, language_id = d.language_id, + score = counts.score, + upvotes = counts.upvotes, + downvotes = counts.downvotes, + child_count = counts.child_count, + report_count = -1, + unresolved_report_count = -1, + federation_pending = false, + locked = false, ) - override fun toUni(d: X0DatatypesCommentAggregates): LemmyapiDatatypesCommentAggregates = - LemmyapiDatatypesCommentAggregates( - comment_id = d.comment_id, - score = d.score, - upvotes = d.upvotes, - downvotes = d.downvotes, - published = d.published, - child_count = d.child_count, - ) - - override fun toUni(d: X0DatatypesCommentReply): LemmyapiDatatypesCommentReply = - LemmyapiDatatypesCommentReply( - id = d.id, - recipient_id = d.recipient_id, - comment_id = d.comment_id, - read = d.read, - published = d.published, - ) - - override fun toUni(d: X0DatatypesCommentReplyResponse): LemmyapiDatatypesCommentReplyResponse = - LemmyapiDatatypesCommentReplyResponse( - comment_reply_view = this.toUni(d = d.comment_reply_view), - ) - override fun toUni(d: X0DatatypesCommentReport): LemmyapiDatatypesCommentReport = LemmyapiDatatypesCommentReport( id = d.id, @@ -792,8 +542,8 @@ internal class Transformer : MapperGenerator { reason = d.reason, resolved = d.resolved, resolver_id = d.resolver_id, - published = d.published, - updated = d.updated, + published_at = d.published, + updated_at = d.updated, ) override fun toUni(d: X0DatatypesCommentReportResponse): LemmyapiDatatypesCommentReportResponse = @@ -804,23 +554,16 @@ internal class Transformer : MapperGenerator { override fun toUni(d: X0DatatypesCommentResponse): LemmyapiDatatypesCommentResponse = LemmyapiDatatypesCommentResponse( comment_view = this.toUni(d = d.comment_view), - recipient_ids = d.recipient_ids, - ) - - override fun toUni(d: X0DatatypesCommunityBlockView): LemmyapiDatatypesCommunityBlockView = - LemmyapiDatatypesCommunityBlockView( - person = this.toUni(d = d.person), - community = this.toUni(d = d.community), ) override fun toUni(d: X0DatatypesCommunityFollowerView): LemmyapiDatatypesCommunityFollowerView = LemmyapiDatatypesCommunityFollowerView( - community = this.toUni(d = d.community), + community = this.toUni(d = d.community, counts = X0DatatypesCommunityAggregates(-1, -1, -1, -1, "", -1, -1, -1, -1)), follower = this.toUni(d = d.follower), ) override fun toUni(d: X0DatatypesCommunityModeratorView): LemmyapiDatatypesCommunityModeratorView = LemmyapiDatatypesCommunityModeratorView( - community = this.toUni(d = d.community), + community = this.toUni(d = d.community, counts = X0DatatypesCommunityAggregates(-1, -1, -1, -1, "", -1, -1, -1, -1)), moderator = this.toUni(d = d.moderator), ) @@ -833,13 +576,12 @@ internal class Transformer : MapperGenerator { override fun toUni(d: X0DatatypesCustomEmoji): LemmyapiDatatypesCustomEmoji = LemmyapiDatatypesCustomEmoji( id = d.id, - local_site_id = d.local_site_id, shortcode = d.shortcode, image_url = d.image_url, alt_text = d.alt_text, category = d.category, - published = d.published, - updated = d.updated, + published_at = d.published, + updated_at = d.updated, ) override fun toUni(d: X0DatatypesCustomEmojiKeyword): LemmyapiDatatypesCustomEmojiKeyword = @@ -859,13 +601,6 @@ internal class Transformer : MapperGenerator { keywords = d.keywords.map { this.toUni(d = it) }, ) - override fun toUni(d: X0DatatypesFederatedInstances): LemmyapiDatatypesFederatedInstances = - LemmyapiDatatypesFederatedInstances( - linked = d.linked.map { this.toUni(d = it) }, - allowed = d.allowed.map { this.toUni(d = it) }, - blocked = d.blocked.map { this.toUni(d = it) }, - ) - override fun toUni(d: X0DatatypesGenerateTotpSecretResponse): LemmyapiDatatypesGenerateTotpSecretResponse = LemmyapiDatatypesGenerateTotpSecretResponse( totp_secret_url = d.totp_secret_url, ) @@ -875,11 +610,6 @@ internal class Transformer : MapperGenerator { ok = d.ok?.let { this.toUni(d = it) }, ) - override fun toUni(d: X0DatatypesGetCommentsResponse): LemmyapiDatatypesGetCommentsResponse = - LemmyapiDatatypesGetCommentsResponse( - comments = d.comments.map { this.toUni(d = it) }, - ) - override fun toUni(d: X0DatatypesGetCommunityResponse): LemmyapiDatatypesGetCommunityResponse = LemmyapiDatatypesGetCommunityResponse( community_view = this.toUni(d = d.community_view), @@ -888,39 +618,10 @@ internal class Transformer : MapperGenerator { discussion_languages = d.discussion_languages, ) - override fun toUni(d: X0DatatypesGetFederatedInstancesResponse): LemmyapiDatatypesGetFederatedInstancesResponse = - LemmyapiDatatypesGetFederatedInstancesResponse( - federated_instances = d.federated_instances?.let { this.toUni(d = it) }, - ) - - override fun toUni(d: X0DatatypesGetModlogResponse): LemmyapiDatatypesGetModlogResponse = - LemmyapiDatatypesGetModlogResponse( - removed_posts = d.removed_posts.map { this.toUni(d = it) }, - locked_posts = d.locked_posts.map { this.toUni(d = it) }, - featured_posts = d.featured_posts.map { this.toUni(d = it) }, - removed_comments = d.removed_comments.map { this.toUni(d = it) }, - removed_communities = d.removed_communities.map { this.toUni(d = it) }, - banned_from_community = d.banned_from_community.map { this.toUni(d = it) }, - banned = d.banned.map { this.toUni(d = it) }, - added_to_community = d.added_to_community.map { this.toUni(d = it) }, - transferred_to_community = d.transferred_to_community.map { this.toUni(d = it) }, - added = d.added.map { this.toUni(d = it) }, - admin_purged_persons = d.admin_purged_persons.map { this.toUni(d = it) }, - admin_purged_communities = d.admin_purged_communities.map { this.toUni(d = it) }, - admin_purged_posts = d.admin_purged_posts.map { this.toUni(d = it) }, - admin_purged_comments = d.admin_purged_comments.map { this.toUni(d = it) }, - hidden_communities = d.hidden_communities.map { this.toUni(d = it) }, - ) - override fun toUni(d: X0DatatypesGetPersonDetailsResponse): LemmyapiDatatypesGetPersonDetailsResponse = LemmyapiDatatypesGetPersonDetailsResponse( person_view = this.toUni(d = d.person_view), - comments = d.comments.map { this.toUni(d = it) }, - posts = d.posts.map { this.toUni(d = it) }, moderates = d.moderates.map { this.toUni(d = it) }, - ) - - override fun toUni(d: X0DatatypesGetPersonMentionsResponse): LemmyapiDatatypesGetPersonMentionsResponse = LemmyapiDatatypesGetPersonMentionsResponse( - mentions = d.mentions.map { this.toUni(d = it) }, + multi_communities_created = emptyList(), ) override fun toUni(d: X0DatatypesGetPostResponse): LemmyapiDatatypesGetPostResponse = @@ -931,63 +632,96 @@ internal class Transformer : MapperGenerator { cross_posts = d.cross_posts.map { this.toUni(d = it) }, ) - override fun toUni(d: X0DatatypesGetPostsResponse): LemmyapiDatatypesGetPostsResponse = - LemmyapiDatatypesGetPostsResponse( - posts = d.posts.map { this.toUni(d = it) }, - next_page = d.next_page, + fun toUni(d: X0DatatypesCommentReplyView): NotificationView = + NotificationView( + notification = Notification( + id = d.comment_reply.id, + recipient_id = d.comment_reply.recipient_id, + comment_id = d.comment_reply.comment_id, + read = d.comment_reply.read, + published_at = d.comment_reply.published, + kind = NotificationType.Reply, + post_id = d.post.id, + creator_id = d.creator.id, + ), + data = this.toUniCV(d), ) - override fun toUni(d: X0DatatypesGetRepliesResponse): LemmyapiDatatypesGetRepliesResponse = - LemmyapiDatatypesGetRepliesResponse( - replies = d.replies.map { this.toUni(d = it) }, + fun toUniCV(d: X0DatatypesCommentReplyView): LemmyapiDatatypesCommentView = + LemmyapiDatatypesCommentView( + comment = this.toUni(d = d.comment, d.counts), + creator = this.toUni(d = d.creator), + post = this.toUni(d = d.post, counts = X0DatatypesPostAggregates(-1, -1, -1, -1, -1, "")), + community = this.toUni(d = d.community, counts = X0DatatypesCommunityAggregates(-1, -1, -1, -1, "", -1, -1, -1, -1)), + creator_banned_from_community = d.creator_banned_from_community, + creator_is_moderator = false, + creator_is_admin = false, + tags = emptyList(), + creator_banned = d.creator.banned, + creator_ban_expires_at = d.creator.ban_expires, + can_mod = false, + person_actions = PersonActions(if (d.creator_blocked) "" else null), + comment_actions = CommentActions(d.my_vote, null, if (d.saved) "" else null), + community_actions = CommunityActions(null, CommunityFollowerState.from(d.subscribed)), + ) + + fun toUni(d: X0DatatypesPersonMentionView): NotificationView = + NotificationView( + notification = Notification( + id = d.person_mention.id, + recipient_id = d.person_mention.recipient_id, + comment_id = d.person_mention.comment_id, + read = d.person_mention.read, + published_at = d.person_mention.published, + kind = NotificationType.Mention, + post_id = d.post.id, + creator_id = d.creator.id, + ), + data = this.toUniPV(d), + ) + + fun toUniPV(d: X0DatatypesPersonMentionView): LemmyapiDatatypesCommentView = + LemmyapiDatatypesCommentView( + comment = this.toUni(d = d.comment, d.counts), + creator = this.toUni(d = d.creator), + post = this.toUni(d = d.post, counts = X0DatatypesPostAggregates(-1, -1, -1, -1, -1, "")), + community = this.toUni(d = d.community, counts = X0DatatypesCommunityAggregates(-1, -1, -1, -1, "", -1, -1, -1, -1)), + creator_banned_from_community = d.creator_banned_from_community, + creator_is_moderator = false, + creator_is_admin = false, + tags = emptyList(), + creator_banned = d.creator.banned, + creator_ban_expires_at = d.creator.ban_expires, + can_mod = false, + person_actions = PersonActions(if (d.creator_blocked) "" else null), + comment_actions = CommentActions(d.my_vote, null, if (d.saved) "" else null), + community_actions = CommunityActions(null, CommunityFollowerState.from(d.subscribed)), + ) + + fun toUniPMV(d: X0DatatypesPrivateMessageView): NotificationView = + NotificationView( + notification = Notification( + id = d.private_message.id, + recipient_id = d.private_message.recipient_id, + read = d.private_message.read, + published_at = d.private_message.published, + kind = NotificationType.PrivateMessage, + creator_id = d.creator.id, + ), + data = this.toUni(d), ) - override fun toUni(d: X0DatatypesGetReportCountResponse): LemmyapiDatatypesGetReportCountResponse = LemmyapiDatatypesGetReportCountResponse( - community_id = d.community_id, - comment_reports = d.comment_reports, - post_reports = d.post_reports, - private_message_reports = d.private_message_reports, - ) - override fun toUni(d: X0DatatypesGetSiteMetadataResponse): LemmyapiDatatypesGetSiteMetadataResponse = LemmyapiDatatypesGetSiteMetadataResponse( metadata = this.toUni(d = d.metadata), ) - override fun toUni(d: X0DatatypesGetUnreadCountResponse): LemmyapiDatatypesGetUnreadCountResponse = LemmyapiDatatypesGetUnreadCountResponse( - replies = d.replies, - mentions = d.mentions, - private_messages = d.private_messages, - ) - - override fun toUni(d: X0DatatypesGetUnreadRegistrationApplicationCountResponse): LemmyapiDatatypesGetUnreadRegistrationApplicationCountResponse = - LemmyapiDatatypesGetUnreadRegistrationApplicationCountResponse( - registration_applications = d.registration_applications, - ) - override fun toUni(d: X0DatatypesInstance): LemmyapiDatatypesInstance = LemmyapiDatatypesInstance( id = d.id, domain = d.domain, - published = d.published, - updated = d.updated, - software = d.software, - version = d.version, - ) - - override fun toUni(d: X0DatatypesInstanceBlockView): LemmyapiDatatypesInstanceBlockView = - LemmyapiDatatypesInstanceBlockView( - person = this.toUni(d = d.person), - instance = this.toUni(d = d.instance), - site = d.site?.let { this.toUni(d = it) }, - ) - - override fun toUni(d: X0DatatypesInstanceWithFederationState): LemmyapiDatatypesInstanceWithFederationState = LemmyapiDatatypesInstanceWithFederationState( - id = d.id, - domain = d.domain, - published = d.published, - updated = d.updated, + published_at = d.published, + updated_at = d.updated, software = d.software, version = d.version, - federation_state = d.federation_state?.let { this.toUni(d = it) }, ) override fun toUni(d: X0DatatypesLanguage): LemmyapiDatatypesLanguage = LemmyapiDatatypesLanguage( @@ -996,47 +730,25 @@ internal class Transformer : MapperGenerator { name = d.name, ) - override fun toUni(d: X0DatatypesListCommentReportsResponse): LemmyapiDatatypesListCommentReportsResponse = LemmyapiDatatypesListCommentReportsResponse( - comment_reports = d.comment_reports.map { this.toUni(d = it) }, - ) - - override fun toUni(d: X0DatatypesListCommunitiesResponse): LemmyapiDatatypesListCommunitiesResponse = LemmyapiDatatypesListCommunitiesResponse( - communities = d.communities.map { this.toUni(d = it) }, - ) - - override fun toUni(d: X0DatatypesListPostReportsResponse): LemmyapiDatatypesListPostReportsResponse = LemmyapiDatatypesListPostReportsResponse( - post_reports = d.post_reports.map { this.toUni(d = it) }, - ) - - override fun toUni(d: X0DatatypesListPrivateMessageReportsResponse): LemmyapiDatatypesListPrivateMessageReportsResponse = - LemmyapiDatatypesListPrivateMessageReportsResponse( - private_message_reports = d.private_message_reports.map { this.toUni(d = it) }, - ) - - override fun toUni(d: X0DatatypesListRegistrationApplicationsResponse): LemmyapiDatatypesListRegistrationApplicationsResponse = - LemmyapiDatatypesListRegistrationApplicationsResponse( - registration_applications = d.registration_applications.map { this.toUni(d = it) }, - ) - override fun toUni(d: X0DatatypesLocalSiteRateLimit): LemmyapiDatatypesLocalSiteRateLimit = LemmyapiDatatypesLocalSiteRateLimit( local_site_id = d.local_site_id, - message = d.message, - message_per_second = d.message_per_second, - post = d.post, - post_per_second = d.post_per_second, - register = d.register, - register_per_second = d.register_per_second, - image = d.image, - image_per_second = d.image_per_second, - comment = d.comment, - comment_per_second = d.comment_per_second, - search = d.search, - search_per_second = d.search_per_second, - published = d.published, - updated = d.updated, - import_user_settings = d.import_user_settings, - import_user_settings_per_second = d.import_user_settings_per_second, + message_max_requests = d.message, + message_interval_seconds = d.message_per_second, + post_max_requests = d.post, + post_interval_seconds = d.post_per_second, + register_max_requests = d.register, + register_interval_seconds = d.register_per_second, + image_max_requests = d.image, + image_interval_seconds = d.image_per_second, + comment_max_requests = d.comment, + comment_interval_seconds = d.comment_per_second, + search_max_requests = d.search, + search_interval_seconds = d.search_per_second, + published_at = d.published, + updated_at = d.updated, + import_user_settings_max_requests = d.import_user_settings, + import_user_settings_interval_seconds = d.import_user_settings_per_second, ) override fun toUni(d: X0DatatypesLocalUser): LemmyapiDatatypesLocalUser = @@ -1046,34 +758,44 @@ internal class Transformer : MapperGenerator { email = d.email, show_nsfw = d.show_nsfw, theme = d.theme, - default_sort_type = d.default_sort_type, - default_listing_type = d.default_listing_type, + default_post_sort_type = d.default_sort_type.toUni(), + default_listing_type = d.default_listing_type.toUni(), interface_language = d.interface_language, show_avatars = d.show_avatars, send_notifications_to_email = d.send_notifications_to_email, - show_scores = d.show_scores, show_bot_accounts = d.show_bot_accounts, show_read_posts = d.show_read_posts, email_verified = d.email_verified, accepted_application = d.accepted_application, open_links_in_new_tab = d.open_links_in_new_tab, blur_nsfw = d.blur_nsfw, - auto_expand = d.auto_expand, infinite_scroll_enabled = d.infinite_scroll_enabled, admin = d.admin, - post_listing_mode = d.post_listing_mode, - totp_2fa_enabled = d.totp_2fa_enabled, - enable_keyboard_navigation = d.enable_keyboard_navigation, - enable_animated_images = d.enable_animated_images, + post_listing_mode = d.post_listing_mode.toUni(), + animated_images_enabled = d.enable_animated_images, collapse_bot_comments = d.collapse_bot_comments, - last_donation_notification = "", + last_donation_notification_at = "", + show_score = d.show_scores, + show_upvotes = d.show_scores, + show_person_votes = d.show_scores, + show_upvote_percentage = d.show_scores, + show_downvotes = VoteShow.Show, + hide_posts_with_media = false, + show_media = true, + default_comment_sort_type = CommentSortType.Hot, + private_messages_enabled = true, + auto_mark_fetched_posts_as_read = false, + default_post_time_range_seconds = null, + default_items_per_page = 20, + totp_2fa_enabled = d.totp_2fa_enabled, ) override fun toUni(d: X0DatatypesLocalUserView): LemmyapiDatatypesLocalUserView = LemmyapiDatatypesLocalUserView( local_user = this.toUni(d = d.local_user), - person = this.toUni(d = d.person), - counts = this.toUni(d = d.counts), + person = this.toUni(d = d.person, d.counts), + banned = d.person.banned, + ban_expires_at = d.person.ban_expires, ) override fun toUni(d: X0DatatypesLoginResponse): LemmyapiDatatypesLoginResponse = @@ -1086,277 +808,57 @@ internal class Transformer : MapperGenerator { override fun toUni(d: X0DatatypesLoginToken): LemmyapiDatatypesLoginToken = LemmyapiDatatypesLoginToken( user_id = d.user_id, - published = d.published, + published_at = d.published, ip = d.ip, user_agent = d.user_agent, ) - override fun toUni(d: X0DatatypesModAdd): LemmyapiDatatypesModAdd = LemmyapiDatatypesModAdd( - id = d.id, - mod_person_id = d.mod_person_id, - other_person_id = d.other_person_id, - removed = d.removed, - when_ = d.when_, - ) - - override fun toUni(d: X0DatatypesModAddCommunity): LemmyapiDatatypesModAddCommunity = - LemmyapiDatatypesModAddCommunity( - id = d.id, - mod_person_id = d.mod_person_id, - other_person_id = d.other_person_id, - community_id = d.community_id, - removed = d.removed, - when_ = d.when_, - ) - - override fun toUni(d: X0DatatypesModAddCommunityView): LemmyapiDatatypesModAddCommunityView = - LemmyapiDatatypesModAddCommunityView( - mod_add_community = this.toUni(d = d.mod_add_community), - moderator = d.moderator?.let { this.toUni(d = it) }, - community = this.toUni(d = d.community), - modded_person = this.toUni(d = d.modded_person), - ) - - override fun toUni(d: X0DatatypesModAddView): LemmyapiDatatypesModAddView = - LemmyapiDatatypesModAddView( - mod_add = this.toUni(d = d.mod_add), - moderator = d.moderator?.let { this.toUni(d = it) }, - modded_person = this.toUni(d = d.modded_person), - ) - - override fun toUni(d: X0DatatypesModBan): LemmyapiDatatypesModBan = LemmyapiDatatypesModBan( - id = d.id, - mod_person_id = d.mod_person_id, - other_person_id = d.other_person_id, - reason = d.reason, - banned = d.banned, - expires = d.expires, - when_ = d.when_, - ) - - override fun toUni(d: X0DatatypesModBanFromCommunity): LemmyapiDatatypesModBanFromCommunity = - LemmyapiDatatypesModBanFromCommunity( - id = d.id, - mod_person_id = d.mod_person_id, - other_person_id = d.other_person_id, - community_id = d.community_id, - reason = d.reason, - banned = d.banned, - expires = d.expires, - when_ = d.when_, - ) - - override fun toUni(d: X0DatatypesModBanFromCommunityView): LemmyapiDatatypesModBanFromCommunityView = LemmyapiDatatypesModBanFromCommunityView( - mod_ban_from_community = this.toUni(d = d.mod_ban_from_community), - moderator = d.moderator?.let { this.toUni(d = it) }, - community = this.toUni(d = d.community), - banned_person = this.toUni(d = d.banned_person), - ) - - override fun toUni(d: X0DatatypesModBanView): LemmyapiDatatypesModBanView = - LemmyapiDatatypesModBanView( - mod_ban = this.toUni(d = d.mod_ban), - moderator = d.moderator?.let { this.toUni(d = it) }, - banned_person = this.toUni(d = d.banned_person), - ) - - override fun toUni(d: X0DatatypesModFeaturePost): LemmyapiDatatypesModFeaturePost = - LemmyapiDatatypesModFeaturePost( - id = d.id, - mod_person_id = d.mod_person_id, - post_id = d.post_id, - featured = d.featured, - when_ = d.when_, - is_featured_community = d.is_featured_community, - ) - - override fun toUni(d: X0DatatypesModFeaturePostView): LemmyapiDatatypesModFeaturePostView = - LemmyapiDatatypesModFeaturePostView( - mod_feature_post = this.toUni(d = d.mod_feature_post), - moderator = d.moderator?.let { this.toUni(d = it) }, - post = this.toUni(d = d.post), - community = this.toUni(d = d.community), - ) - - override fun toUni(d: X0DatatypesModHideCommunity): LemmyapiDatatypesModHideCommunity = - LemmyapiDatatypesModHideCommunity( - id = d.id, - community_id = d.community_id, - mod_person_id = d.mod_person_id, - when_ = d.when_, - reason = d.reason, - hidden = d.hidden, - ) - - override fun toUni(d: X0DatatypesModHideCommunityView): LemmyapiDatatypesModHideCommunityView = - LemmyapiDatatypesModHideCommunityView( - mod_hide_community = this.toUni(d = d.mod_hide_community), - admin = d.admin?.let { this.toUni(d = it) }, - community = this.toUni(d = d.community), - ) - - override fun toUni(d: X0DatatypesModLockPost): LemmyapiDatatypesModLockPost = - LemmyapiDatatypesModLockPost( - id = d.id, - mod_person_id = d.mod_person_id, - post_id = d.post_id, - locked = d.locked, - when_ = d.when_, - ) - - override fun toUni(d: X0DatatypesModLockPostView): LemmyapiDatatypesModLockPostView = - LemmyapiDatatypesModLockPostView( - mod_lock_post = this.toUni(d = d.mod_lock_post), - moderator = d.moderator?.let { this.toUni(d = it) }, - post = this.toUni(d = d.post), - community = this.toUni(d = d.community), - ) - - override fun toUni(d: X0DatatypesModlogListParams): LemmyapiDatatypesModlogListParams = - LemmyapiDatatypesModlogListParams( - community_id = d.community_id, - mod_person_id = d.mod_person_id, - other_person_id = d.other_person_id, - page = d.page, - limit = d.limit, - hide_modlog_names = d.hide_modlog_names, - ) - - override fun toUni(d: X0DatatypesModRemoveComment): LemmyapiDatatypesModRemoveComment = - LemmyapiDatatypesModRemoveComment( - id = d.id, - mod_person_id = d.mod_person_id, - comment_id = d.comment_id, - reason = d.reason, - removed = d.removed, - when_ = d.when_, - ) - - override fun toUni(d: X0DatatypesModRemoveCommentView): LemmyapiDatatypesModRemoveCommentView = - LemmyapiDatatypesModRemoveCommentView( - mod_remove_comment = this.toUni(d = d.mod_remove_comment), - moderator = d.moderator?.let { this.toUni(d = it) }, - comment = this.toUni(d = d.comment), - commenter = this.toUni(d = d.commenter), - post = this.toUni(d = d.post), - community = this.toUni(d = d.community), - ) - - override fun toUni(d: X0DatatypesModRemoveCommunity): LemmyapiDatatypesModRemoveCommunity = - LemmyapiDatatypesModRemoveCommunity( - id = d.id, - mod_person_id = d.mod_person_id, - community_id = d.community_id, - reason = d.reason, - removed = d.removed, - when_ = d.when_, - ) - - override fun toUni(d: X0DatatypesModRemoveCommunityView): LemmyapiDatatypesModRemoveCommunityView = LemmyapiDatatypesModRemoveCommunityView( - mod_remove_community = this.toUni(d = d.mod_remove_community), - moderator = d.moderator?.let { this.toUni(d = it) }, - community = this.toUni(d = d.community), - ) - - override fun toUni(d: X0DatatypesModRemovePost): LemmyapiDatatypesModRemovePost = - LemmyapiDatatypesModRemovePost( - id = d.id, - mod_person_id = d.mod_person_id, - post_id = d.post_id, - reason = d.reason, - removed = d.removed, - when_ = d.when_, - ) - - override fun toUni(d: X0DatatypesModRemovePostView): LemmyapiDatatypesModRemovePostView = - LemmyapiDatatypesModRemovePostView( - mod_remove_post = this.toUni(d = d.mod_remove_post), - moderator = d.moderator?.let { this.toUni(d = it) }, - post = this.toUni(d = d.post), - community = this.toUni(d = d.community), - ) - - override fun toUni(d: X0DatatypesModTransferCommunity): LemmyapiDatatypesModTransferCommunity = - LemmyapiDatatypesModTransferCommunity( - id = d.id, - mod_person_id = d.mod_person_id, - other_person_id = d.other_person_id, - community_id = d.community_id, - when_ = d.when_, - ) - - override fun toUni(d: X0DatatypesModTransferCommunityView): LemmyapiDatatypesModTransferCommunityView = LemmyapiDatatypesModTransferCommunityView( - mod_transfer_community = this.toUni(d = d.mod_transfer_community), - moderator = d.moderator?.let { this.toUni(d = it) }, - community = this.toUni(d = d.community), - modded_person = this.toUni(d = d.modded_person), - ) - override fun toUni(d: X0DatatypesMyUserInfo): LemmyapiDatatypesMyUserInfo = LemmyapiDatatypesMyUserInfo( local_user_view = this.toUni(d = d.local_user_view), follows = d.follows.map { this.toUni(d = it) }, moderates = d.moderates.map { this.toUni(d = it) }, - community_blocks = d.community_blocks.map { this.toUni(d = it) }, - instance_blocks = d.instance_blocks.map { this.toUni(d = it) }, - person_blocks = d.person_blocks.map { this.toUni(d = it) }, + community_blocks = d.community_blocks.map { this.toUni(d = it.community, counts = X0DatatypesCommunityAggregates(-1, -1, -1, -1, "", -1, -1, -1, -1)) }, + instance_communities_blocks = d.instance_blocks.map { this.toUni(d = it.instance) }, + instance_persons_blocks = emptyList(), + person_blocks = d.person_blocks.map { this.toUni(d = it.target) }, discussion_languages = d.discussion_languages, + multi_community_follows = emptyList(), ) - override fun toUni(d: X0DatatypesPerson): LemmyapiDatatypesPerson = LemmyapiDatatypesPerson( + fun toUni(d: X0DatatypesPerson) = this.toUni(d, X0DatatypesPersonAggregates(-1, -1, -1)) + + override fun toUni(d: X0DatatypesPerson, counts: X0DatatypesPersonAggregates): LemmyapiDatatypesPerson = LemmyapiDatatypesPerson( id = d.id, name = d.name, display_name = d.display_name, avatar = d.avatar, - banned = d.banned, - published = d.published, - updated = d.updated, - actor_id = d.actor_id, + published_at = d.published, + updated_at = d.updated, + ap_id = d.actor_id, bio = d.bio, local = d.local, banner = d.banner, deleted = d.deleted, matrix_user_id = d.matrix_user_id, bot_account = d.bot_account, - ban_expires = d.ban_expires, +// ban_expires = d.ban_expires, instance_id = d.instance_id, + comment_count = counts.comment_count, + post_count = counts.post_count, + last_refreshed_at = "", ) - override fun toUni(d: X0DatatypesPersonAggregates): LemmyapiDatatypesPersonAggregates = - LemmyapiDatatypesPersonAggregates( - person_id = d.person_id, - post_count = d.post_count, - comment_count = d.comment_count, - ) - - override fun toUni(d: X0DatatypesPersonBlockView): LemmyapiDatatypesPersonBlockView = - LemmyapiDatatypesPersonBlockView( - person = this.toUni(d = d.person), - target = this.toUni(d = d.target), - ) - - override fun toUni(d: X0DatatypesPersonMention): LemmyapiDatatypesPersonMention = - LemmyapiDatatypesPersonMention( - id = d.id, - recipient_id = d.recipient_id, - comment_id = d.comment_id, - read = d.read, - published = d.published, - ) - - override fun toUni(d: X0DatatypesPersonMentionResponse): LemmyapiDatatypesPersonMentionResponse = - LemmyapiDatatypesPersonMentionResponse( - person_mention_view = this.toUni(d = d.person_mention_view), - ) - override fun toUni(d: X0DatatypesPersonView): LemmyapiDatatypesPersonView = LemmyapiDatatypesPersonView( - person = this.toUni(d = d.person), - counts = this.toUni(d = d.counts), + person = this.toUni(d = d.person, d.counts), is_admin = d.is_admin, + person_actions = null, + banned = d.person.banned, + ban_expires_at = d.person.ban_expires, ) - override fun toUni(d: X0DatatypesPost): LemmyapiDatatypesPost = LemmyapiDatatypesPost( + override fun toUni(d: X0DatatypesPost, counts: X0DatatypesPostAggregates): LemmyapiDatatypesPost = LemmyapiDatatypesPost( id = d.id, name = d.name, url = d.url, @@ -1365,8 +867,8 @@ internal class Transformer : MapperGenerator { community_id = d.community_id, removed = d.removed, locked = d.locked, - published = d.published, - updated = d.updated, + published_at = d.published, + updated_at = d.updated, deleted = d.deleted, nsfw = d.nsfw, embed_title = d.embed_title, @@ -1378,6 +880,14 @@ internal class Transformer : MapperGenerator { language_id = d.language_id, featured_community = d.featured_community, featured_local = d.featured_local, + comments = counts.comments, + score = counts.score, + upvotes = counts.upvotes, + downvotes = counts.downvotes, + newest_comment_time_at = "", + report_count = -1, + unresolved_report_count = -1, + federation_pending = false, ) override fun toUni(d: X0DatatypesPostReport): LemmyapiDatatypesPostReport = @@ -1391,8 +901,9 @@ internal class Transformer : MapperGenerator { reason = d.reason, resolved = d.resolved, resolver_id = d.resolver_id, - published = d.published, - updated = d.updated, + published_at = d.published, + updated_at = d.updated, + violates_instance_rules = false, ) override fun toUni(d: X0DatatypesPostReportResponse): LemmyapiDatatypesPostReportResponse = @@ -1413,10 +924,12 @@ internal class Transformer : MapperGenerator { content = d.content, deleted = d.deleted, read = d.read, - published = d.published, - updated = d.updated, + published_at = d.published, + updated_at = d.updated, ap_id = d.ap_id, local = d.local, + removed = false, + deleted_by_recipient = false, ) override fun toUni(d: X0DatatypesPrivateMessageReport): LemmyapiDatatypesPrivateMessageReport = @@ -1428,8 +941,8 @@ internal class Transformer : MapperGenerator { reason = d.reason, resolved = d.resolved, resolver_id = d.resolver_id, - published = d.published, - updated = d.updated, + published_at = d.published, + updated_at = d.updated, ) override fun toUni(d: X0DatatypesPrivateMessageReportResponse): LemmyapiDatatypesPrivateMessageReportResponse = LemmyapiDatatypesPrivateMessageReportResponse( @@ -1442,16 +955,15 @@ internal class Transformer : MapperGenerator { private_message_creator = this.toUni(d = d.private_message_creator), creator = this.toUni(d = d.creator), resolver = d.resolver?.let { this.toUni(d = it) }, + creator_is_admin = false, + creator_banned = d.creator.banned, + creator_ban_expires_at = d.creator.ban_expires, ) override fun toUni(d: X0DatatypesPrivateMessageResponse): LemmyapiDatatypesPrivateMessageResponse = LemmyapiDatatypesPrivateMessageResponse( private_message_view = this.toUni(d = d.private_message_view), ) - override fun toUni(d: X0DatatypesPrivateMessagesResponse): LemmyapiDatatypesPrivateMessagesResponse = LemmyapiDatatypesPrivateMessagesResponse( - private_messages = d.private_messages.map { this.toUni(d = it) }, - ) - override fun toUni(d: X0DatatypesPrivateMessageView): LemmyapiDatatypesPrivateMessageView = LemmyapiDatatypesPrivateMessageView( private_message = this.toUni(d = d.private_message), @@ -1462,10 +974,9 @@ internal class Transformer : MapperGenerator { override fun toUni(d: X0DatatypesReadableFederationState): LemmyapiDatatypesReadableFederationState = LemmyapiDatatypesReadableFederationState( instance_id = d.instance_id, last_successful_id = d.last_successful_id, - last_successful_published_time = d.last_successful_published_time, + last_successful_published_time_at = d.last_successful_published_time, fail_count = d.fail_count, - last_retry = d.last_retry, - next_retry = d.next_retry, + last_retry_at = d.last_retry, ) override fun toUni(d: X0DatatypesRegistrationApplication): LemmyapiDatatypesRegistrationApplication = LemmyapiDatatypesRegistrationApplication( @@ -1474,7 +985,7 @@ internal class Transformer : MapperGenerator { answer = d.answer, admin_id = d.admin_id, deny_reason = d.deny_reason, - published = d.published, + published_at = d.published, ) override fun toUni(d: X0DatatypesRegistrationApplicationResponse): LemmyapiDatatypesRegistrationApplicationResponse = @@ -1489,70 +1000,63 @@ internal class Transformer : MapperGenerator { admin = d.admin?.let { this.toUni(d = it) }, ) - override fun toUni(d: X0DatatypesResolveObjectResponse): LemmyapiDatatypesResolveObjectResponse = - LemmyapiDatatypesResolveObjectResponse( - comment = d.comment?.let { this.toUni(d = it) }, - post = d.post?.let { this.toUni(d = it) }, - community = d.community?.let { this.toUni(d = it) }, - person = d.person?.let { this.toUni(d = it) }, + override fun toUni(d: X0DatatypesResolveObjectResponse): LemmyapiDatatypesSearchResponse = + LemmyapiDatatypesSearchResponse( + resolve = when { + d.post != null -> toUni(d.post) + d.comment != null -> toUni(d.comment) + d.community != null -> toUni(d.community) + d.person != null -> toUni(d.person) + else -> null + }, + comments = emptyList(), + posts = emptyList(), + communities = emptyList(), + persons = emptyList(), + multi_communities = emptyList(), ) override fun toUni(d: X0DatatypesSearchResponse): LemmyapiDatatypesSearchResponse = LemmyapiDatatypesSearchResponse( - type_ = d.type_, - comments = d.comments.map { this.toUni(d = it) }, - posts = d.posts.map { this.toUni(d = it) }, - communities = d.communities.map { this.toUni(d = it) }, - users = d.users.map { this.toUni(d = it) }, + comments = d.comments.map(this@Transformer::toUni), + posts = d.posts.map(this@Transformer::toUni), + communities = d.communities.map(this@Transformer::toUni), + persons = d.users.map(this@Transformer::toUni), + multi_communities = emptyList(), ) override fun toUni(d: X0DatatypesSite): LemmyapiDatatypesSite = LemmyapiDatatypesSite( id = d.id, name = d.name, sidebar = d.sidebar, - published = d.published, - updated = d.updated, + published_at = d.published, + updated_at = d.updated, icon = d.icon, banner = d.banner, - description = d.description, - actor_id = d.actor_id, + summary = d.description, + ap_id = d.actor_id, last_refreshed_at = d.last_refreshed_at, inbox_url = d.inbox_url, instance_id = d.instance_id, ) - override fun toUni(d: X0DatatypesSiteAggregates): LemmyapiDatatypesSiteAggregates = - LemmyapiDatatypesSiteAggregates( - site_id = d.site_id, - users = d.users, - posts = d.posts, - comments = d.comments, - communities = d.communities, - users_active_day = d.users_active_day, - users_active_week = d.users_active_week, - users_active_month = d.users_active_month, - users_active_half_year = d.users_active_half_year, - ) - override fun toUni(d: X0DatatypesSiteResponse): LemmyapiDatatypesSiteResponse = LemmyapiDatatypesSiteResponse( site_view = this.toUni(d = d.site_view), - taglines = d.taglines.map { this.toUni(d = it) }, ) override fun toUni(d: X0DatatypesSiteView): LemmyapiDatatypesSiteView = LemmyapiDatatypesSiteView( site = this.toUni(d = d.site), - local_site = this.toUni(d = d.local_site), + local_site = this.toUni(d = d.local_site, counts = d.counts), local_site_rate_limit = this.toUni(d = d.local_site_rate_limit), - counts = this.toUni(d = d.counts), + instance = null, ) override fun toUni(d: X0DatatypesTagline): LemmyapiDatatypesTagline = LemmyapiDatatypesTagline( id = d.id, - local_site_id = d.local_site_id, content = d.content, - published = d.published, - updated = d.updated, + published_at = d.published, + updated_at = d.updated, ) override fun toUni(d: X0DatatypesUpdateTotpResponse): LemmyapiDatatypesUpdateTotpResponse = @@ -1583,17 +1087,17 @@ internal class Transformer : MapperGenerator { community_id = d.community_id, person_id = d.person_id, ban = d.ban, - remove_data = d.remove_data, + remove_data = d.remove_or_restore_data, reason = d.reason, - expires = d.expires, + expires = d.expires_at, ) override fun fromUni(d: LemmyapiDatatypesBanPerson): X0DatatypesBanPerson = X0DatatypesBanPerson( person_id = d.person_id, ban = d.ban, - remove_data = d.remove_data, + remove_data = d.remove_or_restore_data, reason = d.reason, - expires = d.expires, + expires = d.expires_at, ) override fun fromUni(d: LemmyapiDatatypesBlockCommunity): X0DatatypesBlockCommunity = @@ -1645,9 +1149,7 @@ internal class Transformer : MapperGenerator { X0DatatypesCreateCommunity( name = d.name, title = d.title, - description = d.description, - icon = d.icon, - banner = d.banner, + description = d.summary, nsfw = d.nsfw, posting_restricted_to_mods = d.posting_restricted_to_mods, discussion_languages = d.discussion_languages, @@ -1700,43 +1202,42 @@ internal class Transformer : MapperGenerator { X0DatatypesCreateSite( name = d.name, sidebar = d.sidebar, - description = d.description, - icon = d.icon, - banner = d.banner, - enable_downvotes = d.enable_downvotes, - enable_nsfw = d.enable_nsfw, + description = d.summary, + enable_downvotes = when (d.post_downvotes) { + FederationMode.Local, FederationMode.All -> true + FederationMode.Disable -> false + null -> null + }, + enable_nsfw = if (d.nsfw_content_disallowed == null) null else !d.nsfw_content_disallowed, community_creation_admin_only = d.community_creation_admin_only, - require_email_verification = d.require_email_verification, + require_email_verification = d.email_verification_required, application_question = d.application_question, private_instance = d.private_instance, default_theme = d.default_theme, - default_post_listing_type = d.default_post_listing_type, + default_post_listing_type = V0ListingType.fromUniNullable(d.default_post_listing_type), legal_information = d.legal_information, application_email_admins = d.application_email_admins, - hide_modlog_mod_names = d.hide_modlog_mod_names, discussion_languages = d.discussion_languages, slur_filter_regex = d.slur_filter_regex, - actor_name_max_length = d.actor_name_max_length, - rate_limit_message = d.rate_limit_message, - rate_limit_message_per_second = d.rate_limit_message_per_second, - rate_limit_post = d.rate_limit_post, - rate_limit_post_per_second = d.rate_limit_post_per_second, - rate_limit_register = d.rate_limit_register, - rate_limit_register_per_second = d.rate_limit_register_per_second, - rate_limit_image = d.rate_limit_image, - rate_limit_image_per_second = d.rate_limit_image_per_second, - rate_limit_comment = d.rate_limit_comment, - rate_limit_comment_per_second = d.rate_limit_comment_per_second, - rate_limit_search = d.rate_limit_search, - rate_limit_search_per_second = d.rate_limit_search_per_second, + rate_limit_message = d.rate_limit_message_max_requests, + rate_limit_message_per_second = d.rate_limit_message_interval_seconds, + rate_limit_post = d.rate_limit_post_max_requests, + rate_limit_post_per_second = d.rate_limit_post_interval_seconds, + rate_limit_register = d.rate_limit_register_max_requests, + rate_limit_register_per_second = d.rate_limit_register_interval_seconds, + rate_limit_image = d.rate_limit_image_max_requests, + rate_limit_image_per_second = d.rate_limit_image_interval_seconds, + rate_limit_comment = d.rate_limit_comment_max_requests, + rate_limit_comment_per_second = d.rate_limit_comment_interval_seconds, + rate_limit_search = d.rate_limit_search_max_requests, + rate_limit_search_per_second = d.rate_limit_search_interval_seconds, federation_enabled = d.federation_enabled, - federation_debug = d.federation_debug, - captcha_enabled = d.captcha_enabled, - captcha_difficulty = d.captcha_difficulty, + captcha_enabled = null, + captcha_difficulty = null, allowed_instances = d.allowed_instances, blocked_instances = d.blocked_instances, taglines = d.taglines, - registration_mode = d.registration_mode, + registration_mode = V0RegistrationMode.fromUniNullable(d.registration_mode), ) override fun fromUni(d: LemmyapiDatatypesDeleteAccount): X0DatatypesDeleteAccount = @@ -1791,9 +1292,7 @@ internal class Transformer : MapperGenerator { X0DatatypesEditCommunity( community_id = d.community_id, title = d.title, - description = d.description, - icon = d.icon, - banner = d.banner, + description = d.summary, nsfw = d.nsfw, posting_restricted_to_mods = d.posting_restricted_to_mods, discussion_languages = d.discussion_languages, @@ -1802,10 +1301,10 @@ internal class Transformer : MapperGenerator { override fun fromUni(d: LemmyapiDatatypesEditCustomEmoji): X0DatatypesEditCustomEmoji = X0DatatypesEditCustomEmoji( id = d.id, - category = d.category, - image_url = d.image_url, - alt_text = d.alt_text, - keywords = d.keywords, + category = d.category ?: "", + image_url = d.image_url ?: "", + alt_text = d.alt_text ?: "", + keywords = d.keywords ?: emptyList(), ) override fun fromUni(d: LemmyapiDatatypesEditPost): X0DatatypesEditPost = X0DatatypesEditPost( @@ -1826,43 +1325,44 @@ internal class Transformer : MapperGenerator { override fun fromUni(d: LemmyapiDatatypesEditSite): X0DatatypesEditSite = X0DatatypesEditSite( name = d.name, sidebar = d.sidebar, - description = d.description, - icon = d.icon, - banner = d.banner, - enable_downvotes = d.enable_downvotes, + description = d.summary, + enable_downvotes = when (d.post_downvotes) { + FederationMode.Local, FederationMode.All -> true + FederationMode.Disable -> false + null -> null + }, enable_nsfw = d.enable_nsfw, community_creation_admin_only = d.community_creation_admin_only, - require_email_verification = d.require_email_verification, + require_email_verification = d.email_verification_required, application_question = d.application_question, private_instance = d.private_instance, default_theme = d.default_theme, - default_post_listing_type = d.default_post_listing_type, + default_post_listing_type = V0ListingType.fromUniNullable(d.default_post_listing_type), legal_information = d.legal_information, application_email_admins = d.application_email_admins, hide_modlog_mod_names = d.hide_modlog_mod_names, discussion_languages = d.discussion_languages, slur_filter_regex = d.slur_filter_regex, - actor_name_max_length = d.actor_name_max_length, - rate_limit_message = d.rate_limit_message, - rate_limit_message_per_second = d.rate_limit_message_per_second, - rate_limit_post = d.rate_limit_post, - rate_limit_post_per_second = d.rate_limit_post_per_second, - rate_limit_register = d.rate_limit_register, - rate_limit_register_per_second = d.rate_limit_register_per_second, - rate_limit_image = d.rate_limit_image, - rate_limit_image_per_second = d.rate_limit_image_per_second, - rate_limit_comment = d.rate_limit_comment, - rate_limit_comment_per_second = d.rate_limit_comment_per_second, - rate_limit_search = d.rate_limit_search, - rate_limit_search_per_second = d.rate_limit_search_per_second, + rate_limit_message = d.rate_limit_message_max_requests, + rate_limit_message_per_second = d.rate_limit_message_interval_seconds, + rate_limit_post = d.rate_limit_post_max_requests, + rate_limit_post_per_second = d.rate_limit_post_interval_seconds, + rate_limit_register = d.rate_limit_register_max_requests, + rate_limit_register_per_second = d.rate_limit_register_interval_seconds, + rate_limit_image = d.rate_limit_image_max_requests, + rate_limit_image_per_second = d.rate_limit_image_interval_seconds, + rate_limit_comment = d.rate_limit_comment_max_requests, + rate_limit_comment_per_second = d.rate_limit_comment_interval_seconds, + rate_limit_search = d.rate_limit_search_max_requests, + rate_limit_search_per_second = d.rate_limit_search_interval_seconds, federation_enabled = d.federation_enabled, federation_debug = d.federation_debug, - captcha_enabled = d.captcha_enabled, - captcha_difficulty = d.captcha_difficulty, + captcha_enabled = null, + captcha_difficulty = null, allowed_instances = d.allowed_instances, blocked_instances = d.blocked_instances, taglines = d.taglines, - registration_mode = d.registration_mode, + registration_mode = V0RegistrationMode.fromUniNullable(d.registration_mode), reports_email_admins = d.reports_email_admins, ) @@ -1870,7 +1370,7 @@ internal class Transformer : MapperGenerator { X0DatatypesFeaturePost( post_id = d.post_id, featured = d.featured, - feature_type = d.feature_type, + feature_type = V0PostFeatureType.fromUni(d.feature_type), ) override fun fromUni(d: LemmyapiDatatypesFollowCommunity): X0DatatypesFollowCommunity = @@ -1886,8 +1386,8 @@ internal class Transformer : MapperGenerator { override fun fromUni(d: LemmyapiDatatypesGetComments): X0DatatypesGetComments = X0DatatypesGetComments( - type_ = d.type_, - sort = d.sort, + type_ = V0ListingType.fromUniNullable(d.type_), + sort = V0CommentSortType.fromUniNullable(d.sort), max_depth = d.max_depth, page = d.page, limit = d.limit, @@ -1911,7 +1411,7 @@ internal class Transformer : MapperGenerator { community_id = d.community_id, page = d.page, limit = d.limit, - type_ = d.type_, + type_ = V0ModlogActionType.fromUniNullable(d.type_), other_person_id = d.other_person_id, ) @@ -1919,19 +1419,6 @@ internal class Transformer : MapperGenerator { X0DatatypesGetPersonDetails( person_id = d.person_id, username = d.username, - sort = d.sort, - page = d.page, - limit = d.limit, - community_id = d.community_id, - saved_only = d.saved_only, - ) - - override fun fromUni(d: LemmyapiDatatypesGetPersonMentions): X0DatatypesGetPersonMentions = - X0DatatypesGetPersonMentions( - sort = d.sort, - page = d.page, - limit = d.limit, - unread_only = d.unread_only, ) override fun fromUni(d: LemmyapiDatatypesGetPost): X0DatatypesGetPost = X0DatatypesGetPost( @@ -1940,37 +1427,36 @@ internal class Transformer : MapperGenerator { ) override fun fromUni(d: LemmyapiDatatypesGetPosts): X0DatatypesGetPosts = X0DatatypesGetPosts( - type_ = d.type_, - sort = d.sort, + type_ = V0ListingType.fromUniNullable(d.type_), + sort = V0SortType.fromUniNullable(d.sort), page = d.page, limit = d.limit, community_id = d.community_id, community_name = d.community_name, - saved_only = d.saved_only, - liked_only = d.liked_only, - disliked_only = d.disliked_only, page_cursor = d.page_cursor, ) - override fun fromUni(d: LemmyapiDatatypesGetPrivateMessages): X0DatatypesGetPrivateMessages = - X0DatatypesGetPrivateMessages( - unread_only = d.unread_only, + fun fromUniR(d: LemmyapiDatatypesListNotifications): X0DatatypesGetReplies = + X0DatatypesGetReplies( + sort = V0CommentSortType.New, page = d.page, limit = d.limit, - creator_id = d.creator_id, + unread_only = d.unread_only, ) - override fun fromUni(d: LemmyapiDatatypesGetReplies): X0DatatypesGetReplies = - X0DatatypesGetReplies( - sort = d.sort, + fun fromUniM(d: LemmyapiDatatypesListNotifications): X0DatatypesGetPersonMentions = + X0DatatypesGetPersonMentions( + sort = V0CommentSortType.New, page = d.page, limit = d.limit, unread_only = d.unread_only, ) - override fun fromUni(d: LemmyapiDatatypesGetReportCount): X0DatatypesGetReportCount = - X0DatatypesGetReportCount( - community_id = d.community_id, + fun fromUniP(d: LemmyapiDatatypesListNotifications): X0DatatypesGetPrivateMessages = + X0DatatypesGetPrivateMessages( + page = d.page, + limit = d.limit, + unread_only = d.unread_only, ) override fun fromUni(d: LemmyapiDatatypesGetSiteMetadata): X0DatatypesGetSiteMetadata = @@ -1985,7 +1471,7 @@ internal class Transformer : MapperGenerator { reason = d.reason, ) - override fun fromUni(d: LemmyapiDatatypesListCommentReports): X0DatatypesListCommentReports = + override fun fromUniC(d: it.vercruysse.lemmyapi.datatypes.ListReports): X0DatatypesListCommentReports = X0DatatypesListCommentReports( page = d.page, limit = d.limit, @@ -1993,28 +1479,29 @@ internal class Transformer : MapperGenerator { community_id = d.community_id, ) - override fun fromUni(d: LemmyapiDatatypesListCommunities): X0DatatypesListCommunities = - X0DatatypesListCommunities( - type_ = d.type_, - sort = d.sort, - show_nsfw = d.show_nsfw, + override fun fromUniP(d: it.vercruysse.lemmyapi.datatypes.ListReports): X0DatatypesListPostReports = + X0DatatypesListPostReports( page = d.page, limit = d.limit, + unresolved_only = d.unresolved_only, + community_id = d.community_id, ) - override fun fromUni(d: LemmyapiDatatypesListPostReports): X0DatatypesListPostReports = - X0DatatypesListPostReports( + override fun fromUniPm(d: it.vercruysse.lemmyapi.datatypes.ListReports): X0DatatypesListPrivateMessageReports = + X0DatatypesListPrivateMessageReports( page = d.page, limit = d.limit, unresolved_only = d.unresolved_only, - community_id = d.community_id, ) - override fun fromUni(d: LemmyapiDatatypesListPrivateMessageReports): X0DatatypesListPrivateMessageReports = X0DatatypesListPrivateMessageReports( - page = d.page, - limit = d.limit, - unresolved_only = d.unresolved_only, - ) + override fun fromUni(d: LemmyapiDatatypesListCommunities): X0DatatypesListCommunities = + X0DatatypesListCommunities( + type_ = V0ListingType.fromUniNullable(d.type_), + sort = V0SortType.fromUniNullable(d.sort), + show_nsfw = d.show_nsfw, + page = d.page, + limit = d.limit, + ) override fun fromUni(d: LemmyapiDatatypesListRegistrationApplications): X0DatatypesListRegistrationApplications = X0DatatypesListRegistrationApplications( unread_only = d.unread_only, @@ -2033,13 +1520,18 @@ internal class Transformer : MapperGenerator { totp_2fa_token = d.totp_2fa_token, ) - override fun fromUni(d: LemmyapiDatatypesMarkCommentReplyAsRead): X0DatatypesMarkCommentReplyAsRead = X0DatatypesMarkCommentReplyAsRead( - comment_reply_id = d.comment_reply_id, + fun fromUniR(d: MarkNotificationAsRead): X0DatatypesMarkCommentReplyAsRead = X0DatatypesMarkCommentReplyAsRead( + comment_reply_id = d.notification_id, read = d.read, ) - override fun fromUni(d: LemmyapiDatatypesMarkPersonMentionAsRead): X0DatatypesMarkPersonMentionAsRead = X0DatatypesMarkPersonMentionAsRead( - person_mention_id = d.person_mention_id, + fun fromUniM(d: MarkNotificationAsRead): X0DatatypesMarkPersonMentionAsRead = X0DatatypesMarkPersonMentionAsRead( + person_mention_id = d.notification_id, + read = d.read, + ) + + fun fromUniP(d: MarkNotificationAsRead): X0DatatypesMarkPrivateMessageAsRead = X0DatatypesMarkPrivateMessageAsRead( + private_message_id = d.notification_id, read = d.read, ) @@ -2049,11 +1541,6 @@ internal class Transformer : MapperGenerator { read = d.read, ) - override fun fromUni(d: LemmyapiDatatypesMarkPrivateMessageAsRead): X0DatatypesMarkPrivateMessageAsRead = X0DatatypesMarkPrivateMessageAsRead( - private_message_id = d.private_message_id, - read = d.read, - ) - override fun fromUni(d: LemmyapiDatatypesPasswordChangeAfterReset): X0DatatypesPasswordChangeAfterReset = X0DatatypesPasswordChangeAfterReset( token = d.token, password = d.password, @@ -2092,7 +1579,7 @@ internal class Transformer : MapperGenerator { username = d.username, password = d.password, password_verify = d.password_verify, - show_nsfw = d.show_nsfw, + show_nsfw = d.show_nsfw ?: false, email = d.email, captcha_uuid = d.captcha_uuid, captcha_answer = d.captcha_answer, @@ -2158,14 +1645,11 @@ internal class Transformer : MapperGenerator { X0DatatypesSaveUserSettings( show_nsfw = d.show_nsfw, blur_nsfw = d.blur_nsfw, - auto_expand = d.auto_expand, - show_scores = d.show_scores, + show_scores = d.show_score, theme = d.theme, - default_sort_type = d.default_sort_type, - default_listing_type = d.default_listing_type, + default_sort_type = V0SortType.fromUniNullable(d.default_post_sort_type), + default_listing_type = V0ListingType.fromUniNullable(d.default_listing_type), interface_language = d.interface_language, - avatar = d.avatar, - banner = d.banner, display_name = d.display_name, email = d.email, bio = d.bio, @@ -2178,20 +1662,18 @@ internal class Transformer : MapperGenerator { discussion_languages = d.discussion_languages, open_links_in_new_tab = d.open_links_in_new_tab, infinite_scroll_enabled = d.infinite_scroll_enabled, - post_listing_mode = d.post_listing_mode, - enable_keyboard_navigation = d.enable_keyboard_navigation, - enable_animated_images = d.enable_animated_images, + post_listing_mode = V0PostListingMode.fromUniNullable(d.post_listing_mode), + enable_animated_images = d.animated_images_enabled, collapse_bot_comments = d.collapse_bot_comments, ) override fun fromUni(d: LemmyapiDatatypesSearch): X0DatatypesSearch = X0DatatypesSearch( - q = d.q, + q = d.search_term, community_id = d.community_id, community_name = d.community_name, creator_id = d.creator_id, - type_ = d.type_, - sort = d.sort, - listing_type = d.listing_type, + type_ = V0SearchType.fromUniNullable(d.type_), + listing_type = V0ListingType.fromUniNullable(d.listing_type), page = d.page, limit = d.limit, ) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/ActivityId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/ActivityId.kt index a225ad6c..6541ae85 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/ActivityId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/ActivityId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x0.datatypes -typealias ActivityId = Long +internal typealias ActivityId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/BlockInstanceResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/BlockInstanceResponse.kt deleted file mode 100644 index aa3fd9ec..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/BlockInstanceResponse.kt +++ /dev/null @@ -1,8 +0,0 @@ -package it.vercruysse.lemmyapi.v0.x19.x0.datatypes - -import kotlinx.serialization.Serializable - -@Serializable -internal data class BlockInstanceResponse( - val blocked: Boolean, -) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/CommentId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/CommentId.kt index 923adea0..ff63a98f 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/CommentId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/CommentId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x0.datatypes -typealias CommentId = Long +internal typealias CommentId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/CommentReplyId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/CommentReplyId.kt index 23743575..40b7180e 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/CommentReplyId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/CommentReplyId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x0.datatypes -typealias CommentReplyId = Long +internal typealias CommentReplyId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/CommentReplyView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/CommentReplyView.kt index 7638340a..538c0d36 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/CommentReplyView.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/CommentReplyView.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x0.datatypes -import it.vercruysse.lemmyapi.dto.SubscribedType +import it.vercruysse.lemmyapi.v0.enums.SubscribedType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/CommentReportId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/CommentReportId.kt index 0bcb4398..21505c84 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/CommentReportId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/CommentReportId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x0.datatypes -typealias CommentReportId = Long +internal typealias CommentReportId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/CommentView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/CommentView.kt index 02dd77ae..c0f6c293 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/CommentView.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/CommentView.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x0.datatypes -import it.vercruysse.lemmyapi.dto.SubscribedType +import it.vercruysse.lemmyapi.v0.enums.SubscribedType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/CommunityId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/CommunityId.kt index 3d82f734..d48e5176 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/CommunityId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/CommunityId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x0.datatypes -typealias CommunityId = Long +internal typealias CommunityId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/CommunityView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/CommunityView.kt index edf8764c..7e5eef54 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/CommunityView.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/CommunityView.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x0.datatypes -import it.vercruysse.lemmyapi.dto.SubscribedType +import it.vercruysse.lemmyapi.v0.enums.SubscribedType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/CreateSite.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/CreateSite.kt index f24644bd..10240bba 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/CreateSite.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/CreateSite.kt @@ -1,7 +1,7 @@ package it.vercruysse.lemmyapi.v0.x19.x0.datatypes -import it.vercruysse.lemmyapi.dto.RegistrationMode -import it.vercruysse.lemmyapi.dto.ListingType +import it.vercruysse.lemmyapi.v0.enums.ListingType +import it.vercruysse.lemmyapi.v0.enums.RegistrationMode import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/CustomEmojiId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/CustomEmojiId.kt index bef4b37c..6fbbb5c4 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/CustomEmojiId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/CustomEmojiId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x0.datatypes -typealias CustomEmojiId = Long +internal typealias CustomEmojiId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/EditSite.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/EditSite.kt index 262fb63d..34003b50 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/EditSite.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/EditSite.kt @@ -1,7 +1,7 @@ package it.vercruysse.lemmyapi.v0.x19.x0.datatypes -import it.vercruysse.lemmyapi.dto.RegistrationMode -import it.vercruysse.lemmyapi.dto.ListingType +import it.vercruysse.lemmyapi.v0.enums.ListingType +import it.vercruysse.lemmyapi.v0.enums.RegistrationMode import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/FeaturePost.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/FeaturePost.kt index 6781eb91..cd2593e3 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/FeaturePost.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/FeaturePost.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x0.datatypes -import it.vercruysse.lemmyapi.dto.PostFeatureType +import it.vercruysse.lemmyapi.v0.enums.PostFeatureType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/GetComments.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/GetComments.kt index 42b65cf8..621e033d 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/GetComments.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/GetComments.kt @@ -1,7 +1,7 @@ package it.vercruysse.lemmyapi.v0.x19.x0.datatypes -import it.vercruysse.lemmyapi.dto.CommentSortType -import it.vercruysse.lemmyapi.dto.ListingType +import it.vercruysse.lemmyapi.v0.enums.CommentSortType +import it.vercruysse.lemmyapi.v0.enums.ListingType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/GetModlog.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/GetModlog.kt index 94fd563d..f80f79cb 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/GetModlog.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/GetModlog.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x0.datatypes -import it.vercruysse.lemmyapi.dto.ModlogActionType +import it.vercruysse.lemmyapi.v0.enums.ModlogActionType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/GetPersonDetails.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/GetPersonDetails.kt index 9eb27491..c92d24fb 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/GetPersonDetails.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/GetPersonDetails.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x0.datatypes -import it.vercruysse.lemmyapi.dto.SortType +import it.vercruysse.lemmyapi.v0.enums.SortType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/GetPersonMentions.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/GetPersonMentions.kt index 95da041e..d6f222ec 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/GetPersonMentions.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/GetPersonMentions.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x0.datatypes -import it.vercruysse.lemmyapi.dto.CommentSortType +import it.vercruysse.lemmyapi.v0.enums.CommentSortType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/GetPosts.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/GetPosts.kt index 1c30680c..0c67c80c 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/GetPosts.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/GetPosts.kt @@ -1,7 +1,7 @@ package it.vercruysse.lemmyapi.v0.x19.x0.datatypes -import it.vercruysse.lemmyapi.dto.SortType -import it.vercruysse.lemmyapi.dto.ListingType +import it.vercruysse.lemmyapi.v0.enums.ListingType +import it.vercruysse.lemmyapi.v0.enums.SortType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/GetReplies.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/GetReplies.kt index 83e92417..373bead8 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/GetReplies.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/GetReplies.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x0.datatypes -import it.vercruysse.lemmyapi.dto.CommentSortType +import it.vercruysse.lemmyapi.v0.enums.CommentSortType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/InstanceId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/InstanceId.kt index 3cf97dd0..3107a6b2 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/InstanceId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/InstanceId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x0.datatypes -typealias InstanceId = Long +internal typealias InstanceId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/LanguageId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/LanguageId.kt index 6662d3a0..23b9b139 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/LanguageId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/LanguageId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x0.datatypes -typealias LanguageId = Long +internal typealias LanguageId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/ListCommunities.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/ListCommunities.kt index 9b5b0058..4a0ab714 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/ListCommunities.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/ListCommunities.kt @@ -1,7 +1,7 @@ package it.vercruysse.lemmyapi.v0.x19.x0.datatypes -import it.vercruysse.lemmyapi.dto.SortType -import it.vercruysse.lemmyapi.dto.ListingType +import it.vercruysse.lemmyapi.v0.enums.ListingType +import it.vercruysse.lemmyapi.v0.enums.SortType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/LocalSite.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/LocalSite.kt index 0cb8aba4..bec974f5 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/LocalSite.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/LocalSite.kt @@ -1,7 +1,7 @@ package it.vercruysse.lemmyapi.v0.x19.x0.datatypes -import it.vercruysse.lemmyapi.dto.RegistrationMode -import it.vercruysse.lemmyapi.dto.ListingType +import it.vercruysse.lemmyapi.v0.enums.ListingType +import it.vercruysse.lemmyapi.v0.enums.RegistrationMode import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/LocalSiteId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/LocalSiteId.kt index 57415549..d080bb14 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/LocalSiteId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/LocalSiteId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x0.datatypes -typealias LocalSiteId = Long +internal typealias LocalSiteId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/LocalUser.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/LocalUser.kt index 4862254f..2867e503 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/LocalUser.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/LocalUser.kt @@ -1,8 +1,8 @@ package it.vercruysse.lemmyapi.v0.x19.x0.datatypes -import it.vercruysse.lemmyapi.dto.PostListingMode -import it.vercruysse.lemmyapi.dto.ListingType -import it.vercruysse.lemmyapi.dto.SortType +import it.vercruysse.lemmyapi.v0.enums.ListingType +import it.vercruysse.lemmyapi.v0.enums.PostListingMode +import it.vercruysse.lemmyapi.v0.enums.SortType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/LocalUserId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/LocalUserId.kt index ddcbf1a4..1ac05262 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/LocalUserId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/LocalUserId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x0.datatypes -typealias LocalUserId = Long +internal typealias LocalUserId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/ModlogListParams.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/ModlogListParams.kt deleted file mode 100644 index 0485d210..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/ModlogListParams.kt +++ /dev/null @@ -1,13 +0,0 @@ -package it.vercruysse.lemmyapi.v0.x19.x0.datatypes - -import kotlinx.serialization.Serializable - -@Serializable -internal data class ModlogListParams( - val community_id: CommunityId? = null, - val mod_person_id: PersonId? = null, - val other_person_id: PersonId? = null, - val page: Long? = null, - val limit: Long? = null, - val hide_modlog_names: Boolean, -) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/PaginationCursor.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/PaginationCursor.kt index 6aef9c04..431d46fc 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/PaginationCursor.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/PaginationCursor.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x0.datatypes -typealias PaginationCursor = String +internal typealias PaginationCursor = String diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/PersonId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/PersonId.kt index 4b78b8bb..36282beb 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/PersonId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/PersonId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x0.datatypes -typealias PersonId = Long +internal typealias PersonId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/PersonMentionId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/PersonMentionId.kt index 3ce46613..b664b0e1 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/PersonMentionId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/PersonMentionId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x0.datatypes -typealias PersonMentionId = Long +internal typealias PersonMentionId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/PersonMentionView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/PersonMentionView.kt index ca570db0..522b0b6d 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/PersonMentionView.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/PersonMentionView.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x0.datatypes -import it.vercruysse.lemmyapi.dto.SubscribedType +import it.vercruysse.lemmyapi.v0.enums.SubscribedType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/PostId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/PostId.kt index c3a085ca..1594ffca 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/PostId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/PostId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x0.datatypes -typealias PostId = Long +internal typealias PostId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/PostReportId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/PostReportId.kt index 85e3e19c..bd8a6304 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/PostReportId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/PostReportId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x0.datatypes -typealias PostReportId = Long +internal typealias PostReportId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/PostView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/PostView.kt index 4a71d2f0..0cbc908e 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/PostView.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/PostView.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x0.datatypes -import it.vercruysse.lemmyapi.dto.SubscribedType +import it.vercruysse.lemmyapi.v0.enums.SubscribedType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/PrivateMessageId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/PrivateMessageId.kt index 76363368..a1bc6fc7 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/PrivateMessageId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/PrivateMessageId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x0.datatypes -typealias PrivateMessageId = Long +internal typealias PrivateMessageId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/PrivateMessageReportId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/PrivateMessageReportId.kt index 044fe409..efc507cd 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/PrivateMessageReportId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/PrivateMessageReportId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x0.datatypes -typealias PrivateMessageReportId = Long +internal typealias PrivateMessageReportId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/SaveUserSettings.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/SaveUserSettings.kt index 39734c44..d36726a0 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/SaveUserSettings.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/SaveUserSettings.kt @@ -1,8 +1,8 @@ package it.vercruysse.lemmyapi.v0.x19.x0.datatypes -import it.vercruysse.lemmyapi.dto.PostListingMode -import it.vercruysse.lemmyapi.dto.ListingType -import it.vercruysse.lemmyapi.dto.SortType +import it.vercruysse.lemmyapi.v0.enums.ListingType +import it.vercruysse.lemmyapi.v0.enums.PostListingMode +import it.vercruysse.lemmyapi.v0.enums.SortType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/Search.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/Search.kt index 2f637ed3..a4859d68 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/Search.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/Search.kt @@ -1,8 +1,8 @@ package it.vercruysse.lemmyapi.v0.x19.x0.datatypes -import it.vercruysse.lemmyapi.dto.ListingType -import it.vercruysse.lemmyapi.dto.SortType -import it.vercruysse.lemmyapi.dto.SearchType +import it.vercruysse.lemmyapi.v0.enums.ListingType +import it.vercruysse.lemmyapi.v0.enums.SearchType +import it.vercruysse.lemmyapi.v0.enums.SortType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/SearchResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/SearchResponse.kt index a22849b9..10ef8906 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/SearchResponse.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/SearchResponse.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x0.datatypes -import it.vercruysse.lemmyapi.dto.SearchType +import it.vercruysse.lemmyapi.v0.enums.SearchType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/SiteId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/SiteId.kt index 72de88d1..3486f440 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/SiteId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x0/datatypes/SiteId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x0.datatypes -typealias SiteId = Long +internal typealias SiteId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/LemmyApiController.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/LemmyApiController.kt index 27a57ff2..7313e0b0 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/LemmyApiController.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/LemmyApiController.kt @@ -715,7 +715,7 @@ internal class LemmyApiController(client: HttpClient, auth: String?) : * * @POST("site/block") */ - override suspend fun blockInstance(form: BlockInstance): Result = + override suspend fun blockInstance(form: BlockInstance): Result = client.postResult("site/block", form) /** diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/LemmyApiRouter.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/LemmyApiRouter.kt index 36c59b88..344ed227 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/LemmyApiRouter.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/LemmyApiRouter.kt @@ -622,7 +622,7 @@ internal abstract class LemmyApiRouter(client: HttpClient, auth: String?) : Auth * * @POST("site/block") */ - abstract suspend fun blockInstance(form: BlockInstance): Result + abstract suspend fun blockInstance(form: BlockInstance): Result /** * Generate a TOTP / two-factor secret. diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/LemmyApiUniWrapper.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/LemmyApiUniWrapper.kt index 48cab544..4f6f8e48 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/LemmyApiUniWrapper.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/LemmyApiUniWrapper.kt @@ -3,12 +3,25 @@ package it.vercruysse.lemmyapi.v0.x19.x11 import io.github.z4kn4fein.semver.Version import io.ktor.client.HttpClient import it.vercruysse.lemmyapi.LemmyApiBaseController +import it.vercruysse.lemmyapi.datatypes.ListCustomEmojis +import it.vercruysse.lemmyapi.datatypes.ListCustomEmojisResponse +import it.vercruysse.lemmyapi.datatypes.ListLoginsResponse +import it.vercruysse.lemmyapi.datatypes.ListNotifications +import it.vercruysse.lemmyapi.datatypes.MarkNotificationAsRead +import it.vercruysse.lemmyapi.datatypes.MyUserInfo +import it.vercruysse.lemmyapi.datatypes.PagedResponse +import it.vercruysse.lemmyapi.datatypes.UnreadCountsResponse import it.vercruysse.lemmyapi.dto.ExportUserSettingsResponse import it.vercruysse.lemmyapi.dto.ImportUserSettings +import it.vercruysse.lemmyapi.enums.NotificationDataType +import it.vercruysse.lemmyapi.enums.NotificationType +import it.vercruysse.lemmyapi.pictrs.PictrsService +import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.GetPersonDetails internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, baseUrl: String, auth: String?) : LemmyApiBaseController(client, actualVersion, baseUrl, auth) { private val api = LemmyApiController(client, auth) + private val pictrsApi = PictrsService(client, auth) private val transformer = Transformer() override var auth: String? @@ -16,6 +29,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba set(value) { super.auth = value api.auth = value + pictrsApi.auth = value } /** @@ -49,8 +63,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun getModlog( form: it.vercruysse.lemmyapi.datatypes.GetModlog, - ): Result = - api.getModlog(transformer.fromUni(form)).map(transformer::toUni) + ): Result> = notSupported() /** * Search lemmy. @@ -67,7 +80,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun resolveObject( form: it.vercruysse.lemmyapi.datatypes.ResolveObject, - ): Result = + ): Result = api.resolveObject(transformer.fromUni(form)).map(transformer::toUni) /** @@ -115,8 +128,8 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun listCommunities( form: it.vercruysse.lemmyapi.datatypes.ListCommunities, - ): Result = - api.listCommunities(transformer.fromUni(form)).map(transformer::toUni) + ): Result> = + api.listCommunities(transformer.fromUni(form)).map { PagedResponse(it.communities.map(transformer::toUni)) } /** * Follow / subscribe to a community. @@ -135,7 +148,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun blockCommunity( form: it.vercruysse.lemmyapi.datatypes.BlockCommunity, - ): Result = + ): Result = api.blockCommunity(transformer.fromUni(form)).map(transformer::toUni) /** @@ -165,8 +178,16 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun transferCommunity( form: it.vercruysse.lemmyapi.datatypes.TransferCommunity, - ): Result = - api.transferCommunity(transformer.fromUni(form)).map(transformer::toUni) + ): Result = + api.transferCommunity(transformer.fromUni(form)).map { communityResponse -> + val uniCommunityResponse = transformer.toUni(communityResponse) + it.vercruysse.lemmyapi.datatypes.GetCommunityResponse( + community_view = uniCommunityResponse.community_view, + site = null, + moderators = emptyList(), + discussion_languages = uniCommunityResponse.discussion_languages, + ) + } /** * Ban a user from a community. @@ -175,7 +196,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun banFromCommunity( form: it.vercruysse.lemmyapi.datatypes.BanFromCommunity, - ): Result = + ): Result = api.banFromCommunity(transformer.fromUni(form)).map(transformer::toUni) /** @@ -193,8 +214,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba * * @GET("federated_instances") */ - override suspend fun getFederatedInstances(): Result = - api.getFederatedInstances().map(transformer::toUni) + override suspend fun getFederatedInstances(form: it.vercruysse.lemmyapi.datatypes.GetFederatedInstances): Result> = notSupported() /** * Get / fetch a post. @@ -229,8 +249,8 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun getPosts( form: it.vercruysse.lemmyapi.datatypes.GetPosts, - ): Result = - api.getPosts(transformer.fromUni(form.toValidatedForm())).map(transformer::toUni) + ): Result> = + api.getPosts(transformer.fromUni(form.toValidatedForm())).map { PagedResponse(it.posts.map(transformer::toUni)) } /** * Delete a post. @@ -257,7 +277,27 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba * * @POST("post/mark_as_read") */ - override suspend fun markPostAsRead(form: it.vercruysse.lemmyapi.datatypes.MarkPostAsRead): Result = + override suspend fun markPostAsRead(form: it.vercruysse.lemmyapi.datatypes.MarkPostAsRead): Result = + api.markPostAsRead( + it.vercruysse.lemmyapi.v0.x19.x11.datatypes.MarkPostAsRead( + post_ids = listOf(form.post_id), + read = form.read, + ), + ).fold( + onSuccess = { _ -> + api.getPost(it.vercruysse.lemmyapi.v0.x19.x11.datatypes.GetPost(id = form.post_id)) + .map(transformer::toUni) + .map { post -> it.vercruysse.lemmyapi.datatypes.PostResponse(post_view = post.post_view) } + }, + onFailure = { Result.failure(it) }, + ) + + /** + * Mark multiple posts as read. + * + * @POST("post/mark_as_read") + */ + override suspend fun markManyPostsAsRead(form: it.vercruysse.lemmyapi.datatypes.MarkManyPostsAsRead): Result = api.markPostAsRead(transformer.fromUni(form)) /** @@ -317,14 +357,56 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba api.resolvePostReport(transformer.fromUni(form)).map(transformer::toUni) /** - * List post reports. - * - * @GET("post/report/list") + * List reports. */ - override suspend fun listPostReports( - form: it.vercruysse.lemmyapi.datatypes.ListPostReports, - ): Result = - api.listPostReports(transformer.fromUni(form)).map(transformer::toUni) + override suspend fun listReports( + form: it.vercruysse.lemmyapi.datatypes.ListReports, + ): Result> = + when (form.type_) { + it.vercruysse.lemmyapi.enums.ReportType.Communities -> notSupported() + + it.vercruysse.lemmyapi.enums.ReportType.Posts -> { + api.listPostReports(transformer.fromUniP(form)).map { resp -> + PagedResponse(resp.post_reports.map(transformer::toUni)) + } + } + + it.vercruysse.lemmyapi.enums.ReportType.Comments -> { + api.listCommentReports(transformer.fromUniC(form)).map { resp -> + PagedResponse(resp.comment_reports.map(transformer::toUni)) + } + } + + it.vercruysse.lemmyapi.enums.ReportType.PrivateMessages -> { + api.listPrivateMessageReports(transformer.fromUniPm(form)).map { resp -> + PagedResponse(resp.private_message_reports.map(transformer::toUni)) + } + } + + it.vercruysse.lemmyapi.enums.ReportType.All -> { + runCatching { + val postsResp = api.listPostReports(transformer.fromUniP(form)).getOrThrow() + val commentsResp = api.listCommentReports(transformer.fromUniC(form)).getOrThrow() + val privateMessagesResp = api.listPrivateMessageReports(transformer.fromUniPm(form)).getOrThrow() + + val allReports = mutableListOf() + + allReports.addAll( + postsResp.post_reports.map(transformer::toUni), + ) + + allReports.addAll( + commentsResp.comment_reports.map(transformer::toUni), + ) + + allReports.addAll( + privateMessagesResp.private_message_reports.map(transformer::toUni), + ) + + PagedResponse(allReports) + } + } + } /** * Fetch metadata for any given site. @@ -373,8 +455,8 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun getComments( form: it.vercruysse.lemmyapi.datatypes.GetComments, - ): Result = - api.getComments(transformer.fromUni(form)).map(transformer::toUni) + ): Result> = + api.getComments(transformer.fromUni(form)).map { PagedResponse(it.comments.map(transformer::toUni)) } /** * Delete a comment. @@ -396,16 +478,6 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba ): Result = api.removeComment(transformer.fromUni(form)).map(transformer::toUni) - /** - * Mark a comment as read. - * - * @POST("comment/mark_as_read") - */ - override suspend fun markCommentReplyAsRead( - form: it.vercruysse.lemmyapi.datatypes.MarkCommentReplyAsRead, - ): Result = - api.markCommentReplyAsRead(transformer.fromUni(form)).map(transformer::toUni) - /** * Distinguishes a comment (speak as moderator) * @@ -456,16 +528,6 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba ): Result = api.resolveCommentReport(transformer.fromUni(form)).map(transformer::toUni) - /** - * List comment reports. - * - * @GET("comment/report/list") - */ - override suspend fun listCommentReports( - form: it.vercruysse.lemmyapi.datatypes.ListCommentReports, - ): Result = - api.listCommentReports(transformer.fromUni(form)).map(transformer::toUni) - /** * Edit a private message. * @@ -486,16 +548,6 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba ): Result = api.createPrivateMessage(transformer.fromUni(form)).map(transformer::toUni) - /** - * Get / fetch private messages. - * - * @GET("private_message/list") - */ - override suspend fun getPrivateMessages( - form: it.vercruysse.lemmyapi.datatypes.GetPrivateMessages, - ): Result = - api.getPrivateMessages(transformer.fromUni(form)).map(transformer::toUni) - /** * Delete a private message. * @@ -506,16 +558,6 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba ): Result = api.deletePrivateMessage(transformer.fromUni(form)).map(transformer::toUni) - /** - * Mark a private message as read. - * - * @POST("private_message/mark_as_read") - */ - override suspend fun markPrivateMessageAsRead( - form: it.vercruysse.lemmyapi.datatypes.MarkPrivateMessageAsRead, - ): Result = - api.markPrivateMessageAsRead(transformer.fromUni(form)).map(transformer::toUni) - /** * Create a report for a private message. * @@ -536,16 +578,6 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba ): Result = api.resolvePrivateMessageReport(transformer.fromUni(form)).map(transformer::toUni) - /** - * List private message reports. - * - * @GET("private_message/report/list") - */ - override suspend fun listPrivateMessageReports( - form: it.vercruysse.lemmyapi.datatypes.ListPrivateMessageReports, - ): Result = - api.listPrivateMessageReports(transformer.fromUni(form)).map(transformer::toUni) - /** * Get the details for a person. * @@ -573,34 +605,47 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba api.getCaptcha().map(transformer::toUni) /** - * Get mentions for your user. - * - * @GET("user/mention") + * Mark a notification as read */ - override suspend fun getPersonMentions( - form: it.vercruysse.lemmyapi.datatypes.GetPersonMentions, - ): Result = - api.getPersonMentions(transformer.fromUni(form)).map(transformer::toUni) + override suspend fun markNotificationAsRead(form: MarkNotificationAsRead): Result = + when (form._kind) { + NotificationType.Mention -> api.markPersonMentionAsRead(transformer.fromUniM(form)).map { } + NotificationType.Reply -> api.markCommentReplyAsRead(transformer.fromUniR(form)).map { } + NotificationType.PrivateMessage -> api.markPrivateMessageAsRead(transformer.fromUniP(form)).map { } + NotificationType.Subscribed, NotificationType.ModAction -> notSupported() + null -> notSupported() + } /** - * Mark a person mention as read. - * - * @POST("user/mention/mark_as_read") + * List notifications. */ - override suspend fun markPersonMentionAsRead( - form: it.vercruysse.lemmyapi.datatypes.MarkPersonMentionAsRead, - ): Result = - api.markPersonMentionAsRead(transformer.fromUni(form)).map(transformer::toUni) + override suspend fun listNotifications(form: ListNotifications): Result> = + when (form.type_) { + NotificationDataType.All -> + runCatching { + val replies = api.getReplies(transformer.fromUniR(form)).getOrThrow().replies.map(transformer::toUni) + val mentionReplies = api.getPersonMentions(transformer.fromUniM(form)).getOrThrow().mentions.map(transformer::toUni) + val privateMessages = api.getPrivateMessages(transformer.fromUniP(form)).getOrThrow().private_messages.map(transformer::toUniPMV) + PagedResponse( + buildList { + addAll(replies) + addAll(mentionReplies) + addAll(privateMessages) + }, + ) + } - /** - * Get comment replies. - * - * @GET("user/replies") - */ - override suspend fun getReplies( - form: it.vercruysse.lemmyapi.datatypes.GetReplies, - ): Result = - api.getReplies(transformer.fromUni(form)).map(transformer::toUni) + NotificationDataType.Reply -> + api.getReplies(transformer.fromUniR(form)).map { resp -> PagedResponse(resp.replies.map(transformer::toUni)) } + + NotificationDataType.Mention -> + api.getPersonMentions(transformer.fromUniM(form)).map { resp -> PagedResponse(resp.mentions.map(transformer::toUni)) } + + NotificationDataType.PrivateMessage -> + api.getPrivateMessages(transformer.fromUniP(form)).map { resp -> PagedResponse(resp.private_messages.map(transformer::toUniPMV)) } + + NotificationDataType.Subscribed, NotificationDataType.ModAction -> Result.success(PagedResponse(emptyList())) + } /** * Ban a person from your site. @@ -609,7 +654,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun banPerson( form: it.vercruysse.lemmyapi.datatypes.BanPerson, - ): Result = + ): Result = api.banPerson(transformer.fromUni(form)).map(transformer::toUni) /** @@ -617,8 +662,8 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba * * @GET("user/banned") */ - override suspend fun getBannedPersons(): Result = - api.getBannedPersons().map(transformer::toUni) + override suspend fun getBannedPersons(): Result> = + api.getBannedPersons().map { resp -> PagedResponse(resp.banned.map(transformer::toUni)) } /** * Block a person. @@ -627,7 +672,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun blockPerson( form: it.vercruysse.lemmyapi.datatypes.BlockPerson, - ): Result = + ): Result = api.blockPerson(transformer.fromUni(form)).map(transformer::toUni) /** @@ -651,7 +696,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba * * @POST("user/password_reset") */ - override suspend fun resetPassword(form: it.vercruysse.lemmyapi.datatypes.PasswordReset): Result = + override suspend fun resetPassword(form: it.vercruysse.lemmyapi.datatypes.ResetPassword): Result = api.resetPassword(transformer.fromUni(form)) /** @@ -659,7 +704,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba * * @POST("user/password_change") */ - override suspend fun changePasswordAfterReset(form: it.vercruysse.lemmyapi.datatypes.PasswordChangeAfterReset): Result = + override suspend fun changePasswordAfterReset(form: it.vercruysse.lemmyapi.datatypes.ChangePasswordAfterReset): Result = api.changePasswordAfterReset(transformer.fromUni(form)) /** @@ -667,8 +712,8 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba * * @POST("user/mark_all_as_read") */ - override suspend fun markAllAsRead(): Result = - api.markAllAsRead().map(transformer::toUni) + override suspend fun markAllNotificationsAsRead(): Result = + api.markAllAsRead().map {} /** * Save your user settings. @@ -688,23 +733,16 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba ): Result = api.changePassword(transformer.fromUni(form)).map(transformer::toUni) - /** - * Get counts for your reports - * - * @GET("user/report_count") - */ - override suspend fun getReportCount( - form: it.vercruysse.lemmyapi.datatypes.GetReportCount, - ): Result = - api.getReportCount(transformer.fromUni(form)).map(transformer::toUni) - - /** - * Get your unread counts - * - * @GET("user/unread_count") - */ - override suspend fun getUnreadCount(): Result = - api.getUnreadCount().map(transformer::toUni) + override suspend fun getUnreadCounts(): Result = runCatching { + val d = api.getUnreadCount().getOrThrow() + val reportCount = api.getReportCount(it.vercruysse.lemmyapi.v0.x19.x11.datatypes.GetReportCount()).getOrNull() + val applicationCount = api.getUnreadRegistrationApplicationCount().getOrNull() + UnreadCountsResponse( + notification_count = d.replies + d.mentions + d.private_messages, + report_count = (reportCount?.post_reports ?: 0L) + (reportCount?.comment_reports ?: 0L) + (reportCount?.private_message_reports ?: 0L), + registration_application_count = applicationCount?.registration_applications, + ) + } /** * Verify your email @@ -740,14 +778,6 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba ): Result = api.addAdmin(transformer.fromUni(form)).map(transformer::toUni) - /** - * Get the unread registration applications count. - * - * @GET("admin/registration_application/count") - */ - override suspend fun getUnreadRegistrationApplicationCount(): Result = - api.getUnreadRegistrationApplicationCount().map(transformer::toUni) - /** * List the registration applications. * @@ -755,8 +785,8 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun listRegistrationApplications( form: it.vercruysse.lemmyapi.datatypes.ListRegistrationApplications, - ): Result = - api.listRegistrationApplications(transformer.fromUni(form)).map(transformer::toUni) + ): Result> = + api.listRegistrationApplications(transformer.fromUni(form)).map { resp -> PagedResponse(resp.registration_applications.map(transformer::toUni)) } /** * Approve a registration application @@ -828,15 +858,25 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba override suspend fun deleteCustomEmoji(form: it.vercruysse.lemmyapi.datatypes.DeleteCustomEmoji): Result = api.deleteCustomEmoji(transformer.fromUni(form)) + /** + * List custom emojis + * + * @GET("custom_emoji/list") + */ + override suspend fun listCustomEmojis(form: ListCustomEmojis): Result = + api.getSite().map { + ListCustomEmojisResponse(it.custom_emojis.map(transformer::toUni)) + } + /** * Block an instance. * * @POST("site/block") */ - override suspend fun blockInstance( - form: it.vercruysse.lemmyapi.datatypes.BlockInstance, - ): Result = - api.blockInstance(transformer.fromUni(form)).map(transformer::toUni) + override suspend fun userBlockInstanceCommunities( + form: it.vercruysse.lemmyapi.datatypes.UserBlockInstanceCommunitiesParams, + ): Result = + api.blockInstance(transformer.fromUni(form)) /** * Generate a TOTP / two-factor secret. @@ -857,9 +897,9 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba * * @POST("user/totp/update") */ - override suspend fun updateTotp( - form: it.vercruysse.lemmyapi.datatypes.UpdateTotp, - ): Result = + override suspend fun editTotp( + form: it.vercruysse.lemmyapi.datatypes.EditTotp, + ): Result = api.updateTotp(transformer.fromUni(form)).map(transformer::toUni) /** @@ -884,8 +924,8 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba * * @GET("user/list_logins") */ - override suspend fun listLogins(): Result> = - api.listLogins().map { it.map(transformer::toUni) } + override suspend fun listLogins(): Result = + api.listLogins().map { ListLoginsResponse(logins = it.map(transformer::toUni)) } /** * Returns an error message if your auth token is invalid @@ -908,8 +948,8 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun listPostLikes( form: it.vercruysse.lemmyapi.datatypes.ListPostLikes, - ): Result = - api.listPostLikes(transformer.fromUni(form)).map(transformer::toUni) + ): Result> = + api.listPostLikes(transformer.fromUni(form)).map { PagedResponse(it.post_likes.map(transformer::toUni)) } /** * List a comment's likes. Admin-only. @@ -918,8 +958,8 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun listCommentLikes( form: it.vercruysse.lemmyapi.datatypes.ListCommentLikes, - ): Result = - api.listCommentLikes(transformer.fromUni(form)).map(transformer::toUni) + ): Result> = + api.listCommentLikes(transformer.fromUni(form)).map { PagedResponse(it.comment_likes.map(transformer::toUni)) } /** * List all the media for your user @@ -928,25 +968,35 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun listMedia( form: it.vercruysse.lemmyapi.datatypes.ListMedia, - ): Result = - api.listMedia(transformer.fromUni(form)).map(transformer::toUni) + ): Result> = + api.listMedia(transformer.fromUni(form)).map { PagedResponse(it.images.map(transformer::toUni)) } /** * List all the media known to your instance. * * @GET("admin/list_all_media") */ - override suspend fun listAllMedia( + override suspend fun listMediaAdmin( form: it.vercruysse.lemmyapi.datatypes.ListMedia, - ): Result = - api.listAllMedia(transformer.fromUni(form)).map(transformer::toUni) + ): Result> = + api.listAllMedia(transformer.fromUni(form)).map { PagedResponse(it.images.map(transformer::toUni)) } /** * Hide a post from list views. * * @POST("post/hide") */ - override suspend fun hidePost(form: it.vercruysse.lemmyapi.datatypes.HidePost): Result = + override suspend fun hidePost(form: it.vercruysse.lemmyapi.datatypes.HidePost): Result = + api.hidePost(it.vercruysse.lemmyapi.v0.x19.x11.datatypes.HidePost(post_ids = listOf(form.post_id), hide = form.hide)).fold( + onSuccess = { _ -> + api.getPost(it.vercruysse.lemmyapi.v0.x19.x11.datatypes.GetPost(id = form.post_id)) + .map(transformer::toUni) + .map { post -> it.vercruysse.lemmyapi.datatypes.PostResponse(post_view = post.post_view) } + }, + onFailure = { Result.failure(it) }, + ) + + override suspend fun hidePosts(form: it.vercruysse.lemmyapi.datatypes.HidePosts): Result = api.hidePost(transformer.fromUni(form)) /** @@ -958,4 +1008,238 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba form: it.vercruysse.lemmyapi.datatypes.GetRegistrationApplication, ): Result = api.getRegistrationApplication(transformer.fromUni(form)).map(transformer::toUni) + + /** + * Get data of current user + * + * @GET("/account") + */ + override suspend fun getMyUser(): Result = + api.getSite() + .mapCatching { it.my_user ?: throw IllegalStateException("Auth invalid") } + .map { transformer.toUni(it) } + + /** + * List the content for a person. + * + * @GET("person/content") + */ + override suspend fun listPersonContent( + form: it.vercruysse.lemmyapi.datatypes.ListPersonContent, + ): Result> { + val getPersonDetailsForm = GetPersonDetails( + person_id = form.person_id, + username = form.username, + community_id = form.community_id, + page = form.page, + limit = form.limit, + ) + return api.getPersonDetails(getPersonDetailsForm).map { response -> + val comments = when (form.type_) { + it.vercruysse.lemmyapi.enums.PersonContentType.Posts -> emptyList() + else -> response.comments.map { transformer.toUni(it) } + } + val posts = when (form.type_) { + it.vercruysse.lemmyapi.enums.PersonContentType.Comments -> emptyList() + else -> response.posts.map { transformer.toUni(it) } + } + PagedResponse(items = comments + posts) + } + } + + override suspend fun uploadImage(image: ByteArray): Result = + pictrsApi.uploadImage(image) + + override suspend fun uploadCommunityBanner( + image: ByteArray, + form: it.vercruysse.lemmyapi.datatypes.CommunityIdQuery, + ): Result = + uploadAndApplyImage(image) { imageUrl -> + api.editCommunity( + it.vercruysse.lemmyapi.v0.x19.x11.datatypes.EditCommunity( + community_id = form.id, + banner = imageUrl, + ), + ).map {} + } + + override suspend fun uploadCommunityIcon( + image: ByteArray, + form: it.vercruysse.lemmyapi.datatypes.CommunityIdQuery, + ): Result = + uploadAndApplyImage(image) { imageUrl -> + api.editCommunity( + it.vercruysse.lemmyapi.v0.x19.x11.datatypes.EditCommunity( + community_id = form.id, + icon = imageUrl, + ), + ).map {} + } + + override suspend fun uploadSiteBanner(image: ByteArray): Result = + uploadAndApplyImage(image) { imageUrl -> + api.editSite( + it.vercruysse.lemmyapi.v0.x19.x11.datatypes.EditSite( + banner = imageUrl, + ), + ).map {} + } + + override suspend fun uploadSiteIcon(image: ByteArray): Result = + uploadAndApplyImage(image) { imageUrl -> + api.editSite( + it.vercruysse.lemmyapi.v0.x19.x11.datatypes.EditSite( + icon = imageUrl, + ), + ).map {} + } + + override suspend fun uploadUserAvatar(image: ByteArray): Result = + uploadAndApplyImage(image) { imageUrl -> + api.saveUserSettings( + it.vercruysse.lemmyapi.v0.x19.x11.datatypes.SaveUserSettings( + avatar = imageUrl, + ), + ) + } + + override suspend fun uploadUserBanner(image: ByteArray): Result = + uploadAndApplyImage(image) { imageUrl -> + api.saveUserSettings( + it.vercruysse.lemmyapi.v0.x19.x11.datatypes.SaveUserSettings( + banner = imageUrl, + ), + ) + } + + override suspend fun deleteUserAvatar(): Result = + api.saveUserSettings(it.vercruysse.lemmyapi.v0.x19.x11.datatypes.SaveUserSettings(avatar = "")) + + override suspend fun deleteUserBanner(): Result = + api.saveUserSettings(it.vercruysse.lemmyapi.v0.x19.x11.datatypes.SaveUserSettings(banner = "")) + + override suspend fun deleteCommunityBanner(form: it.vercruysse.lemmyapi.datatypes.CommunityIdQuery): Result = + api.editCommunity( + it.vercruysse.lemmyapi.v0.x19.x11.datatypes.EditCommunity( + community_id = form.id, + banner = "", + ), + ).map {} + + override suspend fun deleteCommunityIcon(form: it.vercruysse.lemmyapi.datatypes.CommunityIdQuery): Result = + api.editCommunity( + it.vercruysse.lemmyapi.v0.x19.x11.datatypes.EditCommunity( + community_id = form.id, + icon = "", + ), + ).map {} + + override suspend fun deleteSiteBanner(): Result = + api.editSite( + it.vercruysse.lemmyapi.v0.x19.x11.datatypes.EditSite( + banner = "", + ), + ).map {} + + override suspend fun deleteSiteIcon(): Result = + api.editSite( + it.vercruysse.lemmyapi.v0.x19.x11.datatypes.EditSite( + icon = "", + ), + ).map {} + + override suspend fun deleteMedia(form: it.vercruysse.lemmyapi.datatypes.DeleteImageParams): Result = + pictrsApi.deleteMedia(form) + + override suspend fun adminListUsers(form: it.vercruysse.lemmyapi.datatypes.AdminListUsers): Result> = notSupported() + + override suspend fun getRandomCommunity(form: it.vercruysse.lemmyapi.datatypes.GetRandomCommunity): Result = notSupported() + + override suspend fun createCommunityReport(form: it.vercruysse.lemmyapi.datatypes.CreateCommunityReport): Result = notSupported() + + override suspend fun resolveCommunityReport(form: it.vercruysse.lemmyapi.datatypes.ResolveCommunityReport): Result = notSupported() + + override suspend fun createCommunityTag(form: it.vercruysse.lemmyapi.datatypes.CreateCommunityTag): Result = notSupported() + + override suspend fun editCommunityTag(form: it.vercruysse.lemmyapi.datatypes.EditCommunityTag): Result = notSupported() + + override suspend fun deleteCommunityTag(form: it.vercruysse.lemmyapi.datatypes.DeleteCommunityTag): Result = notSupported() + + override suspend fun editCommunityNotifications(form: it.vercruysse.lemmyapi.datatypes.EditCommunityNotifications): Result = notSupported() + + override suspend fun approveCommunityPendingFollow(form: it.vercruysse.lemmyapi.datatypes.ApproveCommunityPendingFollower): Result = notSupported() + + override suspend fun listCommunityPendingFollows(form: it.vercruysse.lemmyapi.datatypes.ListCommunityPendingFollows): Result> = notSupported() + + override suspend fun modEditPost(form: it.vercruysse.lemmyapi.datatypes.ModEditPost): Result = notSupported() + + override suspend fun editPostNotifications(form: it.vercruysse.lemmyapi.datatypes.EditPostNotifications): Result = notSupported() + + override suspend fun warnPost(form: it.vercruysse.lemmyapi.datatypes.CreatePostWarning): Result = notSupported() + + override suspend fun getCommentsSlim(form: it.vercruysse.lemmyapi.datatypes.GetComments): Result> = notSupported() + + override suspend fun lockComment(form: it.vercruysse.lemmyapi.datatypes.LockComment): Result = notSupported() + + override suspend fun warnComment(form: it.vercruysse.lemmyapi.datatypes.CreateCommentWarning): Result = notSupported() + + override suspend fun notePerson(form: it.vercruysse.lemmyapi.datatypes.NotePerson): Result = notSupported() + + override suspend fun listPersonSaved(form: it.vercruysse.lemmyapi.datatypes.ListPersonSaved): Result> = notSupported() + + override suspend fun listPersonRead(form: it.vercruysse.lemmyapi.datatypes.ListPersonRead): Result> = notSupported() + + override suspend fun listPersonHidden(form: it.vercruysse.lemmyapi.datatypes.ListPersonHidden): Result> = notSupported() + + override suspend fun listPersonLiked(form: it.vercruysse.lemmyapi.datatypes.ListPersonLiked): Result> = notSupported() + + override suspend fun resendVerificationEmail(form: it.vercruysse.lemmyapi.datatypes.ResendVerificationEmail): Result = notSupported() + + override suspend fun authenticateWithOAuth(form: it.vercruysse.lemmyapi.datatypes.AuthenticateWithOauth): Result = notSupported() + + override suspend fun userBlockInstancePersons(form: it.vercruysse.lemmyapi.datatypes.UserBlockInstancePersonsParams): Result = notSupported() + + override suspend fun adminAllowInstance(form: it.vercruysse.lemmyapi.datatypes.AdminAllowInstanceParams): Result = notSupported() + + override suspend fun adminBlockInstance(form: it.vercruysse.lemmyapi.datatypes.AdminBlockInstanceParams): Result = notSupported() + + override suspend fun createTagline(form: it.vercruysse.lemmyapi.datatypes.CreateTagline): Result = notSupported() + + override suspend fun editTagline(form: it.vercruysse.lemmyapi.datatypes.EditTagline): Result = notSupported() + + override suspend fun deleteTagline(form: it.vercruysse.lemmyapi.datatypes.DeleteTagline): Result = notSupported() + + override suspend fun listTaglines(form: it.vercruysse.lemmyapi.datatypes.ListTaglines): Result> = notSupported() + + override suspend fun createOAuthProvider(form: it.vercruysse.lemmyapi.datatypes.CreateOAuthProvider): Result = notSupported() + + override suspend fun editOAuthProvider(form: it.vercruysse.lemmyapi.datatypes.EditOAuthProvider): Result = notSupported() + + override suspend fun deleteOAuthProvider(form: it.vercruysse.lemmyapi.datatypes.DeleteOAuthProvider): Result = notSupported() + + override suspend fun getMultiCommunity(form: it.vercruysse.lemmyapi.datatypes.GetMultiCommunity): Result = notSupported() + + override suspend fun createMultiCommunity(form: it.vercruysse.lemmyapi.datatypes.CreateMultiCommunity): Result = notSupported() + + override suspend fun editMultiCommunity(form: it.vercruysse.lemmyapi.datatypes.EditMultiCommunity): Result = notSupported() + + override suspend fun createMultiCommunityEntry(form: it.vercruysse.lemmyapi.datatypes.CreateOrDeleteMultiCommunityEntry): Result = notSupported() + + override suspend fun deleteMultiCommunityEntry(form: it.vercruysse.lemmyapi.datatypes.CreateOrDeleteMultiCommunityEntry): Result = notSupported() + + override suspend fun followMultiCommunity(form: it.vercruysse.lemmyapi.datatypes.FollowMultiCommunity): Result = notSupported() + + override suspend fun listMultiCommunities(form: it.vercruysse.lemmyapi.datatypes.ListMultiCommunities): Result> = notSupported() + + override suspend fun deleteMediaAdmin(form: it.vercruysse.lemmyapi.datatypes.DeleteImageParams): Result = notSupported() + + override suspend fun imageHealth(): Result = notSupported() + + override suspend fun listPersons(form: it.vercruysse.lemmyapi.datatypes.ListPersons): Result> = notSupported() + + override suspend fun createRegistrationInvitation(form: it.vercruysse.lemmyapi.datatypes.CreateInvitation): Result = notSupported() + + override suspend fun revokeRegistrationInvitation(form: it.vercruysse.lemmyapi.datatypes.RevokeInvitation): Result = notSupported() + + override suspend fun listRegistrationInvitations(form: it.vercruysse.lemmyapi.datatypes.ListInvitations): Result> = notSupported() } diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/MapperGenerator.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/MapperGenerator.kt index d92abb58..0fa64ebb 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/MapperGenerator.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/MapperGenerator.kt @@ -6,34 +6,18 @@ internal interface MapperGenerator { fun toUni(d: AddAdminResponse): it.vercruysse.lemmyapi.datatypes.AddAdminResponse fun toUni(d: AddModToCommunityResponse): it.vercruysse.lemmyapi.datatypes.AddModToCommunityResponse - fun toUni(d: AdminPurgeComment): it.vercruysse.lemmyapi.datatypes.AdminPurgeComment - fun toUni(d: AdminPurgeCommentView): it.vercruysse.lemmyapi.datatypes.AdminPurgeCommentView - fun toUni(d: AdminPurgeCommunity): it.vercruysse.lemmyapi.datatypes.AdminPurgeCommunity - fun toUni(d: AdminPurgeCommunityView): it.vercruysse.lemmyapi.datatypes.AdminPurgeCommunityView - fun toUni(d: AdminPurgePerson): it.vercruysse.lemmyapi.datatypes.AdminPurgePerson - fun toUni(d: AdminPurgePersonView): it.vercruysse.lemmyapi.datatypes.AdminPurgePersonView - fun toUni(d: AdminPurgePost): it.vercruysse.lemmyapi.datatypes.AdminPurgePost - fun toUni(d: AdminPurgePostView): it.vercruysse.lemmyapi.datatypes.AdminPurgePostView - fun toUni(d: BanFromCommunityResponse): it.vercruysse.lemmyapi.datatypes.BanFromCommunityResponse - fun toUni(d: BannedPersonsResponse): it.vercruysse.lemmyapi.datatypes.BannedPersonsResponse - fun toUni(d: BanPersonResponse): it.vercruysse.lemmyapi.datatypes.BanPersonResponse - fun toUni(d: BlockCommunityResponse): it.vercruysse.lemmyapi.datatypes.BlockCommunityResponse - fun toUni(d: BlockInstanceResponse): it.vercruysse.lemmyapi.datatypes.BlockInstanceResponse - fun toUni(d: BlockPersonResponse): it.vercruysse.lemmyapi.datatypes.BlockPersonResponse + fun toUni(d: BanFromCommunityResponse): it.vercruysse.lemmyapi.datatypes.PersonResponse + fun toUni(d: BanPersonResponse): it.vercruysse.lemmyapi.datatypes.PersonResponse + fun toUni(d: BlockCommunityResponse): it.vercruysse.lemmyapi.datatypes.CommunityResponse + fun toUni(d: BlockPersonResponse): it.vercruysse.lemmyapi.datatypes.PersonResponse fun toUni(d: CaptchaResponse): it.vercruysse.lemmyapi.datatypes.CaptchaResponse - fun toUni(d: Comment): it.vercruysse.lemmyapi.datatypes.Comment - fun toUni(d: CommentAggregates): it.vercruysse.lemmyapi.datatypes.CommentAggregates - fun toUni(d: CommentReply): it.vercruysse.lemmyapi.datatypes.CommentReply - fun toUni(d: CommentReplyResponse): it.vercruysse.lemmyapi.datatypes.CommentReplyResponse - fun toUni(d: CommentReplyView): it.vercruysse.lemmyapi.datatypes.CommentReplyView + fun toUni(d: Comment, counts: CommentAggregates): it.vercruysse.lemmyapi.datatypes.Comment fun toUni(d: CommentReport): it.vercruysse.lemmyapi.datatypes.CommentReport fun toUni(d: CommentReportResponse): it.vercruysse.lemmyapi.datatypes.CommentReportResponse fun toUni(d: CommentReportView): it.vercruysse.lemmyapi.datatypes.CommentReportView fun toUni(d: CommentResponse): it.vercruysse.lemmyapi.datatypes.CommentResponse fun toUni(d: CommentView): it.vercruysse.lemmyapi.datatypes.CommentView - fun toUni(d: Community): it.vercruysse.lemmyapi.datatypes.Community - fun toUni(d: CommunityAggregates): it.vercruysse.lemmyapi.datatypes.CommunityAggregates - fun toUni(d: CommunityBlockView): it.vercruysse.lemmyapi.datatypes.CommunityBlockView + fun toUni(d: Community, counts: CommunityAggregates): it.vercruysse.lemmyapi.datatypes.Community fun toUni(d: CommunityFollowerView): it.vercruysse.lemmyapi.datatypes.CommunityFollowerView fun toUni(d: CommunityModeratorView): it.vercruysse.lemmyapi.datatypes.CommunityModeratorView fun toUni(d: CommunityResponse): it.vercruysse.lemmyapi.datatypes.CommunityResponse @@ -42,80 +26,30 @@ internal interface MapperGenerator { fun toUni(d: CustomEmojiKeyword): it.vercruysse.lemmyapi.datatypes.CustomEmojiKeyword fun toUni(d: CustomEmojiResponse): it.vercruysse.lemmyapi.datatypes.CustomEmojiResponse fun toUni(d: CustomEmojiView): it.vercruysse.lemmyapi.datatypes.CustomEmojiView - fun toUni(d: FederatedInstances): it.vercruysse.lemmyapi.datatypes.FederatedInstances fun toUni(d: GenerateTotpSecretResponse): it.vercruysse.lemmyapi.datatypes.GenerateTotpSecretResponse fun toUni(d: GetCaptchaResponse): it.vercruysse.lemmyapi.datatypes.GetCaptchaResponse - fun toUni(d: GetCommentsResponse): it.vercruysse.lemmyapi.datatypes.GetCommentsResponse fun toUni(d: GetCommunityResponse): it.vercruysse.lemmyapi.datatypes.GetCommunityResponse - fun toUni(d: GetFederatedInstancesResponse): it.vercruysse.lemmyapi.datatypes.GetFederatedInstancesResponse - fun toUni(d: GetModlogResponse): it.vercruysse.lemmyapi.datatypes.GetModlogResponse fun toUni(d: GetPersonDetailsResponse): it.vercruysse.lemmyapi.datatypes.GetPersonDetailsResponse - fun toUni(d: GetPersonMentionsResponse): it.vercruysse.lemmyapi.datatypes.GetPersonMentionsResponse fun toUni(d: GetPostResponse): it.vercruysse.lemmyapi.datatypes.GetPostResponse - fun toUni(d: GetPostsResponse): it.vercruysse.lemmyapi.datatypes.GetPostsResponse - fun toUni(d: GetRepliesResponse): it.vercruysse.lemmyapi.datatypes.GetRepliesResponse - fun toUni(d: GetReportCountResponse): it.vercruysse.lemmyapi.datatypes.GetReportCountResponse fun toUni(d: GetSiteMetadataResponse): it.vercruysse.lemmyapi.datatypes.GetSiteMetadataResponse fun toUni(d: GetSiteResponse): it.vercruysse.lemmyapi.datatypes.GetSiteResponse - fun toUni(d: GetUnreadCountResponse): it.vercruysse.lemmyapi.datatypes.GetUnreadCountResponse - fun toUni(d: GetUnreadRegistrationApplicationCountResponse): it.vercruysse.lemmyapi.datatypes.GetUnreadRegistrationApplicationCountResponse fun toUni(d: ImageDetails): it.vercruysse.lemmyapi.datatypes.ImageDetails fun toUni(d: Instance): it.vercruysse.lemmyapi.datatypes.Instance - fun toUni(d: InstanceBlockView): it.vercruysse.lemmyapi.datatypes.InstanceBlockView - fun toUni(d: InstanceWithFederationState): it.vercruysse.lemmyapi.datatypes.InstanceWithFederationState fun toUni(d: Language): it.vercruysse.lemmyapi.datatypes.Language fun toUni(d: LinkMetadata): it.vercruysse.lemmyapi.datatypes.LinkMetadata - fun toUni(d: ListCommentLikesResponse): it.vercruysse.lemmyapi.datatypes.ListCommentLikesResponse - fun toUni(d: ListCommentReportsResponse): it.vercruysse.lemmyapi.datatypes.ListCommentReportsResponse - fun toUni(d: ListCommunitiesResponse): it.vercruysse.lemmyapi.datatypes.ListCommunitiesResponse - fun toUni(d: ListMediaResponse): it.vercruysse.lemmyapi.datatypes.ListMediaResponse - fun toUni(d: ListPostLikesResponse): it.vercruysse.lemmyapi.datatypes.ListPostLikesResponse - fun toUni(d: ListPostReportsResponse): it.vercruysse.lemmyapi.datatypes.ListPostReportsResponse - fun toUni(d: ListPrivateMessageReportsResponse): it.vercruysse.lemmyapi.datatypes.ListPrivateMessageReportsResponse - fun toUni(d: ListRegistrationApplicationsResponse): it.vercruysse.lemmyapi.datatypes.ListRegistrationApplicationsResponse fun toUni(d: LocalImage): it.vercruysse.lemmyapi.datatypes.LocalImage fun toUni(d: LocalImageView): it.vercruysse.lemmyapi.datatypes.LocalImageView - fun toUni(d: LocalSite): it.vercruysse.lemmyapi.datatypes.LocalSite + fun toUni(d: LocalSite, counts: SiteAggregates): it.vercruysse.lemmyapi.datatypes.LocalSite fun toUni(d: LocalSiteRateLimit): it.vercruysse.lemmyapi.datatypes.LocalSiteRateLimit fun toUni(d: LocalSiteUrlBlocklist): it.vercruysse.lemmyapi.datatypes.LocalSiteUrlBlocklist - fun toUni(d: LocalUser): it.vercruysse.lemmyapi.datatypes.LocalUser + fun toUni(d: LocalUser, e: LocalUserVoteDisplayMode): it.vercruysse.lemmyapi.datatypes.LocalUser fun toUni(d: LocalUserView): it.vercruysse.lemmyapi.datatypes.LocalUserView - fun toUni(d: LocalUserVoteDisplayMode): it.vercruysse.lemmyapi.datatypes.LocalUserVoteDisplayMode fun toUni(d: LoginResponse): it.vercruysse.lemmyapi.datatypes.LoginResponse fun toUni(d: LoginToken): it.vercruysse.lemmyapi.datatypes.LoginToken - fun toUni(d: ModAdd): it.vercruysse.lemmyapi.datatypes.ModAdd - fun toUni(d: ModAddCommunity): it.vercruysse.lemmyapi.datatypes.ModAddCommunity - fun toUni(d: ModAddCommunityView): it.vercruysse.lemmyapi.datatypes.ModAddCommunityView - fun toUni(d: ModAddView): it.vercruysse.lemmyapi.datatypes.ModAddView - fun toUni(d: ModBan): it.vercruysse.lemmyapi.datatypes.ModBan - fun toUni(d: ModBanFromCommunity): it.vercruysse.lemmyapi.datatypes.ModBanFromCommunity - fun toUni(d: ModBanFromCommunityView): it.vercruysse.lemmyapi.datatypes.ModBanFromCommunityView - fun toUni(d: ModBanView): it.vercruysse.lemmyapi.datatypes.ModBanView - fun toUni(d: ModFeaturePost): it.vercruysse.lemmyapi.datatypes.ModFeaturePost - fun toUni(d: ModFeaturePostView): it.vercruysse.lemmyapi.datatypes.ModFeaturePostView - fun toUni(d: ModHideCommunity): it.vercruysse.lemmyapi.datatypes.ModHideCommunity - fun toUni(d: ModHideCommunityView): it.vercruysse.lemmyapi.datatypes.ModHideCommunityView - fun toUni(d: ModLockPost): it.vercruysse.lemmyapi.datatypes.ModLockPost - fun toUni(d: ModLockPostView): it.vercruysse.lemmyapi.datatypes.ModLockPostView - fun toUni(d: ModlogListParams): it.vercruysse.lemmyapi.datatypes.ModlogListParams - fun toUni(d: ModRemoveComment): it.vercruysse.lemmyapi.datatypes.ModRemoveComment - fun toUni(d: ModRemoveCommentView): it.vercruysse.lemmyapi.datatypes.ModRemoveCommentView - fun toUni(d: ModRemoveCommunity): it.vercruysse.lemmyapi.datatypes.ModRemoveCommunity - fun toUni(d: ModRemoveCommunityView): it.vercruysse.lemmyapi.datatypes.ModRemoveCommunityView - fun toUni(d: ModRemovePost): it.vercruysse.lemmyapi.datatypes.ModRemovePost - fun toUni(d: ModRemovePostView): it.vercruysse.lemmyapi.datatypes.ModRemovePostView - fun toUni(d: ModTransferCommunity): it.vercruysse.lemmyapi.datatypes.ModTransferCommunity - fun toUni(d: ModTransferCommunityView): it.vercruysse.lemmyapi.datatypes.ModTransferCommunityView fun toUni(d: MyUserInfo): it.vercruysse.lemmyapi.datatypes.MyUserInfo - fun toUni(d: Person): it.vercruysse.lemmyapi.datatypes.Person - fun toUni(d: PersonAggregates): it.vercruysse.lemmyapi.datatypes.PersonAggregates - fun toUni(d: PersonBlockView): it.vercruysse.lemmyapi.datatypes.PersonBlockView - fun toUni(d: PersonMention): it.vercruysse.lemmyapi.datatypes.PersonMention - fun toUni(d: PersonMentionResponse): it.vercruysse.lemmyapi.datatypes.PersonMentionResponse - fun toUni(d: PersonMentionView): it.vercruysse.lemmyapi.datatypes.PersonMentionView + fun toUni(d: Person, counts: PersonAggregates): it.vercruysse.lemmyapi.datatypes.Person fun toUni(d: PersonView): it.vercruysse.lemmyapi.datatypes.PersonView - fun toUni(d: Post): it.vercruysse.lemmyapi.datatypes.Post - fun toUni(d: PostAggregates): it.vercruysse.lemmyapi.datatypes.PostAggregates + fun toUni(d: Post, counts: PostAggregates): it.vercruysse.lemmyapi.datatypes.Post fun toUni(d: PostReport): it.vercruysse.lemmyapi.datatypes.PostReport fun toUni(d: PostReportResponse): it.vercruysse.lemmyapi.datatypes.PostReportResponse fun toUni(d: PostReportView): it.vercruysse.lemmyapi.datatypes.PostReportView @@ -126,20 +60,18 @@ internal interface MapperGenerator { fun toUni(d: PrivateMessageReportResponse): it.vercruysse.lemmyapi.datatypes.PrivateMessageReportResponse fun toUni(d: PrivateMessageReportView): it.vercruysse.lemmyapi.datatypes.PrivateMessageReportView fun toUni(d: PrivateMessageResponse): it.vercruysse.lemmyapi.datatypes.PrivateMessageResponse - fun toUni(d: PrivateMessagesResponse): it.vercruysse.lemmyapi.datatypes.PrivateMessagesResponse fun toUni(d: PrivateMessageView): it.vercruysse.lemmyapi.datatypes.PrivateMessageView - fun toUni(d: ReadableFederationState): it.vercruysse.lemmyapi.datatypes.ReadableFederationState + fun toUni(d: ReadableFederationState): it.vercruysse.lemmyapi.datatypes.FederationQueueState fun toUni(d: RegistrationApplication): it.vercruysse.lemmyapi.datatypes.RegistrationApplication fun toUni(d: RegistrationApplicationResponse): it.vercruysse.lemmyapi.datatypes.RegistrationApplicationResponse fun toUni(d: RegistrationApplicationView): it.vercruysse.lemmyapi.datatypes.RegistrationApplicationView - fun toUni(d: ResolveObjectResponse): it.vercruysse.lemmyapi.datatypes.ResolveObjectResponse + fun toUni(d: ResolveObjectResponse): it.vercruysse.lemmyapi.datatypes.SearchResponse fun toUni(d: SearchResponse): it.vercruysse.lemmyapi.datatypes.SearchResponse fun toUni(d: Site): it.vercruysse.lemmyapi.datatypes.Site - fun toUni(d: SiteAggregates): it.vercruysse.lemmyapi.datatypes.SiteAggregates fun toUni(d: SiteResponse): it.vercruysse.lemmyapi.datatypes.SiteResponse fun toUni(d: SiteView): it.vercruysse.lemmyapi.datatypes.SiteView fun toUni(d: Tagline): it.vercruysse.lemmyapi.datatypes.Tagline - fun toUni(d: UpdateTotpResponse): it.vercruysse.lemmyapi.datatypes.UpdateTotpResponse + fun toUni(d: UpdateTotpResponse): it.vercruysse.lemmyapi.datatypes.EditTotpResponse fun toUni(d: VoteView): it.vercruysse.lemmyapi.datatypes.VoteView // body mappings @@ -149,7 +81,7 @@ internal interface MapperGenerator { fun fromUni(d: it.vercruysse.lemmyapi.datatypes.BanFromCommunity): BanFromCommunity fun fromUni(d: it.vercruysse.lemmyapi.datatypes.BanPerson): BanPerson fun fromUni(d: it.vercruysse.lemmyapi.datatypes.BlockCommunity): BlockCommunity - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.BlockInstance): BlockInstance + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.UserBlockInstanceCommunitiesParams): BlockInstance fun fromUni(d: it.vercruysse.lemmyapi.datatypes.BlockPerson): BlockPerson fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ChangePassword): ChangePassword fun fromUni(d: it.vercruysse.lemmyapi.datatypes.CreateComment): CreateComment @@ -183,32 +115,26 @@ internal interface MapperGenerator { fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetCommunity): GetCommunity fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetModlog): GetModlog fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPersonDetails): GetPersonDetails - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPersonMentions): GetPersonMentions fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPost): GetPost fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPosts): GetPosts - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPrivateMessages): GetPrivateMessages fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetRegistrationApplication): GetRegistrationApplication - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetReplies): GetReplies - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetReportCount): GetReportCount + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetSiteMetadata): GetSiteMetadata fun fromUni(d: it.vercruysse.lemmyapi.datatypes.HideCommunity): HideCommunity - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.HidePost): HidePost + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.HidePosts): HidePost + fun fromUniC(d: it.vercruysse.lemmyapi.datatypes.ListReports): ListCommentReports + fun fromUniP(d: it.vercruysse.lemmyapi.datatypes.ListReports): ListPostReports + fun fromUniPm(d: it.vercruysse.lemmyapi.datatypes.ListReports): ListPrivateMessageReports fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListCommentLikes): ListCommentLikes - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListCommentReports): ListCommentReports fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListCommunities): ListCommunities fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListMedia): ListMedia fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListPostLikes): ListPostLikes - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListPostReports): ListPostReports - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListPrivateMessageReports): ListPrivateMessageReports fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListRegistrationApplications): ListRegistrationApplications fun fromUni(d: it.vercruysse.lemmyapi.datatypes.LockPost): LockPost fun fromUni(d: it.vercruysse.lemmyapi.datatypes.Login): Login - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.MarkCommentReplyAsRead): MarkCommentReplyAsRead - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.MarkPersonMentionAsRead): MarkPersonMentionAsRead - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.MarkPostAsRead): MarkPostAsRead - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.MarkPrivateMessageAsRead): MarkPrivateMessageAsRead - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PasswordChangeAfterReset): PasswordChangeAfterReset - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PasswordReset): PasswordReset + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.MarkManyPostsAsRead): MarkPostAsRead + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ChangePasswordAfterReset): PasswordChangeAfterReset + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ResetPassword): PasswordReset fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PurgeComment): PurgeComment fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PurgeCommunity): PurgeCommunity fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PurgePerson): PurgePerson @@ -226,6 +152,6 @@ internal interface MapperGenerator { fun fromUni(d: it.vercruysse.lemmyapi.datatypes.SaveUserSettings): SaveUserSettings fun fromUni(d: it.vercruysse.lemmyapi.datatypes.Search): Search fun fromUni(d: it.vercruysse.lemmyapi.datatypes.TransferCommunity): TransferCommunity - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.UpdateTotp): UpdateTotp + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.EditTotp): UpdateTotp fun fromUni(d: it.vercruysse.lemmyapi.datatypes.VerifyEmail): VerifyEmail } diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/Transformer.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/Transformer.kt index 973820b9..279ece15 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/Transformer.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/Transformer.kt @@ -1,44 +1,39 @@ package it.vercruysse.lemmyapi.v0.x19.x11 +import it.vercruysse.lemmyapi.datatypes.CommentActions +import it.vercruysse.lemmyapi.datatypes.CommunityActions +import it.vercruysse.lemmyapi.datatypes.MarkNotificationAsRead +import it.vercruysse.lemmyapi.datatypes.Notification +import it.vercruysse.lemmyapi.datatypes.NotificationView +import it.vercruysse.lemmyapi.datatypes.PersonActions +import it.vercruysse.lemmyapi.datatypes.PostActions +import it.vercruysse.lemmyapi.enums.CommentSortType +import it.vercruysse.lemmyapi.enums.CommunityFollowerState +import it.vercruysse.lemmyapi.enums.CommunityVisibility +import it.vercruysse.lemmyapi.enums.FederationMode +import it.vercruysse.lemmyapi.enums.ImageMode +import it.vercruysse.lemmyapi.enums.NotificationType +import it.vercruysse.lemmyapi.enums.VoteShow +import it.vercruysse.lemmyapi.utils.toAt import it.vercruysse.lemmyapi.datatypes.AddAdmin as LemmyapiDatatypesAddAdmin import it.vercruysse.lemmyapi.datatypes.AddAdminResponse as LemmyapiDatatypesAddAdminResponse import it.vercruysse.lemmyapi.datatypes.AddModToCommunity as LemmyapiDatatypesAddModToCommunity import it.vercruysse.lemmyapi.datatypes.AddModToCommunityResponse as LemmyapiDatatypesAddModToCommunityResponse -import it.vercruysse.lemmyapi.datatypes.AdminPurgeComment as LemmyapiDatatypesAdminPurgeComment -import it.vercruysse.lemmyapi.datatypes.AdminPurgeCommentView as LemmyapiDatatypesAdminPurgeCommentView -import it.vercruysse.lemmyapi.datatypes.AdminPurgeCommunity as LemmyapiDatatypesAdminPurgeCommunity -import it.vercruysse.lemmyapi.datatypes.AdminPurgeCommunityView as LemmyapiDatatypesAdminPurgeCommunityView -import it.vercruysse.lemmyapi.datatypes.AdminPurgePerson as LemmyapiDatatypesAdminPurgePerson -import it.vercruysse.lemmyapi.datatypes.AdminPurgePersonView as LemmyapiDatatypesAdminPurgePersonView -import it.vercruysse.lemmyapi.datatypes.AdminPurgePost as LemmyapiDatatypesAdminPurgePost -import it.vercruysse.lemmyapi.datatypes.AdminPurgePostView as LemmyapiDatatypesAdminPurgePostView import it.vercruysse.lemmyapi.datatypes.ApproveRegistrationApplication as LemmyapiDatatypesApproveRegistrationApplication import it.vercruysse.lemmyapi.datatypes.BanFromCommunity as LemmyapiDatatypesBanFromCommunity -import it.vercruysse.lemmyapi.datatypes.BanFromCommunityResponse as LemmyapiDatatypesBanFromCommunityResponse import it.vercruysse.lemmyapi.datatypes.BanPerson as LemmyapiDatatypesBanPerson -import it.vercruysse.lemmyapi.datatypes.BanPersonResponse as LemmyapiDatatypesBanPersonResponse -import it.vercruysse.lemmyapi.datatypes.BannedPersonsResponse as LemmyapiDatatypesBannedPersonsResponse import it.vercruysse.lemmyapi.datatypes.BlockCommunity as LemmyapiDatatypesBlockCommunity -import it.vercruysse.lemmyapi.datatypes.BlockCommunityResponse as LemmyapiDatatypesBlockCommunityResponse -import it.vercruysse.lemmyapi.datatypes.BlockInstance as LemmyapiDatatypesBlockInstance -import it.vercruysse.lemmyapi.datatypes.BlockInstanceResponse as LemmyapiDatatypesBlockInstanceResponse import it.vercruysse.lemmyapi.datatypes.BlockPerson as LemmyapiDatatypesBlockPerson -import it.vercruysse.lemmyapi.datatypes.BlockPersonResponse as LemmyapiDatatypesBlockPersonResponse import it.vercruysse.lemmyapi.datatypes.CaptchaResponse as LemmyapiDatatypesCaptchaResponse import it.vercruysse.lemmyapi.datatypes.ChangePassword as LemmyapiDatatypesChangePassword +import it.vercruysse.lemmyapi.datatypes.ChangePasswordAfterReset as LemmyapiDatatypesPasswordChangeAfterReset import it.vercruysse.lemmyapi.datatypes.Comment as LemmyapiDatatypesComment -import it.vercruysse.lemmyapi.datatypes.CommentAggregates as LemmyapiDatatypesCommentAggregates -import it.vercruysse.lemmyapi.datatypes.CommentReply as LemmyapiDatatypesCommentReply -import it.vercruysse.lemmyapi.datatypes.CommentReplyResponse as LemmyapiDatatypesCommentReplyResponse -import it.vercruysse.lemmyapi.datatypes.CommentReplyView as LemmyapiDatatypesCommentReplyView import it.vercruysse.lemmyapi.datatypes.CommentReport as LemmyapiDatatypesCommentReport import it.vercruysse.lemmyapi.datatypes.CommentReportResponse as LemmyapiDatatypesCommentReportResponse import it.vercruysse.lemmyapi.datatypes.CommentReportView as LemmyapiDatatypesCommentReportView import it.vercruysse.lemmyapi.datatypes.CommentResponse as LemmyapiDatatypesCommentResponse import it.vercruysse.lemmyapi.datatypes.CommentView as LemmyapiDatatypesCommentView import it.vercruysse.lemmyapi.datatypes.Community as LemmyapiDatatypesCommunity -import it.vercruysse.lemmyapi.datatypes.CommunityAggregates as LemmyapiDatatypesCommunityAggregates -import it.vercruysse.lemmyapi.datatypes.CommunityBlockView as LemmyapiDatatypesCommunityBlockView import it.vercruysse.lemmyapi.datatypes.CommunityFollowerView as LemmyapiDatatypesCommunityFollowerView import it.vercruysse.lemmyapi.datatypes.CommunityModeratorView as LemmyapiDatatypesCommunityModeratorView import it.vercruysse.lemmyapi.datatypes.CommunityResponse as LemmyapiDatatypesCommunityResponse @@ -71,62 +66,39 @@ import it.vercruysse.lemmyapi.datatypes.EditCustomEmoji as LemmyapiDatatypesEdit import it.vercruysse.lemmyapi.datatypes.EditPost as LemmyapiDatatypesEditPost import it.vercruysse.lemmyapi.datatypes.EditPrivateMessage as LemmyapiDatatypesEditPrivateMessage import it.vercruysse.lemmyapi.datatypes.EditSite as LemmyapiDatatypesEditSite +import it.vercruysse.lemmyapi.datatypes.EditTotp as LemmyapiDatatypesUpdateTotp +import it.vercruysse.lemmyapi.datatypes.EditTotpResponse as LemmyapiDatatypesUpdateTotpResponse import it.vercruysse.lemmyapi.datatypes.FeaturePost as LemmyapiDatatypesFeaturePost -import it.vercruysse.lemmyapi.datatypes.FederatedInstances as LemmyapiDatatypesFederatedInstances +import it.vercruysse.lemmyapi.datatypes.FederationQueueState as LemmyapiDatatypesReadableFederationState import it.vercruysse.lemmyapi.datatypes.FollowCommunity as LemmyapiDatatypesFollowCommunity import it.vercruysse.lemmyapi.datatypes.GenerateTotpSecretResponse as LemmyapiDatatypesGenerateTotpSecretResponse import it.vercruysse.lemmyapi.datatypes.GetCaptchaResponse as LemmyapiDatatypesGetCaptchaResponse import it.vercruysse.lemmyapi.datatypes.GetComment as LemmyapiDatatypesGetComment import it.vercruysse.lemmyapi.datatypes.GetComments as LemmyapiDatatypesGetComments -import it.vercruysse.lemmyapi.datatypes.GetCommentsResponse as LemmyapiDatatypesGetCommentsResponse import it.vercruysse.lemmyapi.datatypes.GetCommunity as LemmyapiDatatypesGetCommunity import it.vercruysse.lemmyapi.datatypes.GetCommunityResponse as LemmyapiDatatypesGetCommunityResponse -import it.vercruysse.lemmyapi.datatypes.GetFederatedInstancesResponse as LemmyapiDatatypesGetFederatedInstancesResponse import it.vercruysse.lemmyapi.datatypes.GetModlog as LemmyapiDatatypesGetModlog -import it.vercruysse.lemmyapi.datatypes.GetModlogResponse as LemmyapiDatatypesGetModlogResponse import it.vercruysse.lemmyapi.datatypes.GetPersonDetails as LemmyapiDatatypesGetPersonDetails import it.vercruysse.lemmyapi.datatypes.GetPersonDetailsResponse as LemmyapiDatatypesGetPersonDetailsResponse -import it.vercruysse.lemmyapi.datatypes.GetPersonMentions as LemmyapiDatatypesGetPersonMentions -import it.vercruysse.lemmyapi.datatypes.GetPersonMentionsResponse as LemmyapiDatatypesGetPersonMentionsResponse import it.vercruysse.lemmyapi.datatypes.GetPost as LemmyapiDatatypesGetPost import it.vercruysse.lemmyapi.datatypes.GetPostResponse as LemmyapiDatatypesGetPostResponse import it.vercruysse.lemmyapi.datatypes.GetPosts as LemmyapiDatatypesGetPosts -import it.vercruysse.lemmyapi.datatypes.GetPostsResponse as LemmyapiDatatypesGetPostsResponse -import it.vercruysse.lemmyapi.datatypes.GetPrivateMessages as LemmyapiDatatypesGetPrivateMessages import it.vercruysse.lemmyapi.datatypes.GetRegistrationApplication as LemmyapiDatatypesGetRegistrationApplication -import it.vercruysse.lemmyapi.datatypes.GetReplies as LemmyapiDatatypesGetReplies -import it.vercruysse.lemmyapi.datatypes.GetRepliesResponse as LemmyapiDatatypesGetRepliesResponse -import it.vercruysse.lemmyapi.datatypes.GetReportCount as LemmyapiDatatypesGetReportCount -import it.vercruysse.lemmyapi.datatypes.GetReportCountResponse as LemmyapiDatatypesGetReportCountResponse import it.vercruysse.lemmyapi.datatypes.GetSiteMetadata as LemmyapiDatatypesGetSiteMetadata import it.vercruysse.lemmyapi.datatypes.GetSiteMetadataResponse as LemmyapiDatatypesGetSiteMetadataResponse import it.vercruysse.lemmyapi.datatypes.GetSiteResponse as LemmyapiDatatypesGetSiteResponse -import it.vercruysse.lemmyapi.datatypes.GetUnreadCountResponse as LemmyapiDatatypesGetUnreadCountResponse -import it.vercruysse.lemmyapi.datatypes.GetUnreadRegistrationApplicationCountResponse as LemmyapiDatatypesGetUnreadRegistrationApplicationCountResponse import it.vercruysse.lemmyapi.datatypes.HideCommunity as LemmyapiDatatypesHideCommunity -import it.vercruysse.lemmyapi.datatypes.HidePost as LemmyapiDatatypesHidePost +import it.vercruysse.lemmyapi.datatypes.HidePosts as LemmyapiDatatypesHidePosts import it.vercruysse.lemmyapi.datatypes.ImageDetails as LemmyapiDatatypesImageDetails import it.vercruysse.lemmyapi.datatypes.Instance as LemmyapiDatatypesInstance -import it.vercruysse.lemmyapi.datatypes.InstanceBlockView as LemmyapiDatatypesInstanceBlockView -import it.vercruysse.lemmyapi.datatypes.InstanceWithFederationState as LemmyapiDatatypesInstanceWithFederationState import it.vercruysse.lemmyapi.datatypes.Language as LemmyapiDatatypesLanguage import it.vercruysse.lemmyapi.datatypes.LinkMetadata as LemmyapiDatatypesLinkMetadata import it.vercruysse.lemmyapi.datatypes.ListCommentLikes as LemmyapiDatatypesListCommentLikes -import it.vercruysse.lemmyapi.datatypes.ListCommentLikesResponse as LemmyapiDatatypesListCommentLikesResponse -import it.vercruysse.lemmyapi.datatypes.ListCommentReports as LemmyapiDatatypesListCommentReports -import it.vercruysse.lemmyapi.datatypes.ListCommentReportsResponse as LemmyapiDatatypesListCommentReportsResponse import it.vercruysse.lemmyapi.datatypes.ListCommunities as LemmyapiDatatypesListCommunities -import it.vercruysse.lemmyapi.datatypes.ListCommunitiesResponse as LemmyapiDatatypesListCommunitiesResponse import it.vercruysse.lemmyapi.datatypes.ListMedia as LemmyapiDatatypesListMedia -import it.vercruysse.lemmyapi.datatypes.ListMediaResponse as LemmyapiDatatypesListMediaResponse +import it.vercruysse.lemmyapi.datatypes.ListNotifications as LemmyapiDatatypesListNotifications import it.vercruysse.lemmyapi.datatypes.ListPostLikes as LemmyapiDatatypesListPostLikes -import it.vercruysse.lemmyapi.datatypes.ListPostLikesResponse as LemmyapiDatatypesListPostLikesResponse -import it.vercruysse.lemmyapi.datatypes.ListPostReports as LemmyapiDatatypesListPostReports -import it.vercruysse.lemmyapi.datatypes.ListPostReportsResponse as LemmyapiDatatypesListPostReportsResponse -import it.vercruysse.lemmyapi.datatypes.ListPrivateMessageReports as LemmyapiDatatypesListPrivateMessageReports -import it.vercruysse.lemmyapi.datatypes.ListPrivateMessageReportsResponse as LemmyapiDatatypesListPrivateMessageReportsResponse import it.vercruysse.lemmyapi.datatypes.ListRegistrationApplications as LemmyapiDatatypesListRegistrationApplications -import it.vercruysse.lemmyapi.datatypes.ListRegistrationApplicationsResponse as LemmyapiDatatypesListRegistrationApplicationsResponse import it.vercruysse.lemmyapi.datatypes.LocalImage as LemmyapiDatatypesLocalImage import it.vercruysse.lemmyapi.datatypes.LocalImageView as LemmyapiDatatypesLocalImageView import it.vercruysse.lemmyapi.datatypes.LocalSite as LemmyapiDatatypesLocalSite @@ -134,50 +106,15 @@ import it.vercruysse.lemmyapi.datatypes.LocalSiteRateLimit as LemmyapiDatatypesL import it.vercruysse.lemmyapi.datatypes.LocalSiteUrlBlocklist as LemmyapiDatatypesLocalSiteUrlBlocklist import it.vercruysse.lemmyapi.datatypes.LocalUser as LemmyapiDatatypesLocalUser import it.vercruysse.lemmyapi.datatypes.LocalUserView as LemmyapiDatatypesLocalUserView -import it.vercruysse.lemmyapi.datatypes.LocalUserVoteDisplayMode as LemmyapiDatatypesLocalUserVoteDisplayMode import it.vercruysse.lemmyapi.datatypes.LockPost as LemmyapiDatatypesLockPost import it.vercruysse.lemmyapi.datatypes.Login as LemmyapiDatatypesLogin import it.vercruysse.lemmyapi.datatypes.LoginResponse as LemmyapiDatatypesLoginResponse import it.vercruysse.lemmyapi.datatypes.LoginToken as LemmyapiDatatypesLoginToken -import it.vercruysse.lemmyapi.datatypes.MarkCommentReplyAsRead as LemmyapiDatatypesMarkCommentReplyAsRead -import it.vercruysse.lemmyapi.datatypes.MarkPersonMentionAsRead as LemmyapiDatatypesMarkPersonMentionAsRead -import it.vercruysse.lemmyapi.datatypes.MarkPostAsRead as LemmyapiDatatypesMarkPostAsRead -import it.vercruysse.lemmyapi.datatypes.MarkPrivateMessageAsRead as LemmyapiDatatypesMarkPrivateMessageAsRead -import it.vercruysse.lemmyapi.datatypes.ModAdd as LemmyapiDatatypesModAdd -import it.vercruysse.lemmyapi.datatypes.ModAddCommunity as LemmyapiDatatypesModAddCommunity -import it.vercruysse.lemmyapi.datatypes.ModAddCommunityView as LemmyapiDatatypesModAddCommunityView -import it.vercruysse.lemmyapi.datatypes.ModAddView as LemmyapiDatatypesModAddView -import it.vercruysse.lemmyapi.datatypes.ModBan as LemmyapiDatatypesModBan -import it.vercruysse.lemmyapi.datatypes.ModBanFromCommunity as LemmyapiDatatypesModBanFromCommunity -import it.vercruysse.lemmyapi.datatypes.ModBanFromCommunityView as LemmyapiDatatypesModBanFromCommunityView -import it.vercruysse.lemmyapi.datatypes.ModBanView as LemmyapiDatatypesModBanView -import it.vercruysse.lemmyapi.datatypes.ModFeaturePost as LemmyapiDatatypesModFeaturePost -import it.vercruysse.lemmyapi.datatypes.ModFeaturePostView as LemmyapiDatatypesModFeaturePostView -import it.vercruysse.lemmyapi.datatypes.ModHideCommunity as LemmyapiDatatypesModHideCommunity -import it.vercruysse.lemmyapi.datatypes.ModHideCommunityView as LemmyapiDatatypesModHideCommunityView -import it.vercruysse.lemmyapi.datatypes.ModLockPost as LemmyapiDatatypesModLockPost -import it.vercruysse.lemmyapi.datatypes.ModLockPostView as LemmyapiDatatypesModLockPostView -import it.vercruysse.lemmyapi.datatypes.ModRemoveComment as LemmyapiDatatypesModRemoveComment -import it.vercruysse.lemmyapi.datatypes.ModRemoveCommentView as LemmyapiDatatypesModRemoveCommentView -import it.vercruysse.lemmyapi.datatypes.ModRemoveCommunity as LemmyapiDatatypesModRemoveCommunity -import it.vercruysse.lemmyapi.datatypes.ModRemoveCommunityView as LemmyapiDatatypesModRemoveCommunityView -import it.vercruysse.lemmyapi.datatypes.ModRemovePost as LemmyapiDatatypesModRemovePost -import it.vercruysse.lemmyapi.datatypes.ModRemovePostView as LemmyapiDatatypesModRemovePostView -import it.vercruysse.lemmyapi.datatypes.ModTransferCommunity as LemmyapiDatatypesModTransferCommunity -import it.vercruysse.lemmyapi.datatypes.ModTransferCommunityView as LemmyapiDatatypesModTransferCommunityView -import it.vercruysse.lemmyapi.datatypes.ModlogListParams as LemmyapiDatatypesModlogListParams +import it.vercruysse.lemmyapi.datatypes.MarkManyPostsAsRead as LemmyapiDatatypesMarkPostAsRead import it.vercruysse.lemmyapi.datatypes.MyUserInfo as LemmyapiDatatypesMyUserInfo -import it.vercruysse.lemmyapi.datatypes.PasswordChangeAfterReset as LemmyapiDatatypesPasswordChangeAfterReset -import it.vercruysse.lemmyapi.datatypes.PasswordReset as LemmyapiDatatypesPasswordReset import it.vercruysse.lemmyapi.datatypes.Person as LemmyapiDatatypesPerson -import it.vercruysse.lemmyapi.datatypes.PersonAggregates as LemmyapiDatatypesPersonAggregates -import it.vercruysse.lemmyapi.datatypes.PersonBlockView as LemmyapiDatatypesPersonBlockView -import it.vercruysse.lemmyapi.datatypes.PersonMention as LemmyapiDatatypesPersonMention -import it.vercruysse.lemmyapi.datatypes.PersonMentionResponse as LemmyapiDatatypesPersonMentionResponse -import it.vercruysse.lemmyapi.datatypes.PersonMentionView as LemmyapiDatatypesPersonMentionView import it.vercruysse.lemmyapi.datatypes.PersonView as LemmyapiDatatypesPersonView import it.vercruysse.lemmyapi.datatypes.Post as LemmyapiDatatypesPost -import it.vercruysse.lemmyapi.datatypes.PostAggregates as LemmyapiDatatypesPostAggregates import it.vercruysse.lemmyapi.datatypes.PostReport as LemmyapiDatatypesPostReport import it.vercruysse.lemmyapi.datatypes.PostReportResponse as LemmyapiDatatypesPostReportResponse import it.vercruysse.lemmyapi.datatypes.PostReportView as LemmyapiDatatypesPostReportView @@ -189,12 +126,10 @@ import it.vercruysse.lemmyapi.datatypes.PrivateMessageReportResponse as Lemmyapi import it.vercruysse.lemmyapi.datatypes.PrivateMessageReportView as LemmyapiDatatypesPrivateMessageReportView import it.vercruysse.lemmyapi.datatypes.PrivateMessageResponse as LemmyapiDatatypesPrivateMessageResponse import it.vercruysse.lemmyapi.datatypes.PrivateMessageView as LemmyapiDatatypesPrivateMessageView -import it.vercruysse.lemmyapi.datatypes.PrivateMessagesResponse as LemmyapiDatatypesPrivateMessagesResponse import it.vercruysse.lemmyapi.datatypes.PurgeComment as LemmyapiDatatypesPurgeComment import it.vercruysse.lemmyapi.datatypes.PurgeCommunity as LemmyapiDatatypesPurgeCommunity import it.vercruysse.lemmyapi.datatypes.PurgePerson as LemmyapiDatatypesPurgePerson import it.vercruysse.lemmyapi.datatypes.PurgePost as LemmyapiDatatypesPurgePost -import it.vercruysse.lemmyapi.datatypes.ReadableFederationState as LemmyapiDatatypesReadableFederationState import it.vercruysse.lemmyapi.datatypes.Register as LemmyapiDatatypesRegister import it.vercruysse.lemmyapi.datatypes.RegistrationApplication as LemmyapiDatatypesRegistrationApplication import it.vercruysse.lemmyapi.datatypes.RegistrationApplicationResponse as LemmyapiDatatypesRegistrationApplicationResponse @@ -202,9 +137,9 @@ import it.vercruysse.lemmyapi.datatypes.RegistrationApplicationView as LemmyapiD import it.vercruysse.lemmyapi.datatypes.RemoveComment as LemmyapiDatatypesRemoveComment import it.vercruysse.lemmyapi.datatypes.RemoveCommunity as LemmyapiDatatypesRemoveCommunity import it.vercruysse.lemmyapi.datatypes.RemovePost as LemmyapiDatatypesRemovePost +import it.vercruysse.lemmyapi.datatypes.ResetPassword as LemmyapiDatatypesPasswordReset import it.vercruysse.lemmyapi.datatypes.ResolveCommentReport as LemmyapiDatatypesResolveCommentReport import it.vercruysse.lemmyapi.datatypes.ResolveObject as LemmyapiDatatypesResolveObject -import it.vercruysse.lemmyapi.datatypes.ResolveObjectResponse as LemmyapiDatatypesResolveObjectResponse import it.vercruysse.lemmyapi.datatypes.ResolvePostReport as LemmyapiDatatypesResolvePostReport import it.vercruysse.lemmyapi.datatypes.ResolvePrivateMessageReport as LemmyapiDatatypesResolvePrivateMessageReport import it.vercruysse.lemmyapi.datatypes.SaveComment as LemmyapiDatatypesSaveComment @@ -213,45 +148,40 @@ import it.vercruysse.lemmyapi.datatypes.SaveUserSettings as LemmyapiDatatypesSav import it.vercruysse.lemmyapi.datatypes.Search as LemmyapiDatatypesSearch import it.vercruysse.lemmyapi.datatypes.SearchResponse as LemmyapiDatatypesSearchResponse import it.vercruysse.lemmyapi.datatypes.Site as LemmyapiDatatypesSite -import it.vercruysse.lemmyapi.datatypes.SiteAggregates as LemmyapiDatatypesSiteAggregates import it.vercruysse.lemmyapi.datatypes.SiteResponse as LemmyapiDatatypesSiteResponse import it.vercruysse.lemmyapi.datatypes.SiteView as LemmyapiDatatypesSiteView import it.vercruysse.lemmyapi.datatypes.Tagline as LemmyapiDatatypesTagline import it.vercruysse.lemmyapi.datatypes.TransferCommunity as LemmyapiDatatypesTransferCommunity -import it.vercruysse.lemmyapi.datatypes.UpdateTotp as LemmyapiDatatypesUpdateTotp -import it.vercruysse.lemmyapi.datatypes.UpdateTotpResponse as LemmyapiDatatypesUpdateTotpResponse +import it.vercruysse.lemmyapi.datatypes.UserBlockInstanceCommunitiesParams as LemmyapiDatatypesBlockInstance import it.vercruysse.lemmyapi.datatypes.VerifyEmail as LemmyapiDatatypesVerifyEmail import it.vercruysse.lemmyapi.datatypes.VoteView as LemmyapiDatatypesVoteView +import it.vercruysse.lemmyapi.v0.enums.CommentSortType as V0CommentSortType +import it.vercruysse.lemmyapi.v0.enums.CommunityVisibility as V0CommunityVisibility +import it.vercruysse.lemmyapi.v0.enums.ListingType as V0ListingType +import it.vercruysse.lemmyapi.v0.enums.ModlogActionType as V0ModlogActionType +import it.vercruysse.lemmyapi.v0.enums.PostFeatureType as V0PostFeatureType +import it.vercruysse.lemmyapi.v0.enums.PostListingMode as V0PostListingMode +import it.vercruysse.lemmyapi.v0.enums.RegistrationMode as V0RegistrationMode +import it.vercruysse.lemmyapi.v0.enums.SearchType as V0SearchType +import it.vercruysse.lemmyapi.v0.enums.SortType as V0SortType import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.AddAdmin as X11DatatypesAddAdmin import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.AddAdminResponse as X11DatatypesAddAdminResponse import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.AddModToCommunity as X11DatatypesAddModToCommunity import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.AddModToCommunityResponse as X11DatatypesAddModToCommunityResponse -import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.AdminPurgeComment as X11DatatypesAdminPurgeComment -import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.AdminPurgeCommentView as X11DatatypesAdminPurgeCommentView -import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.AdminPurgeCommunity as X11DatatypesAdminPurgeCommunity -import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.AdminPurgeCommunityView as X11DatatypesAdminPurgeCommunityView -import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.AdminPurgePerson as X11DatatypesAdminPurgePerson -import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.AdminPurgePersonView as X11DatatypesAdminPurgePersonView -import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.AdminPurgePost as X11DatatypesAdminPurgePost -import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.AdminPurgePostView as X11DatatypesAdminPurgePostView import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.ApproveRegistrationApplication as X11DatatypesApproveRegistrationApplication import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.BanFromCommunity as X11DatatypesBanFromCommunity import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.BanFromCommunityResponse as X11DatatypesBanFromCommunityResponse import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.BanPerson as X11DatatypesBanPerson import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.BanPersonResponse as X11DatatypesBanPersonResponse -import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.BannedPersonsResponse as X11DatatypesBannedPersonsResponse import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.BlockCommunity as X11DatatypesBlockCommunity import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.BlockCommunityResponse as X11DatatypesBlockCommunityResponse import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.BlockInstance as X11DatatypesBlockInstance -import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.BlockInstanceResponse as X11DatatypesBlockInstanceResponse import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.BlockPerson as X11DatatypesBlockPerson import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.BlockPersonResponse as X11DatatypesBlockPersonResponse import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.CaptchaResponse as X11DatatypesCaptchaResponse import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.ChangePassword as X11DatatypesChangePassword import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.Comment as X11DatatypesComment import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.CommentAggregates as X11DatatypesCommentAggregates -import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.CommentReply as X11DatatypesCommentReply -import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.CommentReplyResponse as X11DatatypesCommentReplyResponse import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.CommentReplyView as X11DatatypesCommentReplyView import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.CommentReport as X11DatatypesCommentReport import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.CommentReportResponse as X11DatatypesCommentReportResponse @@ -260,7 +190,6 @@ import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.CommentResponse as X11Datatyp import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.CommentView as X11DatatypesCommentView import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.Community as X11DatatypesCommunity import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.CommunityAggregates as X11DatatypesCommunityAggregates -import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.CommunityBlockView as X11DatatypesCommunityBlockView import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.CommunityFollowerView as X11DatatypesCommunityFollowerView import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.CommunityModeratorView as X11DatatypesCommunityModeratorView import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.CommunityResponse as X11DatatypesCommunityResponse @@ -294,61 +223,40 @@ import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.EditPost as X11DatatypesEditP import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.EditPrivateMessage as X11DatatypesEditPrivateMessage import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.EditSite as X11DatatypesEditSite import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.FeaturePost as X11DatatypesFeaturePost -import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.FederatedInstances as X11DatatypesFederatedInstances import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.FollowCommunity as X11DatatypesFollowCommunity import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.GenerateTotpSecretResponse as X11DatatypesGenerateTotpSecretResponse import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.GetCaptchaResponse as X11DatatypesGetCaptchaResponse import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.GetComment as X11DatatypesGetComment import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.GetComments as X11DatatypesGetComments -import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.GetCommentsResponse as X11DatatypesGetCommentsResponse import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.GetCommunity as X11DatatypesGetCommunity import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.GetCommunityResponse as X11DatatypesGetCommunityResponse -import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.GetFederatedInstancesResponse as X11DatatypesGetFederatedInstancesResponse import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.GetModlog as X11DatatypesGetModlog -import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.GetModlogResponse as X11DatatypesGetModlogResponse import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.GetPersonDetails as X11DatatypesGetPersonDetails import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.GetPersonDetailsResponse as X11DatatypesGetPersonDetailsResponse import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.GetPersonMentions as X11DatatypesGetPersonMentions -import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.GetPersonMentionsResponse as X11DatatypesGetPersonMentionsResponse import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.GetPost as X11DatatypesGetPost import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.GetPostResponse as X11DatatypesGetPostResponse import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.GetPosts as X11DatatypesGetPosts -import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.GetPostsResponse as X11DatatypesGetPostsResponse import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.GetPrivateMessages as X11DatatypesGetPrivateMessages import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.GetRegistrationApplication as X11DatatypesGetRegistrationApplication import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.GetReplies as X11DatatypesGetReplies -import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.GetRepliesResponse as X11DatatypesGetRepliesResponse -import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.GetReportCount as X11DatatypesGetReportCount -import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.GetReportCountResponse as X11DatatypesGetReportCountResponse import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.GetSiteMetadata as X11DatatypesGetSiteMetadata import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.GetSiteMetadataResponse as X11DatatypesGetSiteMetadataResponse import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.GetSiteResponse as X11DatatypesGetSiteResponse -import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.GetUnreadCountResponse as X11DatatypesGetUnreadCountResponse -import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.GetUnreadRegistrationApplicationCountResponse as X11DatatypesGetUnreadRegistrationApplicationCountResponse import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.HideCommunity as X11DatatypesHideCommunity import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.HidePost as X11DatatypesHidePost import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.ImageDetails as X11DatatypesImageDetails import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.Instance as X11DatatypesInstance -import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.InstanceBlockView as X11DatatypesInstanceBlockView -import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.InstanceWithFederationState as X11DatatypesInstanceWithFederationState import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.Language as X11DatatypesLanguage import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.LinkMetadata as X11DatatypesLinkMetadata import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.ListCommentLikes as X11DatatypesListCommentLikes -import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.ListCommentLikesResponse as X11DatatypesListCommentLikesResponse import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.ListCommentReports as X11DatatypesListCommentReports -import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.ListCommentReportsResponse as X11DatatypesListCommentReportsResponse import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.ListCommunities as X11DatatypesListCommunities -import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.ListCommunitiesResponse as X11DatatypesListCommunitiesResponse import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.ListMedia as X11DatatypesListMedia -import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.ListMediaResponse as X11DatatypesListMediaResponse import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.ListPostLikes as X11DatatypesListPostLikes -import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.ListPostLikesResponse as X11DatatypesListPostLikesResponse import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.ListPostReports as X11DatatypesListPostReports -import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.ListPostReportsResponse as X11DatatypesListPostReportsResponse import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.ListPrivateMessageReports as X11DatatypesListPrivateMessageReports -import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.ListPrivateMessageReportsResponse as X11DatatypesListPrivateMessageReportsResponse import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.ListRegistrationApplications as X11DatatypesListRegistrationApplications -import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.ListRegistrationApplicationsResponse as X11DatatypesListRegistrationApplicationsResponse import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.LocalImage as X11DatatypesLocalImage import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.LocalImageView as X11DatatypesLocalImageView import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.LocalSite as X11DatatypesLocalSite @@ -365,37 +273,11 @@ import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.MarkCommentReplyAsRead as X11 import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.MarkPersonMentionAsRead as X11DatatypesMarkPersonMentionAsRead import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.MarkPostAsRead as X11DatatypesMarkPostAsRead import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.MarkPrivateMessageAsRead as X11DatatypesMarkPrivateMessageAsRead -import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.ModAdd as X11DatatypesModAdd -import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.ModAddCommunity as X11DatatypesModAddCommunity -import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.ModAddCommunityView as X11DatatypesModAddCommunityView -import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.ModAddView as X11DatatypesModAddView -import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.ModBan as X11DatatypesModBan -import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.ModBanFromCommunity as X11DatatypesModBanFromCommunity -import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.ModBanFromCommunityView as X11DatatypesModBanFromCommunityView -import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.ModBanView as X11DatatypesModBanView -import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.ModFeaturePost as X11DatatypesModFeaturePost -import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.ModFeaturePostView as X11DatatypesModFeaturePostView -import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.ModHideCommunity as X11DatatypesModHideCommunity -import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.ModHideCommunityView as X11DatatypesModHideCommunityView -import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.ModLockPost as X11DatatypesModLockPost -import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.ModLockPostView as X11DatatypesModLockPostView -import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.ModRemoveComment as X11DatatypesModRemoveComment -import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.ModRemoveCommentView as X11DatatypesModRemoveCommentView -import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.ModRemoveCommunity as X11DatatypesModRemoveCommunity -import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.ModRemoveCommunityView as X11DatatypesModRemoveCommunityView -import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.ModRemovePost as X11DatatypesModRemovePost -import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.ModRemovePostView as X11DatatypesModRemovePostView -import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.ModTransferCommunity as X11DatatypesModTransferCommunity -import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.ModTransferCommunityView as X11DatatypesModTransferCommunityView -import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.ModlogListParams as X11DatatypesModlogListParams import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.MyUserInfo as X11DatatypesMyUserInfo import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.PasswordChangeAfterReset as X11DatatypesPasswordChangeAfterReset import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.PasswordReset as X11DatatypesPasswordReset import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.Person as X11DatatypesPerson import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.PersonAggregates as X11DatatypesPersonAggregates -import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.PersonBlockView as X11DatatypesPersonBlockView -import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.PersonMention as X11DatatypesPersonMention -import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.PersonMentionResponse as X11DatatypesPersonMentionResponse import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.PersonMentionView as X11DatatypesPersonMentionView import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.PersonView as X11DatatypesPersonView import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.Post as X11DatatypesPost @@ -411,7 +293,6 @@ import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.PrivateMessageReportResponse import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.PrivateMessageReportView as X11DatatypesPrivateMessageReportView import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.PrivateMessageResponse as X11DatatypesPrivateMessageResponse import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.PrivateMessageView as X11DatatypesPrivateMessageView -import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.PrivateMessagesResponse as X11DatatypesPrivateMessagesResponse import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.PurgeComment as X11DatatypesPurgeComment import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.PurgeCommunity as X11DatatypesPurgeCommunity import it.vercruysse.lemmyapi.v0.x19.x11.datatypes.PurgePerson as X11DatatypesPurgePerson @@ -456,96 +337,17 @@ internal class Transformer : MapperGenerator { moderators = d.moderators.map { this.toUni(d = it) }, ) - override fun toUni(d: X11DatatypesAdminPurgeComment): LemmyapiDatatypesAdminPurgeComment = - LemmyapiDatatypesAdminPurgeComment( - id = d.id, - admin_person_id = d.admin_person_id, - post_id = d.post_id, - reason = d.reason, - when_ = d.when_, - ) - - override fun toUni(d: X11DatatypesAdminPurgeCommentView): LemmyapiDatatypesAdminPurgeCommentView = - LemmyapiDatatypesAdminPurgeCommentView( - admin_purge_comment = this.toUni(d = d.admin_purge_comment), - admin = d.admin?.let { this.toUni(d = it) }, - post = this.toUni(d = d.post), - ) - - override fun toUni(d: X11DatatypesAdminPurgeCommunity): LemmyapiDatatypesAdminPurgeCommunity = - LemmyapiDatatypesAdminPurgeCommunity( - id = d.id, - admin_person_id = d.admin_person_id, - reason = d.reason, - when_ = d.when_, - ) - - override fun toUni(d: X11DatatypesAdminPurgeCommunityView): LemmyapiDatatypesAdminPurgeCommunityView = LemmyapiDatatypesAdminPurgeCommunityView( - admin_purge_community = this.toUni(d = d.admin_purge_community), - admin = d.admin?.let { this.toUni(d = it) }, - ) - - override fun toUni(d: X11DatatypesAdminPurgePerson): LemmyapiDatatypesAdminPurgePerson = - LemmyapiDatatypesAdminPurgePerson( - id = d.id, - admin_person_id = d.admin_person_id, - reason = d.reason, - when_ = d.when_, - ) - - override fun toUni(d: X11DatatypesAdminPurgePersonView): LemmyapiDatatypesAdminPurgePersonView = - LemmyapiDatatypesAdminPurgePersonView( - admin_purge_person = this.toUni(d = d.admin_purge_person), - admin = d.admin?.let { this.toUni(d = it) }, - ) - - override fun toUni(d: X11DatatypesAdminPurgePost): LemmyapiDatatypesAdminPurgePost = - LemmyapiDatatypesAdminPurgePost( - id = d.id, - admin_person_id = d.admin_person_id, - community_id = d.community_id, - reason = d.reason, - when_ = d.when_, - ) - - override fun toUni(d: X11DatatypesAdminPurgePostView): LemmyapiDatatypesAdminPurgePostView = - LemmyapiDatatypesAdminPurgePostView( - admin_purge_post = this.toUni(d = d.admin_purge_post), - admin = d.admin?.let { this.toUni(d = it) }, - community = this.toUni(d = d.community), - ) - - override fun toUni(d: X11DatatypesBanFromCommunityResponse): LemmyapiDatatypesBanFromCommunityResponse = LemmyapiDatatypesBanFromCommunityResponse( - person_view = this.toUni(d = d.person_view), - banned = d.banned, - ) - - override fun toUni(d: X11DatatypesBannedPersonsResponse): LemmyapiDatatypesBannedPersonsResponse = - LemmyapiDatatypesBannedPersonsResponse( - banned = d.banned.map { this.toUni(d = it) }, - ) - - override fun toUni(d: X11DatatypesBanPersonResponse): LemmyapiDatatypesBanPersonResponse = - LemmyapiDatatypesBanPersonResponse( - person_view = this.toUni(d = d.person_view), - banned = d.banned, - ) + override fun toUni(d: X11DatatypesBanFromCommunityResponse): it.vercruysse.lemmyapi.datatypes.PersonResponse = + it.vercruysse.lemmyapi.datatypes.PersonResponse(person_view = this.toUni(d = d.person_view)) - override fun toUni(d: X11DatatypesBlockCommunityResponse): LemmyapiDatatypesBlockCommunityResponse = LemmyapiDatatypesBlockCommunityResponse( - community_view = this.toUni(d = d.community_view), - blocked = d.blocked, - ) + override fun toUni(d: X11DatatypesBanPersonResponse): it.vercruysse.lemmyapi.datatypes.PersonResponse = + it.vercruysse.lemmyapi.datatypes.PersonResponse(person_view = this.toUni(d = d.person_view)) - override fun toUni(d: X11DatatypesBlockInstanceResponse): LemmyapiDatatypesBlockInstanceResponse = - LemmyapiDatatypesBlockInstanceResponse( - blocked = d.blocked, - ) + override fun toUni(d: X11DatatypesBlockCommunityResponse): LemmyapiDatatypesCommunityResponse = + LemmyapiDatatypesCommunityResponse(community_view = this.toUni(d = d.community_view), discussion_languages = emptyList()) - override fun toUni(d: X11DatatypesBlockPersonResponse): LemmyapiDatatypesBlockPersonResponse = - LemmyapiDatatypesBlockPersonResponse( - person_view = this.toUni(d = d.person_view), - blocked = d.blocked, - ) + override fun toUni(d: X11DatatypesBlockPersonResponse): it.vercruysse.lemmyapi.datatypes.PersonResponse = + it.vercruysse.lemmyapi.datatypes.PersonResponse(person_view = this.toUni(d = d.person_view)) override fun toUni(d: X11DatatypesCaptchaResponse): LemmyapiDatatypesCaptchaResponse = LemmyapiDatatypesCaptchaResponse( @@ -554,65 +356,30 @@ internal class Transformer : MapperGenerator { uuid = d.uuid, ) - override fun toUni(d: X11DatatypesComment): LemmyapiDatatypesComment = LemmyapiDatatypesComment( + override fun toUni(d: X11DatatypesComment, counts: X11DatatypesCommentAggregates): LemmyapiDatatypesComment = LemmyapiDatatypesComment( id = d.id, creator_id = d.creator_id, post_id = d.post_id, content = d.content, removed = d.removed, - published = d.published, - updated = d.updated, + published_at = d.published, + updated_at = d.updated, deleted = d.deleted, ap_id = d.ap_id, local = d.local, path = d.path, distinguished = d.distinguished, language_id = d.language_id, + score = counts.score, + upvotes = counts.upvotes, + downvotes = counts.downvotes, + child_count = counts.child_count, + report_count = -1, + unresolved_report_count = -1, + federation_pending = false, + locked = false, ) - override fun toUni(d: X11DatatypesCommentAggregates): LemmyapiDatatypesCommentAggregates = - LemmyapiDatatypesCommentAggregates( - comment_id = d.comment_id, - score = d.score, - upvotes = d.upvotes, - downvotes = d.downvotes, - published = d.published, - child_count = d.child_count, - ) - - override fun toUni(d: X11DatatypesCommentReply): LemmyapiDatatypesCommentReply = - LemmyapiDatatypesCommentReply( - id = d.id, - recipient_id = d.recipient_id, - comment_id = d.comment_id, - read = d.read, - published = d.published, - ) - - override fun toUni(d: X11DatatypesCommentReplyResponse): LemmyapiDatatypesCommentReplyResponse = - LemmyapiDatatypesCommentReplyResponse( - comment_reply_view = this.toUni(d = d.comment_reply_view), - ) - - override fun toUni(d: X11DatatypesCommentReplyView): LemmyapiDatatypesCommentReplyView = - LemmyapiDatatypesCommentReplyView( - comment_reply = this.toUni(d = d.comment_reply), - comment = this.toUni(d = d.comment), - creator = this.toUni(d = d.creator), - post = this.toUni(d = d.post), - community = this.toUni(d = d.community), - recipient = this.toUni(d = d.recipient), - counts = this.toUni(d = d.counts), - creator_banned_from_community = d.creator_banned_from_community, - banned_from_community = d.banned_from_community, - creator_is_moderator = d.creator_is_moderator, - creator_is_admin = d.creator_is_admin, - subscribed = d.subscribed, - saved = d.saved, - creator_blocked = d.creator_blocked, - my_vote = d.my_vote, - ) - override fun toUni(d: X11DatatypesCommentReport): LemmyapiDatatypesCommentReport = LemmyapiDatatypesCommentReport( id = d.id, @@ -622,8 +389,8 @@ internal class Transformer : MapperGenerator { reason = d.reason, resolved = d.resolved, resolver_id = d.resolver_id, - published = d.published, - updated = d.updated, + published_at = d.published, + updated_at = d.updated, ) override fun toUni(d: X11DatatypesCommentReportResponse): LemmyapiDatatypesCommentReportResponse = @@ -634,94 +401,83 @@ internal class Transformer : MapperGenerator { override fun toUni(d: X11DatatypesCommentReportView): LemmyapiDatatypesCommentReportView = LemmyapiDatatypesCommentReportView( comment_report = this.toUni(d = d.comment_report), - comment = this.toUni(d = d.comment), - post = this.toUni(d = d.post), - community = this.toUni(d = d.community), + comment = this.toUni(d = d.comment, d.counts), + post = this.toUni(d = d.post, counts = X11DatatypesPostAggregates(-1, -1, -1, -1, -1, "", "")), + community = this.toUni(d = d.community, counts = X11DatatypesCommunityAggregates(-1, -1, -1, -1, "", -1, -1, -1, -1, -1)), creator = this.toUni(d = d.creator), comment_creator = this.toUni(d = d.comment_creator), - counts = this.toUni(d = d.counts), creator_banned_from_community = d.creator_banned_from_community, creator_is_moderator = d.creator_is_moderator, creator_is_admin = d.creator_is_admin, - creator_blocked = d.creator_blocked, - subscribed = d.subscribed, - saved = d.saved, - my_vote = d.my_vote, - resolver = d.resolver?.let { this.toUni(d = it) }, + creator_banned = d.creator.banned, + person_actions = PersonActions(if (d.creator_blocked) "" else null), + comment_actions = CommentActions(d.my_vote, null, if (d.saved) "" else null), + community_actions = CommunityActions(null, CommunityFollowerState.from(d.subscribed)), ) override fun toUni(d: X11DatatypesCommentResponse): LemmyapiDatatypesCommentResponse = LemmyapiDatatypesCommentResponse( comment_view = this.toUni(d = d.comment_view), - recipient_ids = d.recipient_ids, ) override fun toUni(d: X11DatatypesCommentView): LemmyapiDatatypesCommentView = LemmyapiDatatypesCommentView( - comment = this.toUni(d = d.comment), + comment = this.toUni(d = d.comment, d.counts), creator = this.toUni(d = d.creator), - post = this.toUni(d = d.post), - community = this.toUni(d = d.community), - counts = this.toUni(d = d.counts), + post = this.toUni(d = d.post, counts = X11DatatypesPostAggregates(-1, -1, -1, -1, -1, "", "")), + community = this.toUni(d = d.community, counts = X11DatatypesCommunityAggregates(-1, -1, -1, -1, "", -1, -1, -1, -1, -1)), creator_banned_from_community = d.creator_banned_from_community, - banned_from_community = d.banned_from_community, creator_is_moderator = d.creator_is_moderator, creator_is_admin = d.creator_is_admin, - subscribed = d.subscribed, - saved = d.saved, - creator_blocked = d.creator_blocked, - my_vote = d.my_vote, + tags = emptyList(), + creator_banned = d.creator.banned, + creator_ban_expires_at = d.creator.ban_expires, + can_mod = false, + person_actions = PersonActions(if (d.creator_blocked) "" else null), + comment_actions = CommentActions(d.my_vote, null, if (d.saved) "" else null), + community_actions = CommunityActions(null, CommunityFollowerState.from(d.subscribed)), ) - override fun toUni(d: X11DatatypesCommunity): LemmyapiDatatypesCommunity = + override fun toUni(d: X11DatatypesCommunity, counts: X11DatatypesCommunityAggregates): LemmyapiDatatypesCommunity = LemmyapiDatatypesCommunity( id = d.id, name = d.name, title = d.title, - description = d.description, + summary = d.description, removed = d.removed, - published = d.published, - updated = d.updated, + published_at = d.published, + updated_at = d.updated, deleted = d.deleted, nsfw = d.nsfw, - actor_id = d.actor_id, + ap_id = d.actor_id, local = d.local, icon = d.icon, banner = d.banner, - hidden = d.hidden, posting_restricted_to_mods = d.posting_restricted_to_mods, instance_id = d.instance_id, - visibility = d.visibility, - ) - - override fun toUni(d: X11DatatypesCommunityAggregates): LemmyapiDatatypesCommunityAggregates = - LemmyapiDatatypesCommunityAggregates( - community_id = d.community_id, - subscribers = d.subscribers, - posts = d.posts, - comments = d.comments, - published = d.published, - users_active_day = d.users_active_day, - users_active_week = d.users_active_week, - users_active_month = d.users_active_month, - users_active_half_year = d.users_active_half_year, - subscribers_local = d.subscribers_local, - ) - - override fun toUni(d: X11DatatypesCommunityBlockView): LemmyapiDatatypesCommunityBlockView = - LemmyapiDatatypesCommunityBlockView( - person = this.toUni(d = d.person), - community = this.toUni(d = d.community), + visibility = if (d.hidden) CommunityVisibility.Unlisted else d.visibility.toUni(), + subscribers = counts.subscribers, + posts = counts.posts, + comments = counts.comments, + users_active_day = counts.users_active_day, + users_active_week = counts.users_active_week, + users_active_month = counts.users_active_month, + users_active_half_year = counts.users_active_half_year, + subscribers_local = -1, + report_count = -1, + unresolved_report_count = -1, + local_removed = false, + last_refreshed_at = "", ) override fun toUni(d: X11DatatypesCommunityFollowerView): LemmyapiDatatypesCommunityFollowerView = LemmyapiDatatypesCommunityFollowerView( - community = this.toUni(d = d.community), + community = this.toUni(d = d.community, counts = X11DatatypesCommunityAggregates(-1, -1, -1, -1, "", -1, -1, -1, -1, -1)), follower = this.toUni(d = d.follower), ) override fun toUni(d: X11DatatypesCommunityModeratorView): LemmyapiDatatypesCommunityModeratorView = LemmyapiDatatypesCommunityModeratorView( - community = this.toUni(d = d.community), + community = this.toUni(d = d.community, counts = X11DatatypesCommunityAggregates(-1, -1, -1, -1, "", -1, -1, -1, -1, -1)), moderator = this.toUni(d = d.moderator), ) @@ -733,23 +489,21 @@ internal class Transformer : MapperGenerator { override fun toUni(d: X11DatatypesCommunityView): LemmyapiDatatypesCommunityView = LemmyapiDatatypesCommunityView( - community = this.toUni(d = d.community), - subscribed = d.subscribed, - blocked = d.blocked, - counts = this.toUni(d = d.counts), - banned_from_community = d.banned_from_community, + community = this.toUni(d = d.community, d.counts), + can_mod = false, + tags = emptyList(), + community_actions = CommunityActions(null, CommunityFollowerState.from(d.subscribed), if (d.blocked) "" else null, null, if (d.banned_from_community) "" else null, if (d.banned_from_community) "" else null), ) override fun toUni(d: X11DatatypesCustomEmoji): LemmyapiDatatypesCustomEmoji = LemmyapiDatatypesCustomEmoji( id = d.id, - local_site_id = d.local_site_id, shortcode = d.shortcode, image_url = d.image_url, alt_text = d.alt_text, category = d.category, - published = d.published, - updated = d.updated, + published_at = d.published, + updated_at = d.updated, ) override fun toUni(d: X11DatatypesCustomEmojiKeyword): LemmyapiDatatypesCustomEmojiKeyword = @@ -769,13 +523,6 @@ internal class Transformer : MapperGenerator { keywords = d.keywords.map { this.toUni(d = it) }, ) - override fun toUni(d: X11DatatypesFederatedInstances): LemmyapiDatatypesFederatedInstances = - LemmyapiDatatypesFederatedInstances( - linked = d.linked.map { this.toUni(d = it) }, - allowed = d.allowed.map { this.toUni(d = it) }, - blocked = d.blocked.map { this.toUni(d = it) }, - ) - override fun toUni(d: X11DatatypesGenerateTotpSecretResponse): LemmyapiDatatypesGenerateTotpSecretResponse = LemmyapiDatatypesGenerateTotpSecretResponse( totp_secret_url = d.totp_secret_url, ) @@ -785,11 +532,6 @@ internal class Transformer : MapperGenerator { ok = d.ok?.let { this.toUni(d = it) }, ) - override fun toUni(d: X11DatatypesGetCommentsResponse): LemmyapiDatatypesGetCommentsResponse = - LemmyapiDatatypesGetCommentsResponse( - comments = d.comments.map { this.toUni(d = it) }, - ) - override fun toUni(d: X11DatatypesGetCommunityResponse): LemmyapiDatatypesGetCommunityResponse = LemmyapiDatatypesGetCommunityResponse( community_view = this.toUni(d = d.community_view), @@ -798,40 +540,11 @@ internal class Transformer : MapperGenerator { discussion_languages = d.discussion_languages, ) - override fun toUni(d: X11DatatypesGetFederatedInstancesResponse): LemmyapiDatatypesGetFederatedInstancesResponse = - LemmyapiDatatypesGetFederatedInstancesResponse( - federated_instances = d.federated_instances?.let { this.toUni(d = it) }, - ) - - override fun toUni(d: X11DatatypesGetModlogResponse): LemmyapiDatatypesGetModlogResponse = - LemmyapiDatatypesGetModlogResponse( - removed_posts = d.removed_posts.map { this.toUni(d = it) }, - locked_posts = d.locked_posts.map { this.toUni(d = it) }, - featured_posts = d.featured_posts.map { this.toUni(d = it) }, - removed_comments = d.removed_comments.map { this.toUni(d = it) }, - removed_communities = d.removed_communities.map { this.toUni(d = it) }, - banned_from_community = d.banned_from_community.map { this.toUni(d = it) }, - banned = d.banned.map { this.toUni(d = it) }, - added_to_community = d.added_to_community.map { this.toUni(d = it) }, - transferred_to_community = d.transferred_to_community.map { this.toUni(d = it) }, - added = d.added.map { this.toUni(d = it) }, - admin_purged_persons = d.admin_purged_persons.map { this.toUni(d = it) }, - admin_purged_communities = d.admin_purged_communities.map { this.toUni(d = it) }, - admin_purged_posts = d.admin_purged_posts.map { this.toUni(d = it) }, - admin_purged_comments = d.admin_purged_comments.map { this.toUni(d = it) }, - hidden_communities = d.hidden_communities.map { this.toUni(d = it) }, - ) - override fun toUni(d: X11DatatypesGetPersonDetailsResponse): LemmyapiDatatypesGetPersonDetailsResponse = LemmyapiDatatypesGetPersonDetailsResponse( person_view = this.toUni(d = d.person_view), site = d.site?.let { this.toUni(d = it) }, - comments = d.comments.map { this.toUni(d = it) }, - posts = d.posts.map { this.toUni(d = it) }, moderates = d.moderates.map { this.toUni(d = it) }, - ) - - override fun toUni(d: X11DatatypesGetPersonMentionsResponse): LemmyapiDatatypesGetPersonMentionsResponse = LemmyapiDatatypesGetPersonMentionsResponse( - mentions = d.mentions.map { this.toUni(d = it) }, + multi_communities_created = emptyList(), ) override fun toUni(d: X11DatatypesGetPostResponse): LemmyapiDatatypesGetPostResponse = @@ -842,24 +555,85 @@ internal class Transformer : MapperGenerator { cross_posts = d.cross_posts.map { this.toUni(d = it) }, ) - override fun toUni(d: X11DatatypesGetPostsResponse): LemmyapiDatatypesGetPostsResponse = - LemmyapiDatatypesGetPostsResponse( - posts = d.posts.map { this.toUni(d = it) }, - next_page = d.next_page, + fun toUni(d: X11DatatypesCommentReplyView): NotificationView = + NotificationView( + notification = Notification( + id = d.comment_reply.id, + recipient_id = d.comment_reply.recipient_id, + comment_id = d.comment_reply.comment_id, + read = d.comment_reply.read, + published_at = d.comment_reply.published, + kind = NotificationType.Reply, + post_id = d.post.id, + creator_id = d.creator.id, + ), + data = this.toUniCV(d), ) - override fun toUni(d: X11DatatypesGetRepliesResponse): LemmyapiDatatypesGetRepliesResponse = - LemmyapiDatatypesGetRepliesResponse( - replies = d.replies.map { this.toUni(d = it) }, + fun toUniCV(d: X11DatatypesCommentReplyView): LemmyapiDatatypesCommentView = + LemmyapiDatatypesCommentView( + comment = this.toUni(d = d.comment, d.counts), + creator = this.toUni(d = d.creator), + post = this.toUni(d = d.post, counts = X11DatatypesPostAggregates(-1, -1, -1, -1, -1, "", "")), + community = this.toUni(d = d.community, counts = X11DatatypesCommunityAggregates(-1, -1, -1, -1, "", -1, -1, -1, -1, -1)), + creator_banned_from_community = d.creator_banned_from_community, + creator_is_moderator = d.creator_is_moderator, + creator_is_admin = d.creator_is_admin, + tags = emptyList(), + creator_banned = d.creator.banned, + creator_ban_expires_at = d.creator.ban_expires, + can_mod = false, + person_actions = PersonActions(if (d.creator_blocked) "" else null), + comment_actions = CommentActions(d.my_vote, null, if (d.saved) "" else null), + community_actions = CommunityActions(null, CommunityFollowerState.from(d.subscribed)), + ) + + fun toUni(d: X11DatatypesPersonMentionView): NotificationView = + NotificationView( + notification = Notification( + id = d.person_mention.id, + recipient_id = d.person_mention.recipient_id, + comment_id = d.person_mention.comment_id, + read = d.person_mention.read, + published_at = d.person_mention.published, + kind = NotificationType.Mention, + post_id = d.post.id, + creator_id = d.creator.id, + ), + data = this.toUniPV(d), + ) + + fun toUniPV(d: X11DatatypesPersonMentionView): LemmyapiDatatypesCommentView = + LemmyapiDatatypesCommentView( + comment = this.toUni(d = d.comment, d.counts), + creator = this.toUni(d = d.creator), + post = this.toUni(d = d.post, counts = X11DatatypesPostAggregates(-1, -1, -1, -1, -1, "", "")), + community = this.toUni(d = d.community, counts = X11DatatypesCommunityAggregates(-1, -1, -1, -1, "", -1, -1, -1, -1, -1)), + creator_banned_from_community = d.creator_banned_from_community, + creator_is_moderator = d.creator_is_moderator, + creator_is_admin = d.creator_is_admin, + tags = emptyList(), + creator_banned = d.creator.banned, + creator_ban_expires_at = d.creator.ban_expires, + can_mod = false, + person_actions = PersonActions(if (d.creator_blocked) "" else null), + comment_actions = CommentActions(d.my_vote, null, if (d.saved) "" else null), + community_actions = CommunityActions(null, CommunityFollowerState.from(d.subscribed)), + ) + + fun toUniPMV(d: X11DatatypesPrivateMessageView): NotificationView = + NotificationView( + notification = Notification( + id = d.private_message.id, + recipient_id = d.private_message.recipient_id, + read = d.private_message.read, + published_at = d.private_message.published, + kind = NotificationType.PrivateMessage, + creator_id = d.creator.id, + ), + data = this.toUni(d), ) - override fun toUni(d: X11DatatypesGetReportCountResponse): LemmyapiDatatypesGetReportCountResponse = LemmyapiDatatypesGetReportCountResponse( - community_id = d.community_id, - comment_reports = d.comment_reports, - post_reports = d.post_reports, - private_message_reports = d.private_message_reports, - ) - override fun toUni(d: X11DatatypesGetSiteMetadataResponse): LemmyapiDatatypesGetSiteMetadataResponse = LemmyapiDatatypesGetSiteMetadataResponse( metadata = this.toUni(d = d.metadata), ) @@ -869,23 +643,14 @@ internal class Transformer : MapperGenerator { site_view = this.toUni(d = d.site_view), admins = d.admins.map { this.toUni(d = it) }, version = d.version, - my_user = d.my_user?.let { this.toUni(d = it) }, all_languages = d.all_languages.map { this.toUni(d = it) }, discussion_languages = d.discussion_languages, - taglines = d.taglines.map { this.toUni(d = it) }, - custom_emojis = d.custom_emojis.map { this.toUni(d = it) }, blocked_urls = d.blocked_urls.map { this.toUni(d = it) }, - ) - - override fun toUni(d: X11DatatypesGetUnreadCountResponse): LemmyapiDatatypesGetUnreadCountResponse = LemmyapiDatatypesGetUnreadCountResponse( - replies = d.replies, - mentions = d.mentions, - private_messages = d.private_messages, - ) - - override fun toUni(d: X11DatatypesGetUnreadRegistrationApplicationCountResponse): LemmyapiDatatypesGetUnreadRegistrationApplicationCountResponse = - LemmyapiDatatypesGetUnreadRegistrationApplicationCountResponse( - registration_applications = d.registration_applications, + tagline = if (d.taglines.isEmpty()) null else this.toUni(d = d.taglines.random()), + oauth_providers = emptyList(), + admin_oauth_providers = emptyList(), + active_plugins = emptyList(), + captcha_enabled = false, ) override fun toUni(d: X11DatatypesImageDetails): LemmyapiDatatypesImageDetails = @@ -900,29 +665,12 @@ internal class Transformer : MapperGenerator { LemmyapiDatatypesInstance( id = d.id, domain = d.domain, - published = d.published, - updated = d.updated, + published_at = d.published, + updated_at = d.updated, software = d.software, version = d.version, ) - override fun toUni(d: X11DatatypesInstanceBlockView): LemmyapiDatatypesInstanceBlockView = - LemmyapiDatatypesInstanceBlockView( - person = this.toUni(d = d.person), - instance = this.toUni(d = d.instance), - site = d.site?.let { this.toUni(d = it) }, - ) - - override fun toUni(d: X11DatatypesInstanceWithFederationState): LemmyapiDatatypesInstanceWithFederationState = LemmyapiDatatypesInstanceWithFederationState( - id = d.id, - domain = d.domain, - published = d.published, - updated = d.updated, - software = d.software, - version = d.version, - federation_state = d.federation_state?.let { this.toUni(d = it) }, - ) - override fun toUni(d: X11DatatypesLanguage): LemmyapiDatatypesLanguage = LemmyapiDatatypesLanguage( id = d.id, @@ -939,48 +687,12 @@ internal class Transformer : MapperGenerator { content_type = d.content_type, ) - override fun toUni(d: X11DatatypesListCommentLikesResponse): LemmyapiDatatypesListCommentLikesResponse = LemmyapiDatatypesListCommentLikesResponse( - comment_likes = d.comment_likes.map { this.toUni(d = it) }, - ) - - override fun toUni(d: X11DatatypesListCommentReportsResponse): LemmyapiDatatypesListCommentReportsResponse = LemmyapiDatatypesListCommentReportsResponse( - comment_reports = d.comment_reports.map { this.toUni(d = it) }, - ) - - override fun toUni(d: X11DatatypesListCommunitiesResponse): LemmyapiDatatypesListCommunitiesResponse = LemmyapiDatatypesListCommunitiesResponse( - communities = d.communities.map { this.toUni(d = it) }, - ) - - override fun toUni(d: X11DatatypesListMediaResponse): LemmyapiDatatypesListMediaResponse = - LemmyapiDatatypesListMediaResponse( - images = d.images.map { this.toUni(d = it) }, - ) - - override fun toUni(d: X11DatatypesListPostLikesResponse): LemmyapiDatatypesListPostLikesResponse = - LemmyapiDatatypesListPostLikesResponse( - post_likes = d.post_likes.map { this.toUni(d = it) }, - ) - - override fun toUni(d: X11DatatypesListPostReportsResponse): LemmyapiDatatypesListPostReportsResponse = LemmyapiDatatypesListPostReportsResponse( - post_reports = d.post_reports.map { this.toUni(d = it) }, - ) - - override fun toUni(d: X11DatatypesListPrivateMessageReportsResponse): LemmyapiDatatypesListPrivateMessageReportsResponse = - LemmyapiDatatypesListPrivateMessageReportsResponse( - private_message_reports = d.private_message_reports.map { this.toUni(d = it) }, - ) - - override fun toUni(d: X11DatatypesListRegistrationApplicationsResponse): LemmyapiDatatypesListRegistrationApplicationsResponse = - LemmyapiDatatypesListRegistrationApplicationsResponse( - registration_applications = d.registration_applications.map { this.toUni(d = it) }, - ) - override fun toUni(d: X11DatatypesLocalImage): LemmyapiDatatypesLocalImage = LemmyapiDatatypesLocalImage( - local_user_id = d.local_user_id, + person_id = d.local_user_id, pictrs_alias = d.pictrs_alias, pictrs_delete_token = d.pictrs_delete_token, - published = d.published, + published_at = d.published, ) override fun toUni(d: X11DatatypesLocalImageView): LemmyapiDatatypesLocalImageView = @@ -989,110 +701,134 @@ internal class Transformer : MapperGenerator { person = this.toUni(d = d.person), ) - override fun toUni(d: X11DatatypesLocalSite): LemmyapiDatatypesLocalSite = + override fun toUni(d: X11DatatypesLocalSite, counts: X11DatatypesSiteAggregates): LemmyapiDatatypesLocalSite = LemmyapiDatatypesLocalSite( id = d.id, site_id = d.site_id, site_setup = d.site_setup, - enable_downvotes = d.enable_downvotes, - enable_nsfw = d.enable_nsfw, community_creation_admin_only = d.community_creation_admin_only, - require_email_verification = d.require_email_verification, + email_verification_required = d.require_email_verification, application_question = d.application_question, private_instance = d.private_instance, default_theme = d.default_theme, - default_post_listing_type = d.default_post_listing_type, + default_post_listing_type = d.default_post_listing_type.toUni(), legal_information = d.legal_information, - hide_modlog_mod_names = d.hide_modlog_mod_names, application_email_admins = d.application_email_admins, slur_filter_regex = d.slur_filter_regex, - actor_name_max_length = d.actor_name_max_length, federation_enabled = d.federation_enabled, - captcha_enabled = d.captcha_enabled, - captcha_difficulty = d.captcha_difficulty, - published = d.published, - updated = d.updated, - registration_mode = d.registration_mode, + published_at = d.published, + updated_at = d.updated, + registration_mode = d.registration_mode.toUni(), reports_email_admins = d.reports_email_admins, federation_signed_fetch = d.federation_signed_fetch, - default_post_listing_mode = d.default_post_listing_mode, - default_sort_type = d.default_sort_type, + default_post_listing_mode = d.default_post_listing_mode.toUni(), + default_post_sort_type = d.default_sort_type.toUni(), + nsfw_content_disallowed = !d.enable_nsfw, + oauth_registration = false, + email_notifications_disabled = false, + suggested_multi_community_id = null, + default_comment_sort_type = CommentSortType.Hot, + default_post_time_range_seconds = null, + post_upvotes = FederationMode.All, + post_downvotes = if (d.enable_downvotes) FederationMode.All else FederationMode.Disable, + comment_upvotes = FederationMode.All, + comment_downvotes = if (d.enable_downvotes) FederationMode.All else FederationMode.Disable, + users = counts.users, + posts = counts.posts, + comments = counts.comments, + communities = counts.communities, + users_active_day = counts.users_active_day, + users_active_week = counts.users_active_week, + users_active_month = counts.users_active_month, + users_active_half_year = counts.users_active_half_year, + default_items_per_page = 20, + image_mode = ImageMode.StoreLinkPreviews, + image_upload_timeout_seconds = 0, + image_max_thumbnail_size = 0, + image_max_avatar_size = 0, + image_max_banner_size = 0, + image_max_upload_size = 0, + image_allow_video_uploads = false, + image_upload_disabled = false, + max_invites_per_user_allowed = 0, ) override fun toUni(d: X11DatatypesLocalSiteRateLimit): LemmyapiDatatypesLocalSiteRateLimit = LemmyapiDatatypesLocalSiteRateLimit( local_site_id = d.local_site_id, - message = d.message, - message_per_second = d.message_per_second, - post = d.post, - post_per_second = d.post_per_second, - register = d.register, - register_per_second = d.register_per_second, - image = d.image, - image_per_second = d.image_per_second, - comment = d.comment, - comment_per_second = d.comment_per_second, - search = d.search, - search_per_second = d.search_per_second, - published = d.published, - updated = d.updated, - import_user_settings = d.import_user_settings, - import_user_settings_per_second = d.import_user_settings_per_second, + message_max_requests = d.message, + message_interval_seconds = d.message_per_second, + post_max_requests = d.post, + post_interval_seconds = d.post_per_second, + register_max_requests = d.register, + register_interval_seconds = d.register_per_second, + image_max_requests = d.image, + image_interval_seconds = d.image_per_second, + comment_max_requests = d.comment, + comment_interval_seconds = d.comment_per_second, + search_max_requests = d.search, + search_interval_seconds = d.search_per_second, + published_at = d.published, + updated_at = d.updated, + import_user_settings_max_requests = d.import_user_settings, + import_user_settings_interval_seconds = d.import_user_settings_per_second, ) override fun toUni(d: X11DatatypesLocalSiteUrlBlocklist): LemmyapiDatatypesLocalSiteUrlBlocklist = LemmyapiDatatypesLocalSiteUrlBlocklist( id = d.id, url = d.url, - published = d.published, - updated = d.updated, + published_at = d.published, + updated_at = d.updated, ) - override fun toUni(d: X11DatatypesLocalUser): LemmyapiDatatypesLocalUser = + override fun toUni(d: X11DatatypesLocalUser, e: X11DatatypesLocalUserVoteDisplayMode): LemmyapiDatatypesLocalUser = LemmyapiDatatypesLocalUser( id = d.id, person_id = d.person_id, email = d.email, show_nsfw = d.show_nsfw, theme = d.theme, - default_sort_type = d.default_sort_type, - default_listing_type = d.default_listing_type, + default_post_sort_type = d.default_sort_type.toUni(), + default_listing_type = d.default_listing_type.toUni(), interface_language = d.interface_language, show_avatars = d.show_avatars, send_notifications_to_email = d.send_notifications_to_email, - show_scores = d.show_scores, show_bot_accounts = d.show_bot_accounts, show_read_posts = d.show_read_posts, email_verified = d.email_verified, accepted_application = d.accepted_application, open_links_in_new_tab = d.open_links_in_new_tab, blur_nsfw = d.blur_nsfw, - auto_expand = d.auto_expand, infinite_scroll_enabled = d.infinite_scroll_enabled, admin = d.admin, - post_listing_mode = d.post_listing_mode, - totp_2fa_enabled = d.totp_2fa_enabled, - enable_keyboard_navigation = d.enable_keyboard_navigation, - enable_animated_images = d.enable_animated_images, + post_listing_mode = d.post_listing_mode.toUni(), + animated_images_enabled = d.enable_animated_images, collapse_bot_comments = d.collapse_bot_comments, - last_donation_notification = d.last_donation_notification, + last_donation_notification_at = d.last_donation_notification, + show_score = e.score, + show_upvotes = e.upvotes, + show_person_votes = e.score, + show_upvote_percentage = e.upvote_percentage, + show_downvotes = if (e.downvotes) VoteShow.Show else VoteShow.Hide, + auto_mark_fetched_posts_as_read = false, + default_comment_sort_type = CommentSortType.Hot, + private_messages_enabled = true, + hide_posts_with_media = false, + show_media = true, + default_post_time_range_seconds = null, + default_items_per_page = 20, + totp_2fa_enabled = d.totp_2fa_enabled, ) override fun toUni(d: X11DatatypesLocalUserView): LemmyapiDatatypesLocalUserView = LemmyapiDatatypesLocalUserView( - local_user = this.toUni(d = d.local_user), - local_user_vote_display_mode = this.toUni(d = d.local_user_vote_display_mode), - person = this.toUni(d = d.person), - counts = this.toUni(d = d.counts), - ) + local_user = this.toUni(d = d.local_user, e = d.local_user_vote_display_mode), + person = this.toUni(d = d.person, d.counts), + banned = d.person.banned, + ban_expires_at = d.person.ban_expires, - override fun toUni(d: X11DatatypesLocalUserVoteDisplayMode): LemmyapiDatatypesLocalUserVoteDisplayMode = LemmyapiDatatypesLocalUserVoteDisplayMode( - local_user_id = d.local_user_id, - score = d.score, - upvotes = d.upvotes, - downvotes = d.downvotes, - upvote_percentage = d.upvote_percentage, - ) + ) override fun toUni(d: X11DatatypesLoginResponse): LemmyapiDatatypesLoginResponse = LemmyapiDatatypesLoginResponse( @@ -1104,298 +840,56 @@ internal class Transformer : MapperGenerator { override fun toUni(d: X11DatatypesLoginToken): LemmyapiDatatypesLoginToken = LemmyapiDatatypesLoginToken( user_id = d.user_id, - published = d.published, + published_at = d.published, ip = d.ip, user_agent = d.user_agent, ) - override fun toUni(d: X11DatatypesModAdd): LemmyapiDatatypesModAdd = LemmyapiDatatypesModAdd( - id = d.id, - mod_person_id = d.mod_person_id, - other_person_id = d.other_person_id, - removed = d.removed, - when_ = d.when_, - ) - - override fun toUni(d: X11DatatypesModAddCommunity): LemmyapiDatatypesModAddCommunity = - LemmyapiDatatypesModAddCommunity( - id = d.id, - mod_person_id = d.mod_person_id, - other_person_id = d.other_person_id, - community_id = d.community_id, - removed = d.removed, - when_ = d.when_, - ) - - override fun toUni(d: X11DatatypesModAddCommunityView): LemmyapiDatatypesModAddCommunityView = - LemmyapiDatatypesModAddCommunityView( - mod_add_community = this.toUni(d = d.mod_add_community), - moderator = d.moderator?.let { this.toUni(d = it) }, - community = this.toUni(d = d.community), - modded_person = this.toUni(d = d.modded_person), - ) - - override fun toUni(d: X11DatatypesModAddView): LemmyapiDatatypesModAddView = - LemmyapiDatatypesModAddView( - mod_add = this.toUni(d = d.mod_add), - moderator = d.moderator?.let { this.toUni(d = it) }, - modded_person = this.toUni(d = d.modded_person), - ) - - override fun toUni(d: X11DatatypesModBan): LemmyapiDatatypesModBan = LemmyapiDatatypesModBan( - id = d.id, - mod_person_id = d.mod_person_id, - other_person_id = d.other_person_id, - reason = d.reason, - banned = d.banned, - expires = d.expires, - when_ = d.when_, - ) - - override fun toUni(d: X11DatatypesModBanFromCommunity): LemmyapiDatatypesModBanFromCommunity = - LemmyapiDatatypesModBanFromCommunity( - id = d.id, - mod_person_id = d.mod_person_id, - other_person_id = d.other_person_id, - community_id = d.community_id, - reason = d.reason, - banned = d.banned, - expires = d.expires, - when_ = d.when_, - ) - - override fun toUni(d: X11DatatypesModBanFromCommunityView): LemmyapiDatatypesModBanFromCommunityView = LemmyapiDatatypesModBanFromCommunityView( - mod_ban_from_community = this.toUni(d = d.mod_ban_from_community), - moderator = d.moderator?.let { this.toUni(d = it) }, - community = this.toUni(d = d.community), - banned_person = this.toUni(d = d.banned_person), - ) - - override fun toUni(d: X11DatatypesModBanView): LemmyapiDatatypesModBanView = - LemmyapiDatatypesModBanView( - mod_ban = this.toUni(d = d.mod_ban), - moderator = d.moderator?.let { this.toUni(d = it) }, - banned_person = this.toUni(d = d.banned_person), - ) - - override fun toUni(d: X11DatatypesModFeaturePost): LemmyapiDatatypesModFeaturePost = - LemmyapiDatatypesModFeaturePost( - id = d.id, - mod_person_id = d.mod_person_id, - post_id = d.post_id, - featured = d.featured, - when_ = d.when_, - is_featured_community = d.is_featured_community, - ) - - override fun toUni(d: X11DatatypesModFeaturePostView): LemmyapiDatatypesModFeaturePostView = - LemmyapiDatatypesModFeaturePostView( - mod_feature_post = this.toUni(d = d.mod_feature_post), - moderator = d.moderator?.let { this.toUni(d = it) }, - post = this.toUni(d = d.post), - community = this.toUni(d = d.community), - ) - - override fun toUni(d: X11DatatypesModHideCommunity): LemmyapiDatatypesModHideCommunity = - LemmyapiDatatypesModHideCommunity( - id = d.id, - community_id = d.community_id, - mod_person_id = d.mod_person_id, - when_ = d.when_, - reason = d.reason, - hidden = d.hidden, - ) - - override fun toUni(d: X11DatatypesModHideCommunityView): LemmyapiDatatypesModHideCommunityView = - LemmyapiDatatypesModHideCommunityView( - mod_hide_community = this.toUni(d = d.mod_hide_community), - admin = d.admin?.let { this.toUni(d = it) }, - community = this.toUni(d = d.community), - ) - - override fun toUni(d: X11DatatypesModLockPost): LemmyapiDatatypesModLockPost = - LemmyapiDatatypesModLockPost( - id = d.id, - mod_person_id = d.mod_person_id, - post_id = d.post_id, - locked = d.locked, - when_ = d.when_, - ) - - override fun toUni(d: X11DatatypesModLockPostView): LemmyapiDatatypesModLockPostView = - LemmyapiDatatypesModLockPostView( - mod_lock_post = this.toUni(d = d.mod_lock_post), - moderator = d.moderator?.let { this.toUni(d = it) }, - post = this.toUni(d = d.post), - community = this.toUni(d = d.community), - ) - - override fun toUni(d: X11DatatypesModlogListParams): LemmyapiDatatypesModlogListParams = - LemmyapiDatatypesModlogListParams( - community_id = d.community_id, - mod_person_id = d.mod_person_id, - other_person_id = d.other_person_id, - post_id = d.post_id, - comment_id = d.comment_id, - page = d.page, - limit = d.limit, - hide_modlog_names = d.hide_modlog_names, - ) - - override fun toUni(d: X11DatatypesModRemoveComment): LemmyapiDatatypesModRemoveComment = - LemmyapiDatatypesModRemoveComment( - id = d.id, - mod_person_id = d.mod_person_id, - comment_id = d.comment_id, - reason = d.reason, - removed = d.removed, - when_ = d.when_, - ) - - override fun toUni(d: X11DatatypesModRemoveCommentView): LemmyapiDatatypesModRemoveCommentView = - LemmyapiDatatypesModRemoveCommentView( - mod_remove_comment = this.toUni(d = d.mod_remove_comment), - moderator = d.moderator?.let { this.toUni(d = it) }, - comment = this.toUni(d = d.comment), - commenter = this.toUni(d = d.commenter), - post = this.toUni(d = d.post), - community = this.toUni(d = d.community), - ) - - override fun toUni(d: X11DatatypesModRemoveCommunity): LemmyapiDatatypesModRemoveCommunity = - LemmyapiDatatypesModRemoveCommunity( - id = d.id, - mod_person_id = d.mod_person_id, - community_id = d.community_id, - reason = d.reason, - removed = d.removed, - when_ = d.when_, - ) - - override fun toUni(d: X11DatatypesModRemoveCommunityView): LemmyapiDatatypesModRemoveCommunityView = LemmyapiDatatypesModRemoveCommunityView( - mod_remove_community = this.toUni(d = d.mod_remove_community), - moderator = d.moderator?.let { this.toUni(d = it) }, - community = this.toUni(d = d.community), - ) - - override fun toUni(d: X11DatatypesModRemovePost): LemmyapiDatatypesModRemovePost = - LemmyapiDatatypesModRemovePost( - id = d.id, - mod_person_id = d.mod_person_id, - post_id = d.post_id, - reason = d.reason, - removed = d.removed, - when_ = d.when_, - ) - - override fun toUni(d: X11DatatypesModRemovePostView): LemmyapiDatatypesModRemovePostView = - LemmyapiDatatypesModRemovePostView( - mod_remove_post = this.toUni(d = d.mod_remove_post), - moderator = d.moderator?.let { this.toUni(d = it) }, - post = this.toUni(d = d.post), - community = this.toUni(d = d.community), - ) - - override fun toUni(d: X11DatatypesModTransferCommunity): LemmyapiDatatypesModTransferCommunity = - LemmyapiDatatypesModTransferCommunity( - id = d.id, - mod_person_id = d.mod_person_id, - other_person_id = d.other_person_id, - community_id = d.community_id, - when_ = d.when_, - ) - - override fun toUni(d: X11DatatypesModTransferCommunityView): LemmyapiDatatypesModTransferCommunityView = LemmyapiDatatypesModTransferCommunityView( - mod_transfer_community = this.toUni(d = d.mod_transfer_community), - moderator = d.moderator?.let { this.toUni(d = it) }, - community = this.toUni(d = d.community), - modded_person = this.toUni(d = d.modded_person), - ) - override fun toUni(d: X11DatatypesMyUserInfo): LemmyapiDatatypesMyUserInfo = LemmyapiDatatypesMyUserInfo( local_user_view = this.toUni(d = d.local_user_view), follows = d.follows.map { this.toUni(d = it) }, moderates = d.moderates.map { this.toUni(d = it) }, - community_blocks = d.community_blocks.map { this.toUni(d = it) }, - instance_blocks = d.instance_blocks.map { this.toUni(d = it) }, - person_blocks = d.person_blocks.map { this.toUni(d = it) }, + community_blocks = d.community_blocks.map { this.toUni(d = it.community, counts = X11DatatypesCommunityAggregates(-1, -1, -1, -1, "", -1, -1, -1, -1, -1)) }, + instance_communities_blocks = d.instance_blocks.map { this.toUni(d = it.instance) }, + instance_persons_blocks = emptyList(), + person_blocks = d.person_blocks.map { this.toUni(d = it.target) }, discussion_languages = d.discussion_languages, + multi_community_follows = emptyList(), ) - override fun toUni(d: X11DatatypesPerson): LemmyapiDatatypesPerson = LemmyapiDatatypesPerson( + fun toUni(d: X11DatatypesPerson) = this.toUni(d, X11DatatypesPersonAggregates(-1, -1, -1)) + + override fun toUni(d: X11DatatypesPerson, counts: X11DatatypesPersonAggregates): LemmyapiDatatypesPerson = LemmyapiDatatypesPerson( id = d.id, name = d.name, display_name = d.display_name, avatar = d.avatar, - banned = d.banned, - published = d.published, - updated = d.updated, - actor_id = d.actor_id, + published_at = d.published, + updated_at = d.updated, + ap_id = d.actor_id, bio = d.bio, local = d.local, banner = d.banner, deleted = d.deleted, matrix_user_id = d.matrix_user_id, bot_account = d.bot_account, - ban_expires = d.ban_expires, instance_id = d.instance_id, + post_count = counts.post_count, + comment_count = counts.comment_count, + last_refreshed_at = "", ) - override fun toUni(d: X11DatatypesPersonAggregates): LemmyapiDatatypesPersonAggregates = - LemmyapiDatatypesPersonAggregates( - person_id = d.person_id, - post_count = d.post_count, - comment_count = d.comment_count, - ) - - override fun toUni(d: X11DatatypesPersonBlockView): LemmyapiDatatypesPersonBlockView = - LemmyapiDatatypesPersonBlockView( - person = this.toUni(d = d.person), - target = this.toUni(d = d.target), - ) - - override fun toUni(d: X11DatatypesPersonMention): LemmyapiDatatypesPersonMention = - LemmyapiDatatypesPersonMention( - id = d.id, - recipient_id = d.recipient_id, - comment_id = d.comment_id, - read = d.read, - published = d.published, - ) - - override fun toUni(d: X11DatatypesPersonMentionResponse): LemmyapiDatatypesPersonMentionResponse = - LemmyapiDatatypesPersonMentionResponse( - person_mention_view = this.toUni(d = d.person_mention_view), - ) - - override fun toUni(d: X11DatatypesPersonMentionView): LemmyapiDatatypesPersonMentionView = - LemmyapiDatatypesPersonMentionView( - person_mention = this.toUni(d = d.person_mention), - comment = this.toUni(d = d.comment), - creator = this.toUni(d = d.creator), - post = this.toUni(d = d.post), - community = this.toUni(d = d.community), - recipient = this.toUni(d = d.recipient), - counts = this.toUni(d = d.counts), - creator_banned_from_community = d.creator_banned_from_community, - banned_from_community = d.banned_from_community, - creator_is_moderator = d.creator_is_moderator, - creator_is_admin = d.creator_is_admin, - subscribed = d.subscribed, - saved = d.saved, - creator_blocked = d.creator_blocked, - my_vote = d.my_vote, - ) - override fun toUni(d: X11DatatypesPersonView): LemmyapiDatatypesPersonView = LemmyapiDatatypesPersonView( - person = this.toUni(d = d.person), - counts = this.toUni(d = d.counts), + person = this.toUni(d = d.person, d.counts), is_admin = d.is_admin, + person_actions = null, + banned = d.person.banned, + ban_expires_at = d.person.ban_expires, ) - override fun toUni(d: X11DatatypesPost): LemmyapiDatatypesPost = LemmyapiDatatypesPost( + override fun toUni(d: X11DatatypesPost, counts: X11DatatypesPostAggregates): LemmyapiDatatypesPost = LemmyapiDatatypesPost( id = d.id, name = d.name, url = d.url, @@ -1404,8 +898,8 @@ internal class Transformer : MapperGenerator { community_id = d.community_id, removed = d.removed, locked = d.locked, - published = d.published, - updated = d.updated, + published_at = d.published, + updated_at = d.updated, deleted = d.deleted, nsfw = d.nsfw, embed_title = d.embed_title, @@ -1419,19 +913,16 @@ internal class Transformer : MapperGenerator { featured_local = d.featured_local, url_content_type = d.url_content_type, alt_text = d.alt_text, + comments = counts.comments, + score = counts.score, + upvotes = counts.upvotes, + downvotes = counts.downvotes, + newest_comment_time_at = counts.newest_comment_time, + report_count = -1, + unresolved_report_count = -1, + federation_pending = false, ) - override fun toUni(d: X11DatatypesPostAggregates): LemmyapiDatatypesPostAggregates = - LemmyapiDatatypesPostAggregates( - post_id = d.post_id, - comments = d.comments, - score = d.score, - upvotes = d.upvotes, - downvotes = d.downvotes, - published = d.published, - newest_comment_time = d.newest_comment_time, - ) - override fun toUni(d: X11DatatypesPostReport): LemmyapiDatatypesPostReport = LemmyapiDatatypesPostReport( id = d.id, @@ -1443,8 +934,9 @@ internal class Transformer : MapperGenerator { reason = d.reason, resolved = d.resolved, resolver_id = d.resolver_id, - published = d.published, - updated = d.updated, + published_at = d.published, + updated_at = d.updated, + violates_instance_rules = false, ) override fun toUni(d: X11DatatypesPostReportResponse): LemmyapiDatatypesPostReportResponse = @@ -1455,22 +947,18 @@ internal class Transformer : MapperGenerator { override fun toUni(d: X11DatatypesPostReportView): LemmyapiDatatypesPostReportView = LemmyapiDatatypesPostReportView( post_report = this.toUni(d = d.post_report), - post = this.toUni(d = d.post), - community = this.toUni(d = d.community), + post = this.toUni(d = d.post, d.counts), + community = this.toUni(d = d.community, counts = X11DatatypesCommunityAggregates(-1, -1, -1, -1, "", -1, -1, -1, -1, -1)), creator = this.toUni(d = d.creator), post_creator = this.toUni(d = d.post_creator), + resolver = d.resolver?.let { this.toUni(d = it) }, + post_actions = PostActions(toAt(d.read), null, d.counts.comments - d.unread_comments, toAt(d.saved), null, d.my_vote, toAt(d.hidden)), + person_actions = PersonActions(toAt(d.creator_blocked)), + community_actions = CommunityActions(null, CommunityFollowerState.from(d.subscribed)), creator_banned_from_community = d.creator_banned_from_community, + creator_banned = d.creator.banned, creator_is_moderator = d.creator_is_moderator, creator_is_admin = d.creator_is_admin, - subscribed = d.subscribed, - saved = d.saved, - read = d.read, - hidden = d.hidden, - creator_blocked = d.creator_blocked, - my_vote = d.my_vote, - unread_comments = d.unread_comments, - counts = this.toUni(d = d.counts), - resolver = d.resolver?.let { this.toUni(d = it) }, ) override fun toUni(d: X11DatatypesPostResponse): LemmyapiDatatypesPostResponse = @@ -1480,22 +968,20 @@ internal class Transformer : MapperGenerator { override fun toUni(d: X11DatatypesPostView): LemmyapiDatatypesPostView = LemmyapiDatatypesPostView( - post = this.toUni(d = d.post), + post = this.toUni(d = d.post, d.counts), creator = this.toUni(d = d.creator), - community = this.toUni(d = d.community), + community = this.toUni(d = d.community, counts = X11DatatypesCommunityAggregates(-1, -1, -1, -1, "", -1, -1, -1, -1, -1)), + image_details = d.image_details?.let { this.toUni(d = it) }, + post_actions = PostActions(toAt(d.read), null, d.counts.comments - d.unread_comments, toAt(d.saved), null, d.my_vote, toAt(d.hidden)), + person_actions = PersonActions(toAt(d.creator_blocked)), + community_actions = CommunityActions(null, CommunityFollowerState.from(d.subscribed)), + tags = emptyList(), + can_mod = false, creator_banned_from_community = d.creator_banned_from_community, - banned_from_community = d.banned_from_community, + creator_banned = d.creator.banned, + creator_ban_expires_at = d.creator.ban_expires, creator_is_moderator = d.creator_is_moderator, creator_is_admin = d.creator_is_admin, - counts = this.toUni(d = d.counts), - subscribed = d.subscribed, - saved = d.saved, - read = d.read, - hidden = d.hidden, - creator_blocked = d.creator_blocked, - my_vote = d.my_vote, - unread_comments = d.unread_comments, - image_details = d.image_details?.let { this.toUni(d = it) }, ) override fun toUni(d: X11DatatypesPrivateMessage): LemmyapiDatatypesPrivateMessage = @@ -1506,10 +992,12 @@ internal class Transformer : MapperGenerator { content = d.content, deleted = d.deleted, read = d.read, - published = d.published, - updated = d.updated, + published_at = d.published, + updated_at = d.updated, ap_id = d.ap_id, local = d.local, + removed = false, + deleted_by_recipient = false, ) override fun toUni(d: X11DatatypesPrivateMessageReport): LemmyapiDatatypesPrivateMessageReport = @@ -1521,8 +1009,8 @@ internal class Transformer : MapperGenerator { reason = d.reason, resolved = d.resolved, resolver_id = d.resolver_id, - published = d.published, - updated = d.updated, + published_at = d.published, + updated_at = d.updated, ) override fun toUni(d: X11DatatypesPrivateMessageReportResponse): LemmyapiDatatypesPrivateMessageReportResponse = LemmyapiDatatypesPrivateMessageReportResponse( @@ -1535,16 +1023,15 @@ internal class Transformer : MapperGenerator { private_message_creator = this.toUni(d = d.private_message_creator), creator = this.toUni(d = d.creator), resolver = d.resolver?.let { this.toUni(d = it) }, + creator_is_admin = false, + creator_banned = d.creator.banned, + creator_ban_expires_at = d.creator.ban_expires, ) override fun toUni(d: X11DatatypesPrivateMessageResponse): LemmyapiDatatypesPrivateMessageResponse = LemmyapiDatatypesPrivateMessageResponse( private_message_view = this.toUni(d = d.private_message_view), ) - override fun toUni(d: X11DatatypesPrivateMessagesResponse): LemmyapiDatatypesPrivateMessagesResponse = LemmyapiDatatypesPrivateMessagesResponse( - private_messages = d.private_messages.map { this.toUni(d = it) }, - ) - override fun toUni(d: X11DatatypesPrivateMessageView): LemmyapiDatatypesPrivateMessageView = LemmyapiDatatypesPrivateMessageView( private_message = this.toUni(d = d.private_message), @@ -1555,10 +1042,9 @@ internal class Transformer : MapperGenerator { override fun toUni(d: X11DatatypesReadableFederationState): LemmyapiDatatypesReadableFederationState = LemmyapiDatatypesReadableFederationState( instance_id = d.instance_id, last_successful_id = d.last_successful_id, - last_successful_published_time = d.last_successful_published_time, + last_successful_published_time_at = d.last_successful_published_time, fail_count = d.fail_count, - last_retry = d.last_retry, - next_retry = d.next_retry, + last_retry_at = d.last_retry, ) override fun toUni(d: X11DatatypesRegistrationApplication): LemmyapiDatatypesRegistrationApplication = LemmyapiDatatypesRegistrationApplication( @@ -1567,7 +1053,7 @@ internal class Transformer : MapperGenerator { answer = d.answer, admin_id = d.admin_id, deny_reason = d.deny_reason, - published = d.published, + published_at = d.published, ) override fun toUni(d: X11DatatypesRegistrationApplicationResponse): LemmyapiDatatypesRegistrationApplicationResponse = @@ -1577,77 +1063,70 @@ internal class Transformer : MapperGenerator { override fun toUni(d: X11DatatypesRegistrationApplicationView): LemmyapiDatatypesRegistrationApplicationView = LemmyapiDatatypesRegistrationApplicationView( registration_application = this.toUni(d = d.registration_application), - creator_local_user = this.toUni(d = d.creator_local_user), + creator_local_user = this.toUni(d = d.creator_local_user, e = X11DatatypesLocalUserVoteDisplayMode(-1, true, true, true, true)), creator = this.toUni(d = d.creator), admin = d.admin?.let { this.toUni(d = it) }, ) - override fun toUni(d: X11DatatypesResolveObjectResponse): LemmyapiDatatypesResolveObjectResponse = - LemmyapiDatatypesResolveObjectResponse( - comment = d.comment?.let { this.toUni(d = it) }, - post = d.post?.let { this.toUni(d = it) }, - community = d.community?.let { this.toUni(d = it) }, - person = d.person?.let { this.toUni(d = it) }, + override fun toUni(d: X11DatatypesResolveObjectResponse): LemmyapiDatatypesSearchResponse = + LemmyapiDatatypesSearchResponse( + resolve = when { + d.post != null -> toUni(d.post) + d.comment != null -> toUni(d.comment) + d.community != null -> toUni(d.community) + d.person != null -> toUni(d.person) + else -> null + }, + comments = emptyList(), + posts = emptyList(), + communities = emptyList(), + persons = emptyList(), + multi_communities = emptyList(), ) override fun toUni(d: X11DatatypesSearchResponse): LemmyapiDatatypesSearchResponse = LemmyapiDatatypesSearchResponse( - type_ = d.type_, - comments = d.comments.map { this.toUni(d = it) }, - posts = d.posts.map { this.toUni(d = it) }, - communities = d.communities.map { this.toUni(d = it) }, - users = d.users.map { this.toUni(d = it) }, + comments = d.comments.map(this@Transformer::toUni), + posts = d.posts.map(this@Transformer::toUni), + communities = d.communities.map(this@Transformer::toUni), + persons = d.users.map(this@Transformer::toUni), + multi_communities = emptyList(), ) override fun toUni(d: X11DatatypesSite): LemmyapiDatatypesSite = LemmyapiDatatypesSite( id = d.id, name = d.name, sidebar = d.sidebar, - published = d.published, - updated = d.updated, + published_at = d.published, + updated_at = d.updated, icon = d.icon, banner = d.banner, - description = d.description, - actor_id = d.actor_id, + summary = d.description, + ap_id = d.actor_id, last_refreshed_at = d.last_refreshed_at, inbox_url = d.inbox_url, instance_id = d.instance_id, content_warning = d.content_warning, ) - override fun toUni(d: X11DatatypesSiteAggregates): LemmyapiDatatypesSiteAggregates = - LemmyapiDatatypesSiteAggregates( - site_id = d.site_id, - users = d.users, - posts = d.posts, - comments = d.comments, - communities = d.communities, - users_active_day = d.users_active_day, - users_active_week = d.users_active_week, - users_active_month = d.users_active_month, - users_active_half_year = d.users_active_half_year, - ) - override fun toUni(d: X11DatatypesSiteResponse): LemmyapiDatatypesSiteResponse = LemmyapiDatatypesSiteResponse( site_view = this.toUni(d = d.site_view), - taglines = d.taglines.map { this.toUni(d = it) }, ) override fun toUni(d: X11DatatypesSiteView): LemmyapiDatatypesSiteView = LemmyapiDatatypesSiteView( site = this.toUni(d = d.site), - local_site = this.toUni(d = d.local_site), + local_site = this.toUni(d = d.local_site, counts = d.counts), local_site_rate_limit = this.toUni(d = d.local_site_rate_limit), - counts = this.toUni(d = d.counts), + instance = null, ) override fun toUni(d: X11DatatypesTagline): LemmyapiDatatypesTagline = LemmyapiDatatypesTagline( id = d.id, - local_site_id = d.local_site_id, content = d.content, - published = d.published, - updated = d.updated, + published_at = d.published, + updated_at = d.updated, ) override fun toUni(d: X11DatatypesUpdateTotpResponse): LemmyapiDatatypesUpdateTotpResponse = @@ -1658,6 +1137,7 @@ internal class Transformer : MapperGenerator { override fun toUni(d: X11DatatypesVoteView): LemmyapiDatatypesVoteView = LemmyapiDatatypesVoteView( creator = this.toUni(d = d.creator), + creator_banned = d.creator.banned, creator_banned_from_community = d.creator_banned_from_community, score = d.score, ) @@ -1685,18 +1165,18 @@ internal class Transformer : MapperGenerator { community_id = d.community_id, person_id = d.person_id, ban = d.ban, - remove_data = d.remove_data, + remove_data = d.remove_or_restore_data, reason = d.reason, - expires = d.expires, + expires = d.expires_at, ) override fun fromUni(d: LemmyapiDatatypesBanPerson): X11DatatypesBanPerson = X11DatatypesBanPerson( person_id = d.person_id, ban = d.ban, - remove_data = d.remove_data, + remove_data = d.remove_or_restore_data, reason = d.reason, - expires = d.expires, + expires = d.expires_at, ) override fun fromUni(d: LemmyapiDatatypesBlockCommunity): X11DatatypesBlockCommunity = @@ -1748,13 +1228,11 @@ internal class Transformer : MapperGenerator { X11DatatypesCreateCommunity( name = d.name, title = d.title, - description = d.description, - icon = d.icon, - banner = d.banner, + description = d.summary, nsfw = d.nsfw, posting_restricted_to_mods = d.posting_restricted_to_mods, discussion_languages = d.discussion_languages, - visibility = d.visibility, + visibility = V0CommunityVisibility.fromUniNullable(d.visibility), ) override fun fromUni(d: LemmyapiDatatypesCreateCustomEmoji): X11DatatypesCreateCustomEmoji = @@ -1806,46 +1284,45 @@ internal class Transformer : MapperGenerator { X11DatatypesCreateSite( name = d.name, sidebar = d.sidebar, - description = d.description, - icon = d.icon, - banner = d.banner, - enable_downvotes = d.enable_downvotes, - enable_nsfw = d.enable_nsfw, + description = d.summary, + enable_downvotes = when (d.post_downvotes) { + FederationMode.Local, FederationMode.All -> true + FederationMode.Disable -> false + null -> null + }, + enable_nsfw = if (d.nsfw_content_disallowed == null) null else !d.nsfw_content_disallowed, community_creation_admin_only = d.community_creation_admin_only, - require_email_verification = d.require_email_verification, + require_email_verification = d.email_verification_required, application_question = d.application_question, private_instance = d.private_instance, default_theme = d.default_theme, - default_post_listing_type = d.default_post_listing_type, - default_sort_type = d.default_sort_type, + default_post_listing_type = V0ListingType.fromUniNullable(d.default_post_listing_type), + default_sort_type = V0SortType.fromUniNullable(d.default_post_sort_type), legal_information = d.legal_information, application_email_admins = d.application_email_admins, - hide_modlog_mod_names = d.hide_modlog_mod_names, discussion_languages = d.discussion_languages, slur_filter_regex = d.slur_filter_regex, - actor_name_max_length = d.actor_name_max_length, - rate_limit_message = d.rate_limit_message, - rate_limit_message_per_second = d.rate_limit_message_per_second, - rate_limit_post = d.rate_limit_post, - rate_limit_post_per_second = d.rate_limit_post_per_second, - rate_limit_register = d.rate_limit_register, - rate_limit_register_per_second = d.rate_limit_register_per_second, - rate_limit_image = d.rate_limit_image, - rate_limit_image_per_second = d.rate_limit_image_per_second, - rate_limit_comment = d.rate_limit_comment, - rate_limit_comment_per_second = d.rate_limit_comment_per_second, - rate_limit_search = d.rate_limit_search, - rate_limit_search_per_second = d.rate_limit_search_per_second, + rate_limit_message = d.rate_limit_message_max_requests, + rate_limit_message_per_second = d.rate_limit_message_interval_seconds, + rate_limit_post = d.rate_limit_post_max_requests, + rate_limit_post_per_second = d.rate_limit_post_interval_seconds, + rate_limit_register = d.rate_limit_register_max_requests, + rate_limit_register_per_second = d.rate_limit_register_interval_seconds, + rate_limit_image = d.rate_limit_image_max_requests, + rate_limit_image_per_second = d.rate_limit_image_interval_seconds, + rate_limit_comment = d.rate_limit_comment_max_requests, + rate_limit_comment_per_second = d.rate_limit_comment_interval_seconds, + rate_limit_search = d.rate_limit_search_max_requests, + rate_limit_search_per_second = d.rate_limit_search_interval_seconds, federation_enabled = d.federation_enabled, - federation_debug = d.federation_debug, - captcha_enabled = d.captcha_enabled, - captcha_difficulty = d.captcha_difficulty, + captcha_enabled = null, + captcha_difficulty = null, allowed_instances = d.allowed_instances, blocked_instances = d.blocked_instances, taglines = d.taglines, - registration_mode = d.registration_mode, + registration_mode = V0RegistrationMode.fromUniNullable(d.registration_mode), content_warning = d.content_warning, - default_post_listing_mode = d.default_post_listing_mode, + default_post_listing_mode = V0PostListingMode.fromUniNullable(d.default_post_listing_mode), ) override fun fromUni(d: LemmyapiDatatypesDeleteAccount): X11DatatypesDeleteAccount = @@ -1900,22 +1377,20 @@ internal class Transformer : MapperGenerator { X11DatatypesEditCommunity( community_id = d.community_id, title = d.title, - description = d.description, - icon = d.icon, - banner = d.banner, + description = d.summary, nsfw = d.nsfw, posting_restricted_to_mods = d.posting_restricted_to_mods, discussion_languages = d.discussion_languages, - visibility = d.visibility, + visibility = V0CommunityVisibility.fromUniNullable(d.visibility), ) override fun fromUni(d: LemmyapiDatatypesEditCustomEmoji): X11DatatypesEditCustomEmoji = X11DatatypesEditCustomEmoji( id = d.id, - category = d.category, - image_url = d.image_url, - alt_text = d.alt_text, - keywords = d.keywords, + category = d.category ?: "", + image_url = d.image_url ?: "", + alt_text = d.alt_text ?: "", + keywords = d.keywords ?: emptyList(), ) override fun fromUni(d: LemmyapiDatatypesEditPost): X11DatatypesEditPost = X11DatatypesEditPost( @@ -1938,55 +1413,56 @@ internal class Transformer : MapperGenerator { override fun fromUni(d: LemmyapiDatatypesEditSite): X11DatatypesEditSite = X11DatatypesEditSite( name = d.name, sidebar = d.sidebar, - description = d.description, - icon = d.icon, - banner = d.banner, - enable_downvotes = d.enable_downvotes, + description = d.summary, + enable_downvotes = when (d.post_downvotes) { + FederationMode.Local, FederationMode.All -> true + FederationMode.Disable -> false + null -> null + }, enable_nsfw = d.enable_nsfw, community_creation_admin_only = d.community_creation_admin_only, - require_email_verification = d.require_email_verification, + require_email_verification = d.email_verification_required, application_question = d.application_question, private_instance = d.private_instance, default_theme = d.default_theme, - default_post_listing_type = d.default_post_listing_type, - default_sort_type = d.default_sort_type, + default_post_listing_type = V0ListingType.fromUniNullable(d.default_post_listing_type), + default_sort_type = V0SortType.fromUniNullable(d.default_post_sort_type), legal_information = d.legal_information, application_email_admins = d.application_email_admins, hide_modlog_mod_names = d.hide_modlog_mod_names, discussion_languages = d.discussion_languages, slur_filter_regex = d.slur_filter_regex, - actor_name_max_length = d.actor_name_max_length, - rate_limit_message = d.rate_limit_message, - rate_limit_message_per_second = d.rate_limit_message_per_second, - rate_limit_post = d.rate_limit_post, - rate_limit_post_per_second = d.rate_limit_post_per_second, - rate_limit_register = d.rate_limit_register, - rate_limit_register_per_second = d.rate_limit_register_per_second, - rate_limit_image = d.rate_limit_image, - rate_limit_image_per_second = d.rate_limit_image_per_second, - rate_limit_comment = d.rate_limit_comment, - rate_limit_comment_per_second = d.rate_limit_comment_per_second, - rate_limit_search = d.rate_limit_search, - rate_limit_search_per_second = d.rate_limit_search_per_second, + rate_limit_message = d.rate_limit_message_max_requests, + rate_limit_message_per_second = d.rate_limit_message_interval_seconds, + rate_limit_post = d.rate_limit_post_max_requests, + rate_limit_post_per_second = d.rate_limit_post_interval_seconds, + rate_limit_register = d.rate_limit_register_max_requests, + rate_limit_register_per_second = d.rate_limit_register_interval_seconds, + rate_limit_image = d.rate_limit_image_max_requests, + rate_limit_image_per_second = d.rate_limit_image_interval_seconds, + rate_limit_comment = d.rate_limit_comment_max_requests, + rate_limit_comment_per_second = d.rate_limit_comment_interval_seconds, + rate_limit_search = d.rate_limit_search_max_requests, + rate_limit_search_per_second = d.rate_limit_search_interval_seconds, federation_enabled = d.federation_enabled, federation_debug = d.federation_debug, - captcha_enabled = d.captcha_enabled, - captcha_difficulty = d.captcha_difficulty, + captcha_enabled = null, + captcha_difficulty = null, allowed_instances = d.allowed_instances, blocked_instances = d.blocked_instances, blocked_urls = d.blocked_urls, taglines = d.taglines, - registration_mode = d.registration_mode, + registration_mode = V0RegistrationMode.fromUniNullable(d.registration_mode), reports_email_admins = d.reports_email_admins, content_warning = d.content_warning, - default_post_listing_mode = d.default_post_listing_mode, + default_post_listing_mode = V0PostListingMode.fromUniNullable(d.default_post_listing_mode), ) override fun fromUni(d: LemmyapiDatatypesFeaturePost): X11DatatypesFeaturePost = X11DatatypesFeaturePost( post_id = d.post_id, featured = d.featured, - feature_type = d.feature_type, + feature_type = V0PostFeatureType.fromUni(d.feature_type), ) override fun fromUni(d: LemmyapiDatatypesFollowCommunity): X11DatatypesFollowCommunity = @@ -2002,8 +1478,8 @@ internal class Transformer : MapperGenerator { override fun fromUni(d: LemmyapiDatatypesGetComments): X11DatatypesGetComments = X11DatatypesGetComments( - type_ = d.type_, - sort = d.sort, + type_ = V0ListingType.fromUniNullable(d.type_), + sort = V0CommentSortType.fromUniNullable(d.sort), max_depth = d.max_depth, page = d.page, limit = d.limit, @@ -2028,7 +1504,7 @@ internal class Transformer : MapperGenerator { community_id = d.community_id, page = d.page, limit = d.limit, - type_ = d.type_, + type_ = V0ModlogActionType.fromUniNullable(d.type_), other_person_id = d.other_person_id, post_id = d.post_id, comment_id = d.comment_id, @@ -2038,19 +1514,6 @@ internal class Transformer : MapperGenerator { X11DatatypesGetPersonDetails( person_id = d.person_id, username = d.username, - sort = d.sort, - page = d.page, - limit = d.limit, - community_id = d.community_id, - saved_only = d.saved_only, - ) - - override fun fromUni(d: LemmyapiDatatypesGetPersonMentions): X11DatatypesGetPersonMentions = - X11DatatypesGetPersonMentions( - sort = d.sort, - page = d.page, - limit = d.limit, - unread_only = d.unread_only, ) override fun fromUni(d: LemmyapiDatatypesGetPost): X11DatatypesGetPost = X11DatatypesGetPost( @@ -2059,46 +1522,45 @@ internal class Transformer : MapperGenerator { ) override fun fromUni(d: LemmyapiDatatypesGetPosts): X11DatatypesGetPosts = X11DatatypesGetPosts( - type_ = d.type_, - sort = d.sort, + type_ = V0ListingType.fromUniNullable(d.type_), + sort = V0SortType.fromUniNullable(d.sort), page = d.page, limit = d.limit, community_id = d.community_id, community_name = d.community_name, - saved_only = d.saved_only, - liked_only = d.liked_only, - disliked_only = d.disliked_only, show_hidden = d.show_hidden, show_read = d.show_read, show_nsfw = d.show_nsfw, page_cursor = d.page_cursor, ) - override fun fromUni(d: LemmyapiDatatypesGetPrivateMessages): X11DatatypesGetPrivateMessages = - X11DatatypesGetPrivateMessages( - unread_only = d.unread_only, + fun fromUniR(d: LemmyapiDatatypesListNotifications): X11DatatypesGetReplies = + X11DatatypesGetReplies( + sort = V0CommentSortType.New, page = d.page, limit = d.limit, - creator_id = d.creator_id, + unread_only = d.unread_only, ) - override fun fromUni(d: LemmyapiDatatypesGetRegistrationApplication): X11DatatypesGetRegistrationApplication = X11DatatypesGetRegistrationApplication( - person_id = d.person_id, - ) - - override fun fromUni(d: LemmyapiDatatypesGetReplies): X11DatatypesGetReplies = - X11DatatypesGetReplies( - sort = d.sort, + fun fromUniM(d: LemmyapiDatatypesListNotifications): X11DatatypesGetPersonMentions = + X11DatatypesGetPersonMentions( + sort = V0CommentSortType.New, page = d.page, limit = d.limit, unread_only = d.unread_only, ) - override fun fromUni(d: LemmyapiDatatypesGetReportCount): X11DatatypesGetReportCount = - X11DatatypesGetReportCount( - community_id = d.community_id, + fun fromUniP(d: LemmyapiDatatypesListNotifications): X11DatatypesGetPrivateMessages = + X11DatatypesGetPrivateMessages( + page = d.page, + limit = d.limit, + unread_only = d.unread_only, ) + override fun fromUni(d: LemmyapiDatatypesGetRegistrationApplication): X11DatatypesGetRegistrationApplication = X11DatatypesGetRegistrationApplication( + person_id = d.person_id, + ) + override fun fromUni(d: LemmyapiDatatypesGetSiteMetadata): X11DatatypesGetSiteMetadata = X11DatatypesGetSiteMetadata( url = d.url, @@ -2111,31 +1573,47 @@ internal class Transformer : MapperGenerator { reason = d.reason, ) - override fun fromUni(d: LemmyapiDatatypesHidePost): X11DatatypesHidePost = X11DatatypesHidePost( + override fun fromUni(d: LemmyapiDatatypesHidePosts): X11DatatypesHidePost = X11DatatypesHidePost( post_ids = d.post_ids, hide = d.hide, ) - override fun fromUni(d: LemmyapiDatatypesListCommentLikes): X11DatatypesListCommentLikes = - X11DatatypesListCommentLikes( - comment_id = d.comment_id, + // Unified ListReports helpers (for combined ListReports support) + override fun fromUniC(d: it.vercruysse.lemmyapi.datatypes.ListReports): X11DatatypesListCommentReports = + X11DatatypesListCommentReports( page = d.page, limit = d.limit, + unresolved_only = d.unresolved_only, + community_id = d.community_id, ) - override fun fromUni(d: LemmyapiDatatypesListCommentReports): X11DatatypesListCommentReports = - X11DatatypesListCommentReports( - comment_id = d.comment_id, + override fun fromUniP(d: it.vercruysse.lemmyapi.datatypes.ListReports): X11DatatypesListPostReports = + X11DatatypesListPostReports( page = d.page, limit = d.limit, unresolved_only = d.unresolved_only, community_id = d.community_id, + post_id = d.post_id, + ) + + override fun fromUniPm(d: it.vercruysse.lemmyapi.datatypes.ListReports): X11DatatypesListPrivateMessageReports = + X11DatatypesListPrivateMessageReports( + page = d.page, + limit = d.limit, + unresolved_only = d.unresolved_only, + ) + + override fun fromUni(d: LemmyapiDatatypesListCommentLikes): X11DatatypesListCommentLikes = + X11DatatypesListCommentLikes( + comment_id = d.comment_id, + page = d.page, + limit = d.limit, ) override fun fromUni(d: LemmyapiDatatypesListCommunities): X11DatatypesListCommunities = X11DatatypesListCommunities( - type_ = d.type_, - sort = d.sort, + type_ = V0ListingType.fromUniNullable(d.type_), + sort = V0SortType.fromUniNullable(d.sort), show_nsfw = d.show_nsfw, page = d.page, limit = d.limit, @@ -2154,21 +1632,6 @@ internal class Transformer : MapperGenerator { limit = d.limit, ) - override fun fromUni(d: LemmyapiDatatypesListPostReports): X11DatatypesListPostReports = - X11DatatypesListPostReports( - page = d.page, - limit = d.limit, - unresolved_only = d.unresolved_only, - community_id = d.community_id, - post_id = d.post_id, - ) - - override fun fromUni(d: LemmyapiDatatypesListPrivateMessageReports): X11DatatypesListPrivateMessageReports = X11DatatypesListPrivateMessageReports( - page = d.page, - limit = d.limit, - unresolved_only = d.unresolved_only, - ) - override fun fromUni(d: LemmyapiDatatypesListRegistrationApplications): X11DatatypesListRegistrationApplications = X11DatatypesListRegistrationApplications( unread_only = d.unread_only, page = d.page, @@ -2186,13 +1649,18 @@ internal class Transformer : MapperGenerator { totp_2fa_token = d.totp_2fa_token, ) - override fun fromUni(d: LemmyapiDatatypesMarkCommentReplyAsRead): X11DatatypesMarkCommentReplyAsRead = X11DatatypesMarkCommentReplyAsRead( - comment_reply_id = d.comment_reply_id, + fun fromUniR(d: MarkNotificationAsRead): X11DatatypesMarkCommentReplyAsRead = X11DatatypesMarkCommentReplyAsRead( + comment_reply_id = d.notification_id, + read = d.read, + ) + + fun fromUniM(d: MarkNotificationAsRead): X11DatatypesMarkPersonMentionAsRead = X11DatatypesMarkPersonMentionAsRead( + person_mention_id = d.notification_id, read = d.read, ) - override fun fromUni(d: LemmyapiDatatypesMarkPersonMentionAsRead): X11DatatypesMarkPersonMentionAsRead = X11DatatypesMarkPersonMentionAsRead( - person_mention_id = d.person_mention_id, + fun fromUniP(d: MarkNotificationAsRead): X11DatatypesMarkPrivateMessageAsRead = X11DatatypesMarkPrivateMessageAsRead( + private_message_id = d.notification_id, read = d.read, ) @@ -2202,11 +1670,6 @@ internal class Transformer : MapperGenerator { read = d.read, ) - override fun fromUni(d: LemmyapiDatatypesMarkPrivateMessageAsRead): X11DatatypesMarkPrivateMessageAsRead = X11DatatypesMarkPrivateMessageAsRead( - private_message_id = d.private_message_id, - read = d.read, - ) - override fun fromUni(d: LemmyapiDatatypesPasswordChangeAfterReset): X11DatatypesPasswordChangeAfterReset = X11DatatypesPasswordChangeAfterReset( token = d.token, password = d.password, @@ -2312,13 +1775,10 @@ internal class Transformer : MapperGenerator { X11DatatypesSaveUserSettings( show_nsfw = d.show_nsfw, blur_nsfw = d.blur_nsfw, - auto_expand = d.auto_expand, theme = d.theme, - default_sort_type = d.default_sort_type, - default_listing_type = d.default_listing_type, + default_sort_type = V0SortType.fromUniNullable(d.default_post_sort_type), + default_listing_type = V0ListingType.fromUniNullable(d.default_listing_type), interface_language = d.interface_language, - avatar = d.avatar, - banner = d.banner, display_name = d.display_name, email = d.email, bio = d.bio, @@ -2331,27 +1791,29 @@ internal class Transformer : MapperGenerator { discussion_languages = d.discussion_languages, open_links_in_new_tab = d.open_links_in_new_tab, infinite_scroll_enabled = d.infinite_scroll_enabled, - post_listing_mode = d.post_listing_mode, - enable_keyboard_navigation = d.enable_keyboard_navigation, - enable_animated_images = d.enable_animated_images, + post_listing_mode = V0PostListingMode.fromUniNullable(d.post_listing_mode), + enable_animated_images = d.animated_images_enabled, collapse_bot_comments = d.collapse_bot_comments, - show_scores = d.show_scores, + show_scores = d.show_score, show_upvotes = d.show_upvotes, - show_downvotes = d.show_downvotes, + show_downvotes = when (d.show_downvotes) { + VoteShow.ShowForOthers, VoteShow.Show -> true + VoteShow.Hide -> false + null -> null + }, show_upvote_percentage = d.show_upvote_percentage, ) override fun fromUni(d: LemmyapiDatatypesSearch): X11DatatypesSearch = X11DatatypesSearch( - q = d.q, + q = d.search_term, community_id = d.community_id, community_name = d.community_name, creator_id = d.creator_id, - type_ = d.type_, - sort = d.sort, - listing_type = d.listing_type, + type_ = V0SearchType.fromUniNullable(d.type_), + listing_type = V0ListingType.fromUniNullable(d.listing_type), page = d.page, limit = d.limit, - post_title_only = d.post_title_only, + post_title_only = d.title_only, ) override fun fromUni(d: LemmyapiDatatypesTransferCommunity): X11DatatypesTransferCommunity = diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/ActivityId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/ActivityId.kt index 386851e7..0dd03fdd 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/ActivityId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/ActivityId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x11.datatypes -typealias ActivityId = Long +internal typealias ActivityId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/BlockInstanceResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/BlockInstanceResponse.kt deleted file mode 100644 index 9f1307c7..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/BlockInstanceResponse.kt +++ /dev/null @@ -1,8 +0,0 @@ -package it.vercruysse.lemmyapi.v0.x19.x11.datatypes - -import kotlinx.serialization.Serializable - -@Serializable -internal data class BlockInstanceResponse( - val blocked: Boolean, -) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/CommentId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/CommentId.kt index 4c8a4e6d..a7b6ec8b 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/CommentId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/CommentId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x11.datatypes -typealias CommentId = Long +internal typealias CommentId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/CommentReplyId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/CommentReplyId.kt index 22ef803d..9814b43e 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/CommentReplyId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/CommentReplyId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x11.datatypes -typealias CommentReplyId = Long +internal typealias CommentReplyId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/CommentReplyView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/CommentReplyView.kt index 113a57b8..e071c8a2 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/CommentReplyView.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/CommentReplyView.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x11.datatypes -import it.vercruysse.lemmyapi.dto.SubscribedType +import it.vercruysse.lemmyapi.v0.enums.SubscribedType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/CommentReportId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/CommentReportId.kt index a68722e9..2b00abd4 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/CommentReportId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/CommentReportId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x11.datatypes -typealias CommentReportId = Long +internal typealias CommentReportId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/CommentReportView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/CommentReportView.kt index 9cf2bf20..c70fd60e 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/CommentReportView.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/CommentReportView.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x11.datatypes -import it.vercruysse.lemmyapi.dto.SubscribedType +import it.vercruysse.lemmyapi.v0.enums.SubscribedType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/CommentView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/CommentView.kt index e4a32d8a..97c0ab4d 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/CommentView.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/CommentView.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x11.datatypes -import it.vercruysse.lemmyapi.dto.SubscribedType +import it.vercruysse.lemmyapi.v0.enums.SubscribedType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/Community.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/Community.kt index 0c277924..6ca4e02f 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/Community.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/Community.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x11.datatypes -import it.vercruysse.lemmyapi.dto.CommunityVisibility +import it.vercruysse.lemmyapi.v0.enums.CommunityVisibility import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/CommunityId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/CommunityId.kt index 6034e489..5fa86a85 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/CommunityId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/CommunityId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x11.datatypes -typealias CommunityId = Long +internal typealias CommunityId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/CommunityView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/CommunityView.kt index ab095815..b8174219 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/CommunityView.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/CommunityView.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x11.datatypes -import it.vercruysse.lemmyapi.dto.SubscribedType +import it.vercruysse.lemmyapi.v0.enums.SubscribedType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/CreateCommunity.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/CreateCommunity.kt index fdab0948..bd1d5490 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/CreateCommunity.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/CreateCommunity.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x11.datatypes -import it.vercruysse.lemmyapi.dto.CommunityVisibility +import it.vercruysse.lemmyapi.v0.enums.CommunityVisibility import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/CreateSite.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/CreateSite.kt index 31b4b80e..499a0d54 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/CreateSite.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/CreateSite.kt @@ -1,9 +1,9 @@ package it.vercruysse.lemmyapi.v0.x19.x11.datatypes -import it.vercruysse.lemmyapi.dto.ListingType -import it.vercruysse.lemmyapi.dto.PostListingMode -import it.vercruysse.lemmyapi.dto.RegistrationMode -import it.vercruysse.lemmyapi.dto.SortType +import it.vercruysse.lemmyapi.v0.enums.ListingType +import it.vercruysse.lemmyapi.v0.enums.PostListingMode +import it.vercruysse.lemmyapi.v0.enums.RegistrationMode +import it.vercruysse.lemmyapi.v0.enums.SortType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/CustomEmojiId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/CustomEmojiId.kt index f3125bae..751f63ce 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/CustomEmojiId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/CustomEmojiId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x11.datatypes -typealias CustomEmojiId = Long +internal typealias CustomEmojiId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/EditCommunity.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/EditCommunity.kt index 5c212592..3218fb35 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/EditCommunity.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/EditCommunity.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x11.datatypes -import it.vercruysse.lemmyapi.dto.CommunityVisibility +import it.vercruysse.lemmyapi.v0.enums.CommunityVisibility import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/EditSite.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/EditSite.kt index ea5e7e98..9c30a327 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/EditSite.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/EditSite.kt @@ -1,9 +1,9 @@ package it.vercruysse.lemmyapi.v0.x19.x11.datatypes -import it.vercruysse.lemmyapi.dto.ListingType -import it.vercruysse.lemmyapi.dto.PostListingMode -import it.vercruysse.lemmyapi.dto.RegistrationMode -import it.vercruysse.lemmyapi.dto.SortType +import it.vercruysse.lemmyapi.v0.enums.ListingType +import it.vercruysse.lemmyapi.v0.enums.PostListingMode +import it.vercruysse.lemmyapi.v0.enums.RegistrationMode +import it.vercruysse.lemmyapi.v0.enums.SortType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/FeaturePost.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/FeaturePost.kt index 93d0b678..acb41037 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/FeaturePost.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/FeaturePost.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x11.datatypes -import it.vercruysse.lemmyapi.dto.PostFeatureType +import it.vercruysse.lemmyapi.v0.enums.PostFeatureType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/GetComments.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/GetComments.kt index 4efbd4ba..82596949 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/GetComments.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/GetComments.kt @@ -1,7 +1,7 @@ package it.vercruysse.lemmyapi.v0.x19.x11.datatypes -import it.vercruysse.lemmyapi.dto.CommentSortType -import it.vercruysse.lemmyapi.dto.ListingType +import it.vercruysse.lemmyapi.v0.enums.CommentSortType +import it.vercruysse.lemmyapi.v0.enums.ListingType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/GetModlog.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/GetModlog.kt index d1c54fd7..10c5eef0 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/GetModlog.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/GetModlog.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x11.datatypes -import it.vercruysse.lemmyapi.dto.ModlogActionType +import it.vercruysse.lemmyapi.v0.enums.ModlogActionType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/GetPersonDetails.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/GetPersonDetails.kt index b34697c3..0e011e6c 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/GetPersonDetails.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/GetPersonDetails.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x11.datatypes -import it.vercruysse.lemmyapi.dto.SortType +import it.vercruysse.lemmyapi.v0.enums.SortType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/GetPersonMentions.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/GetPersonMentions.kt index 2bad53d2..fc106d27 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/GetPersonMentions.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/GetPersonMentions.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x11.datatypes -import it.vercruysse.lemmyapi.dto.CommentSortType +import it.vercruysse.lemmyapi.v0.enums.CommentSortType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/GetPosts.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/GetPosts.kt index d1ae09b7..512f125b 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/GetPosts.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/GetPosts.kt @@ -1,7 +1,7 @@ package it.vercruysse.lemmyapi.v0.x19.x11.datatypes -import it.vercruysse.lemmyapi.dto.ListingType -import it.vercruysse.lemmyapi.dto.SortType +import it.vercruysse.lemmyapi.v0.enums.ListingType +import it.vercruysse.lemmyapi.v0.enums.SortType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/GetReplies.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/GetReplies.kt index c249249c..694fbc36 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/GetReplies.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/GetReplies.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x11.datatypes -import it.vercruysse.lemmyapi.dto.CommentSortType +import it.vercruysse.lemmyapi.v0.enums.CommentSortType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/InstanceId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/InstanceId.kt index de9a4e26..0e68613c 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/InstanceId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/InstanceId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x11.datatypes -typealias InstanceId = Long +internal typealias InstanceId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/LanguageId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/LanguageId.kt index 08900ae0..3c98874b 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/LanguageId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/LanguageId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x11.datatypes -typealias LanguageId = Long +internal typealias LanguageId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/ListCommunities.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/ListCommunities.kt index 0e3af85c..8d2af658 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/ListCommunities.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/ListCommunities.kt @@ -1,7 +1,7 @@ package it.vercruysse.lemmyapi.v0.x19.x11.datatypes -import it.vercruysse.lemmyapi.dto.ListingType -import it.vercruysse.lemmyapi.dto.SortType +import it.vercruysse.lemmyapi.v0.enums.ListingType +import it.vercruysse.lemmyapi.v0.enums.SortType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/LocalSite.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/LocalSite.kt index 4c3adce6..86f3595f 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/LocalSite.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/LocalSite.kt @@ -1,9 +1,9 @@ package it.vercruysse.lemmyapi.v0.x19.x11.datatypes -import it.vercruysse.lemmyapi.dto.ListingType -import it.vercruysse.lemmyapi.dto.PostListingMode -import it.vercruysse.lemmyapi.dto.RegistrationMode -import it.vercruysse.lemmyapi.dto.SortType +import it.vercruysse.lemmyapi.v0.enums.ListingType +import it.vercruysse.lemmyapi.v0.enums.PostListingMode +import it.vercruysse.lemmyapi.v0.enums.RegistrationMode +import it.vercruysse.lemmyapi.v0.enums.SortType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/LocalSiteId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/LocalSiteId.kt index cb501365..45f86717 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/LocalSiteId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/LocalSiteId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x11.datatypes -typealias LocalSiteId = Long +internal typealias LocalSiteId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/LocalUser.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/LocalUser.kt index c03bdbbd..d3457bd4 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/LocalUser.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/LocalUser.kt @@ -1,8 +1,8 @@ package it.vercruysse.lemmyapi.v0.x19.x11.datatypes -import it.vercruysse.lemmyapi.dto.ListingType -import it.vercruysse.lemmyapi.dto.PostListingMode -import it.vercruysse.lemmyapi.dto.SortType +import it.vercruysse.lemmyapi.v0.enums.ListingType +import it.vercruysse.lemmyapi.v0.enums.PostListingMode +import it.vercruysse.lemmyapi.v0.enums.SortType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/LocalUserId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/LocalUserId.kt index ea859b00..34eb3f84 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/LocalUserId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/LocalUserId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x11.datatypes -typealias LocalUserId = Long +internal typealias LocalUserId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/ModlogListParams.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/ModlogListParams.kt deleted file mode 100644 index f76a89e3..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/ModlogListParams.kt +++ /dev/null @@ -1,15 +0,0 @@ -package it.vercruysse.lemmyapi.v0.x19.x11.datatypes - -import kotlinx.serialization.Serializable - -@Serializable -internal data class ModlogListParams( - val community_id: CommunityId? = null, - val mod_person_id: PersonId? = null, - val other_person_id: PersonId? = null, - val post_id: PostId? = null, - val comment_id: CommentId? = null, - val page: Long? = null, - val limit: Long? = null, - val hide_modlog_names: Boolean, -) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/OpenGraphData.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/OpenGraphData.kt deleted file mode 100644 index ba364b50..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/OpenGraphData.kt +++ /dev/null @@ -1,11 +0,0 @@ -package it.vercruysse.lemmyapi.v0.x19.x11.datatypes - -import kotlinx.serialization.Serializable - -@Serializable -internal data class OpenGraphData( - val title: String? = null, - val description: String? = null, - val image: String? = null, - val embed_video_url: String? = null, -) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/PaginationCursor.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/PaginationCursor.kt index 790dfdad..f3c330d4 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/PaginationCursor.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/PaginationCursor.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x11.datatypes -typealias PaginationCursor = String +internal typealias PaginationCursor = String diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/PersonId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/PersonId.kt index 948f849a..60bec687 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/PersonId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/PersonId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x11.datatypes -typealias PersonId = Long +internal typealias PersonId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/PersonMentionId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/PersonMentionId.kt index 57d28429..32975731 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/PersonMentionId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/PersonMentionId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x11.datatypes -typealias PersonMentionId = Long +internal typealias PersonMentionId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/PersonMentionView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/PersonMentionView.kt index ef2b452f..2bfa94ed 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/PersonMentionView.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/PersonMentionView.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x11.datatypes -import it.vercruysse.lemmyapi.dto.SubscribedType +import it.vercruysse.lemmyapi.v0.enums.SubscribedType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/PostId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/PostId.kt index 883befeb..2b6a61a3 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/PostId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/PostId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x11.datatypes -typealias PostId = Long +internal typealias PostId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/PostReportId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/PostReportId.kt index d4f1f076..77eb3e97 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/PostReportId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/PostReportId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x11.datatypes -typealias PostReportId = Long +internal typealias PostReportId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/PostReportView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/PostReportView.kt index 27a9cdd3..418b2373 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/PostReportView.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/PostReportView.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x11.datatypes -import it.vercruysse.lemmyapi.dto.SubscribedType +import it.vercruysse.lemmyapi.v0.enums.SubscribedType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/PostView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/PostView.kt index 68542a2e..84cfaf8e 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/PostView.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/PostView.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x11.datatypes -import it.vercruysse.lemmyapi.dto.SubscribedType +import it.vercruysse.lemmyapi.v0.enums.SubscribedType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/PrivateMessageId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/PrivateMessageId.kt index 64251dec..43acfbb7 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/PrivateMessageId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/PrivateMessageId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x11.datatypes -typealias PrivateMessageId = Long +internal typealias PrivateMessageId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/PrivateMessageReportId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/PrivateMessageReportId.kt index f57670ff..4a283c3b 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/PrivateMessageReportId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/PrivateMessageReportId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x11.datatypes -typealias PrivateMessageReportId = Long +internal typealias PrivateMessageReportId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/RegistrationApplicationId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/RegistrationApplicationId.kt index 0dab6343..1bdfb368 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/RegistrationApplicationId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/RegistrationApplicationId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x11.datatypes -typealias RegistrationApplicationId = Long +internal typealias RegistrationApplicationId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/SaveUserSettings.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/SaveUserSettings.kt index 5beedadb..efb2f90f 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/SaveUserSettings.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/SaveUserSettings.kt @@ -1,8 +1,8 @@ package it.vercruysse.lemmyapi.v0.x19.x11.datatypes -import it.vercruysse.lemmyapi.dto.ListingType -import it.vercruysse.lemmyapi.dto.PostListingMode -import it.vercruysse.lemmyapi.dto.SortType +import it.vercruysse.lemmyapi.v0.enums.ListingType +import it.vercruysse.lemmyapi.v0.enums.PostListingMode +import it.vercruysse.lemmyapi.v0.enums.SortType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/Search.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/Search.kt index c973dbb6..20b5d9aa 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/Search.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/Search.kt @@ -1,8 +1,8 @@ package it.vercruysse.lemmyapi.v0.x19.x11.datatypes -import it.vercruysse.lemmyapi.dto.ListingType -import it.vercruysse.lemmyapi.dto.SearchType -import it.vercruysse.lemmyapi.dto.SortType +import it.vercruysse.lemmyapi.v0.enums.ListingType +import it.vercruysse.lemmyapi.v0.enums.SearchType +import it.vercruysse.lemmyapi.v0.enums.SortType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/SearchResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/SearchResponse.kt index def57b20..ea6ffd51 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/SearchResponse.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/SearchResponse.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x11.datatypes -import it.vercruysse.lemmyapi.dto.SearchType +import it.vercruysse.lemmyapi.v0.enums.SearchType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/SiteId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/SiteId.kt index 33213af0..77f12ff3 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/SiteId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/SiteId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x11.datatypes -typealias SiteId = Long +internal typealias SiteId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/VoteView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/VoteView.kt index a371b880..7090cf35 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/VoteView.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x11/datatypes/VoteView.kt @@ -6,5 +6,5 @@ import kotlinx.serialization.Serializable internal data class VoteView( val creator: Person, val creator_banned_from_community: Boolean, - val score: Long, + val score: Int, ) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/LemmyApiController.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/LemmyApiController.kt index 665f59ab..6f352f8b 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/LemmyApiController.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/LemmyApiController.kt @@ -707,7 +707,7 @@ internal class LemmyApiController(client: HttpClient, auth: String?) : * * @POST("site/block") */ - override suspend fun blockInstance(form: BlockInstance): Result = + override suspend fun blockInstance(form: BlockInstance): Result = client.postResult("site/block", form) /** diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/LemmyApiRouter.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/LemmyApiRouter.kt index d19b83b1..2e77a88a 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/LemmyApiRouter.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/LemmyApiRouter.kt @@ -615,7 +615,7 @@ internal abstract class LemmyApiRouter(client: HttpClient, auth: String?) : Auth * * @POST("site/block") */ - abstract suspend fun blockInstance(form: BlockInstance): Result + abstract suspend fun blockInstance(form: BlockInstance): Result /** * Generate a TOTP / two-factor secret. diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/LemmyApiUniWrapper.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/LemmyApiUniWrapper.kt index da34bbf5..e1565e10 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/LemmyApiUniWrapper.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/LemmyApiUniWrapper.kt @@ -3,13 +3,26 @@ package it.vercruysse.lemmyapi.v0.x19.x3 import io.github.z4kn4fein.semver.Version import io.ktor.client.HttpClient import it.vercruysse.lemmyapi.LemmyApiBaseController +import it.vercruysse.lemmyapi.datatypes.ListCustomEmojis +import it.vercruysse.lemmyapi.datatypes.ListCustomEmojisResponse +import it.vercruysse.lemmyapi.datatypes.ListLoginsResponse +import it.vercruysse.lemmyapi.datatypes.ListNotifications +import it.vercruysse.lemmyapi.datatypes.MarkNotificationAsRead +import it.vercruysse.lemmyapi.datatypes.MyUserInfo +import it.vercruysse.lemmyapi.datatypes.PagedResponse +import it.vercruysse.lemmyapi.datatypes.UnreadCountsResponse import it.vercruysse.lemmyapi.dto.ExportUserSettingsResponse import it.vercruysse.lemmyapi.dto.ImportUserSettings +import it.vercruysse.lemmyapi.enums.NotificationDataType +import it.vercruysse.lemmyapi.enums.NotificationType +import it.vercruysse.lemmyapi.pictrs.PictrsService +import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.GetPersonDetails // Based on tags/0.19.3-alpha.6 internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, baseUrl: String, auth: String?) : LemmyApiBaseController(client, actualVersion, baseUrl, auth) { private val api = LemmyApiController(client, auth) + private val pictrsApi = PictrsService(client, auth) private val transformer = Transformer() override var auth: String? @@ -17,6 +30,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba set(value) { super.auth = value api.auth = value + pictrsApi.auth = value } /** @@ -50,8 +64,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun getModlog( form: it.vercruysse.lemmyapi.datatypes.GetModlog, - ): Result = - api.getModlog(transformer.fromUni(form)).map(transformer::toUni) + ): Result> = notSupported() /** * Search lemmy. @@ -68,7 +81,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun resolveObject( form: it.vercruysse.lemmyapi.datatypes.ResolveObject, - ): Result = + ): Result = api.resolveObject(transformer.fromUni(form)).map(transformer::toUni) /** @@ -116,8 +129,8 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun listCommunities( form: it.vercruysse.lemmyapi.datatypes.ListCommunities, - ): Result = - api.listCommunities(transformer.fromUni(form)).map(transformer::toUni) + ): Result> = + api.listCommunities(transformer.fromUni(form)).map { PagedResponse(it.communities.map(transformer::toUni)) } /** * Follow / subscribe to a community. @@ -136,7 +149,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun blockCommunity( form: it.vercruysse.lemmyapi.datatypes.BlockCommunity, - ): Result = + ): Result = api.blockCommunity(transformer.fromUni(form)).map(transformer::toUni) /** @@ -166,8 +179,16 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun transferCommunity( form: it.vercruysse.lemmyapi.datatypes.TransferCommunity, - ): Result = - api.transferCommunity(transformer.fromUni(form)).map(transformer::toUni) + ): Result = + api.transferCommunity(transformer.fromUni(form)).map { communityResponse -> + val uniCommunityResponse = transformer.toUni(communityResponse) + it.vercruysse.lemmyapi.datatypes.GetCommunityResponse( + community_view = uniCommunityResponse.community_view, + site = null, + moderators = emptyList(), + discussion_languages = uniCommunityResponse.discussion_languages, + ) + } /** * Ban a user from a community. @@ -176,7 +197,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun banFromCommunity( form: it.vercruysse.lemmyapi.datatypes.BanFromCommunity, - ): Result = + ): Result = api.banFromCommunity(transformer.fromUni(form)).map(transformer::toUni) /** @@ -194,8 +215,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba * * @GET("federated_instances") */ - override suspend fun getFederatedInstances(): Result = - api.getFederatedInstances().map(transformer::toUni) + override suspend fun getFederatedInstances(form: it.vercruysse.lemmyapi.datatypes.GetFederatedInstances): Result> = notSupported() /** * Get / fetch a post. @@ -230,8 +250,8 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun getPosts( form: it.vercruysse.lemmyapi.datatypes.GetPosts, - ): Result = - api.getPosts(transformer.fromUni(form.toValidatedForm())).map(transformer::toUni) + ): Result> = + api.getPosts(transformer.fromUni(form.toValidatedForm())).map { PagedResponse(it.posts.map(transformer::toUni)) } /** * Delete a post. @@ -258,7 +278,27 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba * * @POST("post/mark_as_read") */ - override suspend fun markPostAsRead(form: it.vercruysse.lemmyapi.datatypes.MarkPostAsRead): Result = + override suspend fun markPostAsRead(form: it.vercruysse.lemmyapi.datatypes.MarkPostAsRead): Result = + api.markPostAsRead( + it.vercruysse.lemmyapi.v0.x19.x3.datatypes.MarkPostAsRead( + post_ids = listOf(form.post_id), + read = form.read, + ), + ).fold( + onSuccess = { _ -> + api.getPost(it.vercruysse.lemmyapi.v0.x19.x3.datatypes.GetPost(id = form.post_id)) + .map(transformer::toUni) + .map { post -> it.vercruysse.lemmyapi.datatypes.PostResponse(post_view = post.post_view) } + }, + onFailure = { Result.failure(it) }, + ) + + /** + * Mark multiple posts as read. + * + * @POST("post/mark_as_read") + */ + override suspend fun markManyPostsAsRead(form: it.vercruysse.lemmyapi.datatypes.MarkManyPostsAsRead): Result = api.markPostAsRead(transformer.fromUni(form)) /** @@ -318,14 +358,56 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba api.resolvePostReport(transformer.fromUni(form)).map(transformer::toUni) /** - * List post reports. - * - * @GET("post/report/list") + * List reports. */ - override suspend fun listPostReports( - form: it.vercruysse.lemmyapi.datatypes.ListPostReports, - ): Result = - api.listPostReports(transformer.fromUni(form)).map(transformer::toUni) + override suspend fun listReports( + form: it.vercruysse.lemmyapi.datatypes.ListReports, + ): Result> = + when (form.type_) { + it.vercruysse.lemmyapi.enums.ReportType.Communities -> notSupported() + + it.vercruysse.lemmyapi.enums.ReportType.Posts -> { + api.listPostReports(transformer.fromUniP(form)).map { resp -> + PagedResponse(resp.post_reports.map(transformer::toUni)) + } + } + + it.vercruysse.lemmyapi.enums.ReportType.Comments -> { + api.listCommentReports(transformer.fromUniC(form)).map { resp -> + PagedResponse(resp.comment_reports.map(transformer::toUni)) + } + } + + it.vercruysse.lemmyapi.enums.ReportType.PrivateMessages -> { + api.listPrivateMessageReports(transformer.fromUniPm(form)).map { resp -> + PagedResponse(resp.private_message_reports.map(transformer::toUni)) + } + } + + it.vercruysse.lemmyapi.enums.ReportType.All -> { + runCatching { + val postsResp = api.listPostReports(transformer.fromUniP(form)).getOrThrow() + val commentsResp = api.listCommentReports(transformer.fromUniC(form)).getOrThrow() + val privateMessagesResp = api.listPrivateMessageReports(transformer.fromUniPm(form)).getOrThrow() + + val allReports = mutableListOf() + + allReports.addAll( + postsResp.post_reports.map(transformer::toUni), + ) + + allReports.addAll( + commentsResp.comment_reports.map(transformer::toUni), + ) + + allReports.addAll( + privateMessagesResp.private_message_reports.map(transformer::toUni), + ) + + PagedResponse(allReports) + } + } + } /** * Fetch metadata for any given site. @@ -374,8 +456,8 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun getComments( form: it.vercruysse.lemmyapi.datatypes.GetComments, - ): Result = - api.getComments(transformer.fromUni(form)).map(transformer::toUni) + ): Result> = + api.getComments(transformer.fromUni(form)).map { PagedResponse(it.comments.map(transformer::toUni)) } /** * Delete a comment. @@ -397,16 +479,6 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba ): Result = api.removeComment(transformer.fromUni(form)).map(transformer::toUni) - /** - * Mark a comment as read. - * - * @POST("comment/mark_as_read") - */ - override suspend fun markCommentReplyAsRead( - form: it.vercruysse.lemmyapi.datatypes.MarkCommentReplyAsRead, - ): Result = - api.markCommentReplyAsRead(transformer.fromUni(form)).map(transformer::toUni) - /** * Distinguishes a comment (speak as moderator) * @@ -457,16 +529,6 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba ): Result = api.resolveCommentReport(transformer.fromUni(form)).map(transformer::toUni) - /** - * List comment reports. - * - * @GET("comment/report/list") - */ - override suspend fun listCommentReports( - form: it.vercruysse.lemmyapi.datatypes.ListCommentReports, - ): Result = - api.listCommentReports(transformer.fromUni(form)).map(transformer::toUni) - /** * Edit a private message. * @@ -487,16 +549,6 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba ): Result = api.createPrivateMessage(transformer.fromUni(form)).map(transformer::toUni) - /** - * Get / fetch private messages. - * - * @GET("private_message/list") - */ - override suspend fun getPrivateMessages( - form: it.vercruysse.lemmyapi.datatypes.GetPrivateMessages, - ): Result = - api.getPrivateMessages(transformer.fromUni(form)).map(transformer::toUni) - /** * Delete a private message. * @@ -507,16 +559,6 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba ): Result = api.deletePrivateMessage(transformer.fromUni(form)).map(transformer::toUni) - /** - * Mark a private message as read. - * - * @POST("private_message/mark_as_read") - */ - override suspend fun markPrivateMessageAsRead( - form: it.vercruysse.lemmyapi.datatypes.MarkPrivateMessageAsRead, - ): Result = - api.markPrivateMessageAsRead(transformer.fromUni(form)).map(transformer::toUni) - /** * Create a report for a private message. * @@ -537,16 +579,6 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba ): Result = api.resolvePrivateMessageReport(transformer.fromUni(form)).map(transformer::toUni) - /** - * List private message reports. - * - * @GET("private_message/report/list") - */ - override suspend fun listPrivateMessageReports( - form: it.vercruysse.lemmyapi.datatypes.ListPrivateMessageReports, - ): Result = - api.listPrivateMessageReports(transformer.fromUni(form)).map(transformer::toUni) - /** * Get the details for a person. * @@ -574,34 +606,47 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba api.getCaptcha().map(transformer::toUni) /** - * Get mentions for your user. - * - * @GET("user/mention") + * Mark a notification as read */ - override suspend fun getPersonMentions( - form: it.vercruysse.lemmyapi.datatypes.GetPersonMentions, - ): Result = - api.getPersonMentions(transformer.fromUni(form)).map(transformer::toUni) + override suspend fun markNotificationAsRead(form: MarkNotificationAsRead): Result = + when (form._kind) { + NotificationType.Mention -> api.markPersonMentionAsRead(transformer.fromUniM(form)).map { } + NotificationType.Reply -> api.markCommentReplyAsRead(transformer.fromUniR(form)).map { } + NotificationType.PrivateMessage -> api.markPrivateMessageAsRead(transformer.fromUniP(form)).map { } + NotificationType.Subscribed, NotificationType.ModAction -> notSupported() + null -> notSupported() + } /** - * Mark a person mention as read. - * - * @POST("user/mention/mark_as_read") + * List notifications. */ - override suspend fun markPersonMentionAsRead( - form: it.vercruysse.lemmyapi.datatypes.MarkPersonMentionAsRead, - ): Result = - api.markPersonMentionAsRead(transformer.fromUni(form)).map(transformer::toUni) + override suspend fun listNotifications(form: ListNotifications): Result> = + when (form.type_) { + NotificationDataType.All -> + runCatching { + val replies = api.getReplies(transformer.fromUniR(form)).getOrThrow().replies.map(transformer::toUni) + val mentionReplies = api.getPersonMentions(transformer.fromUniM(form)).getOrThrow().mentions.map(transformer::toUni) + val privateMessages = api.getPrivateMessages(transformer.fromUniP(form)).getOrThrow().private_messages.map(transformer::toUniPMV) + PagedResponse( + buildList { + addAll(replies) + addAll(mentionReplies) + addAll(privateMessages) + }, + ) + } - /** - * Get comment replies. - * - * @GET("user/replies") - */ - override suspend fun getReplies( - form: it.vercruysse.lemmyapi.datatypes.GetReplies, - ): Result = - api.getReplies(transformer.fromUni(form)).map(transformer::toUni) + NotificationDataType.Reply -> + api.getReplies(transformer.fromUniR(form)).map { resp -> PagedResponse(resp.replies.map(transformer::toUni)) } + + NotificationDataType.Mention -> + api.getPersonMentions(transformer.fromUniM(form)).map { resp -> PagedResponse(resp.mentions.map(transformer::toUni)) } + + NotificationDataType.PrivateMessage -> + api.getPrivateMessages(transformer.fromUniP(form)).map { resp -> PagedResponse(resp.private_messages.map(transformer::toUniPMV)) } + + NotificationDataType.Subscribed, NotificationDataType.ModAction -> Result.success(PagedResponse(emptyList())) + } /** * Ban a person from your site. @@ -610,7 +655,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun banPerson( form: it.vercruysse.lemmyapi.datatypes.BanPerson, - ): Result = + ): Result = api.banPerson(transformer.fromUni(form)).map(transformer::toUni) /** @@ -618,8 +663,8 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba * * @GET("user/banned") */ - override suspend fun getBannedPersons(): Result = - api.getBannedPersons().map(transformer::toUni) + override suspend fun getBannedPersons(): Result> = + api.getBannedPersons().map { resp -> PagedResponse(resp.banned.map(transformer::toUni)) } /** * Block a person. @@ -628,7 +673,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun blockPerson( form: it.vercruysse.lemmyapi.datatypes.BlockPerson, - ): Result = + ): Result = api.blockPerson(transformer.fromUni(form)).map(transformer::toUni) /** @@ -652,7 +697,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba * * @POST("user/password_reset") */ - override suspend fun resetPassword(form: it.vercruysse.lemmyapi.datatypes.PasswordReset): Result = + override suspend fun resetPassword(form: it.vercruysse.lemmyapi.datatypes.ResetPassword): Result = api.resetPassword(transformer.fromUni(form)) /** @@ -660,7 +705,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba * * @POST("user/password_change") */ - override suspend fun changePasswordAfterReset(form: it.vercruysse.lemmyapi.datatypes.PasswordChangeAfterReset): Result = + override suspend fun changePasswordAfterReset(form: it.vercruysse.lemmyapi.datatypes.ChangePasswordAfterReset): Result = api.changePasswordAfterReset(transformer.fromUni(form)) /** @@ -668,8 +713,8 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba * * @POST("user/mark_all_as_read") */ - override suspend fun markAllAsRead(): Result = - api.markAllAsRead().map(transformer::toUni) + override suspend fun markAllNotificationsAsRead(): Result = + api.markAllAsRead().map {} /** * Save your user settings. @@ -689,23 +734,16 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba ): Result = api.changePassword(transformer.fromUni(form)).map(transformer::toUni) - /** - * Get counts for your reports - * - * @GET("user/report_count") - */ - override suspend fun getReportCount( - form: it.vercruysse.lemmyapi.datatypes.GetReportCount, - ): Result = - api.getReportCount(transformer.fromUni(form)).map(transformer::toUni) - - /** - * Get your unread counts - * - * @GET("user/unread_count") - */ - override suspend fun getUnreadCount(): Result = - api.getUnreadCount().map(transformer::toUni) + override suspend fun getUnreadCounts(): Result = runCatching { + val d = api.getUnreadCount().getOrThrow() + val reportCount = api.getReportCount(it.vercruysse.lemmyapi.v0.x19.x3.datatypes.GetReportCount()).getOrNull() + val applicationCount = api.getUnreadRegistrationApplicationCount().getOrNull() + UnreadCountsResponse( + notification_count = d.replies + d.mentions + d.private_messages, + report_count = (reportCount?.post_reports ?: 0L) + (reportCount?.comment_reports ?: 0L) + (reportCount?.private_message_reports ?: 0L), + registration_application_count = applicationCount?.registration_applications, + ) + } /** * Verify your email @@ -740,14 +778,6 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba ): Result = api.addAdmin(transformer.fromUni(form)).map(transformer::toUni) - /** - * Get the unread registration applications count. - * - * @GET("admin/registration_application/count") - */ - override suspend fun getUnreadRegistrationApplicationCount(): Result = - api.getUnreadRegistrationApplicationCount().map(transformer::toUni) - /** * List the registration applications. * @@ -755,8 +785,8 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun listRegistrationApplications( form: it.vercruysse.lemmyapi.datatypes.ListRegistrationApplications, - ): Result = - api.listRegistrationApplications(transformer.fromUni(form)).map(transformer::toUni) + ): Result> = + api.listRegistrationApplications(transformer.fromUni(form)).map { resp -> PagedResponse(resp.registration_applications.map(transformer::toUni)) } /** * Approve a registration application @@ -828,15 +858,25 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba override suspend fun deleteCustomEmoji(form: it.vercruysse.lemmyapi.datatypes.DeleteCustomEmoji): Result = api.deleteCustomEmoji(transformer.fromUni(form)) + /** + * List custom emojis + * + * @GET("custom_emoji/list") + */ + override suspend fun listCustomEmojis(form: ListCustomEmojis): Result = + api.getSite().map { + ListCustomEmojisResponse(it.custom_emojis.map(transformer::toUni)) + } + /** * Block an instance. * * @POST("site/block") */ - override suspend fun blockInstance( - form: it.vercruysse.lemmyapi.datatypes.BlockInstance, - ): Result = - api.blockInstance(transformer.fromUni(form)).map(transformer::toUni) + override suspend fun userBlockInstanceCommunities( + form: it.vercruysse.lemmyapi.datatypes.UserBlockInstanceCommunitiesParams, + ): Result = + api.blockInstance(transformer.fromUni(form)) /** * Generate a TOTP / two-factor secret. @@ -857,9 +897,9 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba * * @POST("user/totp/update") */ - override suspend fun updateTotp( - form: it.vercruysse.lemmyapi.datatypes.UpdateTotp, - ): Result = + override suspend fun editTotp( + form: it.vercruysse.lemmyapi.datatypes.EditTotp, + ): Result = api.updateTotp(transformer.fromUni(form)).map(transformer::toUni) /** @@ -884,8 +924,8 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba * * @GET("user/list_logins") */ - override suspend fun listLogins(): Result> = - api.listLogins().map { it.map(transformer::toUni) } + override suspend fun listLogins(): Result = + api.listLogins().map { ListLoginsResponse(logins = it.map(transformer::toUni)) } /** * Returns an error message if your auth token is invalid @@ -908,8 +948,8 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun listPostLikes( form: it.vercruysse.lemmyapi.datatypes.ListPostLikes, - ): Result = - api.listPostLikes(transformer.fromUni(form)).map(transformer::toUni) + ): Result> = + api.listPostLikes(transformer.fromUni(form)).map { PagedResponse(it.post_likes.map(transformer::toUni)) } /** * List a comment's likes. Admin-only. @@ -918,8 +958,8 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun listCommentLikes( form: it.vercruysse.lemmyapi.datatypes.ListCommentLikes, - ): Result = - api.listCommentLikes(transformer.fromUni(form)).map(transformer::toUni) + ): Result> = + api.listCommentLikes(transformer.fromUni(form)).map { PagedResponse(it.comment_likes.map(transformer::toUni)) } /** * List all the media for your user @@ -928,25 +968,26 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun listMedia( form: it.vercruysse.lemmyapi.datatypes.ListMedia, - ): Result = - notSupported() + ): Result> = notSupported() /** * List all the media known to your instance. * * @GET("admin/list_all_media") */ - override suspend fun listAllMedia( + override suspend fun listMediaAdmin( form: it.vercruysse.lemmyapi.datatypes.ListMedia, - ): Result = - notSupported() + ): Result> = notSupported() /** * Hide a post from list views. * * @POST("post/hide") */ - override suspend fun hidePost(form: it.vercruysse.lemmyapi.datatypes.HidePost): Result = + override suspend fun hidePost(form: it.vercruysse.lemmyapi.datatypes.HidePost): Result = + notSupported() + + override suspend fun hidePosts(form: it.vercruysse.lemmyapi.datatypes.HidePosts): Result = notSupported() /** @@ -957,4 +998,238 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba override suspend fun getRegistrationApplication( form: it.vercruysse.lemmyapi.datatypes.GetRegistrationApplication, ): Result = notSupported() + + /** + * Get data of current user + * + * @GET("/account") + */ + override suspend fun getMyUser(): Result = + api.getSite() + .mapCatching { it.my_user ?: throw IllegalStateException("Auth invalid") } + .map { transformer.toUni(it) } + + /** + * List the content for a person. + * + * @GET("person/content") + */ + override suspend fun listPersonContent( + form: it.vercruysse.lemmyapi.datatypes.ListPersonContent, + ): Result> { + val getPersonDetailsForm = GetPersonDetails( + person_id = form.person_id, + username = form.username, + community_id = form.community_id, + page = form.page, + limit = form.limit, + ) + return api.getPersonDetails(getPersonDetailsForm).map { response -> + val comments = when (form.type_) { + it.vercruysse.lemmyapi.enums.PersonContentType.Posts -> emptyList() + else -> response.comments.map { transformer.toUni(it) } + } + val posts = when (form.type_) { + it.vercruysse.lemmyapi.enums.PersonContentType.Comments -> emptyList() + else -> response.posts.map { transformer.toUni(it) } + } + PagedResponse(items = comments + posts) + } + } + + override suspend fun uploadImage(image: ByteArray): Result = + pictrsApi.uploadImage(image) + + override suspend fun uploadCommunityBanner( + image: ByteArray, + form: it.vercruysse.lemmyapi.datatypes.CommunityIdQuery, + ): Result = + uploadAndApplyImage(image) { imageUrl -> + api.editCommunity( + it.vercruysse.lemmyapi.v0.x19.x3.datatypes.EditCommunity( + community_id = form.id, + banner = imageUrl, + ), + ).map {} + } + + override suspend fun uploadCommunityIcon( + image: ByteArray, + form: it.vercruysse.lemmyapi.datatypes.CommunityIdQuery, + ): Result = + uploadAndApplyImage(image) { imageUrl -> + api.editCommunity( + it.vercruysse.lemmyapi.v0.x19.x3.datatypes.EditCommunity( + community_id = form.id, + icon = imageUrl, + ), + ).map {} + } + + override suspend fun uploadSiteBanner(image: ByteArray): Result = + uploadAndApplyImage(image) { imageUrl -> + api.editSite( + it.vercruysse.lemmyapi.v0.x19.x3.datatypes.EditSite( + banner = imageUrl, + ), + ).map {} + } + + override suspend fun uploadSiteIcon(image: ByteArray): Result = + uploadAndApplyImage(image) { imageUrl -> + api.editSite( + it.vercruysse.lemmyapi.v0.x19.x3.datatypes.EditSite( + icon = imageUrl, + ), + ).map {} + } + + override suspend fun uploadUserAvatar(image: ByteArray): Result = + uploadAndApplyImage(image) { imageUrl -> + api.saveUserSettings( + it.vercruysse.lemmyapi.v0.x19.x3.datatypes.SaveUserSettings( + avatar = imageUrl, + ), + ) + } + + override suspend fun uploadUserBanner(image: ByteArray): Result = + uploadAndApplyImage(image) { imageUrl -> + api.saveUserSettings( + it.vercruysse.lemmyapi.v0.x19.x3.datatypes.SaveUserSettings( + banner = imageUrl, + ), + ) + } + + override suspend fun deleteUserAvatar(): Result = + api.saveUserSettings(it.vercruysse.lemmyapi.v0.x19.x3.datatypes.SaveUserSettings(avatar = "")) + + override suspend fun deleteUserBanner(): Result = + api.saveUserSettings(it.vercruysse.lemmyapi.v0.x19.x3.datatypes.SaveUserSettings(banner = "")) + + override suspend fun deleteCommunityBanner(form: it.vercruysse.lemmyapi.datatypes.CommunityIdQuery): Result = + api.editCommunity( + it.vercruysse.lemmyapi.v0.x19.x3.datatypes.EditCommunity( + community_id = form.id, + banner = "", + ), + ).map {} + + override suspend fun deleteCommunityIcon(form: it.vercruysse.lemmyapi.datatypes.CommunityIdQuery): Result = + api.editCommunity( + it.vercruysse.lemmyapi.v0.x19.x3.datatypes.EditCommunity( + community_id = form.id, + icon = "", + ), + ).map {} + + override suspend fun deleteSiteBanner(): Result = + api.editSite( + it.vercruysse.lemmyapi.v0.x19.x3.datatypes.EditSite( + banner = "", + ), + ).map {} + + override suspend fun deleteSiteIcon(): Result = + api.editSite( + it.vercruysse.lemmyapi.v0.x19.x3.datatypes.EditSite( + icon = "", + ), + ).map {} + + override suspend fun deleteMedia(form: it.vercruysse.lemmyapi.datatypes.DeleteImageParams): Result = + pictrsApi.deleteMedia(form) + + override suspend fun adminListUsers(form: it.vercruysse.lemmyapi.datatypes.AdminListUsers): Result> = notSupported() + + override suspend fun getRandomCommunity(form: it.vercruysse.lemmyapi.datatypes.GetRandomCommunity): Result = notSupported() + + override suspend fun createCommunityReport(form: it.vercruysse.lemmyapi.datatypes.CreateCommunityReport): Result = notSupported() + + override suspend fun resolveCommunityReport(form: it.vercruysse.lemmyapi.datatypes.ResolveCommunityReport): Result = notSupported() + + override suspend fun createCommunityTag(form: it.vercruysse.lemmyapi.datatypes.CreateCommunityTag): Result = notSupported() + + override suspend fun editCommunityTag(form: it.vercruysse.lemmyapi.datatypes.EditCommunityTag): Result = notSupported() + + override suspend fun deleteCommunityTag(form: it.vercruysse.lemmyapi.datatypes.DeleteCommunityTag): Result = notSupported() + + override suspend fun editCommunityNotifications(form: it.vercruysse.lemmyapi.datatypes.EditCommunityNotifications): Result = notSupported() + + override suspend fun approveCommunityPendingFollow(form: it.vercruysse.lemmyapi.datatypes.ApproveCommunityPendingFollower): Result = notSupported() + + override suspend fun listCommunityPendingFollows(form: it.vercruysse.lemmyapi.datatypes.ListCommunityPendingFollows): Result> = notSupported() + + override suspend fun modEditPost(form: it.vercruysse.lemmyapi.datatypes.ModEditPost): Result = notSupported() + + override suspend fun editPostNotifications(form: it.vercruysse.lemmyapi.datatypes.EditPostNotifications): Result = notSupported() + + override suspend fun warnPost(form: it.vercruysse.lemmyapi.datatypes.CreatePostWarning): Result = notSupported() + + override suspend fun getCommentsSlim(form: it.vercruysse.lemmyapi.datatypes.GetComments): Result> = notSupported() + + override suspend fun lockComment(form: it.vercruysse.lemmyapi.datatypes.LockComment): Result = notSupported() + + override suspend fun warnComment(form: it.vercruysse.lemmyapi.datatypes.CreateCommentWarning): Result = notSupported() + + override suspend fun notePerson(form: it.vercruysse.lemmyapi.datatypes.NotePerson): Result = notSupported() + + override suspend fun listPersonSaved(form: it.vercruysse.lemmyapi.datatypes.ListPersonSaved): Result> = notSupported() + + override suspend fun listPersonRead(form: it.vercruysse.lemmyapi.datatypes.ListPersonRead): Result> = notSupported() + + override suspend fun listPersonHidden(form: it.vercruysse.lemmyapi.datatypes.ListPersonHidden): Result> = notSupported() + + override suspend fun listPersonLiked(form: it.vercruysse.lemmyapi.datatypes.ListPersonLiked): Result> = notSupported() + + override suspend fun resendVerificationEmail(form: it.vercruysse.lemmyapi.datatypes.ResendVerificationEmail): Result = notSupported() + + override suspend fun authenticateWithOAuth(form: it.vercruysse.lemmyapi.datatypes.AuthenticateWithOauth): Result = notSupported() + + override suspend fun userBlockInstancePersons(form: it.vercruysse.lemmyapi.datatypes.UserBlockInstancePersonsParams): Result = notSupported() + + override suspend fun adminAllowInstance(form: it.vercruysse.lemmyapi.datatypes.AdminAllowInstanceParams): Result = notSupported() + + override suspend fun adminBlockInstance(form: it.vercruysse.lemmyapi.datatypes.AdminBlockInstanceParams): Result = notSupported() + + override suspend fun createTagline(form: it.vercruysse.lemmyapi.datatypes.CreateTagline): Result = notSupported() + + override suspend fun editTagline(form: it.vercruysse.lemmyapi.datatypes.EditTagline): Result = notSupported() + + override suspend fun deleteTagline(form: it.vercruysse.lemmyapi.datatypes.DeleteTagline): Result = notSupported() + + override suspend fun listTaglines(form: it.vercruysse.lemmyapi.datatypes.ListTaglines): Result> = notSupported() + + override suspend fun createOAuthProvider(form: it.vercruysse.lemmyapi.datatypes.CreateOAuthProvider): Result = notSupported() + + override suspend fun editOAuthProvider(form: it.vercruysse.lemmyapi.datatypes.EditOAuthProvider): Result = notSupported() + + override suspend fun deleteOAuthProvider(form: it.vercruysse.lemmyapi.datatypes.DeleteOAuthProvider): Result = notSupported() + + override suspend fun getMultiCommunity(form: it.vercruysse.lemmyapi.datatypes.GetMultiCommunity): Result = notSupported() + + override suspend fun createMultiCommunity(form: it.vercruysse.lemmyapi.datatypes.CreateMultiCommunity): Result = notSupported() + + override suspend fun editMultiCommunity(form: it.vercruysse.lemmyapi.datatypes.EditMultiCommunity): Result = notSupported() + + override suspend fun createMultiCommunityEntry(form: it.vercruysse.lemmyapi.datatypes.CreateOrDeleteMultiCommunityEntry): Result = notSupported() + + override suspend fun deleteMultiCommunityEntry(form: it.vercruysse.lemmyapi.datatypes.CreateOrDeleteMultiCommunityEntry): Result = notSupported() + + override suspend fun followMultiCommunity(form: it.vercruysse.lemmyapi.datatypes.FollowMultiCommunity): Result = notSupported() + + override suspend fun listMultiCommunities(form: it.vercruysse.lemmyapi.datatypes.ListMultiCommunities): Result> = notSupported() + + override suspend fun deleteMediaAdmin(form: it.vercruysse.lemmyapi.datatypes.DeleteImageParams): Result = notSupported() + + override suspend fun imageHealth(): Result = notSupported() + + override suspend fun listPersons(form: it.vercruysse.lemmyapi.datatypes.ListPersons): Result> = notSupported() + + override suspend fun createRegistrationInvitation(form: it.vercruysse.lemmyapi.datatypes.CreateInvitation): Result = notSupported() + + override suspend fun revokeRegistrationInvitation(form: it.vercruysse.lemmyapi.datatypes.RevokeInvitation): Result = notSupported() + + override suspend fun listRegistrationInvitations(form: it.vercruysse.lemmyapi.datatypes.ListInvitations): Result> = notSupported() } diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/MapperGenerator.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/MapperGenerator.kt index 39c2ef10..d05da1b9 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/MapperGenerator.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/MapperGenerator.kt @@ -4,15 +4,11 @@ import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.* internal interface MapperGenerator { - fun toUni(d: CommentReplyView): it.vercruysse.lemmyapi.datatypes.CommentReplyView - fun toUni(d: CommentReportView): it.vercruysse.lemmyapi.datatypes.CommentReportView fun toUni(d: CommentView): it.vercruysse.lemmyapi.datatypes.CommentView - fun toUni(d: Community): it.vercruysse.lemmyapi.datatypes.Community - - fun toUni(d: CommunityAggregates): it.vercruysse.lemmyapi.datatypes.CommunityAggregates + fun toUni(d: Community, counts: CommunityAggregates): it.vercruysse.lemmyapi.datatypes.Community fun toUni(d: CommunityView): it.vercruysse.lemmyapi.datatypes.CommunityView @@ -20,9 +16,7 @@ internal interface MapperGenerator { fun toUni(d: GetSiteResponse): it.vercruysse.lemmyapi.datatypes.GetSiteResponse - fun toUni(d: LocalSite): it.vercruysse.lemmyapi.datatypes.LocalSite - - fun toUni(d: PersonMentionView): it.vercruysse.lemmyapi.datatypes.PersonMentionView + fun toUni(d: LocalSite, counts: SiteAggregates): it.vercruysse.lemmyapi.datatypes.LocalSite fun toUni(d: PostReportView): it.vercruysse.lemmyapi.datatypes.PostReportView @@ -33,32 +27,18 @@ internal interface MapperGenerator { // Generated fun toUni(d: AddAdminResponse): it.vercruysse.lemmyapi.datatypes.AddAdminResponse fun toUni(d: AddModToCommunityResponse): it.vercruysse.lemmyapi.datatypes.AddModToCommunityResponse - fun toUni(d: AdminPurgeComment): it.vercruysse.lemmyapi.datatypes.AdminPurgeComment - fun toUni(d: AdminPurgeCommentView): it.vercruysse.lemmyapi.datatypes.AdminPurgeCommentView - fun toUni(d: AdminPurgeCommunity): it.vercruysse.lemmyapi.datatypes.AdminPurgeCommunity - fun toUni(d: AdminPurgeCommunityView): it.vercruysse.lemmyapi.datatypes.AdminPurgeCommunityView - fun toUni(d: AdminPurgePerson): it.vercruysse.lemmyapi.datatypes.AdminPurgePerson - fun toUni(d: AdminPurgePersonView): it.vercruysse.lemmyapi.datatypes.AdminPurgePersonView - fun toUni(d: AdminPurgePost): it.vercruysse.lemmyapi.datatypes.AdminPurgePost - fun toUni(d: AdminPurgePostView): it.vercruysse.lemmyapi.datatypes.AdminPurgePostView - fun toUni(d: BanFromCommunityResponse): it.vercruysse.lemmyapi.datatypes.BanFromCommunityResponse - fun toUni(d: BannedPersonsResponse): it.vercruysse.lemmyapi.datatypes.BannedPersonsResponse - fun toUni(d: BanPersonResponse): it.vercruysse.lemmyapi.datatypes.BanPersonResponse - fun toUni(d: BlockCommunityResponse): it.vercruysse.lemmyapi.datatypes.BlockCommunityResponse - fun toUni(d: BlockInstanceResponse): it.vercruysse.lemmyapi.datatypes.BlockInstanceResponse - fun toUni(d: BlockPersonResponse): it.vercruysse.lemmyapi.datatypes.BlockPersonResponse + fun toUni(d: BanFromCommunityResponse): it.vercruysse.lemmyapi.datatypes.PersonResponse + fun toUni(d: BanPersonResponse): it.vercruysse.lemmyapi.datatypes.PersonResponse + fun toUni(d: BlockCommunityResponse): it.vercruysse.lemmyapi.datatypes.CommunityResponse + fun toUni(d: BlockPersonResponse): it.vercruysse.lemmyapi.datatypes.PersonResponse fun toUni(d: CaptchaResponse): it.vercruysse.lemmyapi.datatypes.CaptchaResponse - fun toUni(d: Comment): it.vercruysse.lemmyapi.datatypes.Comment - fun toUni(d: CommentAggregates): it.vercruysse.lemmyapi.datatypes.CommentAggregates - fun toUni(d: CommentReply): it.vercruysse.lemmyapi.datatypes.CommentReply - fun toUni(d: CommentReplyResponse): it.vercruysse.lemmyapi.datatypes.CommentReplyResponse + fun toUni(d: Comment, counts: CommentAggregates): it.vercruysse.lemmyapi.datatypes.Comment fun toUni(d: CommentReport): it.vercruysse.lemmyapi.datatypes.CommentReport fun toUni(d: CommentReportResponse): it.vercruysse.lemmyapi.datatypes.CommentReportResponse fun toUni(d: CommentResponse): it.vercruysse.lemmyapi.datatypes.CommentResponse - fun toUni(d: CommunityBlockView): it.vercruysse.lemmyapi.datatypes.CommunityBlockView fun toUni(d: CommunityFollowerView): it.vercruysse.lemmyapi.datatypes.CommunityFollowerView fun toUni(d: CommunityModeratorView): it.vercruysse.lemmyapi.datatypes.CommunityModeratorView fun toUni(d: CommunityResponse): it.vercruysse.lemmyapi.datatypes.CommunityResponse @@ -67,75 +47,24 @@ internal interface MapperGenerator { fun toUni(d: CustomEmojiKeyword): it.vercruysse.lemmyapi.datatypes.CustomEmojiKeyword fun toUni(d: CustomEmojiResponse): it.vercruysse.lemmyapi.datatypes.CustomEmojiResponse fun toUni(d: CustomEmojiView): it.vercruysse.lemmyapi.datatypes.CustomEmojiView - fun toUni(d: FederatedInstances): it.vercruysse.lemmyapi.datatypes.FederatedInstances fun toUni(d: GenerateTotpSecretResponse): it.vercruysse.lemmyapi.datatypes.GenerateTotpSecretResponse fun toUni(d: GetCaptchaResponse): it.vercruysse.lemmyapi.datatypes.GetCaptchaResponse - fun toUni(d: GetCommentsResponse): it.vercruysse.lemmyapi.datatypes.GetCommentsResponse fun toUni(d: GetCommunityResponse): it.vercruysse.lemmyapi.datatypes.GetCommunityResponse - fun toUni(d: GetFederatedInstancesResponse): it.vercruysse.lemmyapi.datatypes.GetFederatedInstancesResponse - fun toUni(d: GetModlogResponse): it.vercruysse.lemmyapi.datatypes.GetModlogResponse fun toUni(d: GetPersonDetailsResponse): it.vercruysse.lemmyapi.datatypes.GetPersonDetailsResponse - fun toUni(d: GetPersonMentionsResponse): it.vercruysse.lemmyapi.datatypes.GetPersonMentionsResponse fun toUni(d: GetPostResponse): it.vercruysse.lemmyapi.datatypes.GetPostResponse - fun toUni(d: GetPostsResponse): it.vercruysse.lemmyapi.datatypes.GetPostsResponse - fun toUni(d: GetRepliesResponse): it.vercruysse.lemmyapi.datatypes.GetRepliesResponse - fun toUni(d: GetReportCountResponse): it.vercruysse.lemmyapi.datatypes.GetReportCountResponse fun toUni(d: GetSiteMetadataResponse): it.vercruysse.lemmyapi.datatypes.GetSiteMetadataResponse - - fun toUni(d: GetUnreadCountResponse): it.vercruysse.lemmyapi.datatypes.GetUnreadCountResponse - fun toUni( - d: GetUnreadRegistrationApplicationCountResponse, - ): it.vercruysse.lemmyapi.datatypes.GetUnreadRegistrationApplicationCountResponse fun toUni(d: Instance): it.vercruysse.lemmyapi.datatypes.Instance - fun toUni(d: InstanceBlockView): it.vercruysse.lemmyapi.datatypes.InstanceBlockView - fun toUni(d: InstanceWithFederationState): it.vercruysse.lemmyapi.datatypes.InstanceWithFederationState fun toUni(d: Language): it.vercruysse.lemmyapi.datatypes.Language - fun toUni(d: ListCommentLikesResponse): it.vercruysse.lemmyapi.datatypes.ListCommentLikesResponse - fun toUni(d: ListCommentReportsResponse): it.vercruysse.lemmyapi.datatypes.ListCommentReportsResponse - fun toUni(d: ListCommunitiesResponse): it.vercruysse.lemmyapi.datatypes.ListCommunitiesResponse - fun toUni(d: ListPostLikesResponse): it.vercruysse.lemmyapi.datatypes.ListPostLikesResponse - fun toUni(d: ListPostReportsResponse): it.vercruysse.lemmyapi.datatypes.ListPostReportsResponse - fun toUni(d: ListPrivateMessageReportsResponse): it.vercruysse.lemmyapi.datatypes.ListPrivateMessageReportsResponse - fun toUni(d: ListRegistrationApplicationsResponse): it.vercruysse.lemmyapi.datatypes.ListRegistrationApplicationsResponse - fun toUni(d: LocalSiteRateLimit): it.vercruysse.lemmyapi.datatypes.LocalSiteRateLimit fun toUni(d: LocalUser): it.vercruysse.lemmyapi.datatypes.LocalUser fun toUni(d: LocalUserView): it.vercruysse.lemmyapi.datatypes.LocalUserView fun toUni(d: LoginResponse): it.vercruysse.lemmyapi.datatypes.LoginResponse fun toUni(d: LoginToken): it.vercruysse.lemmyapi.datatypes.LoginToken - fun toUni(d: ModAdd): it.vercruysse.lemmyapi.datatypes.ModAdd - fun toUni(d: ModAddCommunity): it.vercruysse.lemmyapi.datatypes.ModAddCommunity - fun toUni(d: ModAddCommunityView): it.vercruysse.lemmyapi.datatypes.ModAddCommunityView - fun toUni(d: ModAddView): it.vercruysse.lemmyapi.datatypes.ModAddView - fun toUni(d: ModBan): it.vercruysse.lemmyapi.datatypes.ModBan - fun toUni(d: ModBanFromCommunity): it.vercruysse.lemmyapi.datatypes.ModBanFromCommunity - fun toUni(d: ModBanFromCommunityView): it.vercruysse.lemmyapi.datatypes.ModBanFromCommunityView - fun toUni(d: ModBanView): it.vercruysse.lemmyapi.datatypes.ModBanView - fun toUni(d: ModFeaturePost): it.vercruysse.lemmyapi.datatypes.ModFeaturePost - fun toUni(d: ModFeaturePostView): it.vercruysse.lemmyapi.datatypes.ModFeaturePostView - fun toUni(d: ModHideCommunity): it.vercruysse.lemmyapi.datatypes.ModHideCommunity - fun toUni(d: ModHideCommunityView): it.vercruysse.lemmyapi.datatypes.ModHideCommunityView - fun toUni(d: ModLockPost): it.vercruysse.lemmyapi.datatypes.ModLockPost - fun toUni(d: ModLockPostView): it.vercruysse.lemmyapi.datatypes.ModLockPostView - fun toUni(d: ModlogListParams): it.vercruysse.lemmyapi.datatypes.ModlogListParams - fun toUni(d: ModRemoveComment): it.vercruysse.lemmyapi.datatypes.ModRemoveComment - fun toUni(d: ModRemoveCommentView): it.vercruysse.lemmyapi.datatypes.ModRemoveCommentView - fun toUni(d: ModRemoveCommunity): it.vercruysse.lemmyapi.datatypes.ModRemoveCommunity - fun toUni(d: ModRemoveCommunityView): it.vercruysse.lemmyapi.datatypes.ModRemoveCommunityView - fun toUni(d: ModRemovePost): it.vercruysse.lemmyapi.datatypes.ModRemovePost - fun toUni(d: ModRemovePostView): it.vercruysse.lemmyapi.datatypes.ModRemovePostView - fun toUni(d: ModTransferCommunity): it.vercruysse.lemmyapi.datatypes.ModTransferCommunity - fun toUni(d: ModTransferCommunityView): it.vercruysse.lemmyapi.datatypes.ModTransferCommunityView fun toUni(d: MyUserInfo): it.vercruysse.lemmyapi.datatypes.MyUserInfo - fun toUni(d: Person): it.vercruysse.lemmyapi.datatypes.Person - fun toUni(d: PersonAggregates): it.vercruysse.lemmyapi.datatypes.PersonAggregates - fun toUni(d: PersonBlockView): it.vercruysse.lemmyapi.datatypes.PersonBlockView - fun toUni(d: PersonMention): it.vercruysse.lemmyapi.datatypes.PersonMention - fun toUni(d: PersonMentionResponse): it.vercruysse.lemmyapi.datatypes.PersonMentionResponse + fun toUni(d: Person, counts: PersonAggregates): it.vercruysse.lemmyapi.datatypes.Person fun toUni(d: PersonView): it.vercruysse.lemmyapi.datatypes.PersonView - fun toUni(d: Post): it.vercruysse.lemmyapi.datatypes.Post - fun toUni(d: PostAggregates): it.vercruysse.lemmyapi.datatypes.PostAggregates + fun toUni(d: Post, counts: PostAggregates): it.vercruysse.lemmyapi.datatypes.Post fun toUni(d: PostReport): it.vercruysse.lemmyapi.datatypes.PostReport fun toUni(d: PostReportResponse): it.vercruysse.lemmyapi.datatypes.PostReportResponse @@ -146,20 +75,18 @@ internal interface MapperGenerator { fun toUni(d: PrivateMessageReportResponse): it.vercruysse.lemmyapi.datatypes.PrivateMessageReportResponse fun toUni(d: PrivateMessageReportView): it.vercruysse.lemmyapi.datatypes.PrivateMessageReportView fun toUni(d: PrivateMessageResponse): it.vercruysse.lemmyapi.datatypes.PrivateMessageResponse - fun toUni(d: PrivateMessagesResponse): it.vercruysse.lemmyapi.datatypes.PrivateMessagesResponse fun toUni(d: PrivateMessageView): it.vercruysse.lemmyapi.datatypes.PrivateMessageView - fun toUni(d: ReadableFederationState): it.vercruysse.lemmyapi.datatypes.ReadableFederationState + fun toUni(d: ReadableFederationState): it.vercruysse.lemmyapi.datatypes.FederationQueueState fun toUni(d: RegistrationApplication): it.vercruysse.lemmyapi.datatypes.RegistrationApplication fun toUni(d: RegistrationApplicationResponse): it.vercruysse.lemmyapi.datatypes.RegistrationApplicationResponse fun toUni(d: RegistrationApplicationView): it.vercruysse.lemmyapi.datatypes.RegistrationApplicationView - fun toUni(d: ResolveObjectResponse): it.vercruysse.lemmyapi.datatypes.ResolveObjectResponse + fun toUni(d: ResolveObjectResponse): it.vercruysse.lemmyapi.datatypes.SearchResponse fun toUni(d: SearchResponse): it.vercruysse.lemmyapi.datatypes.SearchResponse fun toUni(d: Site): it.vercruysse.lemmyapi.datatypes.Site - fun toUni(d: SiteAggregates): it.vercruysse.lemmyapi.datatypes.SiteAggregates fun toUni(d: SiteResponse): it.vercruysse.lemmyapi.datatypes.SiteResponse fun toUni(d: SiteView): it.vercruysse.lemmyapi.datatypes.SiteView fun toUni(d: Tagline): it.vercruysse.lemmyapi.datatypes.Tagline - fun toUni(d: UpdateTotpResponse): it.vercruysse.lemmyapi.datatypes.UpdateTotpResponse + fun toUni(d: UpdateTotpResponse): it.vercruysse.lemmyapi.datatypes.EditTotpResponse // body mappings fun fromUni(d: it.vercruysse.lemmyapi.datatypes.AddAdmin): AddAdmin @@ -168,7 +95,7 @@ internal interface MapperGenerator { fun fromUni(d: it.vercruysse.lemmyapi.datatypes.BanFromCommunity): BanFromCommunity fun fromUni(d: it.vercruysse.lemmyapi.datatypes.BanPerson): BanPerson fun fromUni(d: it.vercruysse.lemmyapi.datatypes.BlockCommunity): BlockCommunity - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.BlockInstance): BlockInstance + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.UserBlockInstanceCommunitiesParams): BlockInstance fun fromUni(d: it.vercruysse.lemmyapi.datatypes.BlockPerson): BlockPerson fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ChangePassword): ChangePassword fun fromUni(d: it.vercruysse.lemmyapi.datatypes.CreateComment): CreateComment @@ -202,29 +129,23 @@ internal interface MapperGenerator { fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetCommunity): GetCommunity fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetModlog): GetModlog fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPersonDetails): GetPersonDetails - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPersonMentions): GetPersonMentions fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPost): GetPost fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPosts): GetPosts - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPrivateMessages): GetPrivateMessages - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetReplies): GetReplies - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetReportCount): GetReportCount + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetSiteMetadata): GetSiteMetadata fun fromUni(d: it.vercruysse.lemmyapi.datatypes.HideCommunity): HideCommunity + fun fromUniC(d: it.vercruysse.lemmyapi.datatypes.ListReports): ListCommentReports + fun fromUniP(d: it.vercruysse.lemmyapi.datatypes.ListReports): ListPostReports + fun fromUniPm(d: it.vercruysse.lemmyapi.datatypes.ListReports): ListPrivateMessageReports fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListCommentLikes): ListCommentLikes - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListCommentReports): ListCommentReports fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListCommunities): ListCommunities fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListPostLikes): ListPostLikes - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListPostReports): ListPostReports - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListPrivateMessageReports): ListPrivateMessageReports fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListRegistrationApplications): ListRegistrationApplications fun fromUni(d: it.vercruysse.lemmyapi.datatypes.LockPost): LockPost fun fromUni(d: it.vercruysse.lemmyapi.datatypes.Login): Login - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.MarkCommentReplyAsRead): MarkCommentReplyAsRead - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.MarkPersonMentionAsRead): MarkPersonMentionAsRead - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.MarkPostAsRead): MarkPostAsRead - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.MarkPrivateMessageAsRead): MarkPrivateMessageAsRead - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PasswordChangeAfterReset): PasswordChangeAfterReset - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PasswordReset): PasswordReset + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.MarkManyPostsAsRead): MarkPostAsRead + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ChangePasswordAfterReset): PasswordChangeAfterReset + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ResetPassword): PasswordReset fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PurgeComment): PurgeComment fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PurgeCommunity): PurgeCommunity fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PurgePerson): PurgePerson @@ -242,6 +163,6 @@ internal interface MapperGenerator { fun fromUni(d: it.vercruysse.lemmyapi.datatypes.SaveUserSettings): SaveUserSettings fun fromUni(d: it.vercruysse.lemmyapi.datatypes.Search): Search fun fromUni(d: it.vercruysse.lemmyapi.datatypes.TransferCommunity): TransferCommunity - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.UpdateTotp): UpdateTotp + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.EditTotp): UpdateTotp fun fromUni(d: it.vercruysse.lemmyapi.datatypes.VerifyEmail): VerifyEmail } diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/Transformer.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/Transformer.kt index 62705af2..5322644d 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/Transformer.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/Transformer.kt @@ -1,50 +1,43 @@ package it.vercruysse.lemmyapi.v0.x19.x3 +import it.vercruysse.lemmyapi.datatypes.CommentActions +import it.vercruysse.lemmyapi.datatypes.CommunityActions import it.vercruysse.lemmyapi.datatypes.LinkMetadata -import it.vercruysse.lemmyapi.dto.CommunityVisibility -import it.vercruysse.lemmyapi.dto.PostListingMode -import it.vercruysse.lemmyapi.dto.SortType -import it.vercruysse.lemmyapi.dto.SubscribedType +import it.vercruysse.lemmyapi.datatypes.MarkNotificationAsRead +import it.vercruysse.lemmyapi.datatypes.Notification +import it.vercruysse.lemmyapi.datatypes.NotificationView +import it.vercruysse.lemmyapi.datatypes.PersonActions +import it.vercruysse.lemmyapi.datatypes.PostActions +import it.vercruysse.lemmyapi.enums.CommentSortType +import it.vercruysse.lemmyapi.enums.CommunityFollowerState +import it.vercruysse.lemmyapi.enums.CommunityVisibility +import it.vercruysse.lemmyapi.enums.FederationMode +import it.vercruysse.lemmyapi.enums.ImageMode +import it.vercruysse.lemmyapi.enums.NotificationType +import it.vercruysse.lemmyapi.enums.PostListingMode +import it.vercruysse.lemmyapi.enums.SortType +import it.vercruysse.lemmyapi.enums.VoteShow +import it.vercruysse.lemmyapi.utils.toAt import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.SiteMetadata import it.vercruysse.lemmyapi.datatypes.AddAdmin as LemmyapiDatatypesAddAdmin import it.vercruysse.lemmyapi.datatypes.AddAdminResponse as LemmyapiDatatypesAddAdminResponse import it.vercruysse.lemmyapi.datatypes.AddModToCommunity as LemmyapiDatatypesAddModToCommunity import it.vercruysse.lemmyapi.datatypes.AddModToCommunityResponse as LemmyapiDatatypesAddModToCommunityResponse -import it.vercruysse.lemmyapi.datatypes.AdminPurgeComment as LemmyapiDatatypesAdminPurgeComment -import it.vercruysse.lemmyapi.datatypes.AdminPurgeCommentView as LemmyapiDatatypesAdminPurgeCommentView -import it.vercruysse.lemmyapi.datatypes.AdminPurgeCommunity as LemmyapiDatatypesAdminPurgeCommunity -import it.vercruysse.lemmyapi.datatypes.AdminPurgeCommunityView as LemmyapiDatatypesAdminPurgeCommunityView -import it.vercruysse.lemmyapi.datatypes.AdminPurgePerson as LemmyapiDatatypesAdminPurgePerson -import it.vercruysse.lemmyapi.datatypes.AdminPurgePersonView as LemmyapiDatatypesAdminPurgePersonView -import it.vercruysse.lemmyapi.datatypes.AdminPurgePost as LemmyapiDatatypesAdminPurgePost -import it.vercruysse.lemmyapi.datatypes.AdminPurgePostView as LemmyapiDatatypesAdminPurgePostView import it.vercruysse.lemmyapi.datatypes.ApproveRegistrationApplication as LemmyapiDatatypesApproveRegistrationApplication import it.vercruysse.lemmyapi.datatypes.BanFromCommunity as LemmyapiDatatypesBanFromCommunity -import it.vercruysse.lemmyapi.datatypes.BanFromCommunityResponse as LemmyapiDatatypesBanFromCommunityResponse import it.vercruysse.lemmyapi.datatypes.BanPerson as LemmyapiDatatypesBanPerson -import it.vercruysse.lemmyapi.datatypes.BanPersonResponse as LemmyapiDatatypesBanPersonResponse -import it.vercruysse.lemmyapi.datatypes.BannedPersonsResponse as LemmyapiDatatypesBannedPersonsResponse import it.vercruysse.lemmyapi.datatypes.BlockCommunity as LemmyapiDatatypesBlockCommunity -import it.vercruysse.lemmyapi.datatypes.BlockCommunityResponse as LemmyapiDatatypesBlockCommunityResponse -import it.vercruysse.lemmyapi.datatypes.BlockInstance as LemmyapiDatatypesBlockInstance -import it.vercruysse.lemmyapi.datatypes.BlockInstanceResponse as LemmyapiDatatypesBlockInstanceResponse import it.vercruysse.lemmyapi.datatypes.BlockPerson as LemmyapiDatatypesBlockPerson -import it.vercruysse.lemmyapi.datatypes.BlockPersonResponse as LemmyapiDatatypesBlockPersonResponse import it.vercruysse.lemmyapi.datatypes.CaptchaResponse as LemmyapiDatatypesCaptchaResponse import it.vercruysse.lemmyapi.datatypes.ChangePassword as LemmyapiDatatypesChangePassword +import it.vercruysse.lemmyapi.datatypes.ChangePasswordAfterReset as LemmyapiDatatypesPasswordChangeAfterReset import it.vercruysse.lemmyapi.datatypes.Comment as LemmyapiDatatypesComment -import it.vercruysse.lemmyapi.datatypes.CommentAggregates as LemmyapiDatatypesCommentAggregates -import it.vercruysse.lemmyapi.datatypes.CommentReply as LemmyapiDatatypesCommentReply -import it.vercruysse.lemmyapi.datatypes.CommentReplyResponse as LemmyapiDatatypesCommentReplyResponse -import it.vercruysse.lemmyapi.datatypes.CommentReplyView as LemmyapiDatatypesCommentReplyView import it.vercruysse.lemmyapi.datatypes.CommentReport as LemmyapiDatatypesCommentReport import it.vercruysse.lemmyapi.datatypes.CommentReportResponse as LemmyapiDatatypesCommentReportResponse import it.vercruysse.lemmyapi.datatypes.CommentReportView as LemmyapiDatatypesCommentReportView import it.vercruysse.lemmyapi.datatypes.CommentResponse as LemmyapiDatatypesCommentResponse import it.vercruysse.lemmyapi.datatypes.CommentView as LemmyapiDatatypesCommentView import it.vercruysse.lemmyapi.datatypes.Community as LemmyapiDatatypesCommunity -import it.vercruysse.lemmyapi.datatypes.CommunityAggregates as LemmyapiDatatypesCommunityAggregates -import it.vercruysse.lemmyapi.datatypes.CommunityBlockView as LemmyapiDatatypesCommunityBlockView import it.vercruysse.lemmyapi.datatypes.CommunityFollowerView as LemmyapiDatatypesCommunityFollowerView import it.vercruysse.lemmyapi.datatypes.CommunityModeratorView as LemmyapiDatatypesCommunityModeratorView import it.vercruysse.lemmyapi.datatypes.CommunityResponse as LemmyapiDatatypesCommunityResponse @@ -77,56 +70,34 @@ import it.vercruysse.lemmyapi.datatypes.EditCustomEmoji as LemmyapiDatatypesEdit import it.vercruysse.lemmyapi.datatypes.EditPost as LemmyapiDatatypesEditPost import it.vercruysse.lemmyapi.datatypes.EditPrivateMessage as LemmyapiDatatypesEditPrivateMessage import it.vercruysse.lemmyapi.datatypes.EditSite as LemmyapiDatatypesEditSite +import it.vercruysse.lemmyapi.datatypes.EditTotp as LemmyapiDatatypesUpdateTotp +import it.vercruysse.lemmyapi.datatypes.EditTotpResponse as LemmyapiDatatypesUpdateTotpResponse import it.vercruysse.lemmyapi.datatypes.FeaturePost as LemmyapiDatatypesFeaturePost -import it.vercruysse.lemmyapi.datatypes.FederatedInstances as LemmyapiDatatypesFederatedInstances +import it.vercruysse.lemmyapi.datatypes.FederationQueueState as LemmyapiDatatypesReadableFederationState import it.vercruysse.lemmyapi.datatypes.FollowCommunity as LemmyapiDatatypesFollowCommunity import it.vercruysse.lemmyapi.datatypes.GenerateTotpSecretResponse as LemmyapiDatatypesGenerateTotpSecretResponse import it.vercruysse.lemmyapi.datatypes.GetCaptchaResponse as LemmyapiDatatypesGetCaptchaResponse import it.vercruysse.lemmyapi.datatypes.GetComment as LemmyapiDatatypesGetComment import it.vercruysse.lemmyapi.datatypes.GetComments as LemmyapiDatatypesGetComments -import it.vercruysse.lemmyapi.datatypes.GetCommentsResponse as LemmyapiDatatypesGetCommentsResponse import it.vercruysse.lemmyapi.datatypes.GetCommunity as LemmyapiDatatypesGetCommunity import it.vercruysse.lemmyapi.datatypes.GetCommunityResponse as LemmyapiDatatypesGetCommunityResponse -import it.vercruysse.lemmyapi.datatypes.GetFederatedInstancesResponse as LemmyapiDatatypesGetFederatedInstancesResponse import it.vercruysse.lemmyapi.datatypes.GetModlog as LemmyapiDatatypesGetModlog -import it.vercruysse.lemmyapi.datatypes.GetModlogResponse as LemmyapiDatatypesGetModlogResponse import it.vercruysse.lemmyapi.datatypes.GetPersonDetails as LemmyapiDatatypesGetPersonDetails import it.vercruysse.lemmyapi.datatypes.GetPersonDetailsResponse as LemmyapiDatatypesGetPersonDetailsResponse -import it.vercruysse.lemmyapi.datatypes.GetPersonMentions as LemmyapiDatatypesGetPersonMentions -import it.vercruysse.lemmyapi.datatypes.GetPersonMentionsResponse as LemmyapiDatatypesGetPersonMentionsResponse import it.vercruysse.lemmyapi.datatypes.GetPost as LemmyapiDatatypesGetPost import it.vercruysse.lemmyapi.datatypes.GetPostResponse as LemmyapiDatatypesGetPostResponse import it.vercruysse.lemmyapi.datatypes.GetPosts as LemmyapiDatatypesGetPosts -import it.vercruysse.lemmyapi.datatypes.GetPostsResponse as LemmyapiDatatypesGetPostsResponse -import it.vercruysse.lemmyapi.datatypes.GetPrivateMessages as LemmyapiDatatypesGetPrivateMessages -import it.vercruysse.lemmyapi.datatypes.GetReplies as LemmyapiDatatypesGetReplies -import it.vercruysse.lemmyapi.datatypes.GetRepliesResponse as LemmyapiDatatypesGetRepliesResponse -import it.vercruysse.lemmyapi.datatypes.GetReportCount as LemmyapiDatatypesGetReportCount -import it.vercruysse.lemmyapi.datatypes.GetReportCountResponse as LemmyapiDatatypesGetReportCountResponse import it.vercruysse.lemmyapi.datatypes.GetSiteMetadata as LemmyapiDatatypesGetSiteMetadata import it.vercruysse.lemmyapi.datatypes.GetSiteMetadataResponse as LemmyapiDatatypesGetSiteMetadataResponse import it.vercruysse.lemmyapi.datatypes.GetSiteResponse as LemmyapiDatatypesGetSiteResponse -import it.vercruysse.lemmyapi.datatypes.GetUnreadCountResponse as LemmyapiDatatypesGetUnreadCountResponse -import it.vercruysse.lemmyapi.datatypes.GetUnreadRegistrationApplicationCountResponse as LemmyapiDatatypesGetUnreadRegistrationApplicationCountResponse import it.vercruysse.lemmyapi.datatypes.HideCommunity as LemmyapiDatatypesHideCommunity import it.vercruysse.lemmyapi.datatypes.Instance as LemmyapiDatatypesInstance -import it.vercruysse.lemmyapi.datatypes.InstanceBlockView as LemmyapiDatatypesInstanceBlockView -import it.vercruysse.lemmyapi.datatypes.InstanceWithFederationState as LemmyapiDatatypesInstanceWithFederationState import it.vercruysse.lemmyapi.datatypes.Language as LemmyapiDatatypesLanguage import it.vercruysse.lemmyapi.datatypes.ListCommentLikes as LemmyapiDatatypesListCommentLikes -import it.vercruysse.lemmyapi.datatypes.ListCommentLikesResponse as LemmyapiDatatypesListCommentLikesResponse -import it.vercruysse.lemmyapi.datatypes.ListCommentReports as LemmyapiDatatypesListCommentReports -import it.vercruysse.lemmyapi.datatypes.ListCommentReportsResponse as LemmyapiDatatypesListCommentReportsResponse import it.vercruysse.lemmyapi.datatypes.ListCommunities as LemmyapiDatatypesListCommunities -import it.vercruysse.lemmyapi.datatypes.ListCommunitiesResponse as LemmyapiDatatypesListCommunitiesResponse +import it.vercruysse.lemmyapi.datatypes.ListNotifications as LemmyapiDatatypesListNotifications import it.vercruysse.lemmyapi.datatypes.ListPostLikes as LemmyapiDatatypesListPostLikes -import it.vercruysse.lemmyapi.datatypes.ListPostLikesResponse as LemmyapiDatatypesListPostLikesResponse -import it.vercruysse.lemmyapi.datatypes.ListPostReports as LemmyapiDatatypesListPostReports -import it.vercruysse.lemmyapi.datatypes.ListPostReportsResponse as LemmyapiDatatypesListPostReportsResponse -import it.vercruysse.lemmyapi.datatypes.ListPrivateMessageReports as LemmyapiDatatypesListPrivateMessageReports -import it.vercruysse.lemmyapi.datatypes.ListPrivateMessageReportsResponse as LemmyapiDatatypesListPrivateMessageReportsResponse import it.vercruysse.lemmyapi.datatypes.ListRegistrationApplications as LemmyapiDatatypesListRegistrationApplications -import it.vercruysse.lemmyapi.datatypes.ListRegistrationApplicationsResponse as LemmyapiDatatypesListRegistrationApplicationsResponse import it.vercruysse.lemmyapi.datatypes.LocalSite as LemmyapiDatatypesLocalSite import it.vercruysse.lemmyapi.datatypes.LocalSiteRateLimit as LemmyapiDatatypesLocalSiteRateLimit import it.vercruysse.lemmyapi.datatypes.LocalUser as LemmyapiDatatypesLocalUser @@ -135,45 +106,11 @@ import it.vercruysse.lemmyapi.datatypes.LockPost as LemmyapiDatatypesLockPost import it.vercruysse.lemmyapi.datatypes.Login as LemmyapiDatatypesLogin import it.vercruysse.lemmyapi.datatypes.LoginResponse as LemmyapiDatatypesLoginResponse import it.vercruysse.lemmyapi.datatypes.LoginToken as LemmyapiDatatypesLoginToken -import it.vercruysse.lemmyapi.datatypes.MarkCommentReplyAsRead as LemmyapiDatatypesMarkCommentReplyAsRead -import it.vercruysse.lemmyapi.datatypes.MarkPersonMentionAsRead as LemmyapiDatatypesMarkPersonMentionAsRead -import it.vercruysse.lemmyapi.datatypes.MarkPostAsRead as LemmyapiDatatypesMarkPostAsRead -import it.vercruysse.lemmyapi.datatypes.MarkPrivateMessageAsRead as LemmyapiDatatypesMarkPrivateMessageAsRead -import it.vercruysse.lemmyapi.datatypes.ModAdd as LemmyapiDatatypesModAdd -import it.vercruysse.lemmyapi.datatypes.ModAddCommunity as LemmyapiDatatypesModAddCommunity -import it.vercruysse.lemmyapi.datatypes.ModAddCommunityView as LemmyapiDatatypesModAddCommunityView -import it.vercruysse.lemmyapi.datatypes.ModAddView as LemmyapiDatatypesModAddView -import it.vercruysse.lemmyapi.datatypes.ModBan as LemmyapiDatatypesModBan -import it.vercruysse.lemmyapi.datatypes.ModBanFromCommunity as LemmyapiDatatypesModBanFromCommunity -import it.vercruysse.lemmyapi.datatypes.ModBanFromCommunityView as LemmyapiDatatypesModBanFromCommunityView -import it.vercruysse.lemmyapi.datatypes.ModBanView as LemmyapiDatatypesModBanView -import it.vercruysse.lemmyapi.datatypes.ModFeaturePost as LemmyapiDatatypesModFeaturePost -import it.vercruysse.lemmyapi.datatypes.ModFeaturePostView as LemmyapiDatatypesModFeaturePostView -import it.vercruysse.lemmyapi.datatypes.ModHideCommunity as LemmyapiDatatypesModHideCommunity -import it.vercruysse.lemmyapi.datatypes.ModHideCommunityView as LemmyapiDatatypesModHideCommunityView -import it.vercruysse.lemmyapi.datatypes.ModLockPost as LemmyapiDatatypesModLockPost -import it.vercruysse.lemmyapi.datatypes.ModLockPostView as LemmyapiDatatypesModLockPostView -import it.vercruysse.lemmyapi.datatypes.ModRemoveComment as LemmyapiDatatypesModRemoveComment -import it.vercruysse.lemmyapi.datatypes.ModRemoveCommentView as LemmyapiDatatypesModRemoveCommentView -import it.vercruysse.lemmyapi.datatypes.ModRemoveCommunity as LemmyapiDatatypesModRemoveCommunity -import it.vercruysse.lemmyapi.datatypes.ModRemoveCommunityView as LemmyapiDatatypesModRemoveCommunityView -import it.vercruysse.lemmyapi.datatypes.ModRemovePost as LemmyapiDatatypesModRemovePost -import it.vercruysse.lemmyapi.datatypes.ModRemovePostView as LemmyapiDatatypesModRemovePostView -import it.vercruysse.lemmyapi.datatypes.ModTransferCommunity as LemmyapiDatatypesModTransferCommunity -import it.vercruysse.lemmyapi.datatypes.ModTransferCommunityView as LemmyapiDatatypesModTransferCommunityView -import it.vercruysse.lemmyapi.datatypes.ModlogListParams as LemmyapiDatatypesModlogListParams +import it.vercruysse.lemmyapi.datatypes.MarkManyPostsAsRead as LemmyapiDatatypesMarkPostAsRead import it.vercruysse.lemmyapi.datatypes.MyUserInfo as LemmyapiDatatypesMyUserInfo -import it.vercruysse.lemmyapi.datatypes.PasswordChangeAfterReset as LemmyapiDatatypesPasswordChangeAfterReset -import it.vercruysse.lemmyapi.datatypes.PasswordReset as LemmyapiDatatypesPasswordReset import it.vercruysse.lemmyapi.datatypes.Person as LemmyapiDatatypesPerson -import it.vercruysse.lemmyapi.datatypes.PersonAggregates as LemmyapiDatatypesPersonAggregates -import it.vercruysse.lemmyapi.datatypes.PersonBlockView as LemmyapiDatatypesPersonBlockView -import it.vercruysse.lemmyapi.datatypes.PersonMention as LemmyapiDatatypesPersonMention -import it.vercruysse.lemmyapi.datatypes.PersonMentionResponse as LemmyapiDatatypesPersonMentionResponse -import it.vercruysse.lemmyapi.datatypes.PersonMentionView as LemmyapiDatatypesPersonMentionView import it.vercruysse.lemmyapi.datatypes.PersonView as LemmyapiDatatypesPersonView import it.vercruysse.lemmyapi.datatypes.Post as LemmyapiDatatypesPost -import it.vercruysse.lemmyapi.datatypes.PostAggregates as LemmyapiDatatypesPostAggregates import it.vercruysse.lemmyapi.datatypes.PostReport as LemmyapiDatatypesPostReport import it.vercruysse.lemmyapi.datatypes.PostReportResponse as LemmyapiDatatypesPostReportResponse import it.vercruysse.lemmyapi.datatypes.PostReportView as LemmyapiDatatypesPostReportView @@ -185,12 +122,10 @@ import it.vercruysse.lemmyapi.datatypes.PrivateMessageReportResponse as Lemmyapi import it.vercruysse.lemmyapi.datatypes.PrivateMessageReportView as LemmyapiDatatypesPrivateMessageReportView import it.vercruysse.lemmyapi.datatypes.PrivateMessageResponse as LemmyapiDatatypesPrivateMessageResponse import it.vercruysse.lemmyapi.datatypes.PrivateMessageView as LemmyapiDatatypesPrivateMessageView -import it.vercruysse.lemmyapi.datatypes.PrivateMessagesResponse as LemmyapiDatatypesPrivateMessagesResponse import it.vercruysse.lemmyapi.datatypes.PurgeComment as LemmyapiDatatypesPurgeComment import it.vercruysse.lemmyapi.datatypes.PurgeCommunity as LemmyapiDatatypesPurgeCommunity import it.vercruysse.lemmyapi.datatypes.PurgePerson as LemmyapiDatatypesPurgePerson import it.vercruysse.lemmyapi.datatypes.PurgePost as LemmyapiDatatypesPurgePost -import it.vercruysse.lemmyapi.datatypes.ReadableFederationState as LemmyapiDatatypesReadableFederationState import it.vercruysse.lemmyapi.datatypes.Register as LemmyapiDatatypesRegister import it.vercruysse.lemmyapi.datatypes.RegistrationApplication as LemmyapiDatatypesRegistrationApplication import it.vercruysse.lemmyapi.datatypes.RegistrationApplicationResponse as LemmyapiDatatypesRegistrationApplicationResponse @@ -198,9 +133,9 @@ import it.vercruysse.lemmyapi.datatypes.RegistrationApplicationView as LemmyapiD import it.vercruysse.lemmyapi.datatypes.RemoveComment as LemmyapiDatatypesRemoveComment import it.vercruysse.lemmyapi.datatypes.RemoveCommunity as LemmyapiDatatypesRemoveCommunity import it.vercruysse.lemmyapi.datatypes.RemovePost as LemmyapiDatatypesRemovePost +import it.vercruysse.lemmyapi.datatypes.ResetPassword as LemmyapiDatatypesPasswordReset import it.vercruysse.lemmyapi.datatypes.ResolveCommentReport as LemmyapiDatatypesResolveCommentReport import it.vercruysse.lemmyapi.datatypes.ResolveObject as LemmyapiDatatypesResolveObject -import it.vercruysse.lemmyapi.datatypes.ResolveObjectResponse as LemmyapiDatatypesResolveObjectResponse import it.vercruysse.lemmyapi.datatypes.ResolvePostReport as LemmyapiDatatypesResolvePostReport import it.vercruysse.lemmyapi.datatypes.ResolvePrivateMessageReport as LemmyapiDatatypesResolvePrivateMessageReport import it.vercruysse.lemmyapi.datatypes.SaveComment as LemmyapiDatatypesSaveComment @@ -209,45 +144,39 @@ import it.vercruysse.lemmyapi.datatypes.SaveUserSettings as LemmyapiDatatypesSav import it.vercruysse.lemmyapi.datatypes.Search as LemmyapiDatatypesSearch import it.vercruysse.lemmyapi.datatypes.SearchResponse as LemmyapiDatatypesSearchResponse import it.vercruysse.lemmyapi.datatypes.Site as LemmyapiDatatypesSite -import it.vercruysse.lemmyapi.datatypes.SiteAggregates as LemmyapiDatatypesSiteAggregates import it.vercruysse.lemmyapi.datatypes.SiteResponse as LemmyapiDatatypesSiteResponse import it.vercruysse.lemmyapi.datatypes.SiteView as LemmyapiDatatypesSiteView import it.vercruysse.lemmyapi.datatypes.Tagline as LemmyapiDatatypesTagline import it.vercruysse.lemmyapi.datatypes.TransferCommunity as LemmyapiDatatypesTransferCommunity -import it.vercruysse.lemmyapi.datatypes.UpdateTotp as LemmyapiDatatypesUpdateTotp -import it.vercruysse.lemmyapi.datatypes.UpdateTotpResponse as LemmyapiDatatypesUpdateTotpResponse +import it.vercruysse.lemmyapi.datatypes.UserBlockInstanceCommunitiesParams as LemmyapiDatatypesBlockInstance import it.vercruysse.lemmyapi.datatypes.VerifyEmail as LemmyapiDatatypesVerifyEmail import it.vercruysse.lemmyapi.datatypes.VoteView as LemmyapiDatatypesVoteView +import it.vercruysse.lemmyapi.v0.enums.CommentSortType as V0CommentSortType +import it.vercruysse.lemmyapi.v0.enums.ListingType as V0ListingType +import it.vercruysse.lemmyapi.v0.enums.ModlogActionType as V0ModlogActionType +import it.vercruysse.lemmyapi.v0.enums.PostFeatureType as V0PostFeatureType +import it.vercruysse.lemmyapi.v0.enums.PostListingMode as V0PostListingMode +import it.vercruysse.lemmyapi.v0.enums.RegistrationMode as V0RegistrationMode +import it.vercruysse.lemmyapi.v0.enums.SearchType as V0SearchType +import it.vercruysse.lemmyapi.v0.enums.SortType as V0SortType import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.AddAdmin as X3DatatypesAddAdmin import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.AddAdminResponse as X3DatatypesAddAdminResponse import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.AddModToCommunity as X3DatatypesAddModToCommunity import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.AddModToCommunityResponse as X3DatatypesAddModToCommunityResponse -import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.AdminPurgeComment as X3DatatypesAdminPurgeComment -import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.AdminPurgeCommentView as X3DatatypesAdminPurgeCommentView -import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.AdminPurgeCommunity as X3DatatypesAdminPurgeCommunity -import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.AdminPurgeCommunityView as X3DatatypesAdminPurgeCommunityView -import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.AdminPurgePerson as X3DatatypesAdminPurgePerson -import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.AdminPurgePersonView as X3DatatypesAdminPurgePersonView -import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.AdminPurgePost as X3DatatypesAdminPurgePost -import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.AdminPurgePostView as X3DatatypesAdminPurgePostView import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.ApproveRegistrationApplication as X3DatatypesApproveRegistrationApplication import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.BanFromCommunity as X3DatatypesBanFromCommunity import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.BanFromCommunityResponse as X3DatatypesBanFromCommunityResponse import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.BanPerson as X3DatatypesBanPerson import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.BanPersonResponse as X3DatatypesBanPersonResponse -import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.BannedPersonsResponse as X3DatatypesBannedPersonsResponse import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.BlockCommunity as X3DatatypesBlockCommunity import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.BlockCommunityResponse as X3DatatypesBlockCommunityResponse import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.BlockInstance as X3DatatypesBlockInstance -import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.BlockInstanceResponse as X3DatatypesBlockInstanceResponse import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.BlockPerson as X3DatatypesBlockPerson import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.BlockPersonResponse as X3DatatypesBlockPersonResponse import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.CaptchaResponse as X3DatatypesCaptchaResponse import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.ChangePassword as X3DatatypesChangePassword import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.Comment as X3DatatypesComment import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.CommentAggregates as X3DatatypesCommentAggregates -import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.CommentReply as X3DatatypesCommentReply -import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.CommentReplyResponse as X3DatatypesCommentReplyResponse import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.CommentReplyView as X3DatatypesCommentReplyView import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.CommentReport as X3DatatypesCommentReport import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.CommentReportResponse as X3DatatypesCommentReportResponse @@ -256,7 +185,6 @@ import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.CommentResponse as X3Datatypes import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.CommentView as X3DatatypesCommentView import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.Community as X3DatatypesCommunity import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.CommunityAggregates as X3DatatypesCommunityAggregates -import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.CommunityBlockView as X3DatatypesCommunityBlockView import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.CommunityFollowerView as X3DatatypesCommunityFollowerView import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.CommunityModeratorView as X3DatatypesCommunityModeratorView import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.CommunityResponse as X3DatatypesCommunityResponse @@ -290,55 +218,35 @@ import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.EditPost as X3DatatypesEditPos import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.EditPrivateMessage as X3DatatypesEditPrivateMessage import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.EditSite as X3DatatypesEditSite import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.FeaturePost as X3DatatypesFeaturePost -import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.FederatedInstances as X3DatatypesFederatedInstances import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.FollowCommunity as X3DatatypesFollowCommunity import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.GenerateTotpSecretResponse as X3DatatypesGenerateTotpSecretResponse import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.GetCaptchaResponse as X3DatatypesGetCaptchaResponse import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.GetComment as X3DatatypesGetComment import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.GetComments as X3DatatypesGetComments -import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.GetCommentsResponse as X3DatatypesGetCommentsResponse import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.GetCommunity as X3DatatypesGetCommunity import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.GetCommunityResponse as X3DatatypesGetCommunityResponse -import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.GetFederatedInstancesResponse as X3DatatypesGetFederatedInstancesResponse import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.GetModlog as X3DatatypesGetModlog -import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.GetModlogResponse as X3DatatypesGetModlogResponse import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.GetPersonDetails as X3DatatypesGetPersonDetails import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.GetPersonDetailsResponse as X3DatatypesGetPersonDetailsResponse import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.GetPersonMentions as X3DatatypesGetPersonMentions -import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.GetPersonMentionsResponse as X3DatatypesGetPersonMentionsResponse import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.GetPost as X3DatatypesGetPost import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.GetPostResponse as X3DatatypesGetPostResponse import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.GetPosts as X3DatatypesGetPosts -import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.GetPostsResponse as X3DatatypesGetPostsResponse import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.GetPrivateMessages as X3DatatypesGetPrivateMessages import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.GetReplies as X3DatatypesGetReplies -import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.GetRepliesResponse as X3DatatypesGetRepliesResponse -import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.GetReportCount as X3DatatypesGetReportCount -import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.GetReportCountResponse as X3DatatypesGetReportCountResponse import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.GetSiteMetadata as X3DatatypesGetSiteMetadata import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.GetSiteMetadataResponse as X3DatatypesGetSiteMetadataResponse import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.GetSiteResponse as X3DatatypesGetSiteResponse -import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.GetUnreadCountResponse as X3DatatypesGetUnreadCountResponse -import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.GetUnreadRegistrationApplicationCountResponse as X3DatatypesGetUnreadRegistrationApplicationCountResponse import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.HideCommunity as X3DatatypesHideCommunity import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.Instance as X3DatatypesInstance -import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.InstanceBlockView as X3DatatypesInstanceBlockView -import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.InstanceWithFederationState as X3DatatypesInstanceWithFederationState import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.Language as X3DatatypesLanguage import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.ListCommentLikes as X3DatatypesListCommentLikes -import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.ListCommentLikesResponse as X3DatatypesListCommentLikesResponse import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.ListCommentReports as X3DatatypesListCommentReports -import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.ListCommentReportsResponse as X3DatatypesListCommentReportsResponse import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.ListCommunities as X3DatatypesListCommunities -import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.ListCommunitiesResponse as X3DatatypesListCommunitiesResponse import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.ListPostLikes as X3DatatypesListPostLikes -import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.ListPostLikesResponse as X3DatatypesListPostLikesResponse import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.ListPostReports as X3DatatypesListPostReports -import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.ListPostReportsResponse as X3DatatypesListPostReportsResponse import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.ListPrivateMessageReports as X3DatatypesListPrivateMessageReports -import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.ListPrivateMessageReportsResponse as X3DatatypesListPrivateMessageReportsResponse import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.ListRegistrationApplications as X3DatatypesListRegistrationApplications -import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.ListRegistrationApplicationsResponse as X3DatatypesListRegistrationApplicationsResponse import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.LocalSite as X3DatatypesLocalSite import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.LocalSiteRateLimit as X3DatatypesLocalSiteRateLimit import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.LocalUser as X3DatatypesLocalUser @@ -351,37 +259,11 @@ import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.MarkCommentReplyAsRead as X3Da import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.MarkPersonMentionAsRead as X3DatatypesMarkPersonMentionAsRead import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.MarkPostAsRead as X3DatatypesMarkPostAsRead import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.MarkPrivateMessageAsRead as X3DatatypesMarkPrivateMessageAsRead -import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.ModAdd as X3DatatypesModAdd -import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.ModAddCommunity as X3DatatypesModAddCommunity -import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.ModAddCommunityView as X3DatatypesModAddCommunityView -import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.ModAddView as X3DatatypesModAddView -import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.ModBan as X3DatatypesModBan -import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.ModBanFromCommunity as X3DatatypesModBanFromCommunity -import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.ModBanFromCommunityView as X3DatatypesModBanFromCommunityView -import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.ModBanView as X3DatatypesModBanView -import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.ModFeaturePost as X3DatatypesModFeaturePost -import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.ModFeaturePostView as X3DatatypesModFeaturePostView -import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.ModHideCommunity as X3DatatypesModHideCommunity -import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.ModHideCommunityView as X3DatatypesModHideCommunityView -import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.ModLockPost as X3DatatypesModLockPost -import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.ModLockPostView as X3DatatypesModLockPostView -import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.ModRemoveComment as X3DatatypesModRemoveComment -import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.ModRemoveCommentView as X3DatatypesModRemoveCommentView -import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.ModRemoveCommunity as X3DatatypesModRemoveCommunity -import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.ModRemoveCommunityView as X3DatatypesModRemoveCommunityView -import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.ModRemovePost as X3DatatypesModRemovePost -import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.ModRemovePostView as X3DatatypesModRemovePostView -import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.ModTransferCommunity as X3DatatypesModTransferCommunity -import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.ModTransferCommunityView as X3DatatypesModTransferCommunityView -import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.ModlogListParams as X3DatatypesModlogListParams import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.MyUserInfo as X3DatatypesMyUserInfo import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.PasswordChangeAfterReset as X3DatatypesPasswordChangeAfterReset import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.PasswordReset as X3DatatypesPasswordReset import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.Person as X3DatatypesPerson import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.PersonAggregates as X3DatatypesPersonAggregates -import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.PersonBlockView as X3DatatypesPersonBlockView -import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.PersonMention as X3DatatypesPersonMention -import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.PersonMentionResponse as X3DatatypesPersonMentionResponse import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.PersonMentionView as X3DatatypesPersonMentionView import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.PersonView as X3DatatypesPersonView import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.Post as X3DatatypesPost @@ -397,7 +279,6 @@ import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.PrivateMessageReportResponse a import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.PrivateMessageReportView as X3DatatypesPrivateMessageReportView import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.PrivateMessageResponse as X3DatatypesPrivateMessageResponse import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.PrivateMessageView as X3DatatypesPrivateMessageView -import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.PrivateMessagesResponse as X3DatatypesPrivateMessagesResponse import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.PurgeComment as X3DatatypesPurgeComment import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.PurgeCommunity as X3DatatypesPurgeCommunity import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.PurgePerson as X3DatatypesPurgePerson @@ -432,103 +313,78 @@ import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.VerifyEmail as X3DatatypesVeri import it.vercruysse.lemmyapi.v0.x19.x3.datatypes.VoteView as X3DatatypesVoteView internal class Transformer : MapperGenerator { - override fun toUni(d: X3DatatypesCommentReplyView): LemmyapiDatatypesCommentReplyView = - LemmyapiDatatypesCommentReplyView( - comment_reply = this.toUni(d = d.comment_reply), - comment = this.toUni(d = d.comment), - creator = this.toUni(d = d.creator), - post = this.toUni(d = d.post), - community = this.toUni(d = d.community), - recipient = this.toUni(d = d.recipient), - counts = this.toUni(d = d.counts), - creator_banned_from_community = d.creator_banned_from_community, - banned_from_community = false, - creator_is_moderator = d.creator_is_moderator, - creator_is_admin = d.creator_is_admin, - subscribed = d.subscribed, - saved = d.saved, - creator_blocked = d.creator_blocked, - my_vote = d.my_vote, - ) - override fun toUni(d: X3DatatypesCommentReportView): LemmyapiDatatypesCommentReportView = LemmyapiDatatypesCommentReportView( comment_report = this.toUni(d = d.comment_report), - comment = this.toUni(d = d.comment), - post = this.toUni(d = d.post), - community = this.toUni(d = d.community), + comment = this.toUni(d = d.comment, d.counts), + post = this.toUni(d = d.post, counts = X3DatatypesPostAggregates(-1, -1, -1, -1, -1, "", "")), + community = this.toUni(d = d.community, counts = X3DatatypesCommunityAggregates(-1, -1, -1, -1, "", -1, -1, -1, -1)), creator = this.toUni(d = d.creator), comment_creator = this.toUni(d = d.comment_creator), - counts = this.toUni(d = d.counts), creator_banned_from_community = d.creator_banned_from_community, creator_is_moderator = false, creator_is_admin = false, - creator_blocked = false, - subscribed = SubscribedType.NotSubscribed, - saved = false, - my_vote = d.my_vote, + creator_banned = d.creator.banned, resolver = d.resolver?.let { this.toUni(d = it) }, + comment_actions = CommentActions(d.my_vote, null, null), ) override fun toUni(d: X3DatatypesCommentView): LemmyapiDatatypesCommentView = LemmyapiDatatypesCommentView( - comment = this.toUni(d = d.comment), + comment = this.toUni(d = d.comment, d.counts), creator = this.toUni(d = d.creator), - post = this.toUni(d = d.post), - community = this.toUni(d = d.community), - counts = this.toUni(d = d.counts), + post = this.toUni(d = d.post, counts = X3DatatypesPostAggregates(-1, -1, -1, -1, -1, "", "")), + community = this.toUni(d = d.community, counts = X3DatatypesCommunityAggregates(-1, -1, -1, -1, "", -1, -1, -1, -1)), creator_banned_from_community = d.creator_banned_from_community, - banned_from_community = false, creator_is_moderator = d.creator_is_moderator, creator_is_admin = d.creator_is_admin, - subscribed = d.subscribed, - saved = d.saved, - creator_blocked = d.creator_blocked, - my_vote = d.my_vote, + tags = emptyList(), + creator_banned = d.creator.banned, + creator_ban_expires_at = d.creator.ban_expires, + can_mod = false, + person_actions = PersonActions(if (d.creator_blocked) "" else null), + comment_actions = CommentActions(d.my_vote, null, if (d.saved) "" else null), + community_actions = CommunityActions(null, CommunityFollowerState.from(d.subscribed)), ) - override fun toUni(d: X3DatatypesCommunity): LemmyapiDatatypesCommunity = + override fun toUni(d: X3DatatypesCommunity, counts: X3DatatypesCommunityAggregates): LemmyapiDatatypesCommunity = LemmyapiDatatypesCommunity( id = d.id, name = d.name, title = d.title, - description = d.description, + summary = d.description, removed = d.removed, - published = d.published, - updated = d.updated, + published_at = d.published, + updated_at = d.updated, deleted = d.deleted, nsfw = d.nsfw, - actor_id = d.actor_id, + ap_id = d.actor_id, local = d.local, icon = d.icon, banner = d.banner, - hidden = d.hidden, posting_restricted_to_mods = d.posting_restricted_to_mods, instance_id = d.instance_id, - visibility = CommunityVisibility.Public, - ) - - override fun toUni(d: X3DatatypesCommunityAggregates): LemmyapiDatatypesCommunityAggregates = - LemmyapiDatatypesCommunityAggregates( - community_id = d.community_id, - subscribers = d.subscribers, - posts = d.posts, - comments = d.comments, - published = d.published, - users_active_day = d.users_active_day, - users_active_week = d.users_active_week, - users_active_month = d.users_active_month, - users_active_half_year = d.users_active_half_year, + visibility = if (d.hidden) CommunityVisibility.Unlisted else CommunityVisibility.Public, + subscribers = counts.subscribers, + posts = counts.posts, + comments = counts.comments, + users_active_day = counts.users_active_day, + users_active_week = counts.users_active_week, + users_active_month = counts.users_active_month, + users_active_half_year = counts.users_active_half_year, subscribers_local = -1, + report_count = -1, + unresolved_report_count = -1, + local_removed = false, + last_refreshed_at = "", ) override fun toUni(d: X3DatatypesCommunityView): LemmyapiDatatypesCommunityView = LemmyapiDatatypesCommunityView( - community = this.toUni(d = d.community), - subscribed = d.subscribed, - blocked = d.blocked, - counts = this.toUni(d = d.counts), - banned_from_community = false, + community = this.toUni(d = d.community, d.counts), + can_mod = false, + tags = emptyList(), + community_actions = CommunityActions(null, CommunityFollowerState.from(d.subscribed), if (d.blocked) "" else null), ) override fun toUni(d: SiteMetadata): LinkMetadata = LinkMetadata( @@ -543,104 +399,102 @@ internal class Transformer : MapperGenerator { site_view = this.toUni(d = d.site_view), admins = d.admins.map { this.toUni(d = it) }, version = d.version, - my_user = d.my_user?.let { this.toUni(d = it) }, all_languages = d.all_languages.map { this.toUni(d = it) }, discussion_languages = d.discussion_languages, - taglines = d.taglines.map { this.toUni(d = it) }, - custom_emojis = d.custom_emojis.map { this.toUni(d = it) }, - blocked_urls = listOf(), + blocked_urls = emptyList(), + tagline = if (d.taglines.isEmpty()) null else this.toUni(d = d.taglines.random()), + oauth_providers = emptyList(), + admin_oauth_providers = emptyList(), + active_plugins = emptyList(), + captcha_enabled = false, ) - override fun toUni(d: X3DatatypesLocalSite): LemmyapiDatatypesLocalSite = + override fun toUni(d: X3DatatypesLocalSite, counts: X3DatatypesSiteAggregates): LemmyapiDatatypesLocalSite = LemmyapiDatatypesLocalSite( id = d.id, site_id = d.site_id, site_setup = d.site_setup, - enable_downvotes = d.enable_downvotes, - enable_nsfw = d.enable_nsfw, community_creation_admin_only = d.community_creation_admin_only, - require_email_verification = d.require_email_verification, + email_verification_required = d.require_email_verification, application_question = d.application_question, private_instance = d.private_instance, default_theme = d.default_theme, - default_post_listing_type = d.default_post_listing_type, + default_post_listing_type = d.default_post_listing_type.toUni(), legal_information = d.legal_information, - hide_modlog_mod_names = d.hide_modlog_mod_names, application_email_admins = d.application_email_admins, slur_filter_regex = d.slur_filter_regex, - actor_name_max_length = d.actor_name_max_length, federation_enabled = d.federation_enabled, - captcha_enabled = d.captcha_enabled, - captcha_difficulty = d.captcha_difficulty, - published = d.published, - updated = d.updated, - registration_mode = d.registration_mode, + published_at = d.published, + updated_at = d.updated, + registration_mode = d.registration_mode.toUni(), reports_email_admins = d.reports_email_admins, federation_signed_fetch = d.federation_signed_fetch, default_post_listing_mode = PostListingMode.Card, - default_sort_type = SortType.Active, - ) - - override fun toUni(d: X3DatatypesPersonMentionView): LemmyapiDatatypesPersonMentionView = - LemmyapiDatatypesPersonMentionView( - person_mention = this.toUni(d = d.person_mention), - comment = this.toUni(d = d.comment), - creator = this.toUni(d = d.creator), - post = this.toUni(d = d.post), - community = this.toUni(d = d.community), - recipient = this.toUni(d = d.recipient), - counts = this.toUni(d = d.counts), - creator_banned_from_community = d.creator_banned_from_community, - banned_from_community = false, - creator_is_moderator = d.creator_is_moderator, - creator_is_admin = d.creator_is_admin, - subscribed = d.subscribed, - saved = d.saved, - creator_blocked = d.creator_blocked, - my_vote = d.my_vote, + default_post_sort_type = SortType.Active, + nsfw_content_disallowed = !d.enable_nsfw, + oauth_registration = false, + email_notifications_disabled = false, + suggested_multi_community_id = null, + default_comment_sort_type = CommentSortType.Hot, + default_post_time_range_seconds = null, + post_upvotes = FederationMode.All, + post_downvotes = if (d.enable_downvotes) FederationMode.All else FederationMode.Disable, + comment_upvotes = FederationMode.All, + comment_downvotes = if (d.enable_downvotes) FederationMode.All else FederationMode.Disable, + users = counts.users, + posts = counts.posts, + comments = counts.comments, + communities = counts.communities, + users_active_day = counts.users_active_day, + users_active_week = counts.users_active_week, + users_active_month = counts.users_active_month, + users_active_half_year = counts.users_active_half_year, + default_items_per_page = 20, + image_mode = ImageMode.StoreLinkPreviews, + image_upload_timeout_seconds = 0, + image_max_thumbnail_size = 0, + image_max_avatar_size = 0, + image_max_banner_size = 0, + image_max_upload_size = 0, + image_allow_video_uploads = false, + image_upload_disabled = false, + max_invites_per_user_allowed = 0, ) override fun toUni(d: X3DatatypesPostReportView): LemmyapiDatatypesPostReportView = LemmyapiDatatypesPostReportView( post_report = this.toUni(d = d.post_report), - post = this.toUni(d = d.post), - community = this.toUni(d = d.community), + post = this.toUni(d = d.post, d.counts), + community = this.toUni(d = d.community, counts = X3DatatypesCommunityAggregates(-1, -1, -1, -1, "", -1, -1, -1, -1)), creator = this.toUni(d = d.creator), post_creator = this.toUni(d = d.post_creator), + resolver = d.resolver?.let { this.toUni(d = it) }, + post_actions = PostActions(like_score = d.my_vote), creator_banned_from_community = d.creator_banned_from_community, + creator_banned = d.creator.banned, creator_is_moderator = false, creator_is_admin = false, - subscribed = SubscribedType.NotSubscribed, - saved = false, - read = false, - hidden = false, - creator_blocked = false, - my_vote = d.my_vote, - unread_comments = 0, - counts = this.toUni(d = d.counts), - resolver = d.resolver?.let { this.toUni(d = it) }, ) override fun toUni(d: X3DatatypesPostView): LemmyapiDatatypesPostView = LemmyapiDatatypesPostView( - post = this.toUni(d = d.post), + post = this.toUni(d = d.post, d.counts), creator = this.toUni(d = d.creator), - community = this.toUni(d = d.community), + community = this.toUni(d = d.community, counts = X3DatatypesCommunityAggregates(-1, -1, -1, -1, "", -1, -1, -1, -1)), + post_actions = PostActions(toAt(d.read), null, d.counts.comments - d.unread_comments, toAt(d.saved), null, d.my_vote, null), + person_actions = PersonActions(toAt(d.creator_blocked)), + community_actions = CommunityActions(null, CommunityFollowerState.from(d.subscribed)), + can_mod = false, + tags = emptyList(), creator_banned_from_community = d.creator_banned_from_community, - banned_from_community = false, + creator_banned = d.creator.banned, + creator_ban_expires_at = d.creator.ban_expires, creator_is_moderator = d.creator_is_moderator, creator_is_admin = d.creator_is_admin, - counts = this.toUni(d = d.counts), - subscribed = d.subscribed, - saved = d.saved, - read = d.read, - hidden = false, - creator_blocked = d.creator_blocked, - my_vote = d.my_vote, - unread_comments = d.unread_comments, ) override fun toUni(d: X3DatatypesVoteView): LemmyapiDatatypesVoteView = LemmyapiDatatypesVoteView( creator = this.toUni(d = d.creator), + creator_banned = d.creator.banned, creator_banned_from_community = false, score = d.score, ) @@ -654,96 +508,17 @@ internal class Transformer : MapperGenerator { moderators = d.moderators.map { this.toUni(d = it) }, ) - override fun toUni(d: X3DatatypesAdminPurgeComment): LemmyapiDatatypesAdminPurgeComment = - LemmyapiDatatypesAdminPurgeComment( - id = d.id, - admin_person_id = d.admin_person_id, - post_id = d.post_id, - reason = d.reason, - when_ = d.when_, - ) + override fun toUni(d: X3DatatypesBanFromCommunityResponse): it.vercruysse.lemmyapi.datatypes.PersonResponse = + it.vercruysse.lemmyapi.datatypes.PersonResponse(person_view = this.toUni(d = d.person_view)) - override fun toUni(d: X3DatatypesAdminPurgeCommentView): LemmyapiDatatypesAdminPurgeCommentView = - LemmyapiDatatypesAdminPurgeCommentView( - admin_purge_comment = this.toUni(d = d.admin_purge_comment), - admin = d.admin?.let { this.toUni(d = it) }, - post = this.toUni(d = d.post), - ) + override fun toUni(d: X3DatatypesBanPersonResponse): it.vercruysse.lemmyapi.datatypes.PersonResponse = + it.vercruysse.lemmyapi.datatypes.PersonResponse(person_view = this.toUni(d = d.person_view)) - override fun toUni(d: X3DatatypesAdminPurgeCommunity): LemmyapiDatatypesAdminPurgeCommunity = - LemmyapiDatatypesAdminPurgeCommunity( - id = d.id, - admin_person_id = d.admin_person_id, - reason = d.reason, - when_ = d.when_, - ) + override fun toUni(d: X3DatatypesBlockCommunityResponse): LemmyapiDatatypesCommunityResponse = + LemmyapiDatatypesCommunityResponse(community_view = this.toUni(d = d.community_view), discussion_languages = emptyList()) - override fun toUni(d: X3DatatypesAdminPurgeCommunityView): LemmyapiDatatypesAdminPurgeCommunityView = LemmyapiDatatypesAdminPurgeCommunityView( - admin_purge_community = this.toUni(d = d.admin_purge_community), - admin = d.admin?.let { this.toUni(d = it) }, - ) - - override fun toUni(d: X3DatatypesAdminPurgePerson): LemmyapiDatatypesAdminPurgePerson = - LemmyapiDatatypesAdminPurgePerson( - id = d.id, - admin_person_id = d.admin_person_id, - reason = d.reason, - when_ = d.when_, - ) - - override fun toUni(d: X3DatatypesAdminPurgePersonView): LemmyapiDatatypesAdminPurgePersonView = - LemmyapiDatatypesAdminPurgePersonView( - admin_purge_person = this.toUni(d = d.admin_purge_person), - admin = d.admin?.let { this.toUni(d = it) }, - ) - - override fun toUni(d: X3DatatypesAdminPurgePost): LemmyapiDatatypesAdminPurgePost = - LemmyapiDatatypesAdminPurgePost( - id = d.id, - admin_person_id = d.admin_person_id, - community_id = d.community_id, - reason = d.reason, - when_ = d.when_, - ) - - override fun toUni(d: X3DatatypesAdminPurgePostView): LemmyapiDatatypesAdminPurgePostView = - LemmyapiDatatypesAdminPurgePostView( - admin_purge_post = this.toUni(d = d.admin_purge_post), - admin = d.admin?.let { this.toUni(d = it) }, - community = this.toUni(d = d.community), - ) - - override fun toUni(d: X3DatatypesBanFromCommunityResponse): LemmyapiDatatypesBanFromCommunityResponse = LemmyapiDatatypesBanFromCommunityResponse( - person_view = this.toUni(d = d.person_view), - banned = d.banned, - ) - - override fun toUni(d: X3DatatypesBannedPersonsResponse): LemmyapiDatatypesBannedPersonsResponse = - LemmyapiDatatypesBannedPersonsResponse( - banned = d.banned.map { this.toUni(d = it) }, - ) - - override fun toUni(d: X3DatatypesBanPersonResponse): LemmyapiDatatypesBanPersonResponse = - LemmyapiDatatypesBanPersonResponse( - person_view = this.toUni(d = d.person_view), - banned = d.banned, - ) - - override fun toUni(d: X3DatatypesBlockCommunityResponse): LemmyapiDatatypesBlockCommunityResponse = LemmyapiDatatypesBlockCommunityResponse( - community_view = this.toUni(d = d.community_view), - blocked = d.blocked, - ) - - override fun toUni(d: X3DatatypesBlockInstanceResponse): LemmyapiDatatypesBlockInstanceResponse = - LemmyapiDatatypesBlockInstanceResponse( - blocked = d.blocked, - ) - - override fun toUni(d: X3DatatypesBlockPersonResponse): LemmyapiDatatypesBlockPersonResponse = - LemmyapiDatatypesBlockPersonResponse( - person_view = this.toUni(d = d.person_view), - blocked = d.blocked, - ) + override fun toUni(d: X3DatatypesBlockPersonResponse): it.vercruysse.lemmyapi.datatypes.PersonResponse = + it.vercruysse.lemmyapi.datatypes.PersonResponse(person_view = this.toUni(d = d.person_view)) override fun toUni(d: X3DatatypesCaptchaResponse): LemmyapiDatatypesCaptchaResponse = LemmyapiDatatypesCaptchaResponse( @@ -752,46 +527,30 @@ internal class Transformer : MapperGenerator { uuid = d.uuid, ) - override fun toUni(d: X3DatatypesComment): LemmyapiDatatypesComment = LemmyapiDatatypesComment( + override fun toUni(d: X3DatatypesComment, counts: X3DatatypesCommentAggregates): LemmyapiDatatypesComment = LemmyapiDatatypesComment( id = d.id, creator_id = d.creator_id, post_id = d.post_id, content = d.content, removed = d.removed, - published = d.published, - updated = d.updated, + published_at = d.published, + updated_at = d.updated, deleted = d.deleted, ap_id = d.ap_id, local = d.local, path = d.path, distinguished = d.distinguished, language_id = d.language_id, + score = counts.score, + upvotes = counts.upvotes, + downvotes = counts.downvotes, + child_count = counts.child_count, + report_count = -1, + unresolved_report_count = -1, + federation_pending = false, + locked = false, ) - override fun toUni(d: X3DatatypesCommentAggregates): LemmyapiDatatypesCommentAggregates = - LemmyapiDatatypesCommentAggregates( - comment_id = d.comment_id, - score = d.score, - upvotes = d.upvotes, - downvotes = d.downvotes, - published = d.published, - child_count = d.child_count, - ) - - override fun toUni(d: X3DatatypesCommentReply): LemmyapiDatatypesCommentReply = - LemmyapiDatatypesCommentReply( - id = d.id, - recipient_id = d.recipient_id, - comment_id = d.comment_id, - read = d.read, - published = d.published, - ) - - override fun toUni(d: X3DatatypesCommentReplyResponse): LemmyapiDatatypesCommentReplyResponse = - LemmyapiDatatypesCommentReplyResponse( - comment_reply_view = this.toUni(d = d.comment_reply_view), - ) - override fun toUni(d: X3DatatypesCommentReport): LemmyapiDatatypesCommentReport = LemmyapiDatatypesCommentReport( id = d.id, @@ -801,8 +560,8 @@ internal class Transformer : MapperGenerator { reason = d.reason, resolved = d.resolved, resolver_id = d.resolver_id, - published = d.published, - updated = d.updated, + published_at = d.published, + updated_at = d.updated, ) override fun toUni(d: X3DatatypesCommentReportResponse): LemmyapiDatatypesCommentReportResponse = @@ -813,23 +572,16 @@ internal class Transformer : MapperGenerator { override fun toUni(d: X3DatatypesCommentResponse): LemmyapiDatatypesCommentResponse = LemmyapiDatatypesCommentResponse( comment_view = this.toUni(d = d.comment_view), - recipient_ids = d.recipient_ids, - ) - - override fun toUni(d: X3DatatypesCommunityBlockView): LemmyapiDatatypesCommunityBlockView = - LemmyapiDatatypesCommunityBlockView( - person = this.toUni(d = d.person), - community = this.toUni(d = d.community), ) override fun toUni(d: X3DatatypesCommunityFollowerView): LemmyapiDatatypesCommunityFollowerView = LemmyapiDatatypesCommunityFollowerView( - community = this.toUni(d = d.community), + community = this.toUni(d = d.community, counts = X3DatatypesCommunityAggregates(-1, -1, -1, -1, "", -1, -1, -1, -1)), follower = this.toUni(d = d.follower), ) override fun toUni(d: X3DatatypesCommunityModeratorView): LemmyapiDatatypesCommunityModeratorView = LemmyapiDatatypesCommunityModeratorView( - community = this.toUni(d = d.community), + community = this.toUni(d = d.community, counts = X3DatatypesCommunityAggregates(-1, -1, -1, -1, "", -1, -1, -1, -1)), moderator = this.toUni(d = d.moderator), ) @@ -842,13 +594,12 @@ internal class Transformer : MapperGenerator { override fun toUni(d: X3DatatypesCustomEmoji): LemmyapiDatatypesCustomEmoji = LemmyapiDatatypesCustomEmoji( id = d.id, - local_site_id = d.local_site_id, shortcode = d.shortcode, image_url = d.image_url, alt_text = d.alt_text, category = d.category, - published = d.published, - updated = d.updated, + published_at = d.published, + updated_at = d.updated, ) override fun toUni(d: X3DatatypesCustomEmojiKeyword): LemmyapiDatatypesCustomEmojiKeyword = @@ -868,13 +619,6 @@ internal class Transformer : MapperGenerator { keywords = d.keywords.map { this.toUni(d = it) }, ) - override fun toUni(d: X3DatatypesFederatedInstances): LemmyapiDatatypesFederatedInstances = - LemmyapiDatatypesFederatedInstances( - linked = d.linked.map { this.toUni(d = it) }, - allowed = d.allowed.map { this.toUni(d = it) }, - blocked = d.blocked.map { this.toUni(d = it) }, - ) - override fun toUni(d: X3DatatypesGenerateTotpSecretResponse): LemmyapiDatatypesGenerateTotpSecretResponse = LemmyapiDatatypesGenerateTotpSecretResponse( totp_secret_url = d.totp_secret_url, ) @@ -884,11 +628,6 @@ internal class Transformer : MapperGenerator { ok = d.ok?.let { this.toUni(d = it) }, ) - override fun toUni(d: X3DatatypesGetCommentsResponse): LemmyapiDatatypesGetCommentsResponse = - LemmyapiDatatypesGetCommentsResponse( - comments = d.comments.map { this.toUni(d = it) }, - ) - override fun toUni(d: X3DatatypesGetCommunityResponse): LemmyapiDatatypesGetCommunityResponse = LemmyapiDatatypesGetCommunityResponse( community_view = this.toUni(d = d.community_view), @@ -897,40 +636,11 @@ internal class Transformer : MapperGenerator { discussion_languages = d.discussion_languages, ) - override fun toUni(d: X3DatatypesGetFederatedInstancesResponse): LemmyapiDatatypesGetFederatedInstancesResponse = - LemmyapiDatatypesGetFederatedInstancesResponse( - federated_instances = d.federated_instances?.let { this.toUni(d = it) }, - ) - - override fun toUni(d: X3DatatypesGetModlogResponse): LemmyapiDatatypesGetModlogResponse = - LemmyapiDatatypesGetModlogResponse( - removed_posts = d.removed_posts.map { this.toUni(d = it) }, - locked_posts = d.locked_posts.map { this.toUni(d = it) }, - featured_posts = d.featured_posts.map { this.toUni(d = it) }, - removed_comments = d.removed_comments.map { this.toUni(d = it) }, - removed_communities = d.removed_communities.map { this.toUni(d = it) }, - banned_from_community = d.banned_from_community.map { this.toUni(d = it) }, - banned = d.banned.map { this.toUni(d = it) }, - added_to_community = d.added_to_community.map { this.toUni(d = it) }, - transferred_to_community = d.transferred_to_community.map { this.toUni(d = it) }, - added = d.added.map { this.toUni(d = it) }, - admin_purged_persons = d.admin_purged_persons.map { this.toUni(d = it) }, - admin_purged_communities = d.admin_purged_communities.map { this.toUni(d = it) }, - admin_purged_posts = d.admin_purged_posts.map { this.toUni(d = it) }, - admin_purged_comments = d.admin_purged_comments.map { this.toUni(d = it) }, - hidden_communities = d.hidden_communities.map { this.toUni(d = it) }, - ) - override fun toUni(d: X3DatatypesGetPersonDetailsResponse): LemmyapiDatatypesGetPersonDetailsResponse = LemmyapiDatatypesGetPersonDetailsResponse( person_view = this.toUni(d = d.person_view), site = d.site?.let { this.toUni(d = it) }, - comments = d.comments.map { this.toUni(d = it) }, - posts = d.posts.map { this.toUni(d = it) }, moderates = d.moderates.map { this.toUni(d = it) }, - ) - - override fun toUni(d: X3DatatypesGetPersonMentionsResponse): LemmyapiDatatypesGetPersonMentionsResponse = LemmyapiDatatypesGetPersonMentionsResponse( - mentions = d.mentions.map { this.toUni(d = it) }, + multi_communities_created = emptyList(), ) override fun toUni(d: X3DatatypesGetPostResponse): LemmyapiDatatypesGetPostResponse = @@ -941,63 +651,96 @@ internal class Transformer : MapperGenerator { cross_posts = d.cross_posts.map { this.toUni(d = it) }, ) - override fun toUni(d: X3DatatypesGetPostsResponse): LemmyapiDatatypesGetPostsResponse = - LemmyapiDatatypesGetPostsResponse( - posts = d.posts.map { this.toUni(d = it) }, - next_page = d.next_page, + fun toUni(d: X3DatatypesCommentReplyView): NotificationView = + NotificationView( + notification = Notification( + id = d.comment_reply.id, + recipient_id = d.comment_reply.recipient_id, + comment_id = d.comment_reply.comment_id, + read = d.comment_reply.read, + published_at = d.comment_reply.published, + kind = NotificationType.Reply, + post_id = d.post.id, + creator_id = d.creator.id, + ), + data = this.toUniCV(d), ) - override fun toUni(d: X3DatatypesGetRepliesResponse): LemmyapiDatatypesGetRepliesResponse = - LemmyapiDatatypesGetRepliesResponse( - replies = d.replies.map { this.toUni(d = it) }, + fun toUniCV(d: X3DatatypesCommentReplyView): LemmyapiDatatypesCommentView = + LemmyapiDatatypesCommentView( + comment = this.toUni(d = d.comment, d.counts), + creator = this.toUni(d = d.creator), + post = this.toUni(d = d.post, counts = X3DatatypesPostAggregates(-1, -1, -1, -1, -1, "", "")), + community = this.toUni(d = d.community, counts = X3DatatypesCommunityAggregates(-1, -1, -1, -1, "", -1, -1, -1, -1)), + creator_banned_from_community = d.creator_banned_from_community, + creator_is_moderator = d.creator_is_moderator, + creator_is_admin = d.creator_is_admin, + tags = emptyList(), + creator_banned = d.creator.banned, + creator_ban_expires_at = d.creator.ban_expires, + can_mod = false, + person_actions = PersonActions(if (d.creator_blocked) "" else null), + comment_actions = CommentActions(d.my_vote, null, if (d.saved) "" else null), + community_actions = CommunityActions(null, CommunityFollowerState.from(d.subscribed)), + ) + + fun toUni(d: X3DatatypesPersonMentionView): NotificationView = + NotificationView( + notification = Notification( + id = d.person_mention.id, + recipient_id = d.person_mention.recipient_id, + comment_id = d.person_mention.comment_id, + read = d.person_mention.read, + published_at = d.person_mention.published, + kind = NotificationType.Mention, + post_id = d.post.id, + creator_id = d.creator.id, + ), + data = this.toUniPV(d), + ) + + fun toUniPV(d: X3DatatypesPersonMentionView): LemmyapiDatatypesCommentView = + LemmyapiDatatypesCommentView( + comment = this.toUni(d = d.comment, d.counts), + creator = this.toUni(d = d.creator), + post = this.toUni(d = d.post, counts = X3DatatypesPostAggregates(-1, -1, -1, -1, -1, "", "")), + community = this.toUni(d = d.community, counts = X3DatatypesCommunityAggregates(-1, -1, -1, -1, "", -1, -1, -1, -1)), + creator_banned_from_community = d.creator_banned_from_community, + creator_is_moderator = d.creator_is_moderator, + creator_is_admin = d.creator_is_admin, + tags = emptyList(), + creator_banned = d.creator.banned, + creator_ban_expires_at = d.creator.ban_expires, + can_mod = false, + person_actions = PersonActions(if (d.creator_blocked) "" else null), + comment_actions = CommentActions(d.my_vote, null, if (d.saved) "" else null), + community_actions = CommunityActions(null, CommunityFollowerState.from(d.subscribed)), + ) + + fun toUniPMV(d: X3DatatypesPrivateMessageView): NotificationView = + NotificationView( + notification = Notification( + id = d.private_message.id, + recipient_id = d.private_message.recipient_id, + read = d.private_message.read, + published_at = d.private_message.published, + kind = NotificationType.PrivateMessage, + creator_id = d.creator.id, + ), + data = this.toUni(d), ) - override fun toUni(d: X3DatatypesGetReportCountResponse): LemmyapiDatatypesGetReportCountResponse = LemmyapiDatatypesGetReportCountResponse( - community_id = d.community_id, - comment_reports = d.comment_reports, - post_reports = d.post_reports, - private_message_reports = d.private_message_reports, - ) - override fun toUni(d: X3DatatypesGetSiteMetadataResponse): LemmyapiDatatypesGetSiteMetadataResponse = LemmyapiDatatypesGetSiteMetadataResponse( metadata = this.toUni(d = d.metadata), ) - override fun toUni(d: X3DatatypesGetUnreadCountResponse): LemmyapiDatatypesGetUnreadCountResponse = LemmyapiDatatypesGetUnreadCountResponse( - replies = d.replies, - mentions = d.mentions, - private_messages = d.private_messages, - ) - - override fun toUni(d: X3DatatypesGetUnreadRegistrationApplicationCountResponse): LemmyapiDatatypesGetUnreadRegistrationApplicationCountResponse = - LemmyapiDatatypesGetUnreadRegistrationApplicationCountResponse( - registration_applications = d.registration_applications, - ) - override fun toUni(d: X3DatatypesInstance): LemmyapiDatatypesInstance = LemmyapiDatatypesInstance( id = d.id, domain = d.domain, - published = d.published, - updated = d.updated, - software = d.software, - version = d.version, - ) - - override fun toUni(d: X3DatatypesInstanceBlockView): LemmyapiDatatypesInstanceBlockView = - LemmyapiDatatypesInstanceBlockView( - person = this.toUni(d = d.person), - instance = this.toUni(d = d.instance), - site = d.site?.let { this.toUni(d = it) }, - ) - - override fun toUni(d: X3DatatypesInstanceWithFederationState): LemmyapiDatatypesInstanceWithFederationState = LemmyapiDatatypesInstanceWithFederationState( - id = d.id, - domain = d.domain, - published = d.published, - updated = d.updated, + published_at = d.published, + updated_at = d.updated, software = d.software, version = d.version, - federation_state = d.federation_state?.let { this.toUni(d = it) }, ) override fun toUni(d: X3DatatypesLanguage): LemmyapiDatatypesLanguage = LemmyapiDatatypesLanguage( @@ -1006,56 +749,25 @@ internal class Transformer : MapperGenerator { name = d.name, ) - override fun toUni(d: X3DatatypesListCommentLikesResponse): LemmyapiDatatypesListCommentLikesResponse = LemmyapiDatatypesListCommentLikesResponse( - comment_likes = d.comment_likes.map { this.toUni(d = it) }, - ) - - override fun toUni(d: X3DatatypesListCommentReportsResponse): LemmyapiDatatypesListCommentReportsResponse = LemmyapiDatatypesListCommentReportsResponse( - comment_reports = d.comment_reports.map { this.toUni(d = it) }, - ) - - override fun toUni(d: X3DatatypesListCommunitiesResponse): LemmyapiDatatypesListCommunitiesResponse = LemmyapiDatatypesListCommunitiesResponse( - communities = d.communities.map { this.toUni(d = it) }, - ) - - override fun toUni(d: X3DatatypesListPostLikesResponse): LemmyapiDatatypesListPostLikesResponse = - LemmyapiDatatypesListPostLikesResponse( - post_likes = d.post_likes.map { this.toUni(d = it) }, - ) - - override fun toUni(d: X3DatatypesListPostReportsResponse): LemmyapiDatatypesListPostReportsResponse = LemmyapiDatatypesListPostReportsResponse( - post_reports = d.post_reports.map { this.toUni(d = it) }, - ) - - override fun toUni(d: X3DatatypesListPrivateMessageReportsResponse): LemmyapiDatatypesListPrivateMessageReportsResponse = - LemmyapiDatatypesListPrivateMessageReportsResponse( - private_message_reports = d.private_message_reports.map { this.toUni(d = it) }, - ) - - override fun toUni(d: X3DatatypesListRegistrationApplicationsResponse): LemmyapiDatatypesListRegistrationApplicationsResponse = - LemmyapiDatatypesListRegistrationApplicationsResponse( - registration_applications = d.registration_applications.map { this.toUni(d = it) }, - ) - override fun toUni(d: X3DatatypesLocalSiteRateLimit): LemmyapiDatatypesLocalSiteRateLimit = LemmyapiDatatypesLocalSiteRateLimit( local_site_id = d.local_site_id, - message = d.message, - message_per_second = d.message_per_second, - post = d.post, - post_per_second = d.post_per_second, - register = d.register, - register_per_second = d.register_per_second, - image = d.image, - image_per_second = d.image_per_second, - comment = d.comment, - comment_per_second = d.comment_per_second, - search = d.search, - search_per_second = d.search_per_second, - published = d.published, - updated = d.updated, - import_user_settings = d.import_user_settings, - import_user_settings_per_second = d.import_user_settings_per_second, + message_max_requests = d.message, + message_interval_seconds = d.message_per_second, + post_max_requests = d.post, + post_interval_seconds = d.post_per_second, + register_max_requests = d.register, + register_interval_seconds = d.register_per_second, + image_max_requests = d.image, + image_interval_seconds = d.image_per_second, + comment_max_requests = d.comment, + comment_interval_seconds = d.comment_per_second, + search_max_requests = d.search, + search_interval_seconds = d.search_per_second, + published_at = d.published, + updated_at = d.updated, + import_user_settings_max_requests = d.import_user_settings, + import_user_settings_interval_seconds = d.import_user_settings_per_second, ) override fun toUni(d: X3DatatypesLocalUser): LemmyapiDatatypesLocalUser = @@ -1065,34 +777,44 @@ internal class Transformer : MapperGenerator { email = d.email, show_nsfw = d.show_nsfw, theme = d.theme, - default_sort_type = d.default_sort_type, - default_listing_type = d.default_listing_type, + default_post_sort_type = d.default_sort_type.toUni(), + default_listing_type = d.default_listing_type.toUni(), interface_language = d.interface_language, show_avatars = d.show_avatars, send_notifications_to_email = d.send_notifications_to_email, - show_scores = d.show_scores, show_bot_accounts = d.show_bot_accounts, show_read_posts = d.show_read_posts, email_verified = d.email_verified, accepted_application = d.accepted_application, open_links_in_new_tab = d.open_links_in_new_tab, blur_nsfw = d.blur_nsfw, - auto_expand = d.auto_expand, infinite_scroll_enabled = d.infinite_scroll_enabled, admin = d.admin, - post_listing_mode = d.post_listing_mode, - totp_2fa_enabled = d.totp_2fa_enabled, - enable_keyboard_navigation = d.enable_keyboard_navigation, - enable_animated_images = d.enable_animated_images, + post_listing_mode = d.post_listing_mode.toUni(), + animated_images_enabled = d.enable_animated_images, collapse_bot_comments = d.collapse_bot_comments, - last_donation_notification = "", + last_donation_notification_at = "", + show_score = d.show_scores, + show_upvotes = d.show_scores, + show_person_votes = d.show_scores, + show_upvote_percentage = d.show_scores, + hide_posts_with_media = false, + show_media = true, + show_downvotes = VoteShow.Show, + private_messages_enabled = true, + default_comment_sort_type = CommentSortType.Hot, + auto_mark_fetched_posts_as_read = false, + default_post_time_range_seconds = null, + default_items_per_page = 20, + totp_2fa_enabled = d.totp_2fa_enabled, ) override fun toUni(d: X3DatatypesLocalUserView): LemmyapiDatatypesLocalUserView = LemmyapiDatatypesLocalUserView( local_user = this.toUni(d = d.local_user), - person = this.toUni(d = d.person), - counts = this.toUni(d = d.counts), + person = this.toUni(d = d.person, d.counts), + banned = d.person.banned, + ban_expires_at = d.person.ban_expires, ) override fun toUni(d: X3DatatypesLoginResponse): LemmyapiDatatypesLoginResponse = @@ -1105,277 +827,56 @@ internal class Transformer : MapperGenerator { override fun toUni(d: X3DatatypesLoginToken): LemmyapiDatatypesLoginToken = LemmyapiDatatypesLoginToken( user_id = d.user_id, - published = d.published, + published_at = d.published, ip = d.ip, user_agent = d.user_agent, ) - override fun toUni(d: X3DatatypesModAdd): LemmyapiDatatypesModAdd = LemmyapiDatatypesModAdd( - id = d.id, - mod_person_id = d.mod_person_id, - other_person_id = d.other_person_id, - removed = d.removed, - when_ = d.when_, - ) - - override fun toUni(d: X3DatatypesModAddCommunity): LemmyapiDatatypesModAddCommunity = - LemmyapiDatatypesModAddCommunity( - id = d.id, - mod_person_id = d.mod_person_id, - other_person_id = d.other_person_id, - community_id = d.community_id, - removed = d.removed, - when_ = d.when_, - ) - - override fun toUni(d: X3DatatypesModAddCommunityView): LemmyapiDatatypesModAddCommunityView = - LemmyapiDatatypesModAddCommunityView( - mod_add_community = this.toUni(d = d.mod_add_community), - moderator = d.moderator?.let { this.toUni(d = it) }, - community = this.toUni(d = d.community), - modded_person = this.toUni(d = d.modded_person), - ) - - override fun toUni(d: X3DatatypesModAddView): LemmyapiDatatypesModAddView = - LemmyapiDatatypesModAddView( - mod_add = this.toUni(d = d.mod_add), - moderator = d.moderator?.let { this.toUni(d = it) }, - modded_person = this.toUni(d = d.modded_person), - ) - - override fun toUni(d: X3DatatypesModBan): LemmyapiDatatypesModBan = LemmyapiDatatypesModBan( - id = d.id, - mod_person_id = d.mod_person_id, - other_person_id = d.other_person_id, - reason = d.reason, - banned = d.banned, - expires = d.expires, - when_ = d.when_, - ) - - override fun toUni(d: X3DatatypesModBanFromCommunity): LemmyapiDatatypesModBanFromCommunity = - LemmyapiDatatypesModBanFromCommunity( - id = d.id, - mod_person_id = d.mod_person_id, - other_person_id = d.other_person_id, - community_id = d.community_id, - reason = d.reason, - banned = d.banned, - expires = d.expires, - when_ = d.when_, - ) - - override fun toUni(d: X3DatatypesModBanFromCommunityView): LemmyapiDatatypesModBanFromCommunityView = LemmyapiDatatypesModBanFromCommunityView( - mod_ban_from_community = this.toUni(d = d.mod_ban_from_community), - moderator = d.moderator?.let { this.toUni(d = it) }, - community = this.toUni(d = d.community), - banned_person = this.toUni(d = d.banned_person), - ) - - override fun toUni(d: X3DatatypesModBanView): LemmyapiDatatypesModBanView = - LemmyapiDatatypesModBanView( - mod_ban = this.toUni(d = d.mod_ban), - moderator = d.moderator?.let { this.toUni(d = it) }, - banned_person = this.toUni(d = d.banned_person), - ) - - override fun toUni(d: X3DatatypesModFeaturePost): LemmyapiDatatypesModFeaturePost = - LemmyapiDatatypesModFeaturePost( - id = d.id, - mod_person_id = d.mod_person_id, - post_id = d.post_id, - featured = d.featured, - when_ = d.when_, - is_featured_community = d.is_featured_community, - ) - - override fun toUni(d: X3DatatypesModFeaturePostView): LemmyapiDatatypesModFeaturePostView = - LemmyapiDatatypesModFeaturePostView( - mod_feature_post = this.toUni(d = d.mod_feature_post), - moderator = d.moderator?.let { this.toUni(d = it) }, - post = this.toUni(d = d.post), - community = this.toUni(d = d.community), - ) - - override fun toUni(d: X3DatatypesModHideCommunity): LemmyapiDatatypesModHideCommunity = - LemmyapiDatatypesModHideCommunity( - id = d.id, - community_id = d.community_id, - mod_person_id = d.mod_person_id, - when_ = d.when_, - reason = d.reason, - hidden = d.hidden, - ) - - override fun toUni(d: X3DatatypesModHideCommunityView): LemmyapiDatatypesModHideCommunityView = - LemmyapiDatatypesModHideCommunityView( - mod_hide_community = this.toUni(d = d.mod_hide_community), - admin = d.admin?.let { this.toUni(d = it) }, - community = this.toUni(d = d.community), - ) - - override fun toUni(d: X3DatatypesModLockPost): LemmyapiDatatypesModLockPost = - LemmyapiDatatypesModLockPost( - id = d.id, - mod_person_id = d.mod_person_id, - post_id = d.post_id, - locked = d.locked, - when_ = d.when_, - ) - - override fun toUni(d: X3DatatypesModLockPostView): LemmyapiDatatypesModLockPostView = - LemmyapiDatatypesModLockPostView( - mod_lock_post = this.toUni(d = d.mod_lock_post), - moderator = d.moderator?.let { this.toUni(d = it) }, - post = this.toUni(d = d.post), - community = this.toUni(d = d.community), - ) - - override fun toUni(d: X3DatatypesModlogListParams): LemmyapiDatatypesModlogListParams = - LemmyapiDatatypesModlogListParams( - community_id = d.community_id, - mod_person_id = d.mod_person_id, - other_person_id = d.other_person_id, - page = d.page, - limit = d.limit, - hide_modlog_names = d.hide_modlog_names, - ) - - override fun toUni(d: X3DatatypesModRemoveComment): LemmyapiDatatypesModRemoveComment = - LemmyapiDatatypesModRemoveComment( - id = d.id, - mod_person_id = d.mod_person_id, - comment_id = d.comment_id, - reason = d.reason, - removed = d.removed, - when_ = d.when_, - ) - - override fun toUni(d: X3DatatypesModRemoveCommentView): LemmyapiDatatypesModRemoveCommentView = - LemmyapiDatatypesModRemoveCommentView( - mod_remove_comment = this.toUni(d = d.mod_remove_comment), - moderator = d.moderator?.let { this.toUni(d = it) }, - comment = this.toUni(d = d.comment), - commenter = this.toUni(d = d.commenter), - post = this.toUni(d = d.post), - community = this.toUni(d = d.community), - ) - - override fun toUni(d: X3DatatypesModRemoveCommunity): LemmyapiDatatypesModRemoveCommunity = - LemmyapiDatatypesModRemoveCommunity( - id = d.id, - mod_person_id = d.mod_person_id, - community_id = d.community_id, - reason = d.reason, - removed = d.removed, - when_ = d.when_, - ) - - override fun toUni(d: X3DatatypesModRemoveCommunityView): LemmyapiDatatypesModRemoveCommunityView = LemmyapiDatatypesModRemoveCommunityView( - mod_remove_community = this.toUni(d = d.mod_remove_community), - moderator = d.moderator?.let { this.toUni(d = it) }, - community = this.toUni(d = d.community), - ) - - override fun toUni(d: X3DatatypesModRemovePost): LemmyapiDatatypesModRemovePost = - LemmyapiDatatypesModRemovePost( - id = d.id, - mod_person_id = d.mod_person_id, - post_id = d.post_id, - reason = d.reason, - removed = d.removed, - when_ = d.when_, - ) - - override fun toUni(d: X3DatatypesModRemovePostView): LemmyapiDatatypesModRemovePostView = - LemmyapiDatatypesModRemovePostView( - mod_remove_post = this.toUni(d = d.mod_remove_post), - moderator = d.moderator?.let { this.toUni(d = it) }, - post = this.toUni(d = d.post), - community = this.toUni(d = d.community), - ) - - override fun toUni(d: X3DatatypesModTransferCommunity): LemmyapiDatatypesModTransferCommunity = - LemmyapiDatatypesModTransferCommunity( - id = d.id, - mod_person_id = d.mod_person_id, - other_person_id = d.other_person_id, - community_id = d.community_id, - when_ = d.when_, - ) - - override fun toUni(d: X3DatatypesModTransferCommunityView): LemmyapiDatatypesModTransferCommunityView = LemmyapiDatatypesModTransferCommunityView( - mod_transfer_community = this.toUni(d = d.mod_transfer_community), - moderator = d.moderator?.let { this.toUni(d = it) }, - community = this.toUni(d = d.community), - modded_person = this.toUni(d = d.modded_person), - ) - override fun toUni(d: X3DatatypesMyUserInfo): LemmyapiDatatypesMyUserInfo = LemmyapiDatatypesMyUserInfo( local_user_view = this.toUni(d = d.local_user_view), follows = d.follows.map { this.toUni(d = it) }, moderates = d.moderates.map { this.toUni(d = it) }, - community_blocks = d.community_blocks.map { this.toUni(d = it) }, - instance_blocks = d.instance_blocks.map { this.toUni(d = it) }, - person_blocks = d.person_blocks.map { this.toUni(d = it) }, + community_blocks = d.community_blocks.map { this.toUni(d = it.community, counts = X3DatatypesCommunityAggregates(-1, -1, -1, -1, "", -1, -1, -1, -1)) }, + instance_communities_blocks = d.instance_blocks.map { this.toUni(d = it.instance) }, + instance_persons_blocks = emptyList(), + person_blocks = d.person_blocks.map { this.toUni(d = it.target) }, discussion_languages = d.discussion_languages, + multi_community_follows = emptyList(), ) - override fun toUni(d: X3DatatypesPerson): LemmyapiDatatypesPerson = LemmyapiDatatypesPerson( + fun toUni(d: X3DatatypesPerson) = this.toUni(d, X3DatatypesPersonAggregates(-1, -1, -1)) + + override fun toUni(d: X3DatatypesPerson, counts: X3DatatypesPersonAggregates): LemmyapiDatatypesPerson = LemmyapiDatatypesPerson( id = d.id, name = d.name, display_name = d.display_name, avatar = d.avatar, - banned = d.banned, - published = d.published, - updated = d.updated, - actor_id = d.actor_id, + published_at = d.published, + updated_at = d.updated, + ap_id = d.actor_id, bio = d.bio, local = d.local, banner = d.banner, deleted = d.deleted, matrix_user_id = d.matrix_user_id, bot_account = d.bot_account, - ban_expires = d.ban_expires, instance_id = d.instance_id, + post_count = counts.post_count, + comment_count = counts.comment_count, + last_refreshed_at = "", ) - override fun toUni(d: X3DatatypesPersonAggregates): LemmyapiDatatypesPersonAggregates = - LemmyapiDatatypesPersonAggregates( - person_id = d.person_id, - post_count = d.post_count, - comment_count = d.comment_count, - ) - - override fun toUni(d: X3DatatypesPersonBlockView): LemmyapiDatatypesPersonBlockView = - LemmyapiDatatypesPersonBlockView( - person = this.toUni(d = d.person), - target = this.toUni(d = d.target), - ) - - override fun toUni(d: X3DatatypesPersonMention): LemmyapiDatatypesPersonMention = - LemmyapiDatatypesPersonMention( - id = d.id, - recipient_id = d.recipient_id, - comment_id = d.comment_id, - read = d.read, - published = d.published, - ) - - override fun toUni(d: X3DatatypesPersonMentionResponse): LemmyapiDatatypesPersonMentionResponse = - LemmyapiDatatypesPersonMentionResponse( - person_mention_view = this.toUni(d = d.person_mention_view), - ) - override fun toUni(d: X3DatatypesPersonView): LemmyapiDatatypesPersonView = LemmyapiDatatypesPersonView( - person = this.toUni(d = d.person), - counts = this.toUni(d = d.counts), + person = this.toUni(d = d.person, d.counts), is_admin = d.is_admin, + person_actions = null, + banned = d.person.banned, + ban_expires_at = d.person.ban_expires, ) - override fun toUni(d: X3DatatypesPost): LemmyapiDatatypesPost = LemmyapiDatatypesPost( + override fun toUni(d: X3DatatypesPost, counts: X3DatatypesPostAggregates): LemmyapiDatatypesPost = LemmyapiDatatypesPost( id = d.id, name = d.name, url = d.url, @@ -1384,8 +885,8 @@ internal class Transformer : MapperGenerator { community_id = d.community_id, removed = d.removed, locked = d.locked, - published = d.published, - updated = d.updated, + published_at = d.published, + updated_at = d.updated, deleted = d.deleted, nsfw = d.nsfw, embed_title = d.embed_title, @@ -1397,19 +898,16 @@ internal class Transformer : MapperGenerator { language_id = d.language_id, featured_community = d.featured_community, featured_local = d.featured_local, + comments = counts.comments, + score = counts.score, + upvotes = counts.upvotes, + downvotes = counts.downvotes, + newest_comment_time_at = counts.newest_comment_time, + report_count = -1, + unresolved_report_count = -1, + federation_pending = false, ) - override fun toUni(d: X3DatatypesPostAggregates): LemmyapiDatatypesPostAggregates = - LemmyapiDatatypesPostAggregates( - post_id = d.post_id, - comments = d.comments, - score = d.score, - upvotes = d.upvotes, - downvotes = d.downvotes, - published = d.published, - newest_comment_time = d.newest_comment_time, - ) - override fun toUni(d: X3DatatypesPostReport): LemmyapiDatatypesPostReport = LemmyapiDatatypesPostReport( id = d.id, @@ -1421,8 +919,9 @@ internal class Transformer : MapperGenerator { reason = d.reason, resolved = d.resolved, resolver_id = d.resolver_id, - published = d.published, - updated = d.updated, + published_at = d.published, + updated_at = d.updated, + violates_instance_rules = false, ) override fun toUni(d: X3DatatypesPostReportResponse): LemmyapiDatatypesPostReportResponse = @@ -1443,10 +942,12 @@ internal class Transformer : MapperGenerator { content = d.content, deleted = d.deleted, read = d.read, - published = d.published, - updated = d.updated, + published_at = d.published, + updated_at = d.updated, ap_id = d.ap_id, local = d.local, + removed = false, + deleted_by_recipient = false, ) override fun toUni(d: X3DatatypesPrivateMessageReport): LemmyapiDatatypesPrivateMessageReport = @@ -1458,8 +959,8 @@ internal class Transformer : MapperGenerator { reason = d.reason, resolved = d.resolved, resolver_id = d.resolver_id, - published = d.published, - updated = d.updated, + published_at = d.published, + updated_at = d.updated, ) override fun toUni(d: X3DatatypesPrivateMessageReportResponse): LemmyapiDatatypesPrivateMessageReportResponse = LemmyapiDatatypesPrivateMessageReportResponse( @@ -1472,16 +973,15 @@ internal class Transformer : MapperGenerator { private_message_creator = this.toUni(d = d.private_message_creator), creator = this.toUni(d = d.creator), resolver = d.resolver?.let { this.toUni(d = it) }, + creator_is_admin = false, + creator_banned = d.creator.banned, + creator_ban_expires_at = d.creator.ban_expires, ) override fun toUni(d: X3DatatypesPrivateMessageResponse): LemmyapiDatatypesPrivateMessageResponse = LemmyapiDatatypesPrivateMessageResponse( private_message_view = this.toUni(d = d.private_message_view), ) - override fun toUni(d: X3DatatypesPrivateMessagesResponse): LemmyapiDatatypesPrivateMessagesResponse = LemmyapiDatatypesPrivateMessagesResponse( - private_messages = d.private_messages.map { this.toUni(d = it) }, - ) - override fun toUni(d: X3DatatypesPrivateMessageView): LemmyapiDatatypesPrivateMessageView = LemmyapiDatatypesPrivateMessageView( private_message = this.toUni(d = d.private_message), @@ -1492,10 +992,9 @@ internal class Transformer : MapperGenerator { override fun toUni(d: X3DatatypesReadableFederationState): LemmyapiDatatypesReadableFederationState = LemmyapiDatatypesReadableFederationState( instance_id = d.instance_id, last_successful_id = d.last_successful_id, - last_successful_published_time = d.last_successful_published_time, + last_successful_published_time_at = d.last_successful_published_time, fail_count = d.fail_count, - last_retry = d.last_retry, - next_retry = d.next_retry, + last_retry_at = d.last_retry, ) override fun toUni(d: X3DatatypesRegistrationApplication): LemmyapiDatatypesRegistrationApplication = LemmyapiDatatypesRegistrationApplication( @@ -1504,7 +1003,7 @@ internal class Transformer : MapperGenerator { answer = d.answer, admin_id = d.admin_id, deny_reason = d.deny_reason, - published = d.published, + published_at = d.published, ) override fun toUni(d: X3DatatypesRegistrationApplicationResponse): LemmyapiDatatypesRegistrationApplicationResponse = @@ -1519,70 +1018,63 @@ internal class Transformer : MapperGenerator { admin = d.admin?.let { this.toUni(d = it) }, ) - override fun toUni(d: X3DatatypesResolveObjectResponse): LemmyapiDatatypesResolveObjectResponse = - LemmyapiDatatypesResolveObjectResponse( - comment = d.comment?.let { this.toUni(d = it) }, - post = d.post?.let { this.toUni(d = it) }, - community = d.community?.let { this.toUni(d = it) }, - person = d.person?.let { this.toUni(d = it) }, + override fun toUni(d: X3DatatypesResolveObjectResponse): LemmyapiDatatypesSearchResponse = + LemmyapiDatatypesSearchResponse( + resolve = when { + d.post != null -> toUni(d.post) + d.comment != null -> toUni(d.comment) + d.community != null -> toUni(d.community) + d.person != null -> toUni(d.person) + else -> null + }, + comments = emptyList(), + posts = emptyList(), + communities = emptyList(), + persons = emptyList(), + multi_communities = emptyList(), ) override fun toUni(d: X3DatatypesSearchResponse): LemmyapiDatatypesSearchResponse = LemmyapiDatatypesSearchResponse( - type_ = d.type_, - comments = d.comments.map { this.toUni(d = it) }, - posts = d.posts.map { this.toUni(d = it) }, - communities = d.communities.map { this.toUni(d = it) }, - users = d.users.map { this.toUni(d = it) }, + comments = d.comments.map(this@Transformer::toUni), + posts = d.posts.map(this@Transformer::toUni), + communities = d.communities.map(this@Transformer::toUni), + persons = d.users.map(this@Transformer::toUni), + multi_communities = emptyList(), ) override fun toUni(d: X3DatatypesSite): LemmyapiDatatypesSite = LemmyapiDatatypesSite( id = d.id, name = d.name, sidebar = d.sidebar, - published = d.published, - updated = d.updated, + published_at = d.published, + updated_at = d.updated, icon = d.icon, banner = d.banner, - description = d.description, - actor_id = d.actor_id, + summary = d.description, + ap_id = d.actor_id, last_refreshed_at = d.last_refreshed_at, inbox_url = d.inbox_url, instance_id = d.instance_id, ) - override fun toUni(d: X3DatatypesSiteAggregates): LemmyapiDatatypesSiteAggregates = - LemmyapiDatatypesSiteAggregates( - site_id = d.site_id, - users = d.users, - posts = d.posts, - comments = d.comments, - communities = d.communities, - users_active_day = d.users_active_day, - users_active_week = d.users_active_week, - users_active_month = d.users_active_month, - users_active_half_year = d.users_active_half_year, - ) - override fun toUni(d: X3DatatypesSiteResponse): LemmyapiDatatypesSiteResponse = LemmyapiDatatypesSiteResponse( site_view = this.toUni(d = d.site_view), - taglines = d.taglines.map { this.toUni(d = it) }, ) override fun toUni(d: X3DatatypesSiteView): LemmyapiDatatypesSiteView = LemmyapiDatatypesSiteView( site = this.toUni(d = d.site), - local_site = this.toUni(d = d.local_site), + local_site = this.toUni(d = d.local_site, counts = d.counts), local_site_rate_limit = this.toUni(d = d.local_site_rate_limit), - counts = this.toUni(d = d.counts), + instance = null, ) override fun toUni(d: X3DatatypesTagline): LemmyapiDatatypesTagline = LemmyapiDatatypesTagline( id = d.id, - local_site_id = d.local_site_id, content = d.content, - published = d.published, - updated = d.updated, + published_at = d.published, + updated_at = d.updated, ) override fun toUni(d: X3DatatypesUpdateTotpResponse): LemmyapiDatatypesUpdateTotpResponse = @@ -1613,17 +1105,17 @@ internal class Transformer : MapperGenerator { community_id = d.community_id, person_id = d.person_id, ban = d.ban, - remove_data = d.remove_data, + remove_data = d.remove_or_restore_data, reason = d.reason, - expires = d.expires, + expires = d.expires_at, ) override fun fromUni(d: LemmyapiDatatypesBanPerson): X3DatatypesBanPerson = X3DatatypesBanPerson( person_id = d.person_id, ban = d.ban, - remove_data = d.remove_data, + remove_data = d.remove_or_restore_data, reason = d.reason, - expires = d.expires, + expires = d.expires_at, ) override fun fromUni(d: LemmyapiDatatypesBlockCommunity): X3DatatypesBlockCommunity = @@ -1675,9 +1167,7 @@ internal class Transformer : MapperGenerator { X3DatatypesCreateCommunity( name = d.name, title = d.title, - description = d.description, - icon = d.icon, - banner = d.banner, + description = d.summary, nsfw = d.nsfw, posting_restricted_to_mods = d.posting_restricted_to_mods, discussion_languages = d.discussion_languages, @@ -1730,43 +1220,42 @@ internal class Transformer : MapperGenerator { X3DatatypesCreateSite( name = d.name, sidebar = d.sidebar, - description = d.description, - icon = d.icon, - banner = d.banner, - enable_downvotes = d.enable_downvotes, - enable_nsfw = d.enable_nsfw, + description = d.summary, + enable_downvotes = when (d.post_downvotes) { + FederationMode.Local, FederationMode.All -> true + FederationMode.Disable -> false + null -> null + }, + enable_nsfw = if (d.nsfw_content_disallowed == null) null else !d.nsfw_content_disallowed, community_creation_admin_only = d.community_creation_admin_only, - require_email_verification = d.require_email_verification, + require_email_verification = d.email_verification_required, application_question = d.application_question, private_instance = d.private_instance, default_theme = d.default_theme, - default_post_listing_type = d.default_post_listing_type, + default_post_listing_type = V0ListingType.fromUniNullable(d.default_post_listing_type), legal_information = d.legal_information, application_email_admins = d.application_email_admins, - hide_modlog_mod_names = d.hide_modlog_mod_names, discussion_languages = d.discussion_languages, slur_filter_regex = d.slur_filter_regex, - actor_name_max_length = d.actor_name_max_length, - rate_limit_message = d.rate_limit_message, - rate_limit_message_per_second = d.rate_limit_message_per_second, - rate_limit_post = d.rate_limit_post, - rate_limit_post_per_second = d.rate_limit_post_per_second, - rate_limit_register = d.rate_limit_register, - rate_limit_register_per_second = d.rate_limit_register_per_second, - rate_limit_image = d.rate_limit_image, - rate_limit_image_per_second = d.rate_limit_image_per_second, - rate_limit_comment = d.rate_limit_comment, - rate_limit_comment_per_second = d.rate_limit_comment_per_second, - rate_limit_search = d.rate_limit_search, - rate_limit_search_per_second = d.rate_limit_search_per_second, + rate_limit_message = d.rate_limit_message_max_requests, + rate_limit_message_per_second = d.rate_limit_message_interval_seconds, + rate_limit_post = d.rate_limit_post_max_requests, + rate_limit_post_per_second = d.rate_limit_post_interval_seconds, + rate_limit_register = d.rate_limit_register_max_requests, + rate_limit_register_per_second = d.rate_limit_register_interval_seconds, + rate_limit_image = d.rate_limit_image_max_requests, + rate_limit_image_per_second = d.rate_limit_image_interval_seconds, + rate_limit_comment = d.rate_limit_comment_max_requests, + rate_limit_comment_per_second = d.rate_limit_comment_interval_seconds, + rate_limit_search = d.rate_limit_search_max_requests, + rate_limit_search_per_second = d.rate_limit_search_interval_seconds, federation_enabled = d.federation_enabled, - federation_debug = d.federation_debug, - captcha_enabled = d.captcha_enabled, - captcha_difficulty = d.captcha_difficulty, + captcha_enabled = null, + captcha_difficulty = null, allowed_instances = d.allowed_instances, blocked_instances = d.blocked_instances, taglines = d.taglines, - registration_mode = d.registration_mode, + registration_mode = V0RegistrationMode.fromUniNullable(d.registration_mode), ) override fun fromUni(d: LemmyapiDatatypesDeleteAccount): X3DatatypesDeleteAccount = @@ -1821,9 +1310,7 @@ internal class Transformer : MapperGenerator { X3DatatypesEditCommunity( community_id = d.community_id, title = d.title, - description = d.description, - icon = d.icon, - banner = d.banner, + description = d.summary, nsfw = d.nsfw, posting_restricted_to_mods = d.posting_restricted_to_mods, discussion_languages = d.discussion_languages, @@ -1832,10 +1319,10 @@ internal class Transformer : MapperGenerator { override fun fromUni(d: LemmyapiDatatypesEditCustomEmoji): X3DatatypesEditCustomEmoji = X3DatatypesEditCustomEmoji( id = d.id, - category = d.category, - image_url = d.image_url, - alt_text = d.alt_text, - keywords = d.keywords, + category = d.category ?: "", + image_url = d.image_url ?: "", + alt_text = d.alt_text ?: "", + keywords = d.keywords ?: emptyList(), ) override fun fromUni(d: LemmyapiDatatypesEditPost): X3DatatypesEditPost = X3DatatypesEditPost( @@ -1856,43 +1343,44 @@ internal class Transformer : MapperGenerator { override fun fromUni(d: LemmyapiDatatypesEditSite): X3DatatypesEditSite = X3DatatypesEditSite( name = d.name, sidebar = d.sidebar, - description = d.description, - icon = d.icon, - banner = d.banner, - enable_downvotes = d.enable_downvotes, + description = d.summary, + enable_downvotes = when (d.post_downvotes) { + FederationMode.Local, FederationMode.All -> true + FederationMode.Disable -> false + null -> null + }, enable_nsfw = d.enable_nsfw, community_creation_admin_only = d.community_creation_admin_only, - require_email_verification = d.require_email_verification, + require_email_verification = d.email_verification_required, application_question = d.application_question, private_instance = d.private_instance, default_theme = d.default_theme, - default_post_listing_type = d.default_post_listing_type, + default_post_listing_type = V0ListingType.fromUniNullable(d.default_post_listing_type), legal_information = d.legal_information, application_email_admins = d.application_email_admins, hide_modlog_mod_names = d.hide_modlog_mod_names, discussion_languages = d.discussion_languages, slur_filter_regex = d.slur_filter_regex, - actor_name_max_length = d.actor_name_max_length, - rate_limit_message = d.rate_limit_message, - rate_limit_message_per_second = d.rate_limit_message_per_second, - rate_limit_post = d.rate_limit_post, - rate_limit_post_per_second = d.rate_limit_post_per_second, - rate_limit_register = d.rate_limit_register, - rate_limit_register_per_second = d.rate_limit_register_per_second, - rate_limit_image = d.rate_limit_image, - rate_limit_image_per_second = d.rate_limit_image_per_second, - rate_limit_comment = d.rate_limit_comment, - rate_limit_comment_per_second = d.rate_limit_comment_per_second, - rate_limit_search = d.rate_limit_search, - rate_limit_search_per_second = d.rate_limit_search_per_second, + rate_limit_message = d.rate_limit_message_max_requests, + rate_limit_message_per_second = d.rate_limit_message_interval_seconds, + rate_limit_post = d.rate_limit_post_max_requests, + rate_limit_post_per_second = d.rate_limit_post_interval_seconds, + rate_limit_register = d.rate_limit_register_max_requests, + rate_limit_register_per_second = d.rate_limit_register_interval_seconds, + rate_limit_image = d.rate_limit_image_max_requests, + rate_limit_image_per_second = d.rate_limit_image_interval_seconds, + rate_limit_comment = d.rate_limit_comment_max_requests, + rate_limit_comment_per_second = d.rate_limit_comment_interval_seconds, + rate_limit_search = d.rate_limit_search_max_requests, + rate_limit_search_per_second = d.rate_limit_search_interval_seconds, federation_enabled = d.federation_enabled, federation_debug = d.federation_debug, - captcha_enabled = d.captcha_enabled, - captcha_difficulty = d.captcha_difficulty, + captcha_enabled = null, + captcha_difficulty = null, allowed_instances = d.allowed_instances, blocked_instances = d.blocked_instances, taglines = d.taglines, - registration_mode = d.registration_mode, + registration_mode = V0RegistrationMode.fromUniNullable(d.registration_mode), reports_email_admins = d.reports_email_admins, ) @@ -1900,7 +1388,7 @@ internal class Transformer : MapperGenerator { X3DatatypesFeaturePost( post_id = d.post_id, featured = d.featured, - feature_type = d.feature_type, + feature_type = V0PostFeatureType.fromUni(d.feature_type), ) override fun fromUni(d: LemmyapiDatatypesFollowCommunity): X3DatatypesFollowCommunity = @@ -1916,9 +1404,8 @@ internal class Transformer : MapperGenerator { override fun fromUni(d: LemmyapiDatatypesGetComments): X3DatatypesGetComments = X3DatatypesGetComments( - type_ = d.type_, - sort = d.sort, - max_depth = d.max_depth, + type_ = V0ListingType.fromUniNullable(d.type_), + sort = V0CommentSortType.fromUniNullable(d.sort), page = d.page, limit = d.limit, community_id = d.community_id, @@ -1941,7 +1428,7 @@ internal class Transformer : MapperGenerator { community_id = d.community_id, page = d.page, limit = d.limit, - type_ = d.type_, + type_ = V0ModlogActionType.fromUniNullable(d.type_), other_person_id = d.other_person_id, ) @@ -1949,19 +1436,6 @@ internal class Transformer : MapperGenerator { X3DatatypesGetPersonDetails( person_id = d.person_id, username = d.username, - sort = d.sort, - page = d.page, - limit = d.limit, - community_id = d.community_id, - saved_only = d.saved_only, - ) - - override fun fromUni(d: LemmyapiDatatypesGetPersonMentions): X3DatatypesGetPersonMentions = - X3DatatypesGetPersonMentions( - sort = d.sort, - page = d.page, - limit = d.limit, - unread_only = d.unread_only, ) override fun fromUni(d: LemmyapiDatatypesGetPost): X3DatatypesGetPost = X3DatatypesGetPost( @@ -1970,37 +1444,36 @@ internal class Transformer : MapperGenerator { ) override fun fromUni(d: LemmyapiDatatypesGetPosts): X3DatatypesGetPosts = X3DatatypesGetPosts( - type_ = d.type_, - sort = d.sort, + type_ = V0ListingType.fromUniNullable(d.type_), + sort = V0SortType.fromUniNullable(d.sort), page = d.page, limit = d.limit, community_id = d.community_id, community_name = d.community_name, - saved_only = d.saved_only, - liked_only = d.liked_only, - disliked_only = d.disliked_only, page_cursor = d.page_cursor, ) - override fun fromUni(d: LemmyapiDatatypesGetPrivateMessages): X3DatatypesGetPrivateMessages = - X3DatatypesGetPrivateMessages( - unread_only = d.unread_only, + fun fromUniR(d: LemmyapiDatatypesListNotifications): X3DatatypesGetReplies = + X3DatatypesGetReplies( + sort = V0CommentSortType.New, page = d.page, limit = d.limit, - creator_id = d.creator_id, + unread_only = d.unread_only, ) - override fun fromUni(d: LemmyapiDatatypesGetReplies): X3DatatypesGetReplies = - X3DatatypesGetReplies( - sort = d.sort, + fun fromUniM(d: LemmyapiDatatypesListNotifications): X3DatatypesGetPersonMentions = + X3DatatypesGetPersonMentions( + sort = V0CommentSortType.New, page = d.page, limit = d.limit, unread_only = d.unread_only, ) - override fun fromUni(d: LemmyapiDatatypesGetReportCount): X3DatatypesGetReportCount = - X3DatatypesGetReportCount( - community_id = d.community_id, + fun fromUniP(d: LemmyapiDatatypesListNotifications): X3DatatypesGetPrivateMessages = + X3DatatypesGetPrivateMessages( + page = d.page, + limit = d.limit, + unread_only = d.unread_only, ) override fun fromUni(d: LemmyapiDatatypesGetSiteMetadata): X3DatatypesGetSiteMetadata = @@ -2015,25 +1488,40 @@ internal class Transformer : MapperGenerator { reason = d.reason, ) - override fun fromUni(d: LemmyapiDatatypesListCommentLikes): X3DatatypesListCommentLikes = - X3DatatypesListCommentLikes( - comment_id = d.comment_id, + override fun fromUniC(d: it.vercruysse.lemmyapi.datatypes.ListReports): X3DatatypesListCommentReports = + X3DatatypesListCommentReports( page = d.page, limit = d.limit, + unresolved_only = d.unresolved_only, + community_id = d.community_id, ) - override fun fromUni(d: LemmyapiDatatypesListCommentReports): X3DatatypesListCommentReports = - X3DatatypesListCommentReports( + override fun fromUniP(d: it.vercruysse.lemmyapi.datatypes.ListReports): X3DatatypesListPostReports = + X3DatatypesListPostReports( page = d.page, limit = d.limit, unresolved_only = d.unresolved_only, community_id = d.community_id, ) + override fun fromUniPm(d: it.vercruysse.lemmyapi.datatypes.ListReports): X3DatatypesListPrivateMessageReports = + X3DatatypesListPrivateMessageReports( + page = d.page, + limit = d.limit, + unresolved_only = d.unresolved_only, + ) + + override fun fromUni(d: LemmyapiDatatypesListCommentLikes): X3DatatypesListCommentLikes = + X3DatatypesListCommentLikes( + comment_id = d.comment_id, + page = d.page, + limit = d.limit, + ) + override fun fromUni(d: LemmyapiDatatypesListCommunities): X3DatatypesListCommunities = X3DatatypesListCommunities( - type_ = d.type_, - sort = d.sort, + type_ = V0ListingType.fromUniNullable(d.type_), + sort = V0SortType.fromUniNullable(d.sort), show_nsfw = d.show_nsfw, page = d.page, limit = d.limit, @@ -2046,20 +1534,6 @@ internal class Transformer : MapperGenerator { limit = d.limit, ) - override fun fromUni(d: LemmyapiDatatypesListPostReports): X3DatatypesListPostReports = - X3DatatypesListPostReports( - page = d.page, - limit = d.limit, - unresolved_only = d.unresolved_only, - community_id = d.community_id, - ) - - override fun fromUni(d: LemmyapiDatatypesListPrivateMessageReports): X3DatatypesListPrivateMessageReports = X3DatatypesListPrivateMessageReports( - page = d.page, - limit = d.limit, - unresolved_only = d.unresolved_only, - ) - override fun fromUni(d: LemmyapiDatatypesListRegistrationApplications): X3DatatypesListRegistrationApplications = X3DatatypesListRegistrationApplications( unread_only = d.unread_only, page = d.page, @@ -2077,13 +1551,18 @@ internal class Transformer : MapperGenerator { totp_2fa_token = d.totp_2fa_token, ) - override fun fromUni(d: LemmyapiDatatypesMarkCommentReplyAsRead): X3DatatypesMarkCommentReplyAsRead = X3DatatypesMarkCommentReplyAsRead( - comment_reply_id = d.comment_reply_id, + fun fromUniR(d: MarkNotificationAsRead): X3DatatypesMarkCommentReplyAsRead = X3DatatypesMarkCommentReplyAsRead( + comment_reply_id = d.notification_id, read = d.read, ) - override fun fromUni(d: LemmyapiDatatypesMarkPersonMentionAsRead): X3DatatypesMarkPersonMentionAsRead = X3DatatypesMarkPersonMentionAsRead( - person_mention_id = d.person_mention_id, + fun fromUniM(d: MarkNotificationAsRead): X3DatatypesMarkPersonMentionAsRead = X3DatatypesMarkPersonMentionAsRead( + person_mention_id = d.notification_id, + read = d.read, + ) + + fun fromUniP(d: MarkNotificationAsRead): X3DatatypesMarkPrivateMessageAsRead = X3DatatypesMarkPrivateMessageAsRead( + private_message_id = d.notification_id, read = d.read, ) @@ -2093,11 +1572,6 @@ internal class Transformer : MapperGenerator { read = d.read, ) - override fun fromUni(d: LemmyapiDatatypesMarkPrivateMessageAsRead): X3DatatypesMarkPrivateMessageAsRead = X3DatatypesMarkPrivateMessageAsRead( - private_message_id = d.private_message_id, - read = d.read, - ) - override fun fromUni(d: LemmyapiDatatypesPasswordChangeAfterReset): X3DatatypesPasswordChangeAfterReset = X3DatatypesPasswordChangeAfterReset( token = d.token, password = d.password, @@ -2136,7 +1610,7 @@ internal class Transformer : MapperGenerator { username = d.username, password = d.password, password_verify = d.password_verify, - show_nsfw = d.show_nsfw, + show_nsfw = d.show_nsfw ?: false, email = d.email, captcha_uuid = d.captcha_uuid, captcha_answer = d.captcha_answer, @@ -2202,14 +1676,11 @@ internal class Transformer : MapperGenerator { X3DatatypesSaveUserSettings( show_nsfw = d.show_nsfw, blur_nsfw = d.blur_nsfw, - auto_expand = d.auto_expand, - show_scores = d.show_scores, + show_scores = d.show_score, theme = d.theme, - default_sort_type = d.default_sort_type, - default_listing_type = d.default_listing_type, + default_sort_type = V0SortType.fromUniNullable(d.default_post_sort_type), + default_listing_type = V0ListingType.fromUniNullable(d.default_listing_type), interface_language = d.interface_language, - avatar = d.avatar, - banner = d.banner, display_name = d.display_name, email = d.email, bio = d.bio, @@ -2222,20 +1693,17 @@ internal class Transformer : MapperGenerator { discussion_languages = d.discussion_languages, open_links_in_new_tab = d.open_links_in_new_tab, infinite_scroll_enabled = d.infinite_scroll_enabled, - post_listing_mode = d.post_listing_mode, - enable_keyboard_navigation = d.enable_keyboard_navigation, - enable_animated_images = d.enable_animated_images, + post_listing_mode = V0PostListingMode.fromUniNullable(d.post_listing_mode), collapse_bot_comments = d.collapse_bot_comments, ) override fun fromUni(d: LemmyapiDatatypesSearch): X3DatatypesSearch = X3DatatypesSearch( - q = d.q, + q = d.search_term, community_id = d.community_id, community_name = d.community_name, creator_id = d.creator_id, - type_ = d.type_, - sort = d.sort, - listing_type = d.listing_type, + type_ = V0SearchType.fromUniNullable(d.type_), + listing_type = V0ListingType.fromUniNullable(d.listing_type), page = d.page, limit = d.limit, ) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/ActivityId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/ActivityId.kt index 3cfab6cb..0304512e 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/ActivityId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/ActivityId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x3.datatypes -typealias ActivityId = Long +internal typealias ActivityId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/BlockInstanceResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/BlockInstanceResponse.kt deleted file mode 100644 index af1d67e3..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/BlockInstanceResponse.kt +++ /dev/null @@ -1,8 +0,0 @@ -package it.vercruysse.lemmyapi.v0.x19.x3.datatypes - -import kotlinx.serialization.Serializable - -@Serializable -internal data class BlockInstanceResponse( - val blocked: Boolean, -) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/CommentId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/CommentId.kt index f4fc7e36..66ce8bd9 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/CommentId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/CommentId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x3.datatypes -typealias CommentId = Long +internal typealias CommentId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/CommentReplyId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/CommentReplyId.kt index b5798a6c..6a9cbe81 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/CommentReplyId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/CommentReplyId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x3.datatypes -typealias CommentReplyId = Long +internal typealias CommentReplyId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/CommentReplyView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/CommentReplyView.kt index 53f6898a..8040c9bf 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/CommentReplyView.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/CommentReplyView.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x3.datatypes -import it.vercruysse.lemmyapi.dto.SubscribedType +import it.vercruysse.lemmyapi.v0.enums.SubscribedType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/CommentReportId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/CommentReportId.kt index e2f036ed..c4d13e51 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/CommentReportId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/CommentReportId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x3.datatypes -typealias CommentReportId = Long +internal typealias CommentReportId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/CommentView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/CommentView.kt index b66d6ecc..3b56d678 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/CommentView.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/CommentView.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x3.datatypes -import it.vercruysse.lemmyapi.dto.SubscribedType +import it.vercruysse.lemmyapi.v0.enums.SubscribedType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/CommunityId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/CommunityId.kt index 5bc39ad1..8c7f7f10 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/CommunityId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/CommunityId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x3.datatypes -typealias CommunityId = Long +internal typealias CommunityId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/CommunityView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/CommunityView.kt index 3cad08ea..d610b683 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/CommunityView.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/CommunityView.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x3.datatypes -import it.vercruysse.lemmyapi.dto.SubscribedType +import it.vercruysse.lemmyapi.v0.enums.SubscribedType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/CreateSite.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/CreateSite.kt index 3f1674d1..c00fef70 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/CreateSite.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/CreateSite.kt @@ -1,7 +1,7 @@ package it.vercruysse.lemmyapi.v0.x19.x3.datatypes -import it.vercruysse.lemmyapi.dto.RegistrationMode -import it.vercruysse.lemmyapi.dto.ListingType +import it.vercruysse.lemmyapi.v0.enums.ListingType +import it.vercruysse.lemmyapi.v0.enums.RegistrationMode import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/CustomEmojiId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/CustomEmojiId.kt index 6dc7c7a1..bfd7b4d6 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/CustomEmojiId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/CustomEmojiId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x3.datatypes -typealias CustomEmojiId = Long +internal typealias CustomEmojiId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/EditSite.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/EditSite.kt index c0d29b15..dd870818 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/EditSite.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/EditSite.kt @@ -1,7 +1,7 @@ package it.vercruysse.lemmyapi.v0.x19.x3.datatypes -import it.vercruysse.lemmyapi.dto.RegistrationMode -import it.vercruysse.lemmyapi.dto.ListingType +import it.vercruysse.lemmyapi.v0.enums.ListingType +import it.vercruysse.lemmyapi.v0.enums.RegistrationMode import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/FeaturePost.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/FeaturePost.kt index bb239a26..b1b272a4 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/FeaturePost.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/FeaturePost.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x3.datatypes -import it.vercruysse.lemmyapi.dto.PostFeatureType +import it.vercruysse.lemmyapi.v0.enums.PostFeatureType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/GetComments.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/GetComments.kt index 3e0ca766..425f3b46 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/GetComments.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/GetComments.kt @@ -1,7 +1,7 @@ package it.vercruysse.lemmyapi.v0.x19.x3.datatypes -import it.vercruysse.lemmyapi.dto.CommentSortType -import it.vercruysse.lemmyapi.dto.ListingType +import it.vercruysse.lemmyapi.v0.enums.CommentSortType +import it.vercruysse.lemmyapi.v0.enums.ListingType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/GetModlog.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/GetModlog.kt index 317f6b70..c3117f29 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/GetModlog.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/GetModlog.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x3.datatypes -import it.vercruysse.lemmyapi.dto.ModlogActionType +import it.vercruysse.lemmyapi.v0.enums.ModlogActionType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/GetPersonDetails.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/GetPersonDetails.kt index bbf215f3..18f63a40 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/GetPersonDetails.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/GetPersonDetails.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x3.datatypes -import it.vercruysse.lemmyapi.dto.SortType +import it.vercruysse.lemmyapi.v0.enums.SortType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/GetPersonMentions.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/GetPersonMentions.kt index a8487d95..3521be20 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/GetPersonMentions.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/GetPersonMentions.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x3.datatypes -import it.vercruysse.lemmyapi.dto.CommentSortType +import it.vercruysse.lemmyapi.v0.enums.CommentSortType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/GetPosts.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/GetPosts.kt index 04911ca7..8a169716 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/GetPosts.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/GetPosts.kt @@ -1,7 +1,7 @@ package it.vercruysse.lemmyapi.v0.x19.x3.datatypes -import it.vercruysse.lemmyapi.dto.SortType -import it.vercruysse.lemmyapi.dto.ListingType +import it.vercruysse.lemmyapi.v0.enums.ListingType +import it.vercruysse.lemmyapi.v0.enums.SortType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/GetReplies.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/GetReplies.kt index af5263f6..a14f9742 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/GetReplies.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/GetReplies.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x3.datatypes -import it.vercruysse.lemmyapi.dto.CommentSortType +import it.vercruysse.lemmyapi.v0.enums.CommentSortType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/InstanceId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/InstanceId.kt index 67085819..3bd91458 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/InstanceId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/InstanceId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x3.datatypes -typealias InstanceId = Long +internal typealias InstanceId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/LanguageId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/LanguageId.kt index 1e36e2f5..a0cbbb85 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/LanguageId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/LanguageId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x3.datatypes -typealias LanguageId = Long +internal typealias LanguageId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/ListCommunities.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/ListCommunities.kt index 9faa87d5..ec58c935 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/ListCommunities.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/ListCommunities.kt @@ -1,7 +1,7 @@ package it.vercruysse.lemmyapi.v0.x19.x3.datatypes -import it.vercruysse.lemmyapi.dto.SortType -import it.vercruysse.lemmyapi.dto.ListingType +import it.vercruysse.lemmyapi.v0.enums.ListingType +import it.vercruysse.lemmyapi.v0.enums.SortType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/LocalSite.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/LocalSite.kt index d93c8a06..2c1ba407 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/LocalSite.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/LocalSite.kt @@ -1,7 +1,7 @@ package it.vercruysse.lemmyapi.v0.x19.x3.datatypes -import it.vercruysse.lemmyapi.dto.RegistrationMode -import it.vercruysse.lemmyapi.dto.ListingType +import it.vercruysse.lemmyapi.v0.enums.ListingType +import it.vercruysse.lemmyapi.v0.enums.RegistrationMode import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/LocalSiteId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/LocalSiteId.kt index 93998e03..29dd0034 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/LocalSiteId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/LocalSiteId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x3.datatypes -typealias LocalSiteId = Long +internal typealias LocalSiteId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/LocalUser.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/LocalUser.kt index c48aa16a..1d948626 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/LocalUser.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/LocalUser.kt @@ -1,8 +1,8 @@ package it.vercruysse.lemmyapi.v0.x19.x3.datatypes -import it.vercruysse.lemmyapi.dto.PostListingMode -import it.vercruysse.lemmyapi.dto.ListingType -import it.vercruysse.lemmyapi.dto.SortType +import it.vercruysse.lemmyapi.v0.enums.ListingType +import it.vercruysse.lemmyapi.v0.enums.PostListingMode +import it.vercruysse.lemmyapi.v0.enums.SortType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/LocalUserId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/LocalUserId.kt index a20f33a1..fc55f63c 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/LocalUserId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/LocalUserId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x3.datatypes -typealias LocalUserId = Long +internal typealias LocalUserId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/ModlogListParams.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/ModlogListParams.kt deleted file mode 100644 index b44cd8bc..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/ModlogListParams.kt +++ /dev/null @@ -1,13 +0,0 @@ -package it.vercruysse.lemmyapi.v0.x19.x3.datatypes - -import kotlinx.serialization.Serializable - -@Serializable -internal data class ModlogListParams( - val community_id: CommunityId? = null, - val mod_person_id: PersonId? = null, - val other_person_id: PersonId? = null, - val page: Long? = null, - val limit: Long? = null, - val hide_modlog_names: Boolean, -) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/PaginationCursor.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/PaginationCursor.kt index 073ac3b9..cc2aaa37 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/PaginationCursor.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/PaginationCursor.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x3.datatypes -typealias PaginationCursor = String +internal typealias PaginationCursor = String diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/PersonId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/PersonId.kt index a956d9b4..9c32346c 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/PersonId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/PersonId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x3.datatypes -typealias PersonId = Long +internal typealias PersonId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/PersonMentionId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/PersonMentionId.kt index 9b94da64..a51fc571 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/PersonMentionId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/PersonMentionId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x3.datatypes -typealias PersonMentionId = Long +internal typealias PersonMentionId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/PersonMentionView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/PersonMentionView.kt index 96a71448..b7ada493 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/PersonMentionView.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/PersonMentionView.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x3.datatypes -import it.vercruysse.lemmyapi.dto.SubscribedType +import it.vercruysse.lemmyapi.v0.enums.SubscribedType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/PostId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/PostId.kt index d65d1c89..bb378653 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/PostId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/PostId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x3.datatypes -typealias PostId = Long +internal typealias PostId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/PostReportId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/PostReportId.kt index e53ae890..3e650219 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/PostReportId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/PostReportId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x3.datatypes -typealias PostReportId = Long +internal typealias PostReportId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/PostView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/PostView.kt index aeb2f0f1..19bbb5b9 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/PostView.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/PostView.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x3.datatypes -import it.vercruysse.lemmyapi.dto.SubscribedType +import it.vercruysse.lemmyapi.v0.enums.SubscribedType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/PrivateMessageId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/PrivateMessageId.kt index 6ec4292d..f8606e30 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/PrivateMessageId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/PrivateMessageId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x3.datatypes -typealias PrivateMessageId = Long +internal typealias PrivateMessageId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/PrivateMessageReportId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/PrivateMessageReportId.kt index b7df3b07..a68cd665 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/PrivateMessageReportId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/PrivateMessageReportId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x3.datatypes -typealias PrivateMessageReportId = Long +internal typealias PrivateMessageReportId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/SaveUserSettings.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/SaveUserSettings.kt index 8a1a38da..71194fec 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/SaveUserSettings.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/SaveUserSettings.kt @@ -1,8 +1,8 @@ package it.vercruysse.lemmyapi.v0.x19.x3.datatypes -import it.vercruysse.lemmyapi.dto.PostListingMode -import it.vercruysse.lemmyapi.dto.ListingType -import it.vercruysse.lemmyapi.dto.SortType +import it.vercruysse.lemmyapi.v0.enums.ListingType +import it.vercruysse.lemmyapi.v0.enums.PostListingMode +import it.vercruysse.lemmyapi.v0.enums.SortType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/Search.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/Search.kt index 5402368f..989380d5 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/Search.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/Search.kt @@ -1,8 +1,8 @@ package it.vercruysse.lemmyapi.v0.x19.x3.datatypes -import it.vercruysse.lemmyapi.dto.ListingType -import it.vercruysse.lemmyapi.dto.SortType -import it.vercruysse.lemmyapi.dto.SearchType +import it.vercruysse.lemmyapi.v0.enums.ListingType +import it.vercruysse.lemmyapi.v0.enums.SearchType +import it.vercruysse.lemmyapi.v0.enums.SortType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/SearchResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/SearchResponse.kt index fe25f36a..1444cb54 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/SearchResponse.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/SearchResponse.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x3.datatypes -import it.vercruysse.lemmyapi.dto.SearchType +import it.vercruysse.lemmyapi.v0.enums.SearchType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/SiteId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/SiteId.kt index c96a54e7..b94988de 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/SiteId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/SiteId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x3.datatypes -typealias SiteId = Long +internal typealias SiteId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/VoteView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/VoteView.kt index aa92e6a3..a16776ea 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/VoteView.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x3/datatypes/VoteView.kt @@ -5,5 +5,5 @@ import kotlinx.serialization.Serializable @Serializable internal data class VoteView( val creator: Person, - val score: Long, + val score: Int, ) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/LemmyApiController.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/LemmyApiController.kt index 14eb6496..96c56ea1 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/LemmyApiController.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/LemmyApiController.kt @@ -707,7 +707,7 @@ internal class LemmyApiController(client: HttpClient, auth: String?) : * * @POST("site/block") */ - override suspend fun blockInstance(form: BlockInstance): Result = + override suspend fun blockInstance(form: BlockInstance): Result = client.postResult("site/block", form) /** diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/LemmyApiRouter.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/LemmyApiRouter.kt index 904b15f1..3e8b60b9 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/LemmyApiRouter.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/LemmyApiRouter.kt @@ -615,7 +615,7 @@ internal abstract class LemmyApiRouter(client: HttpClient, auth: String?) : Auth * * @POST("site/block") */ - abstract suspend fun blockInstance(form: BlockInstance): Result + abstract suspend fun blockInstance(form: BlockInstance): Result /** * Generate a TOTP / two-factor secret. diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/LemmyApiUniWrapper.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/LemmyApiUniWrapper.kt index 73911bd8..801c4e73 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/LemmyApiUniWrapper.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/LemmyApiUniWrapper.kt @@ -3,12 +3,25 @@ package it.vercruysse.lemmyapi.v0.x19.x4 import io.github.z4kn4fein.semver.Version import io.ktor.client.HttpClient import it.vercruysse.lemmyapi.LemmyApiBaseController +import it.vercruysse.lemmyapi.datatypes.ListCustomEmojis +import it.vercruysse.lemmyapi.datatypes.ListCustomEmojisResponse +import it.vercruysse.lemmyapi.datatypes.ListLoginsResponse +import it.vercruysse.lemmyapi.datatypes.ListNotifications +import it.vercruysse.lemmyapi.datatypes.MarkNotificationAsRead +import it.vercruysse.lemmyapi.datatypes.MyUserInfo +import it.vercruysse.lemmyapi.datatypes.PagedResponse +import it.vercruysse.lemmyapi.datatypes.UnreadCountsResponse import it.vercruysse.lemmyapi.dto.ExportUserSettingsResponse import it.vercruysse.lemmyapi.dto.ImportUserSettings +import it.vercruysse.lemmyapi.enums.NotificationDataType +import it.vercruysse.lemmyapi.enums.NotificationType +import it.vercruysse.lemmyapi.pictrs.PictrsService +import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.GetPersonDetails internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, baseUrl: String, auth: String?) : LemmyApiBaseController(client, actualVersion, baseUrl, auth) { private val api = LemmyApiController(client, auth) + private val pictrsApi = PictrsService(client, auth) private val transformer = Transformer() override var auth: String? @@ -16,6 +29,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba set(value) { super.auth = value api.auth = value + pictrsApi.auth = value } /** @@ -49,8 +63,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun getModlog( form: it.vercruysse.lemmyapi.datatypes.GetModlog, - ): Result = - api.getModlog(transformer.fromUni(form)).map(transformer::toUni) + ): Result> = notSupported() /** * Search lemmy. @@ -67,7 +80,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun resolveObject( form: it.vercruysse.lemmyapi.datatypes.ResolveObject, - ): Result = + ): Result = api.resolveObject(transformer.fromUni(form)).map(transformer::toUni) /** @@ -115,8 +128,8 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun listCommunities( form: it.vercruysse.lemmyapi.datatypes.ListCommunities, - ): Result = - api.listCommunities(transformer.fromUni(form)).map(transformer::toUni) + ): Result> = + api.listCommunities(transformer.fromUni(form)).map { PagedResponse(it.communities.map(transformer::toUni)) } /** * Follow / subscribe to a community. @@ -135,7 +148,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun blockCommunity( form: it.vercruysse.lemmyapi.datatypes.BlockCommunity, - ): Result = + ): Result = api.blockCommunity(transformer.fromUni(form)).map(transformer::toUni) /** @@ -165,8 +178,16 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun transferCommunity( form: it.vercruysse.lemmyapi.datatypes.TransferCommunity, - ): Result = - api.transferCommunity(transformer.fromUni(form)).map(transformer::toUni) + ): Result = + api.transferCommunity(transformer.fromUni(form)).map { communityResponse -> + val uniCommunityResponse = transformer.toUni(communityResponse) + it.vercruysse.lemmyapi.datatypes.GetCommunityResponse( + community_view = uniCommunityResponse.community_view, + site = null, + moderators = emptyList(), + discussion_languages = uniCommunityResponse.discussion_languages, + ) + } /** * Ban a user from a community. @@ -175,7 +196,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun banFromCommunity( form: it.vercruysse.lemmyapi.datatypes.BanFromCommunity, - ): Result = + ): Result = api.banFromCommunity(transformer.fromUni(form)).map(transformer::toUni) /** @@ -193,8 +214,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba * * @GET("federated_instances") */ - override suspend fun getFederatedInstances(): Result = - api.getFederatedInstances().map(transformer::toUni) + override suspend fun getFederatedInstances(form: it.vercruysse.lemmyapi.datatypes.GetFederatedInstances): Result> = notSupported() /** * Get / fetch a post. @@ -229,8 +249,8 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun getPosts( form: it.vercruysse.lemmyapi.datatypes.GetPosts, - ): Result = - api.getPosts(transformer.fromUni(form.toValidatedForm())).map(transformer::toUni) + ): Result> = + api.getPosts(transformer.fromUni(form.toValidatedForm())).map { PagedResponse(it.posts.map(transformer::toUni)) } /** * Delete a post. @@ -257,7 +277,27 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba * * @POST("post/mark_as_read") */ - override suspend fun markPostAsRead(form: it.vercruysse.lemmyapi.datatypes.MarkPostAsRead): Result = + override suspend fun markPostAsRead(form: it.vercruysse.lemmyapi.datatypes.MarkPostAsRead): Result = + api.markPostAsRead( + it.vercruysse.lemmyapi.v0.x19.x4.datatypes.MarkPostAsRead( + post_ids = listOf(form.post_id), + read = form.read, + ), + ).fold( + onSuccess = { _ -> + api.getPost(it.vercruysse.lemmyapi.v0.x19.x4.datatypes.GetPost(id = form.post_id)) + .map(transformer::toUni) + .map { post -> it.vercruysse.lemmyapi.datatypes.PostResponse(post_view = post.post_view) } + }, + onFailure = { Result.failure(it) }, + ) + + /** + * Mark multiple posts as read. + * + * @POST("post/mark_as_read") + */ + override suspend fun markManyPostsAsRead(form: it.vercruysse.lemmyapi.datatypes.MarkManyPostsAsRead): Result = api.markPostAsRead(transformer.fromUni(form)) /** @@ -317,14 +357,56 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba api.resolvePostReport(transformer.fromUni(form)).map(transformer::toUni) /** - * List post reports. - * - * @GET("post/report/list") + * List reports. */ - override suspend fun listPostReports( - form: it.vercruysse.lemmyapi.datatypes.ListPostReports, - ): Result = - api.listPostReports(transformer.fromUni(form)).map(transformer::toUni) + override suspend fun listReports( + form: it.vercruysse.lemmyapi.datatypes.ListReports, + ): Result> = + when (form.type_) { + it.vercruysse.lemmyapi.enums.ReportType.Communities -> notSupported() + + it.vercruysse.lemmyapi.enums.ReportType.Posts -> { + api.listPostReports(transformer.fromUniP(form)).map { resp -> + PagedResponse(resp.post_reports.map(transformer::toUni)) + } + } + + it.vercruysse.lemmyapi.enums.ReportType.Comments -> { + api.listCommentReports(transformer.fromUniC(form)).map { resp -> + PagedResponse(resp.comment_reports.map(transformer::toUni)) + } + } + + it.vercruysse.lemmyapi.enums.ReportType.PrivateMessages -> { + api.listPrivateMessageReports(transformer.fromUniPm(form)).map { resp -> + PagedResponse(resp.private_message_reports.map(transformer::toUni)) + } + } + + it.vercruysse.lemmyapi.enums.ReportType.All -> { + runCatching { + val postsResp = api.listPostReports(transformer.fromUniP(form)).getOrThrow() + val commentsResp = api.listCommentReports(transformer.fromUniC(form)).getOrThrow() + val privateMessagesResp = api.listPrivateMessageReports(transformer.fromUniPm(form)).getOrThrow() + + val allReports = mutableListOf() + + allReports.addAll( + postsResp.post_reports.map(transformer::toUni), + ) + + allReports.addAll( + commentsResp.comment_reports.map(transformer::toUni), + ) + + allReports.addAll( + privateMessagesResp.private_message_reports.map(transformer::toUni), + ) + + PagedResponse(allReports) + } + } + } /** * Fetch metadata for any given site. @@ -373,8 +455,8 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun getComments( form: it.vercruysse.lemmyapi.datatypes.GetComments, - ): Result = - api.getComments(transformer.fromUni(form)).map(transformer::toUni) + ): Result> = + api.getComments(transformer.fromUni(form)).map { PagedResponse(it.comments.map(transformer::toUni)) } /** * Delete a comment. @@ -396,16 +478,6 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba ): Result = api.removeComment(transformer.fromUni(form)).map(transformer::toUni) - /** - * Mark a comment as read. - * - * @POST("comment/mark_as_read") - */ - override suspend fun markCommentReplyAsRead( - form: it.vercruysse.lemmyapi.datatypes.MarkCommentReplyAsRead, - ): Result = - api.markCommentReplyAsRead(transformer.fromUni(form)).map(transformer::toUni) - /** * Distinguishes a comment (speak as moderator) * @@ -456,16 +528,6 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba ): Result = api.resolveCommentReport(transformer.fromUni(form)).map(transformer::toUni) - /** - * List comment reports. - * - * @GET("comment/report/list") - */ - override suspend fun listCommentReports( - form: it.vercruysse.lemmyapi.datatypes.ListCommentReports, - ): Result = - api.listCommentReports(transformer.fromUni(form)).map(transformer::toUni) - /** * Edit a private message. * @@ -486,16 +548,6 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba ): Result = api.createPrivateMessage(transformer.fromUni(form)).map(transformer::toUni) - /** - * Get / fetch private messages. - * - * @GET("private_message/list") - */ - override suspend fun getPrivateMessages( - form: it.vercruysse.lemmyapi.datatypes.GetPrivateMessages, - ): Result = - api.getPrivateMessages(transformer.fromUni(form)).map(transformer::toUni) - /** * Delete a private message. * @@ -506,16 +558,6 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba ): Result = api.deletePrivateMessage(transformer.fromUni(form)).map(transformer::toUni) - /** - * Mark a private message as read. - * - * @POST("private_message/mark_as_read") - */ - override suspend fun markPrivateMessageAsRead( - form: it.vercruysse.lemmyapi.datatypes.MarkPrivateMessageAsRead, - ): Result = - api.markPrivateMessageAsRead(transformer.fromUni(form)).map(transformer::toUni) - /** * Create a report for a private message. * @@ -536,16 +578,6 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba ): Result = api.resolvePrivateMessageReport(transformer.fromUni(form)).map(transformer::toUni) - /** - * List private message reports. - * - * @GET("private_message/report/list") - */ - override suspend fun listPrivateMessageReports( - form: it.vercruysse.lemmyapi.datatypes.ListPrivateMessageReports, - ): Result = - api.listPrivateMessageReports(transformer.fromUni(form)).map(transformer::toUni) - /** * Get the details for a person. * @@ -573,34 +605,47 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba api.getCaptcha().map(transformer::toUni) /** - * Get mentions for your user. - * - * @GET("user/mention") + * Mark a notification as read */ - override suspend fun getPersonMentions( - form: it.vercruysse.lemmyapi.datatypes.GetPersonMentions, - ): Result = - api.getPersonMentions(transformer.fromUni(form)).map(transformer::toUni) + override suspend fun markNotificationAsRead(form: MarkNotificationAsRead): Result = + when (form._kind) { + NotificationType.Mention -> api.markPersonMentionAsRead(transformer.fromUniM(form)).map { } + NotificationType.Reply -> api.markCommentReplyAsRead(transformer.fromUniR(form)).map { } + NotificationType.PrivateMessage -> api.markPrivateMessageAsRead(transformer.fromUniP(form)).map { } + NotificationType.Subscribed, NotificationType.ModAction -> notSupported() + null -> notSupported() + } /** - * Mark a person mention as read. - * - * @POST("user/mention/mark_as_read") + * List notifications. */ - override suspend fun markPersonMentionAsRead( - form: it.vercruysse.lemmyapi.datatypes.MarkPersonMentionAsRead, - ): Result = - api.markPersonMentionAsRead(transformer.fromUni(form)).map(transformer::toUni) + override suspend fun listNotifications(form: ListNotifications): Result> = + when (form.type_) { + NotificationDataType.All -> + runCatching { + val replies = api.getReplies(transformer.fromUniR(form)).getOrThrow().replies.map(transformer::toUni) + val mentionReplies = api.getPersonMentions(transformer.fromUniM(form)).getOrThrow().mentions.map(transformer::toUni) + val privateMessages = api.getPrivateMessages(transformer.fromUniP(form)).getOrThrow().private_messages.map(transformer::toUniPMV) + PagedResponse( + buildList { + addAll(replies) + addAll(mentionReplies) + addAll(privateMessages) + }, + ) + } - /** - * Get comment replies. - * - * @GET("user/replies") - */ - override suspend fun getReplies( - form: it.vercruysse.lemmyapi.datatypes.GetReplies, - ): Result = - api.getReplies(transformer.fromUni(form)).map(transformer::toUni) + NotificationDataType.Reply -> + api.getReplies(transformer.fromUniR(form)).map { resp -> PagedResponse(resp.replies.map(transformer::toUni)) } + + NotificationDataType.Mention -> + api.getPersonMentions(transformer.fromUniM(form)).map { resp -> PagedResponse(resp.mentions.map(transformer::toUni)) } + + NotificationDataType.PrivateMessage -> + api.getPrivateMessages(transformer.fromUniP(form)).map { resp -> PagedResponse(resp.private_messages.map(transformer::toUniPMV)) } + + NotificationDataType.Subscribed, NotificationDataType.ModAction -> Result.success(PagedResponse(emptyList())) + } /** * Ban a person from your site. @@ -609,7 +654,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun banPerson( form: it.vercruysse.lemmyapi.datatypes.BanPerson, - ): Result = + ): Result = api.banPerson(transformer.fromUni(form)).map(transformer::toUni) /** @@ -617,8 +662,8 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba * * @GET("user/banned") */ - override suspend fun getBannedPersons(): Result = - api.getBannedPersons().map(transformer::toUni) + override suspend fun getBannedPersons(): Result> = + api.getBannedPersons().map { resp -> PagedResponse(resp.banned.map(transformer::toUni)) } /** * Block a person. @@ -627,7 +672,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun blockPerson( form: it.vercruysse.lemmyapi.datatypes.BlockPerson, - ): Result = + ): Result = api.blockPerson(transformer.fromUni(form)).map(transformer::toUni) /** @@ -651,7 +696,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba * * @POST("user/password_reset") */ - override suspend fun resetPassword(form: it.vercruysse.lemmyapi.datatypes.PasswordReset): Result = + override suspend fun resetPassword(form: it.vercruysse.lemmyapi.datatypes.ResetPassword): Result = api.resetPassword(transformer.fromUni(form)) /** @@ -659,7 +704,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba * * @POST("user/password_change") */ - override suspend fun changePasswordAfterReset(form: it.vercruysse.lemmyapi.datatypes.PasswordChangeAfterReset): Result = + override suspend fun changePasswordAfterReset(form: it.vercruysse.lemmyapi.datatypes.ChangePasswordAfterReset): Result = api.changePasswordAfterReset(transformer.fromUni(form)) /** @@ -667,8 +712,8 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba * * @POST("user/mark_all_as_read") */ - override suspend fun markAllAsRead(): Result = - api.markAllAsRead().map(transformer::toUni) + override suspend fun markAllNotificationsAsRead(): Result = + api.markAllAsRead().map {} /** * Save your user settings. @@ -688,23 +733,16 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba ): Result = api.changePassword(transformer.fromUni(form)).map(transformer::toUni) - /** - * Get counts for your reports - * - * @GET("user/report_count") - */ - override suspend fun getReportCount( - form: it.vercruysse.lemmyapi.datatypes.GetReportCount, - ): Result = - api.getReportCount(transformer.fromUni(form)).map(transformer::toUni) - - /** - * Get your unread counts - * - * @GET("user/unread_count") - */ - override suspend fun getUnreadCount(): Result = - api.getUnreadCount().map(transformer::toUni) + override suspend fun getUnreadCounts(): Result = runCatching { + val d = api.getUnreadCount().getOrThrow() + val reportCount = api.getReportCount(it.vercruysse.lemmyapi.v0.x19.x4.datatypes.GetReportCount()).getOrNull() + val applicationCount = api.getUnreadRegistrationApplicationCount().getOrNull() + UnreadCountsResponse( + notification_count = d.replies + d.mentions + d.private_messages, + report_count = (reportCount?.post_reports ?: 0L) + (reportCount?.comment_reports ?: 0L) + (reportCount?.private_message_reports ?: 0L), + registration_application_count = applicationCount?.registration_applications, + ) + } /** * Verify your email @@ -739,14 +777,6 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba ): Result = api.addAdmin(transformer.fromUni(form)).map(transformer::toUni) - /** - * Get the unread registration applications count. - * - * @GET("admin/registration_application/count") - */ - override suspend fun getUnreadRegistrationApplicationCount(): Result = - api.getUnreadRegistrationApplicationCount().map(transformer::toUni) - /** * List the registration applications. * @@ -754,8 +784,8 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun listRegistrationApplications( form: it.vercruysse.lemmyapi.datatypes.ListRegistrationApplications, - ): Result = - api.listRegistrationApplications(transformer.fromUni(form)).map(transformer::toUni) + ): Result> = + api.listRegistrationApplications(transformer.fromUni(form)).map { resp -> PagedResponse(resp.registration_applications.map(transformer::toUni)) } /** * Approve a registration application @@ -827,15 +857,25 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba override suspend fun deleteCustomEmoji(form: it.vercruysse.lemmyapi.datatypes.DeleteCustomEmoji): Result = api.deleteCustomEmoji(transformer.fromUni(form)) + /** + * List custom emojis + * + * @GET("custom_emoji/list") + */ + override suspend fun listCustomEmojis(form: ListCustomEmojis): Result = + api.getSite().map { + ListCustomEmojisResponse(it.custom_emojis.map(transformer::toUni)) + } + /** * Block an instance. * * @POST("site/block") */ - override suspend fun blockInstance( - form: it.vercruysse.lemmyapi.datatypes.BlockInstance, - ): Result = - api.blockInstance(transformer.fromUni(form)).map(transformer::toUni) + override suspend fun userBlockInstanceCommunities( + form: it.vercruysse.lemmyapi.datatypes.UserBlockInstanceCommunitiesParams, + ): Result = + api.blockInstance(transformer.fromUni(form)) /** * Generate a TOTP / two-factor secret. @@ -856,9 +896,9 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba * * @POST("user/totp/update") */ - override suspend fun updateTotp( - form: it.vercruysse.lemmyapi.datatypes.UpdateTotp, - ): Result = + override suspend fun editTotp( + form: it.vercruysse.lemmyapi.datatypes.EditTotp, + ): Result = api.updateTotp(transformer.fromUni(form)).map(transformer::toUni) /** @@ -883,8 +923,8 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba * * @GET("user/list_logins") */ - override suspend fun listLogins(): Result> = - api.listLogins().map { it.map(transformer::toUni) } + override suspend fun listLogins(): Result = + api.listLogins().map { ListLoginsResponse(logins = it.map(transformer::toUni)) } /** * Returns an error message if your auth token is invalid @@ -907,8 +947,8 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun listPostLikes( form: it.vercruysse.lemmyapi.datatypes.ListPostLikes, - ): Result = - api.listPostLikes(transformer.fromUni(form)).map(transformer::toUni) + ): Result> = + api.listPostLikes(transformer.fromUni(form)).map { PagedResponse(it.post_likes.map(transformer::toUni)) } /** * List a comment's likes. Admin-only. @@ -917,8 +957,8 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun listCommentLikes( form: it.vercruysse.lemmyapi.datatypes.ListCommentLikes, - ): Result = - api.listCommentLikes(transformer.fromUni(form)).map(transformer::toUni) + ): Result> = + api.listCommentLikes(transformer.fromUni(form)).map { PagedResponse(it.comment_likes.map(transformer::toUni)) } /** * List all the media for your user @@ -927,25 +967,35 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun listMedia( form: it.vercruysse.lemmyapi.datatypes.ListMedia, - ): Result = - api.listMedia(transformer.fromUni(form)).map(transformer::toUni) + ): Result> = + api.listMedia(transformer.fromUni(form)).map { PagedResponse(it.images.map(transformer::toUni)) } /** * List all the media known to your instance. * * @GET("admin/list_all_media") */ - override suspend fun listAllMedia( + override suspend fun listMediaAdmin( form: it.vercruysse.lemmyapi.datatypes.ListMedia, - ): Result = - api.listAllMedia(transformer.fromUni(form)).map(transformer::toUni) + ): Result> = + api.listAllMedia(transformer.fromUni(form)).map { PagedResponse(it.images.map(transformer::toUni)) } /** * Hide a post from list views. * * @POST("post/hide") */ - override suspend fun hidePost(form: it.vercruysse.lemmyapi.datatypes.HidePost): Result = + override suspend fun hidePost(form: it.vercruysse.lemmyapi.datatypes.HidePost): Result = + api.hidePost(it.vercruysse.lemmyapi.v0.x19.x4.datatypes.HidePost(post_ids = listOf(form.post_id), hide = form.hide)).fold( + onSuccess = { _ -> + api.getPost(it.vercruysse.lemmyapi.v0.x19.x4.datatypes.GetPost(id = form.post_id)) + .map(transformer::toUni) + .map { post -> it.vercruysse.lemmyapi.datatypes.PostResponse(post_view = post.post_view) } + }, + onFailure = { Result.failure(it) }, + ) + + override suspend fun hidePosts(form: it.vercruysse.lemmyapi.datatypes.HidePosts): Result = api.hidePost(transformer.fromUni(form)) /** @@ -956,4 +1006,238 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba override suspend fun getRegistrationApplication( form: it.vercruysse.lemmyapi.datatypes.GetRegistrationApplication, ): Result = notSupported() + + /** + * Get data of current user + * + * @GET("/account") + */ + override suspend fun getMyUser(): Result = + api.getSite() + .mapCatching { it.my_user ?: throw IllegalStateException("Auth invalid") } + .map { transformer.toUni(it) } + + /** + * List the content for a person. + * + * @GET("person/content") + */ + override suspend fun listPersonContent( + form: it.vercruysse.lemmyapi.datatypes.ListPersonContent, + ): Result> { + val getPersonDetailsForm = GetPersonDetails( + username = form.username, + person_id = form.person_id, + community_id = form.community_id, + page = form.page, + limit = form.limit, + ) + return api.getPersonDetails(getPersonDetailsForm).map { response -> + val comments = when (form.type_) { + it.vercruysse.lemmyapi.enums.PersonContentType.Posts -> emptyList() + else -> response.comments.map { transformer.toUni(it) } + } + val posts = when (form.type_) { + it.vercruysse.lemmyapi.enums.PersonContentType.Comments -> emptyList() + else -> response.posts.map { transformer.toUni(it) } + } + PagedResponse(items = comments + posts) + } + } + + override suspend fun uploadImage(image: ByteArray): Result = + pictrsApi.uploadImage(image) + + override suspend fun uploadCommunityBanner( + image: ByteArray, + form: it.vercruysse.lemmyapi.datatypes.CommunityIdQuery, + ): Result = + uploadAndApplyImage(image) { imageUrl -> + api.editCommunity( + it.vercruysse.lemmyapi.v0.x19.x4.datatypes.EditCommunity( + community_id = form.id, + banner = imageUrl, + ), + ).map {} + } + + override suspend fun uploadCommunityIcon( + image: ByteArray, + form: it.vercruysse.lemmyapi.datatypes.CommunityIdQuery, + ): Result = + uploadAndApplyImage(image) { imageUrl -> + api.editCommunity( + it.vercruysse.lemmyapi.v0.x19.x4.datatypes.EditCommunity( + community_id = form.id, + icon = imageUrl, + ), + ).map {} + } + + override suspend fun uploadSiteBanner(image: ByteArray): Result = + uploadAndApplyImage(image) { imageUrl -> + api.editSite( + it.vercruysse.lemmyapi.v0.x19.x4.datatypes.EditSite( + banner = imageUrl, + ), + ).map {} + } + + override suspend fun uploadSiteIcon(image: ByteArray): Result = + uploadAndApplyImage(image) { imageUrl -> + api.editSite( + it.vercruysse.lemmyapi.v0.x19.x4.datatypes.EditSite( + icon = imageUrl, + ), + ).map {} + } + + override suspend fun uploadUserAvatar(image: ByteArray): Result = + uploadAndApplyImage(image) { imageUrl -> + api.saveUserSettings( + it.vercruysse.lemmyapi.v0.x19.x4.datatypes.SaveUserSettings( + avatar = imageUrl, + ), + ) + } + + override suspend fun uploadUserBanner(image: ByteArray): Result = + uploadAndApplyImage(image) { imageUrl -> + api.saveUserSettings( + it.vercruysse.lemmyapi.v0.x19.x4.datatypes.SaveUserSettings( + banner = imageUrl, + ), + ) + } + + override suspend fun deleteUserAvatar(): Result = + api.saveUserSettings(it.vercruysse.lemmyapi.v0.x19.x4.datatypes.SaveUserSettings(avatar = "")) + + override suspend fun deleteUserBanner(): Result = + api.saveUserSettings(it.vercruysse.lemmyapi.v0.x19.x4.datatypes.SaveUserSettings(banner = "")) + + override suspend fun deleteCommunityBanner(form: it.vercruysse.lemmyapi.datatypes.CommunityIdQuery): Result = + api.editCommunity( + it.vercruysse.lemmyapi.v0.x19.x4.datatypes.EditCommunity( + community_id = form.id, + banner = "", + ), + ).map {} + + override suspend fun deleteCommunityIcon(form: it.vercruysse.lemmyapi.datatypes.CommunityIdQuery): Result = + api.editCommunity( + it.vercruysse.lemmyapi.v0.x19.x4.datatypes.EditCommunity( + community_id = form.id, + icon = "", + ), + ).map {} + + override suspend fun deleteSiteBanner(): Result = + api.editSite( + it.vercruysse.lemmyapi.v0.x19.x4.datatypes.EditSite( + banner = "", + ), + ).map {} + + override suspend fun deleteSiteIcon(): Result = + api.editSite( + it.vercruysse.lemmyapi.v0.x19.x4.datatypes.EditSite( + icon = "", + ), + ).map {} + + override suspend fun deleteMedia(form: it.vercruysse.lemmyapi.datatypes.DeleteImageParams): Result = + pictrsApi.deleteMedia(form) + + override suspend fun adminListUsers(form: it.vercruysse.lemmyapi.datatypes.AdminListUsers): Result> = notSupported() + + override suspend fun getRandomCommunity(form: it.vercruysse.lemmyapi.datatypes.GetRandomCommunity): Result = notSupported() + + override suspend fun createCommunityReport(form: it.vercruysse.lemmyapi.datatypes.CreateCommunityReport): Result = notSupported() + + override suspend fun resolveCommunityReport(form: it.vercruysse.lemmyapi.datatypes.ResolveCommunityReport): Result = notSupported() + + override suspend fun createCommunityTag(form: it.vercruysse.lemmyapi.datatypes.CreateCommunityTag): Result = notSupported() + + override suspend fun editCommunityTag(form: it.vercruysse.lemmyapi.datatypes.EditCommunityTag): Result = notSupported() + + override suspend fun deleteCommunityTag(form: it.vercruysse.lemmyapi.datatypes.DeleteCommunityTag): Result = notSupported() + + override suspend fun editCommunityNotifications(form: it.vercruysse.lemmyapi.datatypes.EditCommunityNotifications): Result = notSupported() + + override suspend fun approveCommunityPendingFollow(form: it.vercruysse.lemmyapi.datatypes.ApproveCommunityPendingFollower): Result = notSupported() + + override suspend fun listCommunityPendingFollows(form: it.vercruysse.lemmyapi.datatypes.ListCommunityPendingFollows): Result> = notSupported() + + override suspend fun modEditPost(form: it.vercruysse.lemmyapi.datatypes.ModEditPost): Result = notSupported() + + override suspend fun editPostNotifications(form: it.vercruysse.lemmyapi.datatypes.EditPostNotifications): Result = notSupported() + + override suspend fun warnPost(form: it.vercruysse.lemmyapi.datatypes.CreatePostWarning): Result = notSupported() + + override suspend fun getCommentsSlim(form: it.vercruysse.lemmyapi.datatypes.GetComments): Result> = notSupported() + + override suspend fun lockComment(form: it.vercruysse.lemmyapi.datatypes.LockComment): Result = notSupported() + + override suspend fun warnComment(form: it.vercruysse.lemmyapi.datatypes.CreateCommentWarning): Result = notSupported() + + override suspend fun notePerson(form: it.vercruysse.lemmyapi.datatypes.NotePerson): Result = notSupported() + + override suspend fun listPersonSaved(form: it.vercruysse.lemmyapi.datatypes.ListPersonSaved): Result> = notSupported() + + override suspend fun listPersonRead(form: it.vercruysse.lemmyapi.datatypes.ListPersonRead): Result> = notSupported() + + override suspend fun listPersonHidden(form: it.vercruysse.lemmyapi.datatypes.ListPersonHidden): Result> = notSupported() + + override suspend fun listPersonLiked(form: it.vercruysse.lemmyapi.datatypes.ListPersonLiked): Result> = notSupported() + + override suspend fun resendVerificationEmail(form: it.vercruysse.lemmyapi.datatypes.ResendVerificationEmail): Result = notSupported() + + override suspend fun authenticateWithOAuth(form: it.vercruysse.lemmyapi.datatypes.AuthenticateWithOauth): Result = notSupported() + + override suspend fun userBlockInstancePersons(form: it.vercruysse.lemmyapi.datatypes.UserBlockInstancePersonsParams): Result = notSupported() + + override suspend fun adminAllowInstance(form: it.vercruysse.lemmyapi.datatypes.AdminAllowInstanceParams): Result = notSupported() + + override suspend fun adminBlockInstance(form: it.vercruysse.lemmyapi.datatypes.AdminBlockInstanceParams): Result = notSupported() + + override suspend fun createTagline(form: it.vercruysse.lemmyapi.datatypes.CreateTagline): Result = notSupported() + + override suspend fun editTagline(form: it.vercruysse.lemmyapi.datatypes.EditTagline): Result = notSupported() + + override suspend fun deleteTagline(form: it.vercruysse.lemmyapi.datatypes.DeleteTagline): Result = notSupported() + + override suspend fun listTaglines(form: it.vercruysse.lemmyapi.datatypes.ListTaglines): Result> = notSupported() + + override suspend fun createOAuthProvider(form: it.vercruysse.lemmyapi.datatypes.CreateOAuthProvider): Result = notSupported() + + override suspend fun editOAuthProvider(form: it.vercruysse.lemmyapi.datatypes.EditOAuthProvider): Result = notSupported() + + override suspend fun deleteOAuthProvider(form: it.vercruysse.lemmyapi.datatypes.DeleteOAuthProvider): Result = notSupported() + + override suspend fun getMultiCommunity(form: it.vercruysse.lemmyapi.datatypes.GetMultiCommunity): Result = notSupported() + + override suspend fun createMultiCommunity(form: it.vercruysse.lemmyapi.datatypes.CreateMultiCommunity): Result = notSupported() + + override suspend fun editMultiCommunity(form: it.vercruysse.lemmyapi.datatypes.EditMultiCommunity): Result = notSupported() + + override suspend fun createMultiCommunityEntry(form: it.vercruysse.lemmyapi.datatypes.CreateOrDeleteMultiCommunityEntry): Result = notSupported() + + override suspend fun deleteMultiCommunityEntry(form: it.vercruysse.lemmyapi.datatypes.CreateOrDeleteMultiCommunityEntry): Result = notSupported() + + override suspend fun followMultiCommunity(form: it.vercruysse.lemmyapi.datatypes.FollowMultiCommunity): Result = notSupported() + + override suspend fun listMultiCommunities(form: it.vercruysse.lemmyapi.datatypes.ListMultiCommunities): Result> = notSupported() + + override suspend fun deleteMediaAdmin(form: it.vercruysse.lemmyapi.datatypes.DeleteImageParams): Result = notSupported() + + override suspend fun imageHealth(): Result = notSupported() + + override suspend fun listPersons(form: it.vercruysse.lemmyapi.datatypes.ListPersons): Result> = notSupported() + + override suspend fun createRegistrationInvitation(form: it.vercruysse.lemmyapi.datatypes.CreateInvitation): Result = notSupported() + + override suspend fun revokeRegistrationInvitation(form: it.vercruysse.lemmyapi.datatypes.RevokeInvitation): Result = notSupported() + + override suspend fun listRegistrationInvitations(form: it.vercruysse.lemmyapi.datatypes.ListInvitations): Result> = notSupported() } diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/MapperGenerator.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/MapperGenerator.kt index 33392298..bf2a0dce 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/MapperGenerator.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/MapperGenerator.kt @@ -5,34 +5,18 @@ import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.* internal interface MapperGenerator { fun toUni(d: AddAdminResponse): it.vercruysse.lemmyapi.datatypes.AddAdminResponse fun toUni(d: AddModToCommunityResponse): it.vercruysse.lemmyapi.datatypes.AddModToCommunityResponse - fun toUni(d: AdminPurgeComment): it.vercruysse.lemmyapi.datatypes.AdminPurgeComment - fun toUni(d: AdminPurgeCommentView): it.vercruysse.lemmyapi.datatypes.AdminPurgeCommentView - fun toUni(d: AdminPurgeCommunity): it.vercruysse.lemmyapi.datatypes.AdminPurgeCommunity - fun toUni(d: AdminPurgeCommunityView): it.vercruysse.lemmyapi.datatypes.AdminPurgeCommunityView - fun toUni(d: AdminPurgePerson): it.vercruysse.lemmyapi.datatypes.AdminPurgePerson - fun toUni(d: AdminPurgePersonView): it.vercruysse.lemmyapi.datatypes.AdminPurgePersonView - fun toUni(d: AdminPurgePost): it.vercruysse.lemmyapi.datatypes.AdminPurgePost - fun toUni(d: AdminPurgePostView): it.vercruysse.lemmyapi.datatypes.AdminPurgePostView - fun toUni(d: BanFromCommunityResponse): it.vercruysse.lemmyapi.datatypes.BanFromCommunityResponse - fun toUni(d: BannedPersonsResponse): it.vercruysse.lemmyapi.datatypes.BannedPersonsResponse - fun toUni(d: BanPersonResponse): it.vercruysse.lemmyapi.datatypes.BanPersonResponse - fun toUni(d: BlockCommunityResponse): it.vercruysse.lemmyapi.datatypes.BlockCommunityResponse - fun toUni(d: BlockInstanceResponse): it.vercruysse.lemmyapi.datatypes.BlockInstanceResponse - fun toUni(d: BlockPersonResponse): it.vercruysse.lemmyapi.datatypes.BlockPersonResponse + fun toUni(d: BanFromCommunityResponse): it.vercruysse.lemmyapi.datatypes.PersonResponse + fun toUni(d: BanPersonResponse): it.vercruysse.lemmyapi.datatypes.PersonResponse + fun toUni(d: BlockCommunityResponse): it.vercruysse.lemmyapi.datatypes.CommunityResponse + fun toUni(d: BlockPersonResponse): it.vercruysse.lemmyapi.datatypes.PersonResponse fun toUni(d: CaptchaResponse): it.vercruysse.lemmyapi.datatypes.CaptchaResponse - fun toUni(d: Comment): it.vercruysse.lemmyapi.datatypes.Comment - fun toUni(d: CommentAggregates): it.vercruysse.lemmyapi.datatypes.CommentAggregates - fun toUni(d: CommentReply): it.vercruysse.lemmyapi.datatypes.CommentReply - fun toUni(d: CommentReplyResponse): it.vercruysse.lemmyapi.datatypes.CommentReplyResponse - fun toUni(d: CommentReplyView): it.vercruysse.lemmyapi.datatypes.CommentReplyView + fun toUni(d: Comment, counts: CommentAggregates): it.vercruysse.lemmyapi.datatypes.Comment fun toUni(d: CommentReport): it.vercruysse.lemmyapi.datatypes.CommentReport fun toUni(d: CommentReportResponse): it.vercruysse.lemmyapi.datatypes.CommentReportResponse fun toUni(d: CommentReportView): it.vercruysse.lemmyapi.datatypes.CommentReportView fun toUni(d: CommentResponse): it.vercruysse.lemmyapi.datatypes.CommentResponse fun toUni(d: CommentView): it.vercruysse.lemmyapi.datatypes.CommentView - fun toUni(d: Community): it.vercruysse.lemmyapi.datatypes.Community - fun toUni(d: CommunityAggregates): it.vercruysse.lemmyapi.datatypes.CommunityAggregates - fun toUni(d: CommunityBlockView): it.vercruysse.lemmyapi.datatypes.CommunityBlockView + fun toUni(d: Community, counts: CommunityAggregates): it.vercruysse.lemmyapi.datatypes.Community fun toUni(d: CommunityFollowerView): it.vercruysse.lemmyapi.datatypes.CommunityFollowerView fun toUni(d: CommunityModeratorView): it.vercruysse.lemmyapi.datatypes.CommunityModeratorView fun toUni(d: CommunityResponse): it.vercruysse.lemmyapi.datatypes.CommunityResponse @@ -41,81 +25,29 @@ internal interface MapperGenerator { fun toUni(d: CustomEmojiKeyword): it.vercruysse.lemmyapi.datatypes.CustomEmojiKeyword fun toUni(d: CustomEmojiResponse): it.vercruysse.lemmyapi.datatypes.CustomEmojiResponse fun toUni(d: CustomEmojiView): it.vercruysse.lemmyapi.datatypes.CustomEmojiView - fun toUni(d: FederatedInstances): it.vercruysse.lemmyapi.datatypes.FederatedInstances fun toUni(d: GenerateTotpSecretResponse): it.vercruysse.lemmyapi.datatypes.GenerateTotpSecretResponse fun toUni(d: GetCaptchaResponse): it.vercruysse.lemmyapi.datatypes.GetCaptchaResponse - fun toUni(d: GetCommentsResponse): it.vercruysse.lemmyapi.datatypes.GetCommentsResponse fun toUni(d: GetCommunityResponse): it.vercruysse.lemmyapi.datatypes.GetCommunityResponse - fun toUni(d: GetFederatedInstancesResponse): it.vercruysse.lemmyapi.datatypes.GetFederatedInstancesResponse - fun toUni(d: GetModlogResponse): it.vercruysse.lemmyapi.datatypes.GetModlogResponse fun toUni(d: GetPersonDetailsResponse): it.vercruysse.lemmyapi.datatypes.GetPersonDetailsResponse - fun toUni(d: GetPersonMentionsResponse): it.vercruysse.lemmyapi.datatypes.GetPersonMentionsResponse fun toUni(d: GetPostResponse): it.vercruysse.lemmyapi.datatypes.GetPostResponse - fun toUni(d: GetPostsResponse): it.vercruysse.lemmyapi.datatypes.GetPostsResponse - fun toUni(d: GetRepliesResponse): it.vercruysse.lemmyapi.datatypes.GetRepliesResponse - fun toUni(d: GetReportCountResponse): it.vercruysse.lemmyapi.datatypes.GetReportCountResponse fun toUni(d: GetSiteMetadataResponse): it.vercruysse.lemmyapi.datatypes.GetSiteMetadataResponse fun toUni(d: GetSiteResponse): it.vercruysse.lemmyapi.datatypes.GetSiteResponse - fun toUni(d: GetUnreadCountResponse): it.vercruysse.lemmyapi.datatypes.GetUnreadCountResponse - fun toUni( - d: GetUnreadRegistrationApplicationCountResponse, - ): it.vercruysse.lemmyapi.datatypes.GetUnreadRegistrationApplicationCountResponse fun toUni(d: Instance): it.vercruysse.lemmyapi.datatypes.Instance - fun toUni(d: InstanceBlockView): it.vercruysse.lemmyapi.datatypes.InstanceBlockView - fun toUni(d: InstanceWithFederationState): it.vercruysse.lemmyapi.datatypes.InstanceWithFederationState fun toUni(d: Language): it.vercruysse.lemmyapi.datatypes.Language fun toUni(d: LinkMetadata): it.vercruysse.lemmyapi.datatypes.LinkMetadata - fun toUni(d: ListCommentLikesResponse): it.vercruysse.lemmyapi.datatypes.ListCommentLikesResponse - fun toUni(d: ListCommentReportsResponse): it.vercruysse.lemmyapi.datatypes.ListCommentReportsResponse - fun toUni(d: ListCommunitiesResponse): it.vercruysse.lemmyapi.datatypes.ListCommunitiesResponse - fun toUni(d: ListMediaResponse): it.vercruysse.lemmyapi.datatypes.ListMediaResponse - fun toUni(d: ListPostLikesResponse): it.vercruysse.lemmyapi.datatypes.ListPostLikesResponse - fun toUni(d: ListPostReportsResponse): it.vercruysse.lemmyapi.datatypes.ListPostReportsResponse - fun toUni(d: ListPrivateMessageReportsResponse): it.vercruysse.lemmyapi.datatypes.ListPrivateMessageReportsResponse - fun toUni(d: ListRegistrationApplicationsResponse): it.vercruysse.lemmyapi.datatypes.ListRegistrationApplicationsResponse fun toUni(d: LocalImage): it.vercruysse.lemmyapi.datatypes.LocalImage fun toUni(d: LocalImageView): it.vercruysse.lemmyapi.datatypes.LocalImageView - fun toUni(d: LocalSite): it.vercruysse.lemmyapi.datatypes.LocalSite + fun toUni(d: LocalSite, counts: SiteAggregates): it.vercruysse.lemmyapi.datatypes.LocalSite fun toUni(d: LocalSiteRateLimit): it.vercruysse.lemmyapi.datatypes.LocalSiteRateLimit fun toUni(d: LocalSiteUrlBlocklist): it.vercruysse.lemmyapi.datatypes.LocalSiteUrlBlocklist - fun toUni(d: LocalUser): it.vercruysse.lemmyapi.datatypes.LocalUser + fun toUni(d: LocalUser, e: LocalUserVoteDisplayMode): it.vercruysse.lemmyapi.datatypes.LocalUser fun toUni(d: LocalUserView): it.vercruysse.lemmyapi.datatypes.LocalUserView - fun toUni(d: LocalUserVoteDisplayMode): it.vercruysse.lemmyapi.datatypes.LocalUserVoteDisplayMode fun toUni(d: LoginToken): it.vercruysse.lemmyapi.datatypes.LoginToken fun toUni(d: LoginResponse): it.vercruysse.lemmyapi.datatypes.LoginResponse - fun toUni(d: ModAdd): it.vercruysse.lemmyapi.datatypes.ModAdd - fun toUni(d: ModAddCommunity): it.vercruysse.lemmyapi.datatypes.ModAddCommunity - fun toUni(d: ModAddCommunityView): it.vercruysse.lemmyapi.datatypes.ModAddCommunityView - fun toUni(d: ModAddView): it.vercruysse.lemmyapi.datatypes.ModAddView - fun toUni(d: ModBan): it.vercruysse.lemmyapi.datatypes.ModBan - fun toUni(d: ModBanFromCommunity): it.vercruysse.lemmyapi.datatypes.ModBanFromCommunity - fun toUni(d: ModBanFromCommunityView): it.vercruysse.lemmyapi.datatypes.ModBanFromCommunityView - fun toUni(d: ModBanView): it.vercruysse.lemmyapi.datatypes.ModBanView - fun toUni(d: ModFeaturePost): it.vercruysse.lemmyapi.datatypes.ModFeaturePost - fun toUni(d: ModFeaturePostView): it.vercruysse.lemmyapi.datatypes.ModFeaturePostView - fun toUni(d: ModHideCommunity): it.vercruysse.lemmyapi.datatypes.ModHideCommunity - fun toUni(d: ModHideCommunityView): it.vercruysse.lemmyapi.datatypes.ModHideCommunityView - fun toUni(d: ModLockPost): it.vercruysse.lemmyapi.datatypes.ModLockPost - fun toUni(d: ModLockPostView): it.vercruysse.lemmyapi.datatypes.ModLockPostView - fun toUni(d: ModlogListParams): it.vercruysse.lemmyapi.datatypes.ModlogListParams - fun toUni(d: ModRemoveComment): it.vercruysse.lemmyapi.datatypes.ModRemoveComment - fun toUni(d: ModRemoveCommentView): it.vercruysse.lemmyapi.datatypes.ModRemoveCommentView - fun toUni(d: ModRemoveCommunity): it.vercruysse.lemmyapi.datatypes.ModRemoveCommunity - fun toUni(d: ModRemoveCommunityView): it.vercruysse.lemmyapi.datatypes.ModRemoveCommunityView - fun toUni(d: ModRemovePost): it.vercruysse.lemmyapi.datatypes.ModRemovePost - fun toUni(d: ModRemovePostView): it.vercruysse.lemmyapi.datatypes.ModRemovePostView - fun toUni(d: ModTransferCommunity): it.vercruysse.lemmyapi.datatypes.ModTransferCommunity - fun toUni(d: ModTransferCommunityView): it.vercruysse.lemmyapi.datatypes.ModTransferCommunityView fun toUni(d: MyUserInfo): it.vercruysse.lemmyapi.datatypes.MyUserInfo - fun toUni(d: Person): it.vercruysse.lemmyapi.datatypes.Person - fun toUni(d: PersonAggregates): it.vercruysse.lemmyapi.datatypes.PersonAggregates - fun toUni(d: PersonBlockView): it.vercruysse.lemmyapi.datatypes.PersonBlockView - fun toUni(d: PersonMention): it.vercruysse.lemmyapi.datatypes.PersonMention - fun toUni(d: PersonMentionResponse): it.vercruysse.lemmyapi.datatypes.PersonMentionResponse - fun toUni(d: PersonMentionView): it.vercruysse.lemmyapi.datatypes.PersonMentionView + fun toUni(d: Person, counts: PersonAggregates): it.vercruysse.lemmyapi.datatypes.Person fun toUni(d: PersonView): it.vercruysse.lemmyapi.datatypes.PersonView - fun toUni(d: Post): it.vercruysse.lemmyapi.datatypes.Post - fun toUni(d: PostAggregates): it.vercruysse.lemmyapi.datatypes.PostAggregates + fun toUni(d: Post, counts: PostAggregates): it.vercruysse.lemmyapi.datatypes.Post fun toUni(d: PostReport): it.vercruysse.lemmyapi.datatypes.PostReport fun toUni(d: PostReportResponse): it.vercruysse.lemmyapi.datatypes.PostReportResponse fun toUni(d: PostReportView): it.vercruysse.lemmyapi.datatypes.PostReportView @@ -126,20 +58,18 @@ internal interface MapperGenerator { fun toUni(d: PrivateMessageReportResponse): it.vercruysse.lemmyapi.datatypes.PrivateMessageReportResponse fun toUni(d: PrivateMessageReportView): it.vercruysse.lemmyapi.datatypes.PrivateMessageReportView fun toUni(d: PrivateMessageResponse): it.vercruysse.lemmyapi.datatypes.PrivateMessageResponse - fun toUni(d: PrivateMessagesResponse): it.vercruysse.lemmyapi.datatypes.PrivateMessagesResponse fun toUni(d: PrivateMessageView): it.vercruysse.lemmyapi.datatypes.PrivateMessageView - fun toUni(d: ReadableFederationState): it.vercruysse.lemmyapi.datatypes.ReadableFederationState + fun toUni(d: ReadableFederationState): it.vercruysse.lemmyapi.datatypes.FederationQueueState fun toUni(d: RegistrationApplication): it.vercruysse.lemmyapi.datatypes.RegistrationApplication fun toUni(d: RegistrationApplicationResponse): it.vercruysse.lemmyapi.datatypes.RegistrationApplicationResponse fun toUni(d: RegistrationApplicationView): it.vercruysse.lemmyapi.datatypes.RegistrationApplicationView - fun toUni(d: ResolveObjectResponse): it.vercruysse.lemmyapi.datatypes.ResolveObjectResponse + fun toUni(d: ResolveObjectResponse): it.vercruysse.lemmyapi.datatypes.SearchResponse fun toUni(d: SearchResponse): it.vercruysse.lemmyapi.datatypes.SearchResponse fun toUni(d: Site): it.vercruysse.lemmyapi.datatypes.Site - fun toUni(d: SiteAggregates): it.vercruysse.lemmyapi.datatypes.SiteAggregates fun toUni(d: SiteResponse): it.vercruysse.lemmyapi.datatypes.SiteResponse fun toUni(d: SiteView): it.vercruysse.lemmyapi.datatypes.SiteView fun toUni(d: Tagline): it.vercruysse.lemmyapi.datatypes.Tagline - fun toUni(d: UpdateTotpResponse): it.vercruysse.lemmyapi.datatypes.UpdateTotpResponse + fun toUni(d: UpdateTotpResponse): it.vercruysse.lemmyapi.datatypes.EditTotpResponse fun toUni(d: VoteView): it.vercruysse.lemmyapi.datatypes.VoteView // body mappings @@ -149,7 +79,7 @@ internal interface MapperGenerator { fun fromUni(d: it.vercruysse.lemmyapi.datatypes.BanFromCommunity): BanFromCommunity fun fromUni(d: it.vercruysse.lemmyapi.datatypes.BanPerson): BanPerson fun fromUni(d: it.vercruysse.lemmyapi.datatypes.BlockCommunity): BlockCommunity - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.BlockInstance): BlockInstance + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.UserBlockInstanceCommunitiesParams): BlockInstance fun fromUni(d: it.vercruysse.lemmyapi.datatypes.BlockPerson): BlockPerson fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ChangePassword): ChangePassword fun fromUni(d: it.vercruysse.lemmyapi.datatypes.CreateComment): CreateComment @@ -183,31 +113,25 @@ internal interface MapperGenerator { fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetCommunity): GetCommunity fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetModlog): GetModlog fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPersonDetails): GetPersonDetails - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPersonMentions): GetPersonMentions fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPost): GetPost fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPosts): GetPosts - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPrivateMessages): GetPrivateMessages - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetReplies): GetReplies - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetReportCount): GetReportCount + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetSiteMetadata): GetSiteMetadata fun fromUni(d: it.vercruysse.lemmyapi.datatypes.HideCommunity): HideCommunity - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.HidePost): HidePost + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.HidePosts): HidePost + fun fromUniC(d: it.vercruysse.lemmyapi.datatypes.ListReports): ListCommentReports + fun fromUniP(d: it.vercruysse.lemmyapi.datatypes.ListReports): ListPostReports + fun fromUniPm(d: it.vercruysse.lemmyapi.datatypes.ListReports): ListPrivateMessageReports fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListCommentLikes): ListCommentLikes - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListCommentReports): ListCommentReports fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListCommunities): ListCommunities fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListMedia): ListMedia fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListPostLikes): ListPostLikes - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListPostReports): ListPostReports - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListPrivateMessageReports): ListPrivateMessageReports fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListRegistrationApplications): ListRegistrationApplications fun fromUni(d: it.vercruysse.lemmyapi.datatypes.LockPost): LockPost fun fromUni(d: it.vercruysse.lemmyapi.datatypes.Login): Login - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.MarkCommentReplyAsRead): MarkCommentReplyAsRead - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.MarkPersonMentionAsRead): MarkPersonMentionAsRead - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.MarkPostAsRead): MarkPostAsRead - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.MarkPrivateMessageAsRead): MarkPrivateMessageAsRead - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PasswordChangeAfterReset): PasswordChangeAfterReset - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PasswordReset): PasswordReset + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.MarkManyPostsAsRead): MarkPostAsRead + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ChangePasswordAfterReset): PasswordChangeAfterReset + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ResetPassword): PasswordReset fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PurgeComment): PurgeComment fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PurgeCommunity): PurgeCommunity fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PurgePerson): PurgePerson @@ -225,6 +149,6 @@ internal interface MapperGenerator { fun fromUni(d: it.vercruysse.lemmyapi.datatypes.SaveUserSettings): SaveUserSettings fun fromUni(d: it.vercruysse.lemmyapi.datatypes.Search): Search fun fromUni(d: it.vercruysse.lemmyapi.datatypes.TransferCommunity): TransferCommunity - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.UpdateTotp): UpdateTotp + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.EditTotp): UpdateTotp fun fromUni(d: it.vercruysse.lemmyapi.datatypes.VerifyEmail): VerifyEmail } diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/Transformer.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/Transformer.kt index 30a8bb24..d0a412fb 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/Transformer.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/Transformer.kt @@ -1,44 +1,39 @@ package it.vercruysse.lemmyapi.v0.x19.x4 +import it.vercruysse.lemmyapi.datatypes.CommentActions +import it.vercruysse.lemmyapi.datatypes.CommunityActions +import it.vercruysse.lemmyapi.datatypes.MarkNotificationAsRead +import it.vercruysse.lemmyapi.datatypes.Notification +import it.vercruysse.lemmyapi.datatypes.NotificationView +import it.vercruysse.lemmyapi.datatypes.PersonActions +import it.vercruysse.lemmyapi.datatypes.PostActions +import it.vercruysse.lemmyapi.enums.CommentSortType +import it.vercruysse.lemmyapi.enums.CommunityFollowerState +import it.vercruysse.lemmyapi.enums.CommunityVisibility +import it.vercruysse.lemmyapi.enums.FederationMode +import it.vercruysse.lemmyapi.enums.ImageMode +import it.vercruysse.lemmyapi.enums.NotificationType +import it.vercruysse.lemmyapi.enums.VoteShow +import it.vercruysse.lemmyapi.utils.toAt import it.vercruysse.lemmyapi.datatypes.AddAdmin as LemmyapiDatatypesAddAdmin import it.vercruysse.lemmyapi.datatypes.AddAdminResponse as LemmyapiDatatypesAddAdminResponse import it.vercruysse.lemmyapi.datatypes.AddModToCommunity as LemmyapiDatatypesAddModToCommunity import it.vercruysse.lemmyapi.datatypes.AddModToCommunityResponse as LemmyapiDatatypesAddModToCommunityResponse -import it.vercruysse.lemmyapi.datatypes.AdminPurgeComment as LemmyapiDatatypesAdminPurgeComment -import it.vercruysse.lemmyapi.datatypes.AdminPurgeCommentView as LemmyapiDatatypesAdminPurgeCommentView -import it.vercruysse.lemmyapi.datatypes.AdminPurgeCommunity as LemmyapiDatatypesAdminPurgeCommunity -import it.vercruysse.lemmyapi.datatypes.AdminPurgeCommunityView as LemmyapiDatatypesAdminPurgeCommunityView -import it.vercruysse.lemmyapi.datatypes.AdminPurgePerson as LemmyapiDatatypesAdminPurgePerson -import it.vercruysse.lemmyapi.datatypes.AdminPurgePersonView as LemmyapiDatatypesAdminPurgePersonView -import it.vercruysse.lemmyapi.datatypes.AdminPurgePost as LemmyapiDatatypesAdminPurgePost -import it.vercruysse.lemmyapi.datatypes.AdminPurgePostView as LemmyapiDatatypesAdminPurgePostView import it.vercruysse.lemmyapi.datatypes.ApproveRegistrationApplication as LemmyapiDatatypesApproveRegistrationApplication import it.vercruysse.lemmyapi.datatypes.BanFromCommunity as LemmyapiDatatypesBanFromCommunity -import it.vercruysse.lemmyapi.datatypes.BanFromCommunityResponse as LemmyapiDatatypesBanFromCommunityResponse import it.vercruysse.lemmyapi.datatypes.BanPerson as LemmyapiDatatypesBanPerson -import it.vercruysse.lemmyapi.datatypes.BanPersonResponse as LemmyapiDatatypesBanPersonResponse -import it.vercruysse.lemmyapi.datatypes.BannedPersonsResponse as LemmyapiDatatypesBannedPersonsResponse import it.vercruysse.lemmyapi.datatypes.BlockCommunity as LemmyapiDatatypesBlockCommunity -import it.vercruysse.lemmyapi.datatypes.BlockCommunityResponse as LemmyapiDatatypesBlockCommunityResponse -import it.vercruysse.lemmyapi.datatypes.BlockInstance as LemmyapiDatatypesBlockInstance -import it.vercruysse.lemmyapi.datatypes.BlockInstanceResponse as LemmyapiDatatypesBlockInstanceResponse import it.vercruysse.lemmyapi.datatypes.BlockPerson as LemmyapiDatatypesBlockPerson -import it.vercruysse.lemmyapi.datatypes.BlockPersonResponse as LemmyapiDatatypesBlockPersonResponse import it.vercruysse.lemmyapi.datatypes.CaptchaResponse as LemmyapiDatatypesCaptchaResponse import it.vercruysse.lemmyapi.datatypes.ChangePassword as LemmyapiDatatypesChangePassword +import it.vercruysse.lemmyapi.datatypes.ChangePasswordAfterReset as LemmyapiDatatypesPasswordChangeAfterReset import it.vercruysse.lemmyapi.datatypes.Comment as LemmyapiDatatypesComment -import it.vercruysse.lemmyapi.datatypes.CommentAggregates as LemmyapiDatatypesCommentAggregates -import it.vercruysse.lemmyapi.datatypes.CommentReply as LemmyapiDatatypesCommentReply -import it.vercruysse.lemmyapi.datatypes.CommentReplyResponse as LemmyapiDatatypesCommentReplyResponse -import it.vercruysse.lemmyapi.datatypes.CommentReplyView as LemmyapiDatatypesCommentReplyView import it.vercruysse.lemmyapi.datatypes.CommentReport as LemmyapiDatatypesCommentReport import it.vercruysse.lemmyapi.datatypes.CommentReportResponse as LemmyapiDatatypesCommentReportResponse import it.vercruysse.lemmyapi.datatypes.CommentReportView as LemmyapiDatatypesCommentReportView import it.vercruysse.lemmyapi.datatypes.CommentResponse as LemmyapiDatatypesCommentResponse import it.vercruysse.lemmyapi.datatypes.CommentView as LemmyapiDatatypesCommentView import it.vercruysse.lemmyapi.datatypes.Community as LemmyapiDatatypesCommunity -import it.vercruysse.lemmyapi.datatypes.CommunityAggregates as LemmyapiDatatypesCommunityAggregates -import it.vercruysse.lemmyapi.datatypes.CommunityBlockView as LemmyapiDatatypesCommunityBlockView import it.vercruysse.lemmyapi.datatypes.CommunityFollowerView as LemmyapiDatatypesCommunityFollowerView import it.vercruysse.lemmyapi.datatypes.CommunityModeratorView as LemmyapiDatatypesCommunityModeratorView import it.vercruysse.lemmyapi.datatypes.CommunityResponse as LemmyapiDatatypesCommunityResponse @@ -71,60 +66,37 @@ import it.vercruysse.lemmyapi.datatypes.EditCustomEmoji as LemmyapiDatatypesEdit import it.vercruysse.lemmyapi.datatypes.EditPost as LemmyapiDatatypesEditPost import it.vercruysse.lemmyapi.datatypes.EditPrivateMessage as LemmyapiDatatypesEditPrivateMessage import it.vercruysse.lemmyapi.datatypes.EditSite as LemmyapiDatatypesEditSite +import it.vercruysse.lemmyapi.datatypes.EditTotp as LemmyapiDatatypesUpdateTotp +import it.vercruysse.lemmyapi.datatypes.EditTotpResponse as LemmyapiDatatypesUpdateTotpResponse import it.vercruysse.lemmyapi.datatypes.FeaturePost as LemmyapiDatatypesFeaturePost -import it.vercruysse.lemmyapi.datatypes.FederatedInstances as LemmyapiDatatypesFederatedInstances +import it.vercruysse.lemmyapi.datatypes.FederationQueueState as LemmyapiDatatypesReadableFederationState import it.vercruysse.lemmyapi.datatypes.FollowCommunity as LemmyapiDatatypesFollowCommunity import it.vercruysse.lemmyapi.datatypes.GenerateTotpSecretResponse as LemmyapiDatatypesGenerateTotpSecretResponse import it.vercruysse.lemmyapi.datatypes.GetCaptchaResponse as LemmyapiDatatypesGetCaptchaResponse import it.vercruysse.lemmyapi.datatypes.GetComment as LemmyapiDatatypesGetComment import it.vercruysse.lemmyapi.datatypes.GetComments as LemmyapiDatatypesGetComments -import it.vercruysse.lemmyapi.datatypes.GetCommentsResponse as LemmyapiDatatypesGetCommentsResponse import it.vercruysse.lemmyapi.datatypes.GetCommunity as LemmyapiDatatypesGetCommunity import it.vercruysse.lemmyapi.datatypes.GetCommunityResponse as LemmyapiDatatypesGetCommunityResponse -import it.vercruysse.lemmyapi.datatypes.GetFederatedInstancesResponse as LemmyapiDatatypesGetFederatedInstancesResponse import it.vercruysse.lemmyapi.datatypes.GetModlog as LemmyapiDatatypesGetModlog -import it.vercruysse.lemmyapi.datatypes.GetModlogResponse as LemmyapiDatatypesGetModlogResponse import it.vercruysse.lemmyapi.datatypes.GetPersonDetails as LemmyapiDatatypesGetPersonDetails import it.vercruysse.lemmyapi.datatypes.GetPersonDetailsResponse as LemmyapiDatatypesGetPersonDetailsResponse -import it.vercruysse.lemmyapi.datatypes.GetPersonMentions as LemmyapiDatatypesGetPersonMentions -import it.vercruysse.lemmyapi.datatypes.GetPersonMentionsResponse as LemmyapiDatatypesGetPersonMentionsResponse import it.vercruysse.lemmyapi.datatypes.GetPost as LemmyapiDatatypesGetPost import it.vercruysse.lemmyapi.datatypes.GetPostResponse as LemmyapiDatatypesGetPostResponse import it.vercruysse.lemmyapi.datatypes.GetPosts as LemmyapiDatatypesGetPosts -import it.vercruysse.lemmyapi.datatypes.GetPostsResponse as LemmyapiDatatypesGetPostsResponse -import it.vercruysse.lemmyapi.datatypes.GetPrivateMessages as LemmyapiDatatypesGetPrivateMessages -import it.vercruysse.lemmyapi.datatypes.GetReplies as LemmyapiDatatypesGetReplies -import it.vercruysse.lemmyapi.datatypes.GetRepliesResponse as LemmyapiDatatypesGetRepliesResponse -import it.vercruysse.lemmyapi.datatypes.GetReportCount as LemmyapiDatatypesGetReportCount -import it.vercruysse.lemmyapi.datatypes.GetReportCountResponse as LemmyapiDatatypesGetReportCountResponse import it.vercruysse.lemmyapi.datatypes.GetSiteMetadata as LemmyapiDatatypesGetSiteMetadata import it.vercruysse.lemmyapi.datatypes.GetSiteMetadataResponse as LemmyapiDatatypesGetSiteMetadataResponse import it.vercruysse.lemmyapi.datatypes.GetSiteResponse as LemmyapiDatatypesGetSiteResponse -import it.vercruysse.lemmyapi.datatypes.GetUnreadCountResponse as LemmyapiDatatypesGetUnreadCountResponse -import it.vercruysse.lemmyapi.datatypes.GetUnreadRegistrationApplicationCountResponse as LemmyapiDatatypesGetUnreadRegistrationApplicationCountResponse import it.vercruysse.lemmyapi.datatypes.HideCommunity as LemmyapiDatatypesHideCommunity -import it.vercruysse.lemmyapi.datatypes.HidePost as LemmyapiDatatypesHidePost +import it.vercruysse.lemmyapi.datatypes.HidePosts as LemmyapiDatatypesHidePosts import it.vercruysse.lemmyapi.datatypes.Instance as LemmyapiDatatypesInstance -import it.vercruysse.lemmyapi.datatypes.InstanceBlockView as LemmyapiDatatypesInstanceBlockView -import it.vercruysse.lemmyapi.datatypes.InstanceWithFederationState as LemmyapiDatatypesInstanceWithFederationState import it.vercruysse.lemmyapi.datatypes.Language as LemmyapiDatatypesLanguage import it.vercruysse.lemmyapi.datatypes.LinkMetadata as LemmyapiDatatypesLinkMetadata import it.vercruysse.lemmyapi.datatypes.ListCommentLikes as LemmyapiDatatypesListCommentLikes -import it.vercruysse.lemmyapi.datatypes.ListCommentLikesResponse as LemmyapiDatatypesListCommentLikesResponse -import it.vercruysse.lemmyapi.datatypes.ListCommentReports as LemmyapiDatatypesListCommentReports -import it.vercruysse.lemmyapi.datatypes.ListCommentReportsResponse as LemmyapiDatatypesListCommentReportsResponse import it.vercruysse.lemmyapi.datatypes.ListCommunities as LemmyapiDatatypesListCommunities -import it.vercruysse.lemmyapi.datatypes.ListCommunitiesResponse as LemmyapiDatatypesListCommunitiesResponse import it.vercruysse.lemmyapi.datatypes.ListMedia as LemmyapiDatatypesListMedia -import it.vercruysse.lemmyapi.datatypes.ListMediaResponse as LemmyapiDatatypesListMediaResponse +import it.vercruysse.lemmyapi.datatypes.ListNotifications as LemmyapiDatatypesListNotifications import it.vercruysse.lemmyapi.datatypes.ListPostLikes as LemmyapiDatatypesListPostLikes -import it.vercruysse.lemmyapi.datatypes.ListPostLikesResponse as LemmyapiDatatypesListPostLikesResponse -import it.vercruysse.lemmyapi.datatypes.ListPostReports as LemmyapiDatatypesListPostReports -import it.vercruysse.lemmyapi.datatypes.ListPostReportsResponse as LemmyapiDatatypesListPostReportsResponse -import it.vercruysse.lemmyapi.datatypes.ListPrivateMessageReports as LemmyapiDatatypesListPrivateMessageReports -import it.vercruysse.lemmyapi.datatypes.ListPrivateMessageReportsResponse as LemmyapiDatatypesListPrivateMessageReportsResponse import it.vercruysse.lemmyapi.datatypes.ListRegistrationApplications as LemmyapiDatatypesListRegistrationApplications -import it.vercruysse.lemmyapi.datatypes.ListRegistrationApplicationsResponse as LemmyapiDatatypesListRegistrationApplicationsResponse import it.vercruysse.lemmyapi.datatypes.LocalImage as LemmyapiDatatypesLocalImage import it.vercruysse.lemmyapi.datatypes.LocalImageView as LemmyapiDatatypesLocalImageView import it.vercruysse.lemmyapi.datatypes.LocalSite as LemmyapiDatatypesLocalSite @@ -132,50 +104,15 @@ import it.vercruysse.lemmyapi.datatypes.LocalSiteRateLimit as LemmyapiDatatypesL import it.vercruysse.lemmyapi.datatypes.LocalSiteUrlBlocklist as LemmyapiDatatypesLocalSiteUrlBlocklist import it.vercruysse.lemmyapi.datatypes.LocalUser as LemmyapiDatatypesLocalUser import it.vercruysse.lemmyapi.datatypes.LocalUserView as LemmyapiDatatypesLocalUserView -import it.vercruysse.lemmyapi.datatypes.LocalUserVoteDisplayMode as LemmyapiDatatypesLocalUserVoteDisplayMode import it.vercruysse.lemmyapi.datatypes.LockPost as LemmyapiDatatypesLockPost import it.vercruysse.lemmyapi.datatypes.Login as LemmyapiDatatypesLogin import it.vercruysse.lemmyapi.datatypes.LoginResponse as LemmyapiDatatypesLoginResponse import it.vercruysse.lemmyapi.datatypes.LoginToken as LemmyapiDatatypesLoginToken -import it.vercruysse.lemmyapi.datatypes.MarkCommentReplyAsRead as LemmyapiDatatypesMarkCommentReplyAsRead -import it.vercruysse.lemmyapi.datatypes.MarkPersonMentionAsRead as LemmyapiDatatypesMarkPersonMentionAsRead -import it.vercruysse.lemmyapi.datatypes.MarkPostAsRead as LemmyapiDatatypesMarkPostAsRead -import it.vercruysse.lemmyapi.datatypes.MarkPrivateMessageAsRead as LemmyapiDatatypesMarkPrivateMessageAsRead -import it.vercruysse.lemmyapi.datatypes.ModAdd as LemmyapiDatatypesModAdd -import it.vercruysse.lemmyapi.datatypes.ModAddCommunity as LemmyapiDatatypesModAddCommunity -import it.vercruysse.lemmyapi.datatypes.ModAddCommunityView as LemmyapiDatatypesModAddCommunityView -import it.vercruysse.lemmyapi.datatypes.ModAddView as LemmyapiDatatypesModAddView -import it.vercruysse.lemmyapi.datatypes.ModBan as LemmyapiDatatypesModBan -import it.vercruysse.lemmyapi.datatypes.ModBanFromCommunity as LemmyapiDatatypesModBanFromCommunity -import it.vercruysse.lemmyapi.datatypes.ModBanFromCommunityView as LemmyapiDatatypesModBanFromCommunityView -import it.vercruysse.lemmyapi.datatypes.ModBanView as LemmyapiDatatypesModBanView -import it.vercruysse.lemmyapi.datatypes.ModFeaturePost as LemmyapiDatatypesModFeaturePost -import it.vercruysse.lemmyapi.datatypes.ModFeaturePostView as LemmyapiDatatypesModFeaturePostView -import it.vercruysse.lemmyapi.datatypes.ModHideCommunity as LemmyapiDatatypesModHideCommunity -import it.vercruysse.lemmyapi.datatypes.ModHideCommunityView as LemmyapiDatatypesModHideCommunityView -import it.vercruysse.lemmyapi.datatypes.ModLockPost as LemmyapiDatatypesModLockPost -import it.vercruysse.lemmyapi.datatypes.ModLockPostView as LemmyapiDatatypesModLockPostView -import it.vercruysse.lemmyapi.datatypes.ModRemoveComment as LemmyapiDatatypesModRemoveComment -import it.vercruysse.lemmyapi.datatypes.ModRemoveCommentView as LemmyapiDatatypesModRemoveCommentView -import it.vercruysse.lemmyapi.datatypes.ModRemoveCommunity as LemmyapiDatatypesModRemoveCommunity -import it.vercruysse.lemmyapi.datatypes.ModRemoveCommunityView as LemmyapiDatatypesModRemoveCommunityView -import it.vercruysse.lemmyapi.datatypes.ModRemovePost as LemmyapiDatatypesModRemovePost -import it.vercruysse.lemmyapi.datatypes.ModRemovePostView as LemmyapiDatatypesModRemovePostView -import it.vercruysse.lemmyapi.datatypes.ModTransferCommunity as LemmyapiDatatypesModTransferCommunity -import it.vercruysse.lemmyapi.datatypes.ModTransferCommunityView as LemmyapiDatatypesModTransferCommunityView -import it.vercruysse.lemmyapi.datatypes.ModlogListParams as LemmyapiDatatypesModlogListParams +import it.vercruysse.lemmyapi.datatypes.MarkManyPostsAsRead as LemmyapiDatatypesMarkPostAsRead import it.vercruysse.lemmyapi.datatypes.MyUserInfo as LemmyapiDatatypesMyUserInfo -import it.vercruysse.lemmyapi.datatypes.PasswordChangeAfterReset as LemmyapiDatatypesPasswordChangeAfterReset -import it.vercruysse.lemmyapi.datatypes.PasswordReset as LemmyapiDatatypesPasswordReset import it.vercruysse.lemmyapi.datatypes.Person as LemmyapiDatatypesPerson -import it.vercruysse.lemmyapi.datatypes.PersonAggregates as LemmyapiDatatypesPersonAggregates -import it.vercruysse.lemmyapi.datatypes.PersonBlockView as LemmyapiDatatypesPersonBlockView -import it.vercruysse.lemmyapi.datatypes.PersonMention as LemmyapiDatatypesPersonMention -import it.vercruysse.lemmyapi.datatypes.PersonMentionResponse as LemmyapiDatatypesPersonMentionResponse -import it.vercruysse.lemmyapi.datatypes.PersonMentionView as LemmyapiDatatypesPersonMentionView import it.vercruysse.lemmyapi.datatypes.PersonView as LemmyapiDatatypesPersonView import it.vercruysse.lemmyapi.datatypes.Post as LemmyapiDatatypesPost -import it.vercruysse.lemmyapi.datatypes.PostAggregates as LemmyapiDatatypesPostAggregates import it.vercruysse.lemmyapi.datatypes.PostReport as LemmyapiDatatypesPostReport import it.vercruysse.lemmyapi.datatypes.PostReportResponse as LemmyapiDatatypesPostReportResponse import it.vercruysse.lemmyapi.datatypes.PostReportView as LemmyapiDatatypesPostReportView @@ -187,12 +124,10 @@ import it.vercruysse.lemmyapi.datatypes.PrivateMessageReportResponse as Lemmyapi import it.vercruysse.lemmyapi.datatypes.PrivateMessageReportView as LemmyapiDatatypesPrivateMessageReportView import it.vercruysse.lemmyapi.datatypes.PrivateMessageResponse as LemmyapiDatatypesPrivateMessageResponse import it.vercruysse.lemmyapi.datatypes.PrivateMessageView as LemmyapiDatatypesPrivateMessageView -import it.vercruysse.lemmyapi.datatypes.PrivateMessagesResponse as LemmyapiDatatypesPrivateMessagesResponse import it.vercruysse.lemmyapi.datatypes.PurgeComment as LemmyapiDatatypesPurgeComment import it.vercruysse.lemmyapi.datatypes.PurgeCommunity as LemmyapiDatatypesPurgeCommunity import it.vercruysse.lemmyapi.datatypes.PurgePerson as LemmyapiDatatypesPurgePerson import it.vercruysse.lemmyapi.datatypes.PurgePost as LemmyapiDatatypesPurgePost -import it.vercruysse.lemmyapi.datatypes.ReadableFederationState as LemmyapiDatatypesReadableFederationState import it.vercruysse.lemmyapi.datatypes.Register as LemmyapiDatatypesRegister import it.vercruysse.lemmyapi.datatypes.RegistrationApplication as LemmyapiDatatypesRegistrationApplication import it.vercruysse.lemmyapi.datatypes.RegistrationApplicationResponse as LemmyapiDatatypesRegistrationApplicationResponse @@ -200,9 +135,9 @@ import it.vercruysse.lemmyapi.datatypes.RegistrationApplicationView as LemmyapiD import it.vercruysse.lemmyapi.datatypes.RemoveComment as LemmyapiDatatypesRemoveComment import it.vercruysse.lemmyapi.datatypes.RemoveCommunity as LemmyapiDatatypesRemoveCommunity import it.vercruysse.lemmyapi.datatypes.RemovePost as LemmyapiDatatypesRemovePost +import it.vercruysse.lemmyapi.datatypes.ResetPassword as LemmyapiDatatypesPasswordReset import it.vercruysse.lemmyapi.datatypes.ResolveCommentReport as LemmyapiDatatypesResolveCommentReport import it.vercruysse.lemmyapi.datatypes.ResolveObject as LemmyapiDatatypesResolveObject -import it.vercruysse.lemmyapi.datatypes.ResolveObjectResponse as LemmyapiDatatypesResolveObjectResponse import it.vercruysse.lemmyapi.datatypes.ResolvePostReport as LemmyapiDatatypesResolvePostReport import it.vercruysse.lemmyapi.datatypes.ResolvePrivateMessageReport as LemmyapiDatatypesResolvePrivateMessageReport import it.vercruysse.lemmyapi.datatypes.SaveComment as LemmyapiDatatypesSaveComment @@ -211,45 +146,40 @@ import it.vercruysse.lemmyapi.datatypes.SaveUserSettings as LemmyapiDatatypesSav import it.vercruysse.lemmyapi.datatypes.Search as LemmyapiDatatypesSearch import it.vercruysse.lemmyapi.datatypes.SearchResponse as LemmyapiDatatypesSearchResponse import it.vercruysse.lemmyapi.datatypes.Site as LemmyapiDatatypesSite -import it.vercruysse.lemmyapi.datatypes.SiteAggregates as LemmyapiDatatypesSiteAggregates import it.vercruysse.lemmyapi.datatypes.SiteResponse as LemmyapiDatatypesSiteResponse import it.vercruysse.lemmyapi.datatypes.SiteView as LemmyapiDatatypesSiteView import it.vercruysse.lemmyapi.datatypes.Tagline as LemmyapiDatatypesTagline import it.vercruysse.lemmyapi.datatypes.TransferCommunity as LemmyapiDatatypesTransferCommunity -import it.vercruysse.lemmyapi.datatypes.UpdateTotp as LemmyapiDatatypesUpdateTotp -import it.vercruysse.lemmyapi.datatypes.UpdateTotpResponse as LemmyapiDatatypesUpdateTotpResponse +import it.vercruysse.lemmyapi.datatypes.UserBlockInstanceCommunitiesParams as LemmyapiDatatypesBlockInstance import it.vercruysse.lemmyapi.datatypes.VerifyEmail as LemmyapiDatatypesVerifyEmail import it.vercruysse.lemmyapi.datatypes.VoteView as LemmyapiDatatypesVoteView +import it.vercruysse.lemmyapi.v0.enums.CommentSortType as V0CommentSortType +import it.vercruysse.lemmyapi.v0.enums.CommunityVisibility as V0CommunityVisibility +import it.vercruysse.lemmyapi.v0.enums.ListingType as V0ListingType +import it.vercruysse.lemmyapi.v0.enums.ModlogActionType as V0ModlogActionType +import it.vercruysse.lemmyapi.v0.enums.PostFeatureType as V0PostFeatureType +import it.vercruysse.lemmyapi.v0.enums.PostListingMode as V0PostListingMode +import it.vercruysse.lemmyapi.v0.enums.RegistrationMode as V0RegistrationMode +import it.vercruysse.lemmyapi.v0.enums.SearchType as V0SearchType +import it.vercruysse.lemmyapi.v0.enums.SortType as V0SortType import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.AddAdmin as X4DatatypesAddAdmin import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.AddAdminResponse as X4DatatypesAddAdminResponse import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.AddModToCommunity as X4DatatypesAddModToCommunity import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.AddModToCommunityResponse as X4DatatypesAddModToCommunityResponse -import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.AdminPurgeComment as X4DatatypesAdminPurgeComment -import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.AdminPurgeCommentView as X4DatatypesAdminPurgeCommentView -import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.AdminPurgeCommunity as X4DatatypesAdminPurgeCommunity -import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.AdminPurgeCommunityView as X4DatatypesAdminPurgeCommunityView -import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.AdminPurgePerson as X4DatatypesAdminPurgePerson -import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.AdminPurgePersonView as X4DatatypesAdminPurgePersonView -import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.AdminPurgePost as X4DatatypesAdminPurgePost -import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.AdminPurgePostView as X4DatatypesAdminPurgePostView import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.ApproveRegistrationApplication as X4DatatypesApproveRegistrationApplication import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.BanFromCommunity as X4DatatypesBanFromCommunity import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.BanFromCommunityResponse as X4DatatypesBanFromCommunityResponse import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.BanPerson as X4DatatypesBanPerson import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.BanPersonResponse as X4DatatypesBanPersonResponse -import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.BannedPersonsResponse as X4DatatypesBannedPersonsResponse import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.BlockCommunity as X4DatatypesBlockCommunity import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.BlockCommunityResponse as X4DatatypesBlockCommunityResponse import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.BlockInstance as X4DatatypesBlockInstance -import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.BlockInstanceResponse as X4DatatypesBlockInstanceResponse import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.BlockPerson as X4DatatypesBlockPerson import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.BlockPersonResponse as X4DatatypesBlockPersonResponse import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.CaptchaResponse as X4DatatypesCaptchaResponse import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.ChangePassword as X4DatatypesChangePassword import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.Comment as X4DatatypesComment import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.CommentAggregates as X4DatatypesCommentAggregates -import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.CommentReply as X4DatatypesCommentReply -import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.CommentReplyResponse as X4DatatypesCommentReplyResponse import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.CommentReplyView as X4DatatypesCommentReplyView import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.CommentReport as X4DatatypesCommentReport import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.CommentReportResponse as X4DatatypesCommentReportResponse @@ -258,7 +188,6 @@ import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.CommentResponse as X4Datatypes import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.CommentView as X4DatatypesCommentView import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.Community as X4DatatypesCommunity import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.CommunityAggregates as X4DatatypesCommunityAggregates -import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.CommunityBlockView as X4DatatypesCommunityBlockView import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.CommunityFollowerView as X4DatatypesCommunityFollowerView import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.CommunityModeratorView as X4DatatypesCommunityModeratorView import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.CommunityResponse as X4DatatypesCommunityResponse @@ -292,59 +221,38 @@ import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.EditPost as X4DatatypesEditPos import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.EditPrivateMessage as X4DatatypesEditPrivateMessage import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.EditSite as X4DatatypesEditSite import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.FeaturePost as X4DatatypesFeaturePost -import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.FederatedInstances as X4DatatypesFederatedInstances import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.FollowCommunity as X4DatatypesFollowCommunity import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.GenerateTotpSecretResponse as X4DatatypesGenerateTotpSecretResponse import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.GetCaptchaResponse as X4DatatypesGetCaptchaResponse import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.GetComment as X4DatatypesGetComment import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.GetComments as X4DatatypesGetComments -import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.GetCommentsResponse as X4DatatypesGetCommentsResponse import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.GetCommunity as X4DatatypesGetCommunity import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.GetCommunityResponse as X4DatatypesGetCommunityResponse -import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.GetFederatedInstancesResponse as X4DatatypesGetFederatedInstancesResponse import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.GetModlog as X4DatatypesGetModlog -import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.GetModlogResponse as X4DatatypesGetModlogResponse import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.GetPersonDetails as X4DatatypesGetPersonDetails import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.GetPersonDetailsResponse as X4DatatypesGetPersonDetailsResponse import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.GetPersonMentions as X4DatatypesGetPersonMentions -import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.GetPersonMentionsResponse as X4DatatypesGetPersonMentionsResponse import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.GetPost as X4DatatypesGetPost import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.GetPostResponse as X4DatatypesGetPostResponse import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.GetPosts as X4DatatypesGetPosts -import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.GetPostsResponse as X4DatatypesGetPostsResponse import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.GetPrivateMessages as X4DatatypesGetPrivateMessages import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.GetReplies as X4DatatypesGetReplies -import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.GetRepliesResponse as X4DatatypesGetRepliesResponse -import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.GetReportCount as X4DatatypesGetReportCount -import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.GetReportCountResponse as X4DatatypesGetReportCountResponse import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.GetSiteMetadata as X4DatatypesGetSiteMetadata import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.GetSiteMetadataResponse as X4DatatypesGetSiteMetadataResponse import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.GetSiteResponse as X4DatatypesGetSiteResponse -import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.GetUnreadCountResponse as X4DatatypesGetUnreadCountResponse -import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.GetUnreadRegistrationApplicationCountResponse as X4DatatypesGetUnreadRegistrationApplicationCountResponse import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.HideCommunity as X4DatatypesHideCommunity import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.HidePost as X4DatatypesHidePost import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.Instance as X4DatatypesInstance -import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.InstanceBlockView as X4DatatypesInstanceBlockView -import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.InstanceWithFederationState as X4DatatypesInstanceWithFederationState import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.Language as X4DatatypesLanguage import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.LinkMetadata as X4DatatypesLinkMetadata import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.ListCommentLikes as X4DatatypesListCommentLikes -import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.ListCommentLikesResponse as X4DatatypesListCommentLikesResponse import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.ListCommentReports as X4DatatypesListCommentReports -import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.ListCommentReportsResponse as X4DatatypesListCommentReportsResponse import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.ListCommunities as X4DatatypesListCommunities -import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.ListCommunitiesResponse as X4DatatypesListCommunitiesResponse import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.ListMedia as X4DatatypesListMedia -import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.ListMediaResponse as X4DatatypesListMediaResponse import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.ListPostLikes as X4DatatypesListPostLikes -import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.ListPostLikesResponse as X4DatatypesListPostLikesResponse import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.ListPostReports as X4DatatypesListPostReports -import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.ListPostReportsResponse as X4DatatypesListPostReportsResponse import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.ListPrivateMessageReports as X4DatatypesListPrivateMessageReports -import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.ListPrivateMessageReportsResponse as X4DatatypesListPrivateMessageReportsResponse import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.ListRegistrationApplications as X4DatatypesListRegistrationApplications -import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.ListRegistrationApplicationsResponse as X4DatatypesListRegistrationApplicationsResponse import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.LocalImage as X4DatatypesLocalImage import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.LocalImageView as X4DatatypesLocalImageView import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.LocalSite as X4DatatypesLocalSite @@ -361,37 +269,11 @@ import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.MarkCommentReplyAsRead as X4Da import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.MarkPersonMentionAsRead as X4DatatypesMarkPersonMentionAsRead import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.MarkPostAsRead as X4DatatypesMarkPostAsRead import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.MarkPrivateMessageAsRead as X4DatatypesMarkPrivateMessageAsRead -import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.ModAdd as X4DatatypesModAdd -import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.ModAddCommunity as X4DatatypesModAddCommunity -import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.ModAddCommunityView as X4DatatypesModAddCommunityView -import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.ModAddView as X4DatatypesModAddView -import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.ModBan as X4DatatypesModBan -import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.ModBanFromCommunity as X4DatatypesModBanFromCommunity -import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.ModBanFromCommunityView as X4DatatypesModBanFromCommunityView -import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.ModBanView as X4DatatypesModBanView -import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.ModFeaturePost as X4DatatypesModFeaturePost -import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.ModFeaturePostView as X4DatatypesModFeaturePostView -import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.ModHideCommunity as X4DatatypesModHideCommunity -import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.ModHideCommunityView as X4DatatypesModHideCommunityView -import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.ModLockPost as X4DatatypesModLockPost -import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.ModLockPostView as X4DatatypesModLockPostView -import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.ModRemoveComment as X4DatatypesModRemoveComment -import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.ModRemoveCommentView as X4DatatypesModRemoveCommentView -import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.ModRemoveCommunity as X4DatatypesModRemoveCommunity -import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.ModRemoveCommunityView as X4DatatypesModRemoveCommunityView -import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.ModRemovePost as X4DatatypesModRemovePost -import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.ModRemovePostView as X4DatatypesModRemovePostView -import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.ModTransferCommunity as X4DatatypesModTransferCommunity -import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.ModTransferCommunityView as X4DatatypesModTransferCommunityView -import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.ModlogListParams as X4DatatypesModlogListParams import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.MyUserInfo as X4DatatypesMyUserInfo import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.PasswordChangeAfterReset as X4DatatypesPasswordChangeAfterReset import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.PasswordReset as X4DatatypesPasswordReset import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.Person as X4DatatypesPerson import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.PersonAggregates as X4DatatypesPersonAggregates -import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.PersonBlockView as X4DatatypesPersonBlockView -import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.PersonMention as X4DatatypesPersonMention -import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.PersonMentionResponse as X4DatatypesPersonMentionResponse import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.PersonMentionView as X4DatatypesPersonMentionView import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.PersonView as X4DatatypesPersonView import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.Post as X4DatatypesPost @@ -407,7 +289,6 @@ import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.PrivateMessageReportResponse a import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.PrivateMessageReportView as X4DatatypesPrivateMessageReportView import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.PrivateMessageResponse as X4DatatypesPrivateMessageResponse import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.PrivateMessageView as X4DatatypesPrivateMessageView -import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.PrivateMessagesResponse as X4DatatypesPrivateMessagesResponse import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.PurgeComment as X4DatatypesPurgeComment import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.PurgeCommunity as X4DatatypesPurgeCommunity import it.vercruysse.lemmyapi.v0.x19.x4.datatypes.PurgePerson as X4DatatypesPurgePerson @@ -452,97 +333,17 @@ internal class Transformer : MapperGenerator { moderators = d.moderators.map { this.toUni(d = it) }, ) - override fun toUni(d: X4DatatypesAdminPurgeComment): LemmyapiDatatypesAdminPurgeComment = - LemmyapiDatatypesAdminPurgeComment( - id = d.id, - admin_person_id = d.admin_person_id, - post_id = d.post_id, - reason = d.reason, - when_ = d.when_, - ) - - override fun toUni(d: X4DatatypesAdminPurgeCommentView): LemmyapiDatatypesAdminPurgeCommentView = - LemmyapiDatatypesAdminPurgeCommentView( - admin_purge_comment = this.toUni(d = d.admin_purge_comment), - admin = d.admin?.let { this.toUni(d = it) }, - post = this.toUni(d = d.post), - ) - - override fun toUni(d: X4DatatypesAdminPurgeCommunity): LemmyapiDatatypesAdminPurgeCommunity = - LemmyapiDatatypesAdminPurgeCommunity( - id = d.id, - admin_person_id = d.admin_person_id, - reason = d.reason, - when_ = d.when_, - ) - - override fun toUni(d: X4DatatypesAdminPurgeCommunityView): LemmyapiDatatypesAdminPurgeCommunityView = LemmyapiDatatypesAdminPurgeCommunityView( - admin_purge_community = this.toUni(d = d.admin_purge_community), - admin = d.admin?.let { this.toUni(d = it) }, - ) - - override fun toUni(d: X4DatatypesAdminPurgePerson): LemmyapiDatatypesAdminPurgePerson = - LemmyapiDatatypesAdminPurgePerson( - id = d.id, - admin_person_id = d.admin_person_id, - reason = d.reason, - when_ = d.when_, - ) - - override fun toUni(d: X4DatatypesAdminPurgePersonView): LemmyapiDatatypesAdminPurgePersonView = - LemmyapiDatatypesAdminPurgePersonView( - admin_purge_person = this.toUni(d = d.admin_purge_person), - admin = d.admin?.let { this.toUni(d = it) }, - ) - - override fun toUni(d: X4DatatypesAdminPurgePost): LemmyapiDatatypesAdminPurgePost = - LemmyapiDatatypesAdminPurgePost( - id = d.id, - admin_person_id = d.admin_person_id, - community_id = d.community_id, - reason = d.reason, - when_ = d.when_, - ) + override fun toUni(d: X4DatatypesBanFromCommunityResponse): it.vercruysse.lemmyapi.datatypes.PersonResponse = + it.vercruysse.lemmyapi.datatypes.PersonResponse(person_view = this.toUni(d = d.person_view)) - override fun toUni(d: X4DatatypesAdminPurgePostView): LemmyapiDatatypesAdminPurgePostView = - LemmyapiDatatypesAdminPurgePostView( - admin_purge_post = this.toUni(d = d.admin_purge_post), - admin = d.admin?.let { this.toUni(d = it) }, - community = this.toUni(d = d.community), - ) + override fun toUni(d: X4DatatypesBanPersonResponse): it.vercruysse.lemmyapi.datatypes.PersonResponse = + it.vercruysse.lemmyapi.datatypes.PersonResponse(person_view = this.toUni(d = d.person_view)) - override fun toUni(d: X4DatatypesBanFromCommunityResponse): LemmyapiDatatypesBanFromCommunityResponse = LemmyapiDatatypesBanFromCommunityResponse( - person_view = this.toUni(d = d.person_view), - banned = d.banned, - ) + override fun toUni(d: X4DatatypesBlockCommunityResponse): LemmyapiDatatypesCommunityResponse = + LemmyapiDatatypesCommunityResponse(community_view = this.toUni(d = d.community_view), discussion_languages = emptyList()) - override fun toUni(d: X4DatatypesBannedPersonsResponse): LemmyapiDatatypesBannedPersonsResponse = - LemmyapiDatatypesBannedPersonsResponse( - banned = d.banned.map { this.toUni(d = it) }, - ) - - override fun toUni(d: X4DatatypesBanPersonResponse): LemmyapiDatatypesBanPersonResponse = - LemmyapiDatatypesBanPersonResponse( - person_view = this.toUni(d = d.person_view), - banned = d.banned, - ) - - override fun toUni(d: X4DatatypesBlockCommunityResponse): LemmyapiDatatypesBlockCommunityResponse = - LemmyapiDatatypesBlockCommunityResponse( - community_view = this.toUni(d = d.community_view), - blocked = d.blocked, - ) - - override fun toUni(d: X4DatatypesBlockInstanceResponse): LemmyapiDatatypesBlockInstanceResponse = - LemmyapiDatatypesBlockInstanceResponse( - blocked = d.blocked, - ) - - override fun toUni(d: X4DatatypesBlockPersonResponse): LemmyapiDatatypesBlockPersonResponse = - LemmyapiDatatypesBlockPersonResponse( - person_view = this.toUni(d = d.person_view), - blocked = d.blocked, - ) + override fun toUni(d: X4DatatypesBlockPersonResponse): it.vercruysse.lemmyapi.datatypes.PersonResponse = + it.vercruysse.lemmyapi.datatypes.PersonResponse(person_view = this.toUni(d = d.person_view)) override fun toUni(d: X4DatatypesCaptchaResponse): LemmyapiDatatypesCaptchaResponse = LemmyapiDatatypesCaptchaResponse( @@ -551,65 +352,30 @@ internal class Transformer : MapperGenerator { uuid = d.uuid, ) - override fun toUni(d: X4DatatypesComment): LemmyapiDatatypesComment = LemmyapiDatatypesComment( + override fun toUni(d: X4DatatypesComment, counts: X4DatatypesCommentAggregates): LemmyapiDatatypesComment = LemmyapiDatatypesComment( id = d.id, creator_id = d.creator_id, post_id = d.post_id, content = d.content, removed = d.removed, - published = d.published, - updated = d.updated, + published_at = d.published, + updated_at = d.updated, deleted = d.deleted, ap_id = d.ap_id, local = d.local, path = d.path, distinguished = d.distinguished, language_id = d.language_id, + score = counts.score, + upvotes = counts.upvotes, + downvotes = counts.downvotes, + child_count = counts.child_count, + report_count = -1, + unresolved_report_count = -1, + federation_pending = false, + locked = false, ) - override fun toUni(d: X4DatatypesCommentAggregates): LemmyapiDatatypesCommentAggregates = - LemmyapiDatatypesCommentAggregates( - comment_id = d.comment_id, - score = d.score, - upvotes = d.upvotes, - downvotes = d.downvotes, - published = d.published, - child_count = d.child_count, - ) - - override fun toUni(d: X4DatatypesCommentReply): LemmyapiDatatypesCommentReply = - LemmyapiDatatypesCommentReply( - id = d.id, - recipient_id = d.recipient_id, - comment_id = d.comment_id, - read = d.read, - published = d.published, - ) - - override fun toUni(d: X4DatatypesCommentReplyResponse): LemmyapiDatatypesCommentReplyResponse = - LemmyapiDatatypesCommentReplyResponse( - comment_reply_view = this.toUni(d = d.comment_reply_view), - ) - - override fun toUni(d: X4DatatypesCommentReplyView): LemmyapiDatatypesCommentReplyView = - LemmyapiDatatypesCommentReplyView( - comment_reply = this.toUni(d = d.comment_reply), - comment = this.toUni(d = d.comment), - creator = this.toUni(d = d.creator), - post = this.toUni(d = d.post), - community = this.toUni(d = d.community), - recipient = this.toUni(d = d.recipient), - counts = this.toUni(d = d.counts), - creator_banned_from_community = d.creator_banned_from_community, - banned_from_community = d.banned_from_community, - creator_is_moderator = d.creator_is_moderator, - creator_is_admin = d.creator_is_admin, - subscribed = d.subscribed, - saved = d.saved, - creator_blocked = d.creator_blocked, - my_vote = d.my_vote, - ) - override fun toUni(d: X4DatatypesCommentReport): LemmyapiDatatypesCommentReport = LemmyapiDatatypesCommentReport( id = d.id, @@ -619,8 +385,8 @@ internal class Transformer : MapperGenerator { reason = d.reason, resolved = d.resolved, resolver_id = d.resolver_id, - published = d.published, - updated = d.updated, + published_at = d.published, + updated_at = d.updated, ) override fun toUni(d: X4DatatypesCommentReportResponse): LemmyapiDatatypesCommentReportResponse = @@ -631,95 +397,85 @@ internal class Transformer : MapperGenerator { override fun toUni(d: X4DatatypesCommentReportView): LemmyapiDatatypesCommentReportView = LemmyapiDatatypesCommentReportView( comment_report = this.toUni(d = d.comment_report), - comment = this.toUni(d = d.comment), - post = this.toUni(d = d.post), - community = this.toUni(d = d.community), + comment = this.toUni(d = d.comment, d.counts), + post = this.toUni(d = d.post, counts = X4DatatypesPostAggregates(-1, -1, -1, -1, -1, "", "")), + community = this.toUni(d = d.community, counts = X4DatatypesCommunityAggregates(-1, -1, -1, -1, "", -1, -1, -1, -1, -1)), creator = this.toUni(d = d.creator), comment_creator = this.toUni(d = d.comment_creator), - counts = this.toUni(d = d.counts), creator_banned_from_community = d.creator_banned_from_community, creator_is_moderator = d.creator_is_moderator, creator_is_admin = d.creator_is_admin, - creator_blocked = d.creator_blocked, - subscribed = d.subscribed, - saved = d.saved, - my_vote = d.my_vote, resolver = d.resolver?.let { this.toUni(d = it) }, + creator_banned = d.creator.banned, + person_actions = PersonActions(if (d.creator_blocked) "" else null), + comment_actions = CommentActions(d.my_vote, null, if (d.saved) "" else null), + community_actions = CommunityActions(null, CommunityFollowerState.from(d.subscribed)), ) override fun toUni(d: X4DatatypesCommentResponse): LemmyapiDatatypesCommentResponse = LemmyapiDatatypesCommentResponse( comment_view = this.toUni(d = d.comment_view), - recipient_ids = d.recipient_ids, ) override fun toUni(d: X4DatatypesCommentView): LemmyapiDatatypesCommentView = LemmyapiDatatypesCommentView( - comment = this.toUni(d = d.comment), + comment = this.toUni(d = d.comment, d.counts), creator = this.toUni(d = d.creator), - post = this.toUni(d = d.post), - community = this.toUni(d = d.community), - counts = this.toUni(d = d.counts), + post = this.toUni(d = d.post, counts = X4DatatypesPostAggregates(-1, -1, -1, -1, -1, "", "")), + community = this.toUni(d = d.community, counts = X4DatatypesCommunityAggregates(-1, -1, -1, -1, "", -1, -1, -1, -1, -1)), creator_banned_from_community = d.creator_banned_from_community, - banned_from_community = d.banned_from_community, creator_is_moderator = d.creator_is_moderator, creator_is_admin = d.creator_is_admin, - subscribed = d.subscribed, - saved = d.saved, - creator_blocked = d.creator_blocked, - my_vote = d.my_vote, + tags = emptyList(), + creator_banned = d.creator.banned, + creator_ban_expires_at = d.creator.ban_expires, + can_mod = false, + person_actions = PersonActions(if (d.creator_blocked) "" else null), + comment_actions = CommentActions(d.my_vote, null, if (d.saved) "" else null), + community_actions = CommunityActions(null, CommunityFollowerState.from(d.subscribed)), ) - override fun toUni(d: X4DatatypesCommunity): LemmyapiDatatypesCommunity = + override fun toUni(d: X4DatatypesCommunity, counts: X4DatatypesCommunityAggregates): LemmyapiDatatypesCommunity = LemmyapiDatatypesCommunity( id = d.id, name = d.name, title = d.title, - description = d.description, + summary = d.description, removed = d.removed, - published = d.published, - updated = d.updated, + published_at = d.published, + updated_at = d.updated, deleted = d.deleted, nsfw = d.nsfw, - actor_id = d.actor_id, + ap_id = d.actor_id, local = d.local, icon = d.icon, banner = d.banner, - hidden = d.hidden, posting_restricted_to_mods = d.posting_restricted_to_mods, instance_id = d.instance_id, - visibility = d.visibility, - ) - - override fun toUni(d: X4DatatypesCommunityAggregates): LemmyapiDatatypesCommunityAggregates = - LemmyapiDatatypesCommunityAggregates( - community_id = d.community_id, - subscribers = d.subscribers, - posts = d.posts, - comments = d.comments, - published = d.published, - users_active_day = d.users_active_day, - users_active_week = d.users_active_week, - users_active_month = d.users_active_month, - users_active_half_year = d.users_active_half_year, - subscribers_local = d.subscribers_local, - ) - - override fun toUni(d: X4DatatypesCommunityBlockView): LemmyapiDatatypesCommunityBlockView = - LemmyapiDatatypesCommunityBlockView( - person = this.toUni(d = d.person), - community = this.toUni(d = d.community), + visibility = if (d.hidden) CommunityVisibility.Unlisted else d.visibility.toUni(), + subscribers = counts.subscribers, + posts = counts.posts, + comments = counts.comments, + users_active_day = counts.users_active_day, + users_active_week = counts.users_active_week, + users_active_month = counts.users_active_month, + users_active_half_year = counts.users_active_half_year, + subscribers_local = counts.subscribers_local, + report_count = -1, + unresolved_report_count = -1, + local_removed = false, + last_refreshed_at = "", ) override fun toUni(d: X4DatatypesCommunityFollowerView): LemmyapiDatatypesCommunityFollowerView = LemmyapiDatatypesCommunityFollowerView( - community = this.toUni(d = d.community), + community = this.toUni(d = d.community, counts = X4DatatypesCommunityAggregates(-1, -1, -1, -1, "", -1, -1, -1, -1, -1)), follower = this.toUni(d = d.follower), ) override fun toUni(d: X4DatatypesCommunityModeratorView): LemmyapiDatatypesCommunityModeratorView = LemmyapiDatatypesCommunityModeratorView( - community = this.toUni(d = d.community), + community = this.toUni(d = d.community, counts = X4DatatypesCommunityAggregates(-1, -1, -1, -1, "", -1, -1, -1, -1, -1)), moderator = this.toUni(d = d.moderator), ) @@ -731,23 +487,28 @@ internal class Transformer : MapperGenerator { override fun toUni(d: X4DatatypesCommunityView): LemmyapiDatatypesCommunityView = LemmyapiDatatypesCommunityView( - community = this.toUni(d = d.community), - subscribed = d.subscribed, - blocked = d.blocked, - counts = this.toUni(d = d.counts), - banned_from_community = d.banned_from_community, + community = this.toUni(d = d.community, d.counts), + can_mod = false, + tags = emptyList(), + community_actions = CommunityActions( + null, + CommunityFollowerState.from(d.subscribed), + if (d.blocked) "" else null, + null, + if (d.banned_from_community) "" else null, + if (d.banned_from_community) "" else null, + ), ) override fun toUni(d: X4DatatypesCustomEmoji): LemmyapiDatatypesCustomEmoji = LemmyapiDatatypesCustomEmoji( id = d.id, - local_site_id = d.local_site_id, shortcode = d.shortcode, image_url = d.image_url, alt_text = d.alt_text, category = d.category, - published = d.published, - updated = d.updated, + published_at = d.published, + updated_at = d.updated, ) override fun toUni(d: X4DatatypesCustomEmojiKeyword): LemmyapiDatatypesCustomEmojiKeyword = @@ -767,13 +528,6 @@ internal class Transformer : MapperGenerator { keywords = d.keywords.map { this.toUni(d = it) }, ) - override fun toUni(d: X4DatatypesFederatedInstances): LemmyapiDatatypesFederatedInstances = - LemmyapiDatatypesFederatedInstances( - linked = d.linked.map { this.toUni(d = it) }, - allowed = d.allowed.map { this.toUni(d = it) }, - blocked = d.blocked.map { this.toUni(d = it) }, - ) - override fun toUni(d: X4DatatypesGenerateTotpSecretResponse): LemmyapiDatatypesGenerateTotpSecretResponse = LemmyapiDatatypesGenerateTotpSecretResponse( totp_secret_url = d.totp_secret_url, ) @@ -783,11 +537,6 @@ internal class Transformer : MapperGenerator { ok = d.ok?.let { this.toUni(d = it) }, ) - override fun toUni(d: X4DatatypesGetCommentsResponse): LemmyapiDatatypesGetCommentsResponse = - LemmyapiDatatypesGetCommentsResponse( - comments = d.comments.map { this.toUni(d = it) }, - ) - override fun toUni(d: X4DatatypesGetCommunityResponse): LemmyapiDatatypesGetCommunityResponse = LemmyapiDatatypesGetCommunityResponse( community_view = this.toUni(d = d.community_view), @@ -796,40 +545,11 @@ internal class Transformer : MapperGenerator { discussion_languages = d.discussion_languages, ) - override fun toUni(d: X4DatatypesGetFederatedInstancesResponse): LemmyapiDatatypesGetFederatedInstancesResponse = - LemmyapiDatatypesGetFederatedInstancesResponse( - federated_instances = d.federated_instances?.let { this.toUni(d = it) }, - ) - - override fun toUni(d: X4DatatypesGetModlogResponse): LemmyapiDatatypesGetModlogResponse = - LemmyapiDatatypesGetModlogResponse( - removed_posts = d.removed_posts.map { this.toUni(d = it) }, - locked_posts = d.locked_posts.map { this.toUni(d = it) }, - featured_posts = d.featured_posts.map { this.toUni(d = it) }, - removed_comments = d.removed_comments.map { this.toUni(d = it) }, - removed_communities = d.removed_communities.map { this.toUni(d = it) }, - banned_from_community = d.banned_from_community.map { this.toUni(d = it) }, - banned = d.banned.map { this.toUni(d = it) }, - added_to_community = d.added_to_community.map { this.toUni(d = it) }, - transferred_to_community = d.transferred_to_community.map { this.toUni(d = it) }, - added = d.added.map { this.toUni(d = it) }, - admin_purged_persons = d.admin_purged_persons.map { this.toUni(d = it) }, - admin_purged_communities = d.admin_purged_communities.map { this.toUni(d = it) }, - admin_purged_posts = d.admin_purged_posts.map { this.toUni(d = it) }, - admin_purged_comments = d.admin_purged_comments.map { this.toUni(d = it) }, - hidden_communities = d.hidden_communities.map { this.toUni(d = it) }, - ) - override fun toUni(d: X4DatatypesGetPersonDetailsResponse): LemmyapiDatatypesGetPersonDetailsResponse = LemmyapiDatatypesGetPersonDetailsResponse( person_view = this.toUni(d = d.person_view), site = d.site?.let { this.toUni(d = it) }, - comments = d.comments.map { this.toUni(d = it) }, - posts = d.posts.map { this.toUni(d = it) }, moderates = d.moderates.map { this.toUni(d = it) }, - ) - - override fun toUni(d: X4DatatypesGetPersonMentionsResponse): LemmyapiDatatypesGetPersonMentionsResponse = LemmyapiDatatypesGetPersonMentionsResponse( - mentions = d.mentions.map { this.toUni(d = it) }, + multi_communities_created = emptyList(), ) override fun toUni(d: X4DatatypesGetPostResponse): LemmyapiDatatypesGetPostResponse = @@ -840,23 +560,83 @@ internal class Transformer : MapperGenerator { cross_posts = d.cross_posts.map { this.toUni(d = it) }, ) - override fun toUni(d: X4DatatypesGetPostsResponse): LemmyapiDatatypesGetPostsResponse = - LemmyapiDatatypesGetPostsResponse( - posts = d.posts.map { this.toUni(d = it) }, - next_page = d.next_page, + fun toUni(d: X4DatatypesCommentReplyView): NotificationView = + NotificationView( + notification = Notification( + id = d.comment_reply.id, + recipient_id = d.comment_reply.recipient_id, + comment_id = d.comment_reply.comment_id, + read = d.comment_reply.read, + published_at = d.comment_reply.published, + kind = NotificationType.Reply, + post_id = d.post.id, + creator_id = d.creator.id, + ), + data = this.toUniCV(d), ) - override fun toUni(d: X4DatatypesGetRepliesResponse): LemmyapiDatatypesGetRepliesResponse = - LemmyapiDatatypesGetRepliesResponse( - replies = d.replies.map { this.toUni(d = it) }, - ) - - override fun toUni(d: X4DatatypesGetReportCountResponse): LemmyapiDatatypesGetReportCountResponse = - LemmyapiDatatypesGetReportCountResponse( - community_id = d.community_id, - comment_reports = d.comment_reports, - post_reports = d.post_reports, - private_message_reports = d.private_message_reports, + fun toUniCV(d: X4DatatypesCommentReplyView): LemmyapiDatatypesCommentView = + LemmyapiDatatypesCommentView( + comment = this.toUni(d = d.comment, d.counts), + creator = this.toUni(d = d.creator), + post = this.toUni(d = d.post, counts = X4DatatypesPostAggregates(-1, -1, -1, -1, -1, "", "")), + community = this.toUni(d = d.community, counts = X4DatatypesCommunityAggregates(-1, -1, -1, -1, "", -1, -1, -1, -1, -1)), + creator_banned_from_community = d.creator_banned_from_community, + creator_is_moderator = d.creator_is_moderator, + creator_is_admin = d.creator_is_admin, + tags = emptyList(), + creator_banned = d.creator.banned, + creator_ban_expires_at = d.creator.ban_expires, + can_mod = false, + person_actions = PersonActions(if (d.creator_blocked) "" else null), + comment_actions = CommentActions(d.my_vote, null, if (d.saved) "" else null), + community_actions = CommunityActions(null, CommunityFollowerState.from(d.subscribed)), + ) + + fun toUni(d: X4DatatypesPersonMentionView): NotificationView = + NotificationView( + notification = Notification( + id = d.person_mention.id, + recipient_id = d.person_mention.recipient_id, + comment_id = d.person_mention.comment_id, + read = d.person_mention.read, + published_at = d.person_mention.published, + kind = NotificationType.Mention, + post_id = d.post.id, + creator_id = d.creator.id, + ), + data = this.toUniPV(d), + ) + + fun toUniPV(d: X4DatatypesPersonMentionView): LemmyapiDatatypesCommentView = + LemmyapiDatatypesCommentView( + comment = this.toUni(d = d.comment, d.counts), + creator = this.toUni(d = d.creator), + post = this.toUni(d = d.post, counts = X4DatatypesPostAggregates(-1, -1, -1, -1, -1, "", "")), + community = this.toUni(d = d.community, counts = X4DatatypesCommunityAggregates(-1, -1, -1, -1, "", -1, -1, -1, -1, -1)), + creator_banned_from_community = d.creator_banned_from_community, + creator_is_moderator = d.creator_is_moderator, + creator_is_admin = d.creator_is_admin, + tags = emptyList(), + creator_banned = d.creator.banned, + creator_ban_expires_at = d.creator.ban_expires, + can_mod = false, + person_actions = PersonActions(if (d.creator_blocked) "" else null), + comment_actions = CommentActions(d.my_vote, null, if (d.saved) "" else null), + community_actions = CommunityActions(null, CommunityFollowerState.from(d.subscribed)), + ) + + fun toUniPMV(d: X4DatatypesPrivateMessageView): NotificationView = + NotificationView( + notification = Notification( + id = d.private_message.id, + recipient_id = d.private_message.recipient_id, + read = d.private_message.read, + published_at = d.private_message.published, + kind = NotificationType.PrivateMessage, + creator_id = d.creator.id, + ), + data = this.toUni(d), ) override fun toUni(d: X4DatatypesGetSiteMetadataResponse): LemmyapiDatatypesGetSiteMetadataResponse = LemmyapiDatatypesGetSiteMetadataResponse( @@ -868,52 +648,25 @@ internal class Transformer : MapperGenerator { site_view = this.toUni(d = d.site_view), admins = d.admins.map { this.toUni(d = it) }, version = d.version, - my_user = d.my_user?.let { this.toUni(d = it) }, all_languages = d.all_languages.map { this.toUni(d = it) }, discussion_languages = d.discussion_languages, - taglines = d.taglines.map { this.toUni(d = it) }, - custom_emojis = d.custom_emojis.map { this.toUni(d = it) }, blocked_urls = d.blocked_urls.map { this.toUni(d = it) }, - ) - - override fun toUni(d: X4DatatypesGetUnreadCountResponse): LemmyapiDatatypesGetUnreadCountResponse = - LemmyapiDatatypesGetUnreadCountResponse( - replies = d.replies, - mentions = d.mentions, - private_messages = d.private_messages, - ) - - override fun toUni(d: X4DatatypesGetUnreadRegistrationApplicationCountResponse): LemmyapiDatatypesGetUnreadRegistrationApplicationCountResponse = - LemmyapiDatatypesGetUnreadRegistrationApplicationCountResponse( - registration_applications = d.registration_applications, + tagline = if (d.taglines.isEmpty()) null else this.toUni(d = d.taglines.random()), + oauth_providers = emptyList(), + admin_oauth_providers = emptyList(), + active_plugins = emptyList(), + captcha_enabled = false, ) override fun toUni(d: X4DatatypesInstance): LemmyapiDatatypesInstance = LemmyapiDatatypesInstance( id = d.id, domain = d.domain, - published = d.published, - updated = d.updated, + published_at = d.published, + updated_at = d.updated, software = d.software, version = d.version, ) - override fun toUni(d: X4DatatypesInstanceBlockView): LemmyapiDatatypesInstanceBlockView = - LemmyapiDatatypesInstanceBlockView( - person = this.toUni(d = d.person), - instance = this.toUni(d = d.instance), - site = d.site?.let { this.toUni(d = it) }, - ) - - override fun toUni(d: X4DatatypesInstanceWithFederationState): LemmyapiDatatypesInstanceWithFederationState = LemmyapiDatatypesInstanceWithFederationState( - id = d.id, - domain = d.domain, - published = d.published, - updated = d.updated, - software = d.software, - version = d.version, - federation_state = d.federation_state?.let { this.toUni(d = it) }, - ) - override fun toUni(d: X4DatatypesLanguage): LemmyapiDatatypesLanguage = LemmyapiDatatypesLanguage( id = d.id, code = d.code, @@ -929,48 +682,12 @@ internal class Transformer : MapperGenerator { content_type = d.content_type, ) - override fun toUni(d: X4DatatypesListCommentLikesResponse): LemmyapiDatatypesListCommentLikesResponse = LemmyapiDatatypesListCommentLikesResponse( - comment_likes = d.comment_likes.map { this.toUni(d = it) }, - ) - - override fun toUni(d: X4DatatypesListCommentReportsResponse): LemmyapiDatatypesListCommentReportsResponse = LemmyapiDatatypesListCommentReportsResponse( - comment_reports = d.comment_reports.map { this.toUni(d = it) }, - ) - - override fun toUni(d: X4DatatypesListCommunitiesResponse): LemmyapiDatatypesListCommunitiesResponse = LemmyapiDatatypesListCommunitiesResponse( - communities = d.communities.map { this.toUni(d = it) }, - ) - - override fun toUni(d: X4DatatypesListMediaResponse): LemmyapiDatatypesListMediaResponse = - LemmyapiDatatypesListMediaResponse( - images = d.images.map { this.toUni(d = it) }, - ) - - override fun toUni(d: X4DatatypesListPostLikesResponse): LemmyapiDatatypesListPostLikesResponse = - LemmyapiDatatypesListPostLikesResponse( - post_likes = d.post_likes.map { this.toUni(d = it) }, - ) - - override fun toUni(d: X4DatatypesListPostReportsResponse): LemmyapiDatatypesListPostReportsResponse = LemmyapiDatatypesListPostReportsResponse( - post_reports = d.post_reports.map { this.toUni(d = it) }, - ) - - override fun toUni(d: X4DatatypesListPrivateMessageReportsResponse): LemmyapiDatatypesListPrivateMessageReportsResponse = - LemmyapiDatatypesListPrivateMessageReportsResponse( - private_message_reports = d.private_message_reports.map { this.toUni(d = it) }, - ) - - override fun toUni(d: X4DatatypesListRegistrationApplicationsResponse): LemmyapiDatatypesListRegistrationApplicationsResponse = - LemmyapiDatatypesListRegistrationApplicationsResponse( - registration_applications = d.registration_applications.map { this.toUni(d = it) }, - ) - override fun toUni(d: X4DatatypesLocalImage): LemmyapiDatatypesLocalImage = LemmyapiDatatypesLocalImage( - local_user_id = d.local_user_id, + person_id = d.local_user_id, pictrs_alias = d.pictrs_alias, pictrs_delete_token = d.pictrs_delete_token, - published = d.published, + published_at = d.published, ) override fun toUni(d: X4DatatypesLocalImageView): LemmyapiDatatypesLocalImageView = @@ -979,115 +696,138 @@ internal class Transformer : MapperGenerator { person = this.toUni(d = d.person), ) - override fun toUni(d: X4DatatypesLocalSite): LemmyapiDatatypesLocalSite = + override fun toUni(d: X4DatatypesLocalSite, counts: X4DatatypesSiteAggregates): LemmyapiDatatypesLocalSite = LemmyapiDatatypesLocalSite( id = d.id, site_id = d.site_id, site_setup = d.site_setup, - enable_downvotes = d.enable_downvotes, - enable_nsfw = d.enable_nsfw, community_creation_admin_only = d.community_creation_admin_only, - require_email_verification = d.require_email_verification, + email_verification_required = d.require_email_verification, application_question = d.application_question, private_instance = d.private_instance, default_theme = d.default_theme, - default_post_listing_type = d.default_post_listing_type, + default_post_listing_type = d.default_post_listing_type.toUni(), legal_information = d.legal_information, - hide_modlog_mod_names = d.hide_modlog_mod_names, application_email_admins = d.application_email_admins, slur_filter_regex = d.slur_filter_regex, - actor_name_max_length = d.actor_name_max_length, federation_enabled = d.federation_enabled, - captcha_enabled = d.captcha_enabled, - captcha_difficulty = d.captcha_difficulty, - published = d.published, - updated = d.updated, - registration_mode = d.registration_mode, + published_at = d.published, + updated_at = d.updated, + registration_mode = d.registration_mode.toUni(), reports_email_admins = d.reports_email_admins, federation_signed_fetch = d.federation_signed_fetch, - default_post_listing_mode = d.default_post_listing_mode, - default_sort_type = d.default_sort_type, + default_post_listing_mode = d.default_post_listing_mode.toUni(), + default_post_sort_type = d.default_sort_type.toUni(), + nsfw_content_disallowed = !d.enable_nsfw, + oauth_registration = false, + email_notifications_disabled = false, + suggested_multi_community_id = null, + default_comment_sort_type = CommentSortType.Hot, + default_post_time_range_seconds = null, + post_upvotes = FederationMode.All, + post_downvotes = if (d.enable_downvotes) FederationMode.All else FederationMode.Disable, + comment_upvotes = FederationMode.All, + comment_downvotes = if (d.enable_downvotes) FederationMode.All else FederationMode.Disable, + users = counts.users, + posts = counts.posts, + comments = counts.comments, + communities = counts.communities, + users_active_day = counts.users_active_day, + users_active_week = counts.users_active_week, + users_active_month = counts.users_active_month, + users_active_half_year = counts.users_active_half_year, + default_items_per_page = 20, + image_mode = ImageMode.StoreLinkPreviews, + image_upload_timeout_seconds = 0, + image_max_thumbnail_size = 0, + image_max_avatar_size = 0, + image_max_banner_size = 0, + image_max_upload_size = 0, + image_allow_video_uploads = false, + image_upload_disabled = false, + max_invites_per_user_allowed = 0, ) override fun toUni(d: X4DatatypesLocalSiteRateLimit): LemmyapiDatatypesLocalSiteRateLimit = LemmyapiDatatypesLocalSiteRateLimit( local_site_id = d.local_site_id, - message = d.message, - message_per_second = d.message_per_second, - post = d.post, - post_per_second = d.post_per_second, - register = d.register, - register_per_second = d.register_per_second, - image = d.image, - image_per_second = d.image_per_second, - comment = d.comment, - comment_per_second = d.comment_per_second, - search = d.search, - search_per_second = d.search_per_second, - published = d.published, - updated = d.updated, - import_user_settings = d.import_user_settings, - import_user_settings_per_second = d.import_user_settings_per_second, + message_max_requests = d.message, + message_interval_seconds = d.message_per_second, + post_max_requests = d.post, + post_interval_seconds = d.post_per_second, + register_max_requests = d.register, + register_interval_seconds = d.register_per_second, + image_max_requests = d.image, + image_interval_seconds = d.image_per_second, + comment_max_requests = d.comment, + comment_interval_seconds = d.comment_per_second, + search_max_requests = d.search, + search_interval_seconds = d.search_per_second, + published_at = d.published, + updated_at = d.updated, + import_user_settings_max_requests = d.import_user_settings, + import_user_settings_interval_seconds = d.import_user_settings_per_second, ) override fun toUni(d: X4DatatypesLocalSiteUrlBlocklist): LemmyapiDatatypesLocalSiteUrlBlocklist = LemmyapiDatatypesLocalSiteUrlBlocklist( id = d.id, url = d.url, - published = d.published, - updated = d.updated, + published_at = d.published, + updated_at = d.updated, ) - override fun toUni(d: X4DatatypesLocalUser): LemmyapiDatatypesLocalUser = + override fun toUni(d: X4DatatypesLocalUser, e: X4DatatypesLocalUserVoteDisplayMode): LemmyapiDatatypesLocalUser = LemmyapiDatatypesLocalUser( id = d.id, person_id = d.person_id, email = d.email, show_nsfw = d.show_nsfw, theme = d.theme, - default_sort_type = d.default_sort_type, - default_listing_type = d.default_listing_type, + default_post_sort_type = d.default_sort_type.toUni(), + default_listing_type = d.default_listing_type.toUni(), interface_language = d.interface_language, show_avatars = d.show_avatars, send_notifications_to_email = d.send_notifications_to_email, - show_scores = d.show_scores, show_bot_accounts = d.show_bot_accounts, show_read_posts = d.show_read_posts, email_verified = d.email_verified, accepted_application = d.accepted_application, open_links_in_new_tab = d.open_links_in_new_tab, blur_nsfw = d.blur_nsfw, - auto_expand = d.auto_expand, infinite_scroll_enabled = d.infinite_scroll_enabled, admin = d.admin, - post_listing_mode = d.post_listing_mode, - totp_2fa_enabled = d.totp_2fa_enabled, - enable_keyboard_navigation = d.enable_keyboard_navigation, - enable_animated_images = d.enable_animated_images, + post_listing_mode = d.post_listing_mode.toUni(), + animated_images_enabled = d.enable_animated_images, collapse_bot_comments = d.collapse_bot_comments, - last_donation_notification = "", + last_donation_notification_at = "", + show_score = e.score, + show_upvotes = e.upvotes, + show_person_votes = e.score, + show_upvote_percentage = e.upvote_percentage, + show_downvotes = if (e.downvotes) VoteShow.Show else VoteShow.Hide, + hide_posts_with_media = false, + show_media = true, + private_messages_enabled = true, + default_comment_sort_type = CommentSortType.Hot, + auto_mark_fetched_posts_as_read = false, + default_post_time_range_seconds = null, + default_items_per_page = 20, + totp_2fa_enabled = d.totp_2fa_enabled, ) override fun toUni(d: X4DatatypesLocalUserView): LemmyapiDatatypesLocalUserView = LemmyapiDatatypesLocalUserView( - local_user = this.toUni(d = d.local_user), - local_user_vote_display_mode = this.toUni(d = d.local_user_vote_display_mode), - person = this.toUni(d = d.person), - counts = this.toUni(d = d.counts), + local_user = this.toUni(d = d.local_user, d.local_user_vote_display_mode), + person = this.toUni(d = d.person, d.counts), + banned = d.person.banned, + ban_expires_at = d.person.ban_expires, ) - override fun toUni(d: X4DatatypesLocalUserVoteDisplayMode): LemmyapiDatatypesLocalUserVoteDisplayMode = LemmyapiDatatypesLocalUserVoteDisplayMode( - local_user_id = d.local_user_id, - score = d.score, - upvotes = d.upvotes, - downvotes = d.downvotes, - upvote_percentage = d.upvote_percentage, - ) - override fun toUni(d: X4DatatypesLoginToken): LemmyapiDatatypesLoginToken = LemmyapiDatatypesLoginToken( user_id = d.user_id, - published = d.published, + published_at = d.published, ip = d.ip, user_agent = d.user_agent, ) @@ -1099,294 +839,51 @@ internal class Transformer : MapperGenerator { verify_email_sent = d.verify_email_sent, ) - override fun toUni(d: X4DatatypesModAdd): LemmyapiDatatypesModAdd = LemmyapiDatatypesModAdd( - id = d.id, - mod_person_id = d.mod_person_id, - other_person_id = d.other_person_id, - removed = d.removed, - when_ = d.when_, - ) - - override fun toUni(d: X4DatatypesModAddCommunity): LemmyapiDatatypesModAddCommunity = - LemmyapiDatatypesModAddCommunity( - id = d.id, - mod_person_id = d.mod_person_id, - other_person_id = d.other_person_id, - community_id = d.community_id, - removed = d.removed, - when_ = d.when_, - ) - - override fun toUni(d: X4DatatypesModAddCommunityView): LemmyapiDatatypesModAddCommunityView = - LemmyapiDatatypesModAddCommunityView( - mod_add_community = this.toUni(d = d.mod_add_community), - moderator = d.moderator?.let { this.toUni(d = it) }, - community = this.toUni(d = d.community), - modded_person = this.toUni(d = d.modded_person), - ) - - override fun toUni(d: X4DatatypesModAddView): LemmyapiDatatypesModAddView = - LemmyapiDatatypesModAddView( - mod_add = this.toUni(d = d.mod_add), - moderator = d.moderator?.let { this.toUni(d = it) }, - modded_person = this.toUni(d = d.modded_person), - ) - - override fun toUni(d: X4DatatypesModBan): LemmyapiDatatypesModBan = LemmyapiDatatypesModBan( - id = d.id, - mod_person_id = d.mod_person_id, - other_person_id = d.other_person_id, - reason = d.reason, - banned = d.banned, - expires = d.expires, - when_ = d.when_, - ) - - override fun toUni(d: X4DatatypesModBanFromCommunity): LemmyapiDatatypesModBanFromCommunity = - LemmyapiDatatypesModBanFromCommunity( - id = d.id, - mod_person_id = d.mod_person_id, - other_person_id = d.other_person_id, - community_id = d.community_id, - reason = d.reason, - banned = d.banned, - expires = d.expires, - when_ = d.when_, - ) - - override fun toUni(d: X4DatatypesModBanFromCommunityView): LemmyapiDatatypesModBanFromCommunityView = LemmyapiDatatypesModBanFromCommunityView( - mod_ban_from_community = this.toUni(d = d.mod_ban_from_community), - moderator = d.moderator?.let { this.toUni(d = it) }, - community = this.toUni(d = d.community), - banned_person = this.toUni(d = d.banned_person), - ) - - override fun toUni(d: X4DatatypesModBanView): LemmyapiDatatypesModBanView = - LemmyapiDatatypesModBanView( - mod_ban = this.toUni(d = d.mod_ban), - moderator = d.moderator?.let { this.toUni(d = it) }, - banned_person = this.toUni(d = d.banned_person), - ) - - override fun toUni(d: X4DatatypesModFeaturePost): LemmyapiDatatypesModFeaturePost = - LemmyapiDatatypesModFeaturePost( - id = d.id, - mod_person_id = d.mod_person_id, - post_id = d.post_id, - featured = d.featured, - when_ = d.when_, - is_featured_community = d.is_featured_community, - ) - - override fun toUni(d: X4DatatypesModFeaturePostView): LemmyapiDatatypesModFeaturePostView = - LemmyapiDatatypesModFeaturePostView( - mod_feature_post = this.toUni(d = d.mod_feature_post), - moderator = d.moderator?.let { this.toUni(d = it) }, - post = this.toUni(d = d.post), - community = this.toUni(d = d.community), - ) - - override fun toUni(d: X4DatatypesModHideCommunity): LemmyapiDatatypesModHideCommunity = - LemmyapiDatatypesModHideCommunity( - id = d.id, - community_id = d.community_id, - mod_person_id = d.mod_person_id, - when_ = d.when_, - reason = d.reason, - hidden = d.hidden, - ) - - override fun toUni(d: X4DatatypesModHideCommunityView): LemmyapiDatatypesModHideCommunityView = - LemmyapiDatatypesModHideCommunityView( - mod_hide_community = this.toUni(d = d.mod_hide_community), - admin = d.admin?.let { this.toUni(d = it) }, - community = this.toUni(d = d.community), - ) - - override fun toUni(d: X4DatatypesModLockPost): LemmyapiDatatypesModLockPost = - LemmyapiDatatypesModLockPost( - id = d.id, - mod_person_id = d.mod_person_id, - post_id = d.post_id, - locked = d.locked, - when_ = d.when_, - ) - - override fun toUni(d: X4DatatypesModLockPostView): LemmyapiDatatypesModLockPostView = - LemmyapiDatatypesModLockPostView( - mod_lock_post = this.toUni(d = d.mod_lock_post), - moderator = d.moderator?.let { this.toUni(d = it) }, - post = this.toUni(d = d.post), - community = this.toUni(d = d.community), - ) - - override fun toUni(d: X4DatatypesModlogListParams): LemmyapiDatatypesModlogListParams = - LemmyapiDatatypesModlogListParams( - community_id = d.community_id, - mod_person_id = d.mod_person_id, - other_person_id = d.other_person_id, - post_id = d.post_id, - comment_id = d.comment_id, - page = d.page, - limit = d.limit, - hide_modlog_names = d.hide_modlog_names, - ) - - override fun toUni(d: X4DatatypesModRemoveComment): LemmyapiDatatypesModRemoveComment = - LemmyapiDatatypesModRemoveComment( - id = d.id, - mod_person_id = d.mod_person_id, - comment_id = d.comment_id, - reason = d.reason, - removed = d.removed, - when_ = d.when_, - ) - - override fun toUni(d: X4DatatypesModRemoveCommentView): LemmyapiDatatypesModRemoveCommentView = - LemmyapiDatatypesModRemoveCommentView( - mod_remove_comment = this.toUni(d = d.mod_remove_comment), - moderator = d.moderator?.let { this.toUni(d = it) }, - comment = this.toUni(d = d.comment), - commenter = this.toUni(d = d.commenter), - post = this.toUni(d = d.post), - community = this.toUni(d = d.community), - ) - - override fun toUni(d: X4DatatypesModRemoveCommunity): LemmyapiDatatypesModRemoveCommunity = - LemmyapiDatatypesModRemoveCommunity( - id = d.id, - mod_person_id = d.mod_person_id, - community_id = d.community_id, - reason = d.reason, - removed = d.removed, - when_ = d.when_, - ) - - override fun toUni(d: X4DatatypesModRemoveCommunityView): LemmyapiDatatypesModRemoveCommunityView = - LemmyapiDatatypesModRemoveCommunityView( - mod_remove_community = this.toUni(d = d.mod_remove_community), - moderator = d.moderator?.let { this.toUni(d = it) }, - community = this.toUni(d = d.community), - ) - - override fun toUni(d: X4DatatypesModRemovePost): LemmyapiDatatypesModRemovePost = - LemmyapiDatatypesModRemovePost( - id = d.id, - mod_person_id = d.mod_person_id, - post_id = d.post_id, - reason = d.reason, - removed = d.removed, - when_ = d.when_, - ) - - override fun toUni(d: X4DatatypesModRemovePostView): LemmyapiDatatypesModRemovePostView = - LemmyapiDatatypesModRemovePostView( - mod_remove_post = this.toUni(d = d.mod_remove_post), - moderator = d.moderator?.let { this.toUni(d = it) }, - post = this.toUni(d = d.post), - community = this.toUni(d = d.community), - ) - - override fun toUni(d: X4DatatypesModTransferCommunity): LemmyapiDatatypesModTransferCommunity = - LemmyapiDatatypesModTransferCommunity( - id = d.id, - mod_person_id = d.mod_person_id, - other_person_id = d.other_person_id, - community_id = d.community_id, - when_ = d.when_, - ) - - override fun toUni(d: X4DatatypesModTransferCommunityView): LemmyapiDatatypesModTransferCommunityView = LemmyapiDatatypesModTransferCommunityView( - mod_transfer_community = this.toUni(d = d.mod_transfer_community), - moderator = d.moderator?.let { this.toUni(d = it) }, - community = this.toUni(d = d.community), - modded_person = this.toUni(d = d.modded_person), - ) - override fun toUni(d: X4DatatypesMyUserInfo): LemmyapiDatatypesMyUserInfo = LemmyapiDatatypesMyUserInfo( local_user_view = this.toUni(d = d.local_user_view), follows = d.follows.map { this.toUni(d = it) }, moderates = d.moderates.map { this.toUni(d = it) }, - community_blocks = d.community_blocks.map { this.toUni(d = it) }, - instance_blocks = d.instance_blocks.map { this.toUni(d = it) }, - person_blocks = d.person_blocks.map { this.toUni(d = it) }, + community_blocks = d.community_blocks.map { this.toUni(d = it.community, counts = X4DatatypesCommunityAggregates(-1, -1, -1, -1, "", -1, -1, -1, -1, -1)) }, + instance_communities_blocks = d.instance_blocks.map { this.toUni(d = it.instance) }, + instance_persons_blocks = emptyList(), + person_blocks = d.person_blocks.map { this.toUni(d = it.target) }, discussion_languages = d.discussion_languages, + multi_community_follows = emptyList(), ) - override fun toUni(d: X4DatatypesPerson): LemmyapiDatatypesPerson = LemmyapiDatatypesPerson( + fun toUni(d: X4DatatypesPerson) = this.toUni(d, X4DatatypesPersonAggregates(-1, -1, -1)) + + override fun toUni(d: X4DatatypesPerson, counts: X4DatatypesPersonAggregates): LemmyapiDatatypesPerson = LemmyapiDatatypesPerson( id = d.id, name = d.name, display_name = d.display_name, avatar = d.avatar, - banned = d.banned, - published = d.published, - updated = d.updated, - actor_id = d.actor_id, + published_at = d.published, + updated_at = d.updated, + ap_id = d.actor_id, bio = d.bio, local = d.local, banner = d.banner, deleted = d.deleted, matrix_user_id = d.matrix_user_id, bot_account = d.bot_account, - ban_expires = d.ban_expires, instance_id = d.instance_id, + post_count = counts.post_count, + comment_count = counts.comment_count, + last_refreshed_at = "", ) - override fun toUni(d: X4DatatypesPersonAggregates): LemmyapiDatatypesPersonAggregates = - LemmyapiDatatypesPersonAggregates( - person_id = d.person_id, - post_count = d.post_count, - comment_count = d.comment_count, - ) - - override fun toUni(d: X4DatatypesPersonBlockView): LemmyapiDatatypesPersonBlockView = - LemmyapiDatatypesPersonBlockView( - person = this.toUni(d = d.person), - target = this.toUni(d = d.target), - ) - - override fun toUni(d: X4DatatypesPersonMention): LemmyapiDatatypesPersonMention = - LemmyapiDatatypesPersonMention( - id = d.id, - recipient_id = d.recipient_id, - comment_id = d.comment_id, - read = d.read, - published = d.published, - ) - - override fun toUni(d: X4DatatypesPersonMentionResponse): LemmyapiDatatypesPersonMentionResponse = - LemmyapiDatatypesPersonMentionResponse( - person_mention_view = this.toUni(d = d.person_mention_view), - ) - - override fun toUni(d: X4DatatypesPersonMentionView): LemmyapiDatatypesPersonMentionView = - LemmyapiDatatypesPersonMentionView( - person_mention = this.toUni(d = d.person_mention), - comment = this.toUni(d = d.comment), - creator = this.toUni(d = d.creator), - post = this.toUni(d = d.post), - community = this.toUni(d = d.community), - recipient = this.toUni(d = d.recipient), - counts = this.toUni(d = d.counts), - creator_banned_from_community = d.creator_banned_from_community, - banned_from_community = d.banned_from_community, - creator_is_moderator = d.creator_is_moderator, - creator_is_admin = d.creator_is_admin, - subscribed = d.subscribed, - saved = d.saved, - creator_blocked = d.creator_blocked, - my_vote = d.my_vote, - ) - override fun toUni(d: X4DatatypesPersonView): LemmyapiDatatypesPersonView = LemmyapiDatatypesPersonView( - person = this.toUni(d = d.person), - counts = this.toUni(d = d.counts), + person = this.toUni(d = d.person, d.counts), is_admin = d.is_admin, + person_actions = null, + banned = d.person.banned, + ban_expires_at = d.person.ban_expires, ) - override fun toUni(d: X4DatatypesPost): LemmyapiDatatypesPost = LemmyapiDatatypesPost( + override fun toUni(d: X4DatatypesPost, counts: X4DatatypesPostAggregates): LemmyapiDatatypesPost = LemmyapiDatatypesPost( id = d.id, name = d.name, url = d.url, @@ -1395,8 +892,8 @@ internal class Transformer : MapperGenerator { community_id = d.community_id, removed = d.removed, locked = d.locked, - published = d.published, - updated = d.updated, + published_at = d.published, + updated_at = d.updated, deleted = d.deleted, nsfw = d.nsfw, embed_title = d.embed_title, @@ -1410,19 +907,16 @@ internal class Transformer : MapperGenerator { featured_local = d.featured_local, url_content_type = d.url_content_type, alt_text = d.alt_text, + comments = counts.comments, + score = counts.score, + upvotes = counts.upvotes, + downvotes = counts.downvotes, + newest_comment_time_at = counts.newest_comment_time, + report_count = -1, + unresolved_report_count = -1, + federation_pending = false, ) - override fun toUni(d: X4DatatypesPostAggregates): LemmyapiDatatypesPostAggregates = - LemmyapiDatatypesPostAggregates( - post_id = d.post_id, - comments = d.comments, - score = d.score, - upvotes = d.upvotes, - downvotes = d.downvotes, - published = d.published, - newest_comment_time = d.newest_comment_time, - ) - override fun toUni(d: X4DatatypesPostReport): LemmyapiDatatypesPostReport = LemmyapiDatatypesPostReport( id = d.id, @@ -1434,8 +928,9 @@ internal class Transformer : MapperGenerator { reason = d.reason, resolved = d.resolved, resolver_id = d.resolver_id, - published = d.published, - updated = d.updated, + published_at = d.published, + updated_at = d.updated, + violates_instance_rules = false, ) override fun toUni(d: X4DatatypesPostReportResponse): LemmyapiDatatypesPostReportResponse = @@ -1446,22 +941,18 @@ internal class Transformer : MapperGenerator { override fun toUni(d: X4DatatypesPostReportView): LemmyapiDatatypesPostReportView = LemmyapiDatatypesPostReportView( post_report = this.toUni(d = d.post_report), - post = this.toUni(d = d.post), - community = this.toUni(d = d.community), + post = this.toUni(d = d.post, d.counts), + community = this.toUni(d = d.community, counts = X4DatatypesCommunityAggregates(-1, -1, -1, -1, "", -1, -1, -1, -1, -1)), creator = this.toUni(d = d.creator), post_creator = this.toUni(d = d.post_creator), + post_actions = PostActions(toAt(d.read), null, d.counts.comments - d.unread_comments, toAt(d.saved), null, d.my_vote, toAt(d.hidden)), + person_actions = PersonActions(toAt(d.creator_blocked)), + community_actions = CommunityActions(null, CommunityFollowerState.from(d.subscribed)), + resolver = d.resolver?.let { this.toUni(d = it) }, creator_banned_from_community = d.creator_banned_from_community, + creator_banned = d.creator.banned, creator_is_moderator = d.creator_is_moderator, creator_is_admin = d.creator_is_admin, - subscribed = d.subscribed, - saved = d.saved, - read = d.read, - hidden = d.hidden, - creator_blocked = d.creator_blocked, - my_vote = d.my_vote, - unread_comments = d.unread_comments, - counts = this.toUni(d = d.counts), - resolver = d.resolver?.let { this.toUni(d = it) }, ) override fun toUni(d: X4DatatypesPostResponse): LemmyapiDatatypesPostResponse = @@ -1470,21 +961,19 @@ internal class Transformer : MapperGenerator { ) override fun toUni(d: X4DatatypesPostView): LemmyapiDatatypesPostView = LemmyapiDatatypesPostView( - post = this.toUni(d = d.post), + post = this.toUni(d = d.post, d.counts), creator = this.toUni(d = d.creator), - community = this.toUni(d = d.community), + community = this.toUni(d = d.community, counts = X4DatatypesCommunityAggregates(-1, -1, -1, -1, "", -1, -1, -1, -1, -1)), + post_actions = PostActions(toAt(d.read), null, d.counts.comments - d.unread_comments, toAt(d.saved), null, d.my_vote, toAt(d.hidden)), + person_actions = PersonActions(toAt(d.creator_blocked)), + community_actions = CommunityActions(null, CommunityFollowerState.from(d.subscribed)), + tags = emptyList(), + can_mod = false, creator_banned_from_community = d.creator_banned_from_community, - banned_from_community = d.banned_from_community, - creator_is_moderator = d.creator_is_moderator, + creator_banned = d.creator.banned, + creator_ban_expires_at = d.creator.ban_expires, creator_is_admin = d.creator_is_admin, - counts = this.toUni(d = d.counts), - subscribed = d.subscribed, - saved = d.saved, - read = d.read, - hidden = d.hidden, - creator_blocked = d.creator_blocked, - my_vote = d.my_vote, - unread_comments = d.unread_comments, + creator_is_moderator = d.creator_is_moderator, ) override fun toUni(d: X4DatatypesPrivateMessage): LemmyapiDatatypesPrivateMessage = @@ -1495,10 +984,12 @@ internal class Transformer : MapperGenerator { content = d.content, deleted = d.deleted, read = d.read, - published = d.published, - updated = d.updated, + published_at = d.published, + updated_at = d.updated, ap_id = d.ap_id, local = d.local, + removed = false, + deleted_by_recipient = false, ) override fun toUni(d: X4DatatypesPrivateMessageReport): LemmyapiDatatypesPrivateMessageReport = @@ -1510,8 +1001,8 @@ internal class Transformer : MapperGenerator { reason = d.reason, resolved = d.resolved, resolver_id = d.resolver_id, - published = d.published, - updated = d.updated, + published_at = d.published, + updated_at = d.updated, ) override fun toUni(d: X4DatatypesPrivateMessageReportResponse): LemmyapiDatatypesPrivateMessageReportResponse = LemmyapiDatatypesPrivateMessageReportResponse( @@ -1524,6 +1015,9 @@ internal class Transformer : MapperGenerator { private_message_creator = this.toUni(d = d.private_message_creator), creator = this.toUni(d = d.creator), resolver = d.resolver?.let { this.toUni(d = it) }, + creator_is_admin = false, + creator_banned = d.creator.banned, + creator_ban_expires_at = d.creator.ban_expires, ) override fun toUni(d: X4DatatypesPrivateMessageResponse): LemmyapiDatatypesPrivateMessageResponse = @@ -1531,10 +1025,6 @@ internal class Transformer : MapperGenerator { private_message_view = this.toUni(d = d.private_message_view), ) - override fun toUni(d: X4DatatypesPrivateMessagesResponse): LemmyapiDatatypesPrivateMessagesResponse = LemmyapiDatatypesPrivateMessagesResponse( - private_messages = d.private_messages.map { this.toUni(d = it) }, - ) - override fun toUni(d: X4DatatypesPrivateMessageView): LemmyapiDatatypesPrivateMessageView = LemmyapiDatatypesPrivateMessageView( private_message = this.toUni(d = d.private_message), @@ -1545,10 +1035,9 @@ internal class Transformer : MapperGenerator { override fun toUni(d: X4DatatypesReadableFederationState): LemmyapiDatatypesReadableFederationState = LemmyapiDatatypesReadableFederationState( instance_id = d.instance_id, last_successful_id = d.last_successful_id, - last_successful_published_time = d.last_successful_published_time, + last_successful_published_time_at = d.last_successful_published_time, fail_count = d.fail_count, - last_retry = d.last_retry, - next_retry = d.next_retry, + last_retry_at = d.last_retry, ) override fun toUni(d: X4DatatypesRegistrationApplication): LemmyapiDatatypesRegistrationApplication = LemmyapiDatatypesRegistrationApplication( @@ -1557,7 +1046,7 @@ internal class Transformer : MapperGenerator { answer = d.answer, admin_id = d.admin_id, deny_reason = d.deny_reason, - published = d.published, + published_at = d.published, ) override fun toUni(d: X4DatatypesRegistrationApplicationResponse): LemmyapiDatatypesRegistrationApplicationResponse = @@ -1567,76 +1056,69 @@ internal class Transformer : MapperGenerator { override fun toUni(d: X4DatatypesRegistrationApplicationView): LemmyapiDatatypesRegistrationApplicationView = LemmyapiDatatypesRegistrationApplicationView( registration_application = this.toUni(d = d.registration_application), - creator_local_user = this.toUni(d = d.creator_local_user), + creator_local_user = this.toUni(d = d.creator_local_user, e = X4DatatypesLocalUserVoteDisplayMode(-1, true, true, true, true)), creator = this.toUni(d = d.creator), admin = d.admin?.let { this.toUni(d = it) }, ) - override fun toUni(d: X4DatatypesResolveObjectResponse): LemmyapiDatatypesResolveObjectResponse = - LemmyapiDatatypesResolveObjectResponse( - comment = d.comment?.let { this.toUni(d = it) }, - post = d.post?.let { this.toUni(d = it) }, - community = d.community?.let { this.toUni(d = it) }, - person = d.person?.let { this.toUni(d = it) }, + override fun toUni(d: X4DatatypesResolveObjectResponse): LemmyapiDatatypesSearchResponse = + LemmyapiDatatypesSearchResponse( + resolve = when { + d.post != null -> toUni(d.post) + d.comment != null -> toUni(d.comment) + d.community != null -> toUni(d.community) + d.person != null -> toUni(d.person) + else -> null + }, + comments = emptyList(), + posts = emptyList(), + communities = emptyList(), + persons = emptyList(), + multi_communities = emptyList(), ) override fun toUni(d: X4DatatypesSearchResponse): LemmyapiDatatypesSearchResponse = LemmyapiDatatypesSearchResponse( - type_ = d.type_, - comments = d.comments.map { this.toUni(d = it) }, - posts = d.posts.map { this.toUni(d = it) }, - communities = d.communities.map { this.toUni(d = it) }, - users = d.users.map { this.toUni(d = it) }, + comments = d.comments.map(this@Transformer::toUni), + posts = d.posts.map(this@Transformer::toUni), + communities = d.communities.map(this@Transformer::toUni), + persons = d.users.map(this@Transformer::toUni), + multi_communities = emptyList(), ) override fun toUni(d: X4DatatypesSite): LemmyapiDatatypesSite = LemmyapiDatatypesSite( id = d.id, name = d.name, sidebar = d.sidebar, - published = d.published, - updated = d.updated, + published_at = d.published, + updated_at = d.updated, icon = d.icon, banner = d.banner, - description = d.description, - actor_id = d.actor_id, + summary = d.description, + ap_id = d.actor_id, last_refreshed_at = d.last_refreshed_at, inbox_url = d.inbox_url, instance_id = d.instance_id, content_warning = d.content_warning, ) - override fun toUni(d: X4DatatypesSiteAggregates): LemmyapiDatatypesSiteAggregates = - LemmyapiDatatypesSiteAggregates( - site_id = d.site_id, - users = d.users, - posts = d.posts, - comments = d.comments, - communities = d.communities, - users_active_day = d.users_active_day, - users_active_week = d.users_active_week, - users_active_month = d.users_active_month, - users_active_half_year = d.users_active_half_year, - ) - override fun toUni(d: X4DatatypesSiteResponse): LemmyapiDatatypesSiteResponse = LemmyapiDatatypesSiteResponse( site_view = this.toUni(d = d.site_view), - taglines = d.taglines.map { this.toUni(d = it) }, ) override fun toUni(d: X4DatatypesSiteView): LemmyapiDatatypesSiteView = LemmyapiDatatypesSiteView( site = this.toUni(d = d.site), - local_site = this.toUni(d = d.local_site), + local_site = this.toUni(d = d.local_site, counts = d.counts), local_site_rate_limit = this.toUni(d = d.local_site_rate_limit), - counts = this.toUni(d = d.counts), + instance = null, ) override fun toUni(d: X4DatatypesTagline): LemmyapiDatatypesTagline = LemmyapiDatatypesTagline( id = d.id, - local_site_id = d.local_site_id, content = d.content, - published = d.published, - updated = d.updated, + published_at = d.published, + updated_at = d.updated, ) override fun toUni(d: X4DatatypesUpdateTotpResponse): LemmyapiDatatypesUpdateTotpResponse = @@ -1646,6 +1128,7 @@ internal class Transformer : MapperGenerator { override fun toUni(d: X4DatatypesVoteView): LemmyapiDatatypesVoteView = LemmyapiDatatypesVoteView( creator = this.toUni(d = d.creator), + creator_banned = d.creator.banned, creator_banned_from_community = d.creator_banned_from_community, score = d.score, ) @@ -1673,17 +1156,17 @@ internal class Transformer : MapperGenerator { community_id = d.community_id, person_id = d.person_id, ban = d.ban, - remove_data = d.remove_data, + remove_data = d.remove_or_restore_data, reason = d.reason, - expires = d.expires, + expires = d.expires_at, ) override fun fromUni(d: LemmyapiDatatypesBanPerson): X4DatatypesBanPerson = X4DatatypesBanPerson( person_id = d.person_id, ban = d.ban, - remove_data = d.remove_data, + remove_data = d.remove_or_restore_data, reason = d.reason, - expires = d.expires, + expires = d.expires_at, ) override fun fromUni(d: LemmyapiDatatypesBlockCommunity): X4DatatypesBlockCommunity = @@ -1735,13 +1218,11 @@ internal class Transformer : MapperGenerator { X4DatatypesCreateCommunity( name = d.name, title = d.title, - description = d.description, - icon = d.icon, - banner = d.banner, + description = d.summary, nsfw = d.nsfw, posting_restricted_to_mods = d.posting_restricted_to_mods, discussion_languages = d.discussion_languages, - visibility = d.visibility, + visibility = V0CommunityVisibility.fromUniNullable(d.visibility), ) override fun fromUni(d: LemmyapiDatatypesCreateCustomEmoji): X4DatatypesCreateCustomEmoji = @@ -1793,46 +1274,45 @@ internal class Transformer : MapperGenerator { X4DatatypesCreateSite( name = d.name, sidebar = d.sidebar, - description = d.description, - icon = d.icon, - banner = d.banner, - enable_downvotes = d.enable_downvotes, - enable_nsfw = d.enable_nsfw, + description = d.summary, + enable_downvotes = when (d.post_downvotes) { + FederationMode.Local, FederationMode.All -> true + FederationMode.Disable -> false + null -> null + }, + enable_nsfw = if (d.nsfw_content_disallowed == null) null else !d.nsfw_content_disallowed, community_creation_admin_only = d.community_creation_admin_only, - require_email_verification = d.require_email_verification, + require_email_verification = d.email_verification_required, application_question = d.application_question, private_instance = d.private_instance, default_theme = d.default_theme, - default_post_listing_type = d.default_post_listing_type, - default_sort_type = d.default_sort_type, + default_post_listing_type = V0ListingType.fromUniNullable(d.default_post_listing_type), + default_sort_type = V0SortType.fromUniNullable(d.default_post_sort_type), legal_information = d.legal_information, application_email_admins = d.application_email_admins, - hide_modlog_mod_names = d.hide_modlog_mod_names, discussion_languages = d.discussion_languages, slur_filter_regex = d.slur_filter_regex, - actor_name_max_length = d.actor_name_max_length, - rate_limit_message = d.rate_limit_message, - rate_limit_message_per_second = d.rate_limit_message_per_second, - rate_limit_post = d.rate_limit_post, - rate_limit_post_per_second = d.rate_limit_post_per_second, - rate_limit_register = d.rate_limit_register, - rate_limit_register_per_second = d.rate_limit_register_per_second, - rate_limit_image = d.rate_limit_image, - rate_limit_image_per_second = d.rate_limit_image_per_second, - rate_limit_comment = d.rate_limit_comment, - rate_limit_comment_per_second = d.rate_limit_comment_per_second, - rate_limit_search = d.rate_limit_search, - rate_limit_search_per_second = d.rate_limit_search_per_second, + rate_limit_message = d.rate_limit_message_max_requests, + rate_limit_message_per_second = d.rate_limit_message_interval_seconds, + rate_limit_post = d.rate_limit_post_max_requests, + rate_limit_post_per_second = d.rate_limit_post_interval_seconds, + rate_limit_register = d.rate_limit_register_max_requests, + rate_limit_register_per_second = d.rate_limit_register_interval_seconds, + rate_limit_image = d.rate_limit_image_max_requests, + rate_limit_image_per_second = d.rate_limit_image_interval_seconds, + rate_limit_comment = d.rate_limit_comment_max_requests, + rate_limit_comment_per_second = d.rate_limit_comment_interval_seconds, + rate_limit_search = d.rate_limit_search_max_requests, + rate_limit_search_per_second = d.rate_limit_search_interval_seconds, federation_enabled = d.federation_enabled, - federation_debug = d.federation_debug, - captcha_enabled = d.captcha_enabled, - captcha_difficulty = d.captcha_difficulty, + captcha_enabled = null, + captcha_difficulty = null, allowed_instances = d.allowed_instances, blocked_instances = d.blocked_instances, taglines = d.taglines, - registration_mode = d.registration_mode, + registration_mode = V0RegistrationMode.fromUniNullable(d.registration_mode), content_warning = d.content_warning, - default_post_listing_mode = d.default_post_listing_mode, + default_post_listing_mode = V0PostListingMode.fromUniNullable(d.default_post_listing_mode), ) override fun fromUni(d: LemmyapiDatatypesDeleteAccount): X4DatatypesDeleteAccount = @@ -1887,22 +1367,20 @@ internal class Transformer : MapperGenerator { X4DatatypesEditCommunity( community_id = d.community_id, title = d.title, - description = d.description, - icon = d.icon, - banner = d.banner, + description = d.summary, nsfw = d.nsfw, posting_restricted_to_mods = d.posting_restricted_to_mods, discussion_languages = d.discussion_languages, - visibility = d.visibility, + visibility = V0CommunityVisibility.fromUniNullable(d.visibility), ) override fun fromUni(d: LemmyapiDatatypesEditCustomEmoji): X4DatatypesEditCustomEmoji = X4DatatypesEditCustomEmoji( id = d.id, - category = d.category, - image_url = d.image_url, - alt_text = d.alt_text, - keywords = d.keywords, + category = d.category ?: "", + image_url = d.image_url ?: "", + alt_text = d.alt_text ?: "", + keywords = d.keywords ?: emptyList(), ) override fun fromUni(d: LemmyapiDatatypesEditPost): X4DatatypesEditPost = X4DatatypesEditPost( @@ -1925,55 +1403,56 @@ internal class Transformer : MapperGenerator { override fun fromUni(d: LemmyapiDatatypesEditSite): X4DatatypesEditSite = X4DatatypesEditSite( name = d.name, sidebar = d.sidebar, - description = d.description, - icon = d.icon, - banner = d.banner, - enable_downvotes = d.enable_downvotes, + description = d.summary, + enable_downvotes = when (d.post_downvotes) { + FederationMode.Local, FederationMode.All -> true + FederationMode.Disable -> false + null -> null + }, enable_nsfw = d.enable_nsfw, community_creation_admin_only = d.community_creation_admin_only, - require_email_verification = d.require_email_verification, + require_email_verification = d.email_verification_required, application_question = d.application_question, private_instance = d.private_instance, default_theme = d.default_theme, - default_post_listing_type = d.default_post_listing_type, - default_sort_type = d.default_sort_type, + default_post_listing_type = V0ListingType.fromUniNullable(d.default_post_listing_type), + default_sort_type = V0SortType.fromUniNullable(d.default_post_sort_type), legal_information = d.legal_information, application_email_admins = d.application_email_admins, hide_modlog_mod_names = d.hide_modlog_mod_names, discussion_languages = d.discussion_languages, slur_filter_regex = d.slur_filter_regex, - actor_name_max_length = d.actor_name_max_length, - rate_limit_message = d.rate_limit_message, - rate_limit_message_per_second = d.rate_limit_message_per_second, - rate_limit_post = d.rate_limit_post, - rate_limit_post_per_second = d.rate_limit_post_per_second, - rate_limit_register = d.rate_limit_register, - rate_limit_register_per_second = d.rate_limit_register_per_second, - rate_limit_image = d.rate_limit_image, - rate_limit_image_per_second = d.rate_limit_image_per_second, - rate_limit_comment = d.rate_limit_comment, - rate_limit_comment_per_second = d.rate_limit_comment_per_second, - rate_limit_search = d.rate_limit_search, - rate_limit_search_per_second = d.rate_limit_search_per_second, + rate_limit_message = d.rate_limit_message_max_requests, + rate_limit_message_per_second = d.rate_limit_message_interval_seconds, + rate_limit_post = d.rate_limit_post_max_requests, + rate_limit_post_per_second = d.rate_limit_post_interval_seconds, + rate_limit_register = d.rate_limit_register_max_requests, + rate_limit_register_per_second = d.rate_limit_register_interval_seconds, + rate_limit_image = d.rate_limit_image_max_requests, + rate_limit_image_per_second = d.rate_limit_image_interval_seconds, + rate_limit_comment = d.rate_limit_comment_max_requests, + rate_limit_comment_per_second = d.rate_limit_comment_interval_seconds, + rate_limit_search = d.rate_limit_search_max_requests, + rate_limit_search_per_second = d.rate_limit_search_interval_seconds, federation_enabled = d.federation_enabled, federation_debug = d.federation_debug, - captcha_enabled = d.captcha_enabled, - captcha_difficulty = d.captcha_difficulty, + captcha_enabled = null, + captcha_difficulty = null, allowed_instances = d.allowed_instances, blocked_instances = d.blocked_instances, blocked_urls = d.blocked_urls, taglines = d.taglines, - registration_mode = d.registration_mode, + registration_mode = V0RegistrationMode.fromUniNullable(d.registration_mode), reports_email_admins = d.reports_email_admins, content_warning = d.content_warning, - default_post_listing_mode = d.default_post_listing_mode, + default_post_listing_mode = V0PostListingMode.fromUniNullable(d.default_post_listing_mode), ) override fun fromUni(d: LemmyapiDatatypesFeaturePost): X4DatatypesFeaturePost = X4DatatypesFeaturePost( post_id = d.post_id, featured = d.featured, - feature_type = d.feature_type, + feature_type = V0PostFeatureType.fromUni(d.feature_type), ) override fun fromUni(d: LemmyapiDatatypesFollowCommunity): X4DatatypesFollowCommunity = @@ -1989,8 +1468,8 @@ internal class Transformer : MapperGenerator { override fun fromUni(d: LemmyapiDatatypesGetComments): X4DatatypesGetComments = X4DatatypesGetComments( - type_ = d.type_, - sort = d.sort, + type_ = V0ListingType.fromUniNullable(d.type_), + sort = V0CommentSortType.fromUniNullable(d.sort), max_depth = d.max_depth, page = d.page, limit = d.limit, @@ -2014,7 +1493,7 @@ internal class Transformer : MapperGenerator { community_id = d.community_id, page = d.page, limit = d.limit, - type_ = d.type_, + type_ = V0ModlogActionType.fromUniNullable(d.type_), other_person_id = d.other_person_id, post_id = d.post_id, comment_id = d.comment_id, @@ -2024,19 +1503,6 @@ internal class Transformer : MapperGenerator { X4DatatypesGetPersonDetails( person_id = d.person_id, username = d.username, - sort = d.sort, - page = d.page, - limit = d.limit, - community_id = d.community_id, - saved_only = d.saved_only, - ) - - override fun fromUni(d: LemmyapiDatatypesGetPersonMentions): X4DatatypesGetPersonMentions = - X4DatatypesGetPersonMentions( - sort = d.sort, - page = d.page, - limit = d.limit, - unread_only = d.unread_only, ) override fun fromUni(d: LemmyapiDatatypesGetPost): X4DatatypesGetPost = X4DatatypesGetPost( @@ -2045,38 +1511,37 @@ internal class Transformer : MapperGenerator { ) override fun fromUni(d: LemmyapiDatatypesGetPosts): X4DatatypesGetPosts = X4DatatypesGetPosts( - type_ = d.type_, - sort = d.sort, + type_ = V0ListingType.fromUniNullable(d.type_), + sort = V0SortType.fromUniNullable(d.sort), page = d.page, limit = d.limit, community_id = d.community_id, community_name = d.community_name, - saved_only = d.saved_only, - liked_only = d.liked_only, - disliked_only = d.disliked_only, show_hidden = d.show_hidden, page_cursor = d.page_cursor, ) - override fun fromUni(d: LemmyapiDatatypesGetPrivateMessages): X4DatatypesGetPrivateMessages = - X4DatatypesGetPrivateMessages( - unread_only = d.unread_only, + fun fromUniR(d: LemmyapiDatatypesListNotifications): X4DatatypesGetReplies = + X4DatatypesGetReplies( + sort = V0CommentSortType.New, page = d.page, limit = d.limit, - creator_id = d.creator_id, + unread_only = d.unread_only, ) - override fun fromUni(d: LemmyapiDatatypesGetReplies): X4DatatypesGetReplies = - X4DatatypesGetReplies( - sort = d.sort, + fun fromUniM(d: LemmyapiDatatypesListNotifications): X4DatatypesGetPersonMentions = + X4DatatypesGetPersonMentions( + sort = V0CommentSortType.New, page = d.page, limit = d.limit, unread_only = d.unread_only, ) - override fun fromUni(d: LemmyapiDatatypesGetReportCount): X4DatatypesGetReportCount = - X4DatatypesGetReportCount( - community_id = d.community_id, + fun fromUniP(d: LemmyapiDatatypesListNotifications): X4DatatypesGetPrivateMessages = + X4DatatypesGetPrivateMessages( + page = d.page, + limit = d.limit, + unread_only = d.unread_only, ) override fun fromUni(d: LemmyapiDatatypesGetSiteMetadata): X4DatatypesGetSiteMetadata = @@ -2091,7 +1556,30 @@ internal class Transformer : MapperGenerator { reason = d.reason, ) - override fun fromUni(d: LemmyapiDatatypesHidePost): X4DatatypesHidePost = X4DatatypesHidePost( + override fun fromUniC(d: it.vercruysse.lemmyapi.datatypes.ListReports): X4DatatypesListCommentReports = + X4DatatypesListCommentReports( + page = d.page, + limit = d.limit, + unresolved_only = d.unresolved_only, + community_id = d.community_id, + ) + + override fun fromUniP(d: it.vercruysse.lemmyapi.datatypes.ListReports): X4DatatypesListPostReports = + X4DatatypesListPostReports( + page = d.page, + limit = d.limit, + unresolved_only = d.unresolved_only, + community_id = d.community_id, + ) + + override fun fromUniPm(d: it.vercruysse.lemmyapi.datatypes.ListReports): X4DatatypesListPrivateMessageReports = + X4DatatypesListPrivateMessageReports( + page = d.page, + limit = d.limit, + unresolved_only = d.unresolved_only, + ) + + override fun fromUni(d: LemmyapiDatatypesHidePosts): X4DatatypesHidePost = X4DatatypesHidePost( post_ids = d.post_ids, hide = d.hide, ) @@ -2103,19 +1591,10 @@ internal class Transformer : MapperGenerator { limit = d.limit, ) - override fun fromUni(d: LemmyapiDatatypesListCommentReports): X4DatatypesListCommentReports = - X4DatatypesListCommentReports( - comment_id = d.comment_id, - page = d.page, - limit = d.limit, - unresolved_only = d.unresolved_only, - community_id = d.community_id, - ) - override fun fromUni(d: LemmyapiDatatypesListCommunities): X4DatatypesListCommunities = X4DatatypesListCommunities( - type_ = d.type_, - sort = d.sort, + type_ = V0ListingType.fromUniNullable(d.type_), + sort = V0SortType.fromUniNullable(d.sort), show_nsfw = d.show_nsfw, page = d.page, limit = d.limit, @@ -2133,21 +1612,6 @@ internal class Transformer : MapperGenerator { limit = d.limit, ) - override fun fromUni(d: LemmyapiDatatypesListPostReports): X4DatatypesListPostReports = - X4DatatypesListPostReports( - page = d.page, - limit = d.limit, - unresolved_only = d.unresolved_only, - community_id = d.community_id, - post_id = d.post_id, - ) - - override fun fromUni(d: LemmyapiDatatypesListPrivateMessageReports): X4DatatypesListPrivateMessageReports = X4DatatypesListPrivateMessageReports( - page = d.page, - limit = d.limit, - unresolved_only = d.unresolved_only, - ) - override fun fromUni(d: LemmyapiDatatypesListRegistrationApplications): X4DatatypesListRegistrationApplications = X4DatatypesListRegistrationApplications( unread_only = d.unread_only, page = d.page, @@ -2165,13 +1629,18 @@ internal class Transformer : MapperGenerator { totp_2fa_token = d.totp_2fa_token, ) - override fun fromUni(d: LemmyapiDatatypesMarkCommentReplyAsRead): X4DatatypesMarkCommentReplyAsRead = X4DatatypesMarkCommentReplyAsRead( - comment_reply_id = d.comment_reply_id, + fun fromUniR(d: MarkNotificationAsRead): X4DatatypesMarkCommentReplyAsRead = X4DatatypesMarkCommentReplyAsRead( + comment_reply_id = d.notification_id, + read = d.read, + ) + + fun fromUniM(d: MarkNotificationAsRead): X4DatatypesMarkPersonMentionAsRead = X4DatatypesMarkPersonMentionAsRead( + person_mention_id = d.notification_id, read = d.read, ) - override fun fromUni(d: LemmyapiDatatypesMarkPersonMentionAsRead): X4DatatypesMarkPersonMentionAsRead = X4DatatypesMarkPersonMentionAsRead( - person_mention_id = d.person_mention_id, + fun fromUniP(d: MarkNotificationAsRead): X4DatatypesMarkPrivateMessageAsRead = X4DatatypesMarkPrivateMessageAsRead( + private_message_id = d.notification_id, read = d.read, ) @@ -2181,11 +1650,6 @@ internal class Transformer : MapperGenerator { read = d.read, ) - override fun fromUni(d: LemmyapiDatatypesMarkPrivateMessageAsRead): X4DatatypesMarkPrivateMessageAsRead = X4DatatypesMarkPrivateMessageAsRead( - private_message_id = d.private_message_id, - read = d.read, - ) - override fun fromUni(d: LemmyapiDatatypesPasswordChangeAfterReset): X4DatatypesPasswordChangeAfterReset = X4DatatypesPasswordChangeAfterReset( token = d.token, password = d.password, @@ -2290,13 +1754,10 @@ internal class Transformer : MapperGenerator { X4DatatypesSaveUserSettings( show_nsfw = d.show_nsfw, blur_nsfw = d.blur_nsfw, - auto_expand = d.auto_expand, theme = d.theme, - default_sort_type = d.default_sort_type, - default_listing_type = d.default_listing_type, + default_sort_type = V0SortType.fromUniNullable(d.default_post_sort_type), + default_listing_type = V0ListingType.fromUniNullable(d.default_listing_type), interface_language = d.interface_language, - avatar = d.avatar, - banner = d.banner, display_name = d.display_name, email = d.email, bio = d.bio, @@ -2309,24 +1770,26 @@ internal class Transformer : MapperGenerator { discussion_languages = d.discussion_languages, open_links_in_new_tab = d.open_links_in_new_tab, infinite_scroll_enabled = d.infinite_scroll_enabled, - post_listing_mode = d.post_listing_mode, - enable_keyboard_navigation = d.enable_keyboard_navigation, - enable_animated_images = d.enable_animated_images, + post_listing_mode = V0PostListingMode.fromUniNullable(d.post_listing_mode), + enable_animated_images = d.animated_images_enabled, collapse_bot_comments = d.collapse_bot_comments, - show_scores = d.show_scores, + show_scores = d.show_score, show_upvotes = d.show_upvotes, - show_downvotes = d.show_downvotes, + show_downvotes = when (d.show_downvotes) { + VoteShow.ShowForOthers, VoteShow.Show -> true + VoteShow.Hide -> false + null -> null + }, show_upvote_percentage = d.show_upvote_percentage, ) override fun fromUni(d: LemmyapiDatatypesSearch): X4DatatypesSearch = X4DatatypesSearch( - q = d.q, + q = d.search_term, community_id = d.community_id, community_name = d.community_name, creator_id = d.creator_id, - type_ = d.type_, - sort = d.sort, - listing_type = d.listing_type, + type_ = V0SearchType.fromUniNullable(d.type_), + listing_type = V0ListingType.fromUniNullable(d.listing_type), page = d.page, limit = d.limit, ) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/ActivityId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/ActivityId.kt index a622aefe..120c955a 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/ActivityId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/ActivityId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x4.datatypes -typealias ActivityId = Long +internal typealias ActivityId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/BlockInstanceResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/BlockInstanceResponse.kt deleted file mode 100644 index da5d8c9b..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/BlockInstanceResponse.kt +++ /dev/null @@ -1,8 +0,0 @@ -package it.vercruysse.lemmyapi.v0.x19.x4.datatypes - -import kotlinx.serialization.Serializable - -@Serializable -internal data class BlockInstanceResponse( - val blocked: Boolean, -) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/CommentId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/CommentId.kt index 3a8623fe..226d2c25 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/CommentId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/CommentId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x4.datatypes -typealias CommentId = Long +internal typealias CommentId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/CommentReplyId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/CommentReplyId.kt index 1728b30a..aa9cb528 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/CommentReplyId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/CommentReplyId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x4.datatypes -typealias CommentReplyId = Long +internal typealias CommentReplyId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/CommentReplyView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/CommentReplyView.kt index 64848b67..8f240774 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/CommentReplyView.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/CommentReplyView.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x4.datatypes -import it.vercruysse.lemmyapi.dto.SubscribedType +import it.vercruysse.lemmyapi.v0.enums.SubscribedType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/CommentReportId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/CommentReportId.kt index ab9ae7d8..6f060daf 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/CommentReportId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/CommentReportId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x4.datatypes -typealias CommentReportId = Long +internal typealias CommentReportId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/CommentReportView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/CommentReportView.kt index 98e7ada4..05afb0e0 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/CommentReportView.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/CommentReportView.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x4.datatypes -import it.vercruysse.lemmyapi.dto.SubscribedType +import it.vercruysse.lemmyapi.v0.enums.SubscribedType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/CommentView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/CommentView.kt index b20ca0de..0ee22d53 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/CommentView.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/CommentView.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x4.datatypes -import it.vercruysse.lemmyapi.dto.SubscribedType +import it.vercruysse.lemmyapi.v0.enums.SubscribedType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/Community.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/Community.kt index ec50e6f9..6ae7fec5 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/Community.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/Community.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x4.datatypes -import it.vercruysse.lemmyapi.dto.CommunityVisibility +import it.vercruysse.lemmyapi.v0.enums.CommunityVisibility import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/CommunityId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/CommunityId.kt index 978be11c..25509b82 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/CommunityId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/CommunityId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x4.datatypes -typealias CommunityId = Long +internal typealias CommunityId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/CommunityView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/CommunityView.kt index 699f7cdb..79f45a58 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/CommunityView.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/CommunityView.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x4.datatypes -import it.vercruysse.lemmyapi.dto.SubscribedType +import it.vercruysse.lemmyapi.v0.enums.SubscribedType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/CreateCommunity.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/CreateCommunity.kt index 17028d66..91031a04 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/CreateCommunity.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/CreateCommunity.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x4.datatypes -import it.vercruysse.lemmyapi.dto.CommunityVisibility +import it.vercruysse.lemmyapi.v0.enums.CommunityVisibility import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/CreateSite.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/CreateSite.kt index bdbba7df..54e20f69 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/CreateSite.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/CreateSite.kt @@ -1,9 +1,9 @@ package it.vercruysse.lemmyapi.v0.x19.x4.datatypes -import it.vercruysse.lemmyapi.dto.PostListingMode -import it.vercruysse.lemmyapi.dto.RegistrationMode -import it.vercruysse.lemmyapi.dto.SortType -import it.vercruysse.lemmyapi.dto.ListingType +import it.vercruysse.lemmyapi.v0.enums.ListingType +import it.vercruysse.lemmyapi.v0.enums.PostListingMode +import it.vercruysse.lemmyapi.v0.enums.RegistrationMode +import it.vercruysse.lemmyapi.v0.enums.SortType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/CustomEmojiId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/CustomEmojiId.kt index d3f57efa..e7fb9680 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/CustomEmojiId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/CustomEmojiId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x4.datatypes -typealias CustomEmojiId = Long +internal typealias CustomEmojiId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/EditCommunity.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/EditCommunity.kt index 59b0ffbb..d43d4b8f 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/EditCommunity.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/EditCommunity.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x4.datatypes -import it.vercruysse.lemmyapi.dto.CommunityVisibility +import it.vercruysse.lemmyapi.v0.enums.CommunityVisibility import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/EditSite.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/EditSite.kt index ba17ae76..ef1545d6 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/EditSite.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/EditSite.kt @@ -1,9 +1,9 @@ package it.vercruysse.lemmyapi.v0.x19.x4.datatypes -import it.vercruysse.lemmyapi.dto.PostListingMode -import it.vercruysse.lemmyapi.dto.RegistrationMode -import it.vercruysse.lemmyapi.dto.SortType -import it.vercruysse.lemmyapi.dto.ListingType +import it.vercruysse.lemmyapi.v0.enums.ListingType +import it.vercruysse.lemmyapi.v0.enums.PostListingMode +import it.vercruysse.lemmyapi.v0.enums.RegistrationMode +import it.vercruysse.lemmyapi.v0.enums.SortType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/FeaturePost.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/FeaturePost.kt index a72d69a4..37627b6b 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/FeaturePost.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/FeaturePost.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x4.datatypes -import it.vercruysse.lemmyapi.dto.PostFeatureType +import it.vercruysse.lemmyapi.v0.enums.PostFeatureType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/GetComments.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/GetComments.kt index 7900a762..78f6a5d3 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/GetComments.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/GetComments.kt @@ -1,7 +1,7 @@ package it.vercruysse.lemmyapi.v0.x19.x4.datatypes -import it.vercruysse.lemmyapi.dto.CommentSortType -import it.vercruysse.lemmyapi.dto.ListingType +import it.vercruysse.lemmyapi.v0.enums.CommentSortType +import it.vercruysse.lemmyapi.v0.enums.ListingType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/GetModlog.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/GetModlog.kt index 5b46ae7b..6510b905 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/GetModlog.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/GetModlog.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x4.datatypes -import it.vercruysse.lemmyapi.dto.ModlogActionType +import it.vercruysse.lemmyapi.v0.enums.ModlogActionType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/GetPersonDetails.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/GetPersonDetails.kt index 9e1c9d1b..6155f5c4 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/GetPersonDetails.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/GetPersonDetails.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x4.datatypes -import it.vercruysse.lemmyapi.dto.SortType +import it.vercruysse.lemmyapi.v0.enums.SortType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/GetPersonMentions.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/GetPersonMentions.kt index 09543384..4ccef2e8 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/GetPersonMentions.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/GetPersonMentions.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x4.datatypes -import it.vercruysse.lemmyapi.dto.CommentSortType +import it.vercruysse.lemmyapi.v0.enums.CommentSortType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/GetPosts.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/GetPosts.kt index a1c79da9..a20f2b97 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/GetPosts.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/GetPosts.kt @@ -1,7 +1,7 @@ package it.vercruysse.lemmyapi.v0.x19.x4.datatypes -import it.vercruysse.lemmyapi.dto.SortType -import it.vercruysse.lemmyapi.dto.ListingType +import it.vercruysse.lemmyapi.v0.enums.ListingType +import it.vercruysse.lemmyapi.v0.enums.SortType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/GetReplies.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/GetReplies.kt index 7b2c24f1..7008e3be 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/GetReplies.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/GetReplies.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x4.datatypes -import it.vercruysse.lemmyapi.dto.CommentSortType +import it.vercruysse.lemmyapi.v0.enums.CommentSortType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/InstanceId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/InstanceId.kt index 7dd92608..c7087d72 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/InstanceId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/InstanceId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x4.datatypes -typealias InstanceId = Long +internal typealias InstanceId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/LanguageId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/LanguageId.kt index 07e333b0..ff2b1718 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/LanguageId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/LanguageId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x4.datatypes -typealias LanguageId = Long +internal typealias LanguageId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/ListCommunities.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/ListCommunities.kt index e209e730..be7a40c9 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/ListCommunities.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/ListCommunities.kt @@ -1,7 +1,7 @@ package it.vercruysse.lemmyapi.v0.x19.x4.datatypes -import it.vercruysse.lemmyapi.dto.SortType -import it.vercruysse.lemmyapi.dto.ListingType +import it.vercruysse.lemmyapi.v0.enums.ListingType +import it.vercruysse.lemmyapi.v0.enums.SortType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/LocalSite.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/LocalSite.kt index dc5d744e..17c7a911 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/LocalSite.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/LocalSite.kt @@ -1,9 +1,9 @@ package it.vercruysse.lemmyapi.v0.x19.x4.datatypes -import it.vercruysse.lemmyapi.dto.SortType -import it.vercruysse.lemmyapi.dto.PostListingMode -import it.vercruysse.lemmyapi.dto.RegistrationMode -import it.vercruysse.lemmyapi.dto.ListingType +import it.vercruysse.lemmyapi.v0.enums.ListingType +import it.vercruysse.lemmyapi.v0.enums.PostListingMode +import it.vercruysse.lemmyapi.v0.enums.RegistrationMode +import it.vercruysse.lemmyapi.v0.enums.SortType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/LocalSiteId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/LocalSiteId.kt index 82f60e82..9395ec29 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/LocalSiteId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/LocalSiteId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x4.datatypes -typealias LocalSiteId = Long +internal typealias LocalSiteId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/LocalUser.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/LocalUser.kt index 6c0e8df8..2ee0389e 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/LocalUser.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/LocalUser.kt @@ -1,8 +1,8 @@ package it.vercruysse.lemmyapi.v0.x19.x4.datatypes -import it.vercruysse.lemmyapi.dto.PostListingMode -import it.vercruysse.lemmyapi.dto.ListingType -import it.vercruysse.lemmyapi.dto.SortType +import it.vercruysse.lemmyapi.v0.enums.ListingType +import it.vercruysse.lemmyapi.v0.enums.PostListingMode +import it.vercruysse.lemmyapi.v0.enums.SortType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/LocalUserId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/LocalUserId.kt index be7ffc9e..89e0d805 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/LocalUserId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/LocalUserId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x4.datatypes -typealias LocalUserId = Long +internal typealias LocalUserId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/ModlogListParams.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/ModlogListParams.kt deleted file mode 100644 index 8cb88d7f..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/ModlogListParams.kt +++ /dev/null @@ -1,15 +0,0 @@ -package it.vercruysse.lemmyapi.v0.x19.x4.datatypes - -import kotlinx.serialization.Serializable - -@Serializable -internal data class ModlogListParams( - val community_id: CommunityId? = null, - val mod_person_id: PersonId? = null, - val other_person_id: PersonId? = null, - val post_id: PostId? = null, - val comment_id: CommentId? = null, - val page: Long? = null, - val limit: Long? = null, - val hide_modlog_names: Boolean, -) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/PaginationCursor.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/PaginationCursor.kt index 67ccebac..4f25ce04 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/PaginationCursor.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/PaginationCursor.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x4.datatypes -typealias PaginationCursor = String +internal typealias PaginationCursor = String diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/PersonId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/PersonId.kt index ceca0ee7..b45ec59d 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/PersonId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/PersonId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x4.datatypes -typealias PersonId = Long +internal typealias PersonId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/PersonMentionId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/PersonMentionId.kt index e1c6f7fe..c67c6564 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/PersonMentionId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/PersonMentionId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x4.datatypes -typealias PersonMentionId = Long +internal typealias PersonMentionId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/PersonMentionView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/PersonMentionView.kt index e860e91c..9f3504a3 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/PersonMentionView.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/PersonMentionView.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x4.datatypes -import it.vercruysse.lemmyapi.dto.SubscribedType +import it.vercruysse.lemmyapi.v0.enums.SubscribedType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/PostId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/PostId.kt index dd443e75..87ec27df 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/PostId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/PostId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x4.datatypes -typealias PostId = Long +internal typealias PostId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/PostReportId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/PostReportId.kt index 28279a15..87194ca1 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/PostReportId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/PostReportId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x4.datatypes -typealias PostReportId = Long +internal typealias PostReportId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/PostReportView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/PostReportView.kt index b31b7a6e..34bf3bb9 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/PostReportView.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/PostReportView.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x4.datatypes -import it.vercruysse.lemmyapi.dto.SubscribedType +import it.vercruysse.lemmyapi.v0.enums.SubscribedType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/PostView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/PostView.kt index f29b38c9..c93d65d3 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/PostView.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/PostView.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x4.datatypes -import it.vercruysse.lemmyapi.dto.SubscribedType +import it.vercruysse.lemmyapi.v0.enums.SubscribedType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/PrivateMessageId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/PrivateMessageId.kt index 0b15a775..18407d6f 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/PrivateMessageId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/PrivateMessageId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x4.datatypes -typealias PrivateMessageId = Long +internal typealias PrivateMessageId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/PrivateMessageReportId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/PrivateMessageReportId.kt index 7baab765..e7209cd0 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/PrivateMessageReportId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/PrivateMessageReportId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x4.datatypes -typealias PrivateMessageReportId = Long +internal typealias PrivateMessageReportId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/SaveUserSettings.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/SaveUserSettings.kt index def5f4b5..af9826b4 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/SaveUserSettings.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/SaveUserSettings.kt @@ -1,8 +1,8 @@ package it.vercruysse.lemmyapi.v0.x19.x4.datatypes -import it.vercruysse.lemmyapi.dto.PostListingMode -import it.vercruysse.lemmyapi.dto.ListingType -import it.vercruysse.lemmyapi.dto.SortType +import it.vercruysse.lemmyapi.v0.enums.ListingType +import it.vercruysse.lemmyapi.v0.enums.PostListingMode +import it.vercruysse.lemmyapi.v0.enums.SortType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/Search.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/Search.kt index c0f1863c..cd72d088 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/Search.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/Search.kt @@ -1,8 +1,8 @@ package it.vercruysse.lemmyapi.v0.x19.x4.datatypes -import it.vercruysse.lemmyapi.dto.ListingType -import it.vercruysse.lemmyapi.dto.SortType -import it.vercruysse.lemmyapi.dto.SearchType +import it.vercruysse.lemmyapi.v0.enums.ListingType +import it.vercruysse.lemmyapi.v0.enums.SearchType +import it.vercruysse.lemmyapi.v0.enums.SortType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/SearchResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/SearchResponse.kt index 6648221e..93f9cb13 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/SearchResponse.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/SearchResponse.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x4.datatypes -import it.vercruysse.lemmyapi.dto.SearchType +import it.vercruysse.lemmyapi.v0.enums.SearchType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/SiteId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/SiteId.kt index 71c1be3d..9af06f49 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/SiteId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/SiteId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x4.datatypes -typealias SiteId = Long +internal typealias SiteId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/VoteView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/VoteView.kt index 4d7a08e3..4a08d3ce 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/VoteView.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x4/datatypes/VoteView.kt @@ -6,5 +6,5 @@ import kotlinx.serialization.Serializable internal data class VoteView( val creator: Person, val creator_banned_from_community: Boolean, - val score: Long, + val score: Int, ) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/LemmyApiController.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/LemmyApiController.kt index a28eda04..3d459e97 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/LemmyApiController.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/LemmyApiController.kt @@ -707,7 +707,7 @@ internal class LemmyApiController(client: HttpClient, auth: String?) : * * @POST("site/block") */ - override suspend fun blockInstance(form: BlockInstance): Result = + override suspend fun blockInstance(form: BlockInstance): Result = client.postResult("site/block", form) /** diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/LemmyApiRouter.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/LemmyApiRouter.kt index ad1988fc..8d7b6ae3 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/LemmyApiRouter.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/LemmyApiRouter.kt @@ -615,7 +615,7 @@ internal abstract class LemmyApiRouter(client: HttpClient, auth: String?) : Auth * * @POST("site/block") */ - abstract suspend fun blockInstance(form: BlockInstance): Result + abstract suspend fun blockInstance(form: BlockInstance): Result /** * Generate a TOTP / two-factor secret. diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/LemmyApiUniWrapper.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/LemmyApiUniWrapper.kt index e4b92b46..e5f2761b 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/LemmyApiUniWrapper.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/LemmyApiUniWrapper.kt @@ -3,12 +3,26 @@ package it.vercruysse.lemmyapi.v0.x19.x6 import io.github.z4kn4fein.semver.Version import io.ktor.client.HttpClient import it.vercruysse.lemmyapi.LemmyApiBaseController +import it.vercruysse.lemmyapi.datatypes.ListCustomEmojis +import it.vercruysse.lemmyapi.datatypes.ListCustomEmojisResponse +import it.vercruysse.lemmyapi.datatypes.ListLoginsResponse +import it.vercruysse.lemmyapi.datatypes.ListNotifications +import it.vercruysse.lemmyapi.datatypes.MarkNotificationAsRead +import it.vercruysse.lemmyapi.datatypes.ModlogView +import it.vercruysse.lemmyapi.datatypes.MyUserInfo +import it.vercruysse.lemmyapi.datatypes.PagedResponse +import it.vercruysse.lemmyapi.datatypes.UnreadCountsResponse import it.vercruysse.lemmyapi.dto.ExportUserSettingsResponse import it.vercruysse.lemmyapi.dto.ImportUserSettings +import it.vercruysse.lemmyapi.enums.NotificationDataType +import it.vercruysse.lemmyapi.enums.NotificationType +import it.vercruysse.lemmyapi.pictrs.PictrsService +import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.GetPersonDetails internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, baseUrl: String, auth: String?) : LemmyApiBaseController(client, actualVersion, baseUrl, auth) { private val api = LemmyApiController(client, auth) + private val pictrsApi = PictrsService(client, auth) private val transformer = Transformer() override var auth: String? @@ -16,6 +30,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba set(value) { super.auth = value api.auth = value + pictrsApi.auth = value } /** @@ -49,8 +64,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun getModlog( form: it.vercruysse.lemmyapi.datatypes.GetModlog, - ): Result = - api.getModlog(transformer.fromUni(form)).map(transformer::toUni) + ): Result> = notSupported() /** * Search lemmy. @@ -67,7 +81,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun resolveObject( form: it.vercruysse.lemmyapi.datatypes.ResolveObject, - ): Result = + ): Result = api.resolveObject(transformer.fromUni(form)).map(transformer::toUni) /** @@ -115,8 +129,8 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun listCommunities( form: it.vercruysse.lemmyapi.datatypes.ListCommunities, - ): Result = - api.listCommunities(transformer.fromUni(form)).map(transformer::toUni) + ): Result> = + api.listCommunities(transformer.fromUni(form)).map { PagedResponse(it.communities.map(transformer::toUni)) } /** * Follow / subscribe to a community. @@ -135,7 +149,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun blockCommunity( form: it.vercruysse.lemmyapi.datatypes.BlockCommunity, - ): Result = + ): Result = api.blockCommunity(transformer.fromUni(form)).map(transformer::toUni) /** @@ -165,8 +179,16 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun transferCommunity( form: it.vercruysse.lemmyapi.datatypes.TransferCommunity, - ): Result = - api.transferCommunity(transformer.fromUni(form)).map(transformer::toUni) + ): Result = + api.transferCommunity(transformer.fromUni(form)).map { communityResponse -> + val uniCommunityResponse = transformer.toUni(communityResponse) + it.vercruysse.lemmyapi.datatypes.GetCommunityResponse( + community_view = uniCommunityResponse.community_view, + site = null, + moderators = emptyList(), + discussion_languages = uniCommunityResponse.discussion_languages, + ) + } /** * Ban a user from a community. @@ -175,7 +197,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun banFromCommunity( form: it.vercruysse.lemmyapi.datatypes.BanFromCommunity, - ): Result = + ): Result = api.banFromCommunity(transformer.fromUni(form)).map(transformer::toUni) /** @@ -193,8 +215,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba * * @GET("federated_instances") */ - override suspend fun getFederatedInstances(): Result = - api.getFederatedInstances().map(transformer::toUni) + override suspend fun getFederatedInstances(form: it.vercruysse.lemmyapi.datatypes.GetFederatedInstances): Result> = notSupported() /** * Get / fetch a post. @@ -229,8 +250,8 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun getPosts( form: it.vercruysse.lemmyapi.datatypes.GetPosts, - ): Result = - api.getPosts(transformer.fromUni(form.toValidatedForm())).map(transformer::toUni) + ): Result> = + api.getPosts(transformer.fromUni(form.toValidatedForm())).map { PagedResponse(it.posts.map(transformer::toUni)) } /** * Delete a post. @@ -257,7 +278,27 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba * * @POST("post/mark_as_read") */ - override suspend fun markPostAsRead(form: it.vercruysse.lemmyapi.datatypes.MarkPostAsRead): Result = + override suspend fun markPostAsRead(form: it.vercruysse.lemmyapi.datatypes.MarkPostAsRead): Result = + api.markPostAsRead( + it.vercruysse.lemmyapi.v0.x19.x6.datatypes.MarkPostAsRead( + post_ids = listOf(form.post_id), + read = form.read, + ), + ).fold( + onSuccess = { _ -> + api.getPost(it.vercruysse.lemmyapi.v0.x19.x6.datatypes.GetPost(id = form.post_id)) + .map(transformer::toUni) + .map { post -> it.vercruysse.lemmyapi.datatypes.PostResponse(post_view = post.post_view) } + }, + onFailure = { Result.failure(it) }, + ) + + /** + * Mark multiple posts as read. + * + * @POST("post/mark_as_read") + */ + override suspend fun markManyPostsAsRead(form: it.vercruysse.lemmyapi.datatypes.MarkManyPostsAsRead): Result = api.markPostAsRead(transformer.fromUni(form)) /** @@ -317,14 +358,56 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba api.resolvePostReport(transformer.fromUni(form)).map(transformer::toUni) /** - * List post reports. - * - * @GET("post/report/list") + * List reports. */ - override suspend fun listPostReports( - form: it.vercruysse.lemmyapi.datatypes.ListPostReports, - ): Result = - api.listPostReports(transformer.fromUni(form)).map(transformer::toUni) + override suspend fun listReports( + form: it.vercruysse.lemmyapi.datatypes.ListReports, + ): Result> = + when (form.type_) { + it.vercruysse.lemmyapi.enums.ReportType.Communities -> notSupported() + + it.vercruysse.lemmyapi.enums.ReportType.Posts -> { + api.listPostReports(transformer.fromUniP(form)).map { resp -> + PagedResponse(resp.post_reports.map(transformer::toUni)) + } + } + + it.vercruysse.lemmyapi.enums.ReportType.Comments -> { + api.listCommentReports(transformer.fromUniC(form)).map { resp -> + PagedResponse(resp.comment_reports.map(transformer::toUni)) + } + } + + it.vercruysse.lemmyapi.enums.ReportType.PrivateMessages -> { + api.listPrivateMessageReports(transformer.fromUniPm(form)).map { resp -> + PagedResponse(resp.private_message_reports.map(transformer::toUni)) + } + } + + it.vercruysse.lemmyapi.enums.ReportType.All -> { + runCatching { + val postsResp = api.listPostReports(transformer.fromUniP(form)).getOrThrow() + val commentsResp = api.listCommentReports(transformer.fromUniC(form)).getOrThrow() + val privateMessagesResp = api.listPrivateMessageReports(transformer.fromUniPm(form)).getOrThrow() + + val allReports = mutableListOf() + + allReports.addAll( + postsResp.post_reports.map(transformer::toUni), + ) + + allReports.addAll( + commentsResp.comment_reports.map(transformer::toUni), + ) + + allReports.addAll( + privateMessagesResp.private_message_reports.map(transformer::toUni), + ) + + PagedResponse(allReports) + } + } + } /** * Fetch metadata for any given site. @@ -373,8 +456,8 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun getComments( form: it.vercruysse.lemmyapi.datatypes.GetComments, - ): Result = - api.getComments(transformer.fromUni(form)).map(transformer::toUni) + ): Result> = + api.getComments(transformer.fromUni(form)).map { PagedResponse(it.comments.map(transformer::toUni)) } /** * Delete a comment. @@ -396,16 +479,6 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba ): Result = api.removeComment(transformer.fromUni(form)).map(transformer::toUni) - /** - * Mark a comment as read. - * - * @POST("comment/mark_as_read") - */ - override suspend fun markCommentReplyAsRead( - form: it.vercruysse.lemmyapi.datatypes.MarkCommentReplyAsRead, - ): Result = - api.markCommentReplyAsRead(transformer.fromUni(form)).map(transformer::toUni) - /** * Distinguishes a comment (speak as moderator) * @@ -456,16 +529,6 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba ): Result = api.resolveCommentReport(transformer.fromUni(form)).map(transformer::toUni) - /** - * List comment reports. - * - * @GET("comment/report/list") - */ - override suspend fun listCommentReports( - form: it.vercruysse.lemmyapi.datatypes.ListCommentReports, - ): Result = - api.listCommentReports(transformer.fromUni(form)).map(transformer::toUni) - /** * Edit a private message. * @@ -486,16 +549,6 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba ): Result = api.createPrivateMessage(transformer.fromUni(form)).map(transformer::toUni) - /** - * Get / fetch private messages. - * - * @GET("private_message/list") - */ - override suspend fun getPrivateMessages( - form: it.vercruysse.lemmyapi.datatypes.GetPrivateMessages, - ): Result = - api.getPrivateMessages(transformer.fromUni(form)).map(transformer::toUni) - /** * Delete a private message. * @@ -506,16 +559,6 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba ): Result = api.deletePrivateMessage(transformer.fromUni(form)).map(transformer::toUni) - /** - * Mark a private message as read. - * - * @POST("private_message/mark_as_read") - */ - override suspend fun markPrivateMessageAsRead( - form: it.vercruysse.lemmyapi.datatypes.MarkPrivateMessageAsRead, - ): Result = - api.markPrivateMessageAsRead(transformer.fromUni(form)).map(transformer::toUni) - /** * Create a report for a private message. * @@ -536,16 +579,6 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba ): Result = api.resolvePrivateMessageReport(transformer.fromUni(form)).map(transformer::toUni) - /** - * List private message reports. - * - * @GET("private_message/report/list") - */ - override suspend fun listPrivateMessageReports( - form: it.vercruysse.lemmyapi.datatypes.ListPrivateMessageReports, - ): Result = - api.listPrivateMessageReports(transformer.fromUni(form)).map(transformer::toUni) - /** * Get the details for a person. * @@ -573,34 +606,47 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba api.getCaptcha().map(transformer::toUni) /** - * Get mentions for your user. - * - * @GET("user/mention") + * Mark a notification as read */ - override suspend fun getPersonMentions( - form: it.vercruysse.lemmyapi.datatypes.GetPersonMentions, - ): Result = - api.getPersonMentions(transformer.fromUni(form)).map(transformer::toUni) + override suspend fun markNotificationAsRead(form: MarkNotificationAsRead): Result = + when (form._kind) { + NotificationType.Mention -> api.markPersonMentionAsRead(transformer.fromUniM(form)).map { } + NotificationType.Reply -> api.markCommentReplyAsRead(transformer.fromUniR(form)).map { } + NotificationType.PrivateMessage -> api.markPrivateMessageAsRead(transformer.fromUniP(form)).map { } + NotificationType.Subscribed, NotificationType.ModAction -> notSupported() + null -> notSupported() + } /** - * Mark a person mention as read. - * - * @POST("user/mention/mark_as_read") + * List notifications. */ - override suspend fun markPersonMentionAsRead( - form: it.vercruysse.lemmyapi.datatypes.MarkPersonMentionAsRead, - ): Result = - api.markPersonMentionAsRead(transformer.fromUni(form)).map(transformer::toUni) + override suspend fun listNotifications(form: ListNotifications): Result> = + when (form.type_) { + NotificationDataType.All -> + runCatching { + val replies = api.getReplies(transformer.fromUniR(form)).getOrThrow().replies.map(transformer::toUni) + val mentionReplies = api.getPersonMentions(transformer.fromUniM(form)).getOrThrow().mentions.map(transformer::toUni) + val privateMessages = api.getPrivateMessages(transformer.fromUniP(form)).getOrThrow().private_messages.map(transformer::toUniPMV) + PagedResponse( + buildList { + addAll(replies) + addAll(mentionReplies) + addAll(privateMessages) + }, + ) + } - /** - * Get comment replies. - * - * @GET("user/replies") - */ - override suspend fun getReplies( - form: it.vercruysse.lemmyapi.datatypes.GetReplies, - ): Result = - api.getReplies(transformer.fromUni(form)).map(transformer::toUni) + NotificationDataType.Reply -> + api.getReplies(transformer.fromUniR(form)).map { resp -> PagedResponse(resp.replies.map(transformer::toUni)) } + + NotificationDataType.Mention -> + api.getPersonMentions(transformer.fromUniM(form)).map { resp -> PagedResponse(resp.mentions.map(transformer::toUni)) } + + NotificationDataType.PrivateMessage -> + api.getPrivateMessages(transformer.fromUniP(form)).map { resp -> PagedResponse(resp.private_messages.map(transformer::toUniPMV)) } + + NotificationDataType.Subscribed, NotificationDataType.ModAction -> Result.success(PagedResponse(emptyList())) + } /** * Ban a person from your site. @@ -609,7 +655,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun banPerson( form: it.vercruysse.lemmyapi.datatypes.BanPerson, - ): Result = + ): Result = api.banPerson(transformer.fromUni(form)).map(transformer::toUni) /** @@ -617,8 +663,8 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba * * @GET("user/banned") */ - override suspend fun getBannedPersons(): Result = - api.getBannedPersons().map(transformer::toUni) + override suspend fun getBannedPersons(): Result> = + api.getBannedPersons().map { resp -> PagedResponse(resp.banned.map(transformer::toUni)) } /** * Block a person. @@ -627,7 +673,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun blockPerson( form: it.vercruysse.lemmyapi.datatypes.BlockPerson, - ): Result = + ): Result = api.blockPerson(transformer.fromUni(form)).map(transformer::toUni) /** @@ -651,7 +697,7 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba * * @POST("user/password_reset") */ - override suspend fun resetPassword(form: it.vercruysse.lemmyapi.datatypes.PasswordReset): Result = + override suspend fun resetPassword(form: it.vercruysse.lemmyapi.datatypes.ResetPassword): Result = api.resetPassword(transformer.fromUni(form)) /** @@ -659,16 +705,14 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba * * @POST("user/password_change") */ - override suspend fun changePasswordAfterReset(form: it.vercruysse.lemmyapi.datatypes.PasswordChangeAfterReset): Result = + override suspend fun changePasswordAfterReset(form: it.vercruysse.lemmyapi.datatypes.ChangePasswordAfterReset): Result = api.changePasswordAfterReset(transformer.fromUni(form)) /** - * Mark all replies as read. - * - * @POST("user/mark_all_as_read") + * Mark all Notifications as read. */ - override suspend fun markAllAsRead(): Result = - api.markAllAsRead().map(transformer::toUni) + override suspend fun markAllNotificationsAsRead(): Result = + api.markAllAsRead().map {} /** * Save your user settings. @@ -688,23 +732,16 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba ): Result = api.changePassword(transformer.fromUni(form)).map(transformer::toUni) - /** - * Get counts for your reports - * - * @GET("user/report_count") - */ - override suspend fun getReportCount( - form: it.vercruysse.lemmyapi.datatypes.GetReportCount, - ): Result = - api.getReportCount(transformer.fromUni(form)).map(transformer::toUni) - - /** - * Get your unread counts - * - * @GET("user/unread_count") - */ - override suspend fun getUnreadCount(): Result = - api.getUnreadCount().map(transformer::toUni) + override suspend fun getUnreadCounts(): Result = runCatching { + val d = api.getUnreadCount().getOrThrow() + val reportCount = api.getReportCount(it.vercruysse.lemmyapi.v0.x19.x6.datatypes.GetReportCount()).getOrNull() + val applicationCount = api.getUnreadRegistrationApplicationCount().getOrNull() + UnreadCountsResponse( + notification_count = d.replies + d.mentions + d.private_messages, + report_count = (reportCount?.post_reports ?: 0L) + (reportCount?.comment_reports ?: 0L) + (reportCount?.private_message_reports ?: 0L), + registration_application_count = applicationCount?.registration_applications, + ) + } /** * Verify your email @@ -739,23 +776,10 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba ): Result = api.addAdmin(transformer.fromUni(form)).map(transformer::toUni) - /** - * Get the unread registration applications count. - * - * @GET("admin/registration_application/count") - */ - override suspend fun getUnreadRegistrationApplicationCount(): Result = - api.getUnreadRegistrationApplicationCount().map(transformer::toUni) - - /** - * List the registration applications. - * - * @GET("admin/registration_application/list") - */ override suspend fun listRegistrationApplications( form: it.vercruysse.lemmyapi.datatypes.ListRegistrationApplications, - ): Result = - api.listRegistrationApplications(transformer.fromUni(form)).map(transformer::toUni) + ): Result> = + api.listRegistrationApplications(transformer.fromUni(form)).map { resp -> PagedResponse(resp.registration_applications.map(transformer::toUni)) } /** * Approve a registration application @@ -827,15 +851,25 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba override suspend fun deleteCustomEmoji(form: it.vercruysse.lemmyapi.datatypes.DeleteCustomEmoji): Result = api.deleteCustomEmoji(transformer.fromUni(form)) + /** + * List custom emojis + * + * @GET("custom_emoji/list") + */ + override suspend fun listCustomEmojis(form: ListCustomEmojis): Result = + api.getSite().map { + ListCustomEmojisResponse(it.custom_emojis.map(transformer::toUni)) + } + /** * Block an instance. * * @POST("site/block") */ - override suspend fun blockInstance( - form: it.vercruysse.lemmyapi.datatypes.BlockInstance, - ): Result = - api.blockInstance(transformer.fromUni(form)).map(transformer::toUni) + override suspend fun userBlockInstanceCommunities( + form: it.vercruysse.lemmyapi.datatypes.UserBlockInstanceCommunitiesParams, + ): Result = + api.blockInstance(transformer.fromUni(form)) /** * Generate a TOTP / two-factor secret. @@ -856,9 +890,9 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba * * @POST("user/totp/update") */ - override suspend fun updateTotp( - form: it.vercruysse.lemmyapi.datatypes.UpdateTotp, - ): Result = + override suspend fun editTotp( + form: it.vercruysse.lemmyapi.datatypes.EditTotp, + ): Result = api.updateTotp(transformer.fromUni(form)).map(transformer::toUni) /** @@ -883,8 +917,8 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba * * @GET("user/list_logins") */ - override suspend fun listLogins(): Result> = - api.listLogins().map { it.map(transformer::toUni) } + override suspend fun listLogins(): Result = + api.listLogins().map { ListLoginsResponse(logins = it.map(transformer::toUni)) } /** * Returns an error message if your auth token is invalid @@ -907,8 +941,8 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun listPostLikes( form: it.vercruysse.lemmyapi.datatypes.ListPostLikes, - ): Result = - api.listPostLikes(transformer.fromUni(form)).map(transformer::toUni) + ): Result> = + api.listPostLikes(transformer.fromUni(form)).map { PagedResponse(it.post_likes.map(transformer::toUni)) } /** * List a comment's likes. Admin-only. @@ -917,8 +951,8 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun listCommentLikes( form: it.vercruysse.lemmyapi.datatypes.ListCommentLikes, - ): Result = - api.listCommentLikes(transformer.fromUni(form)).map(transformer::toUni) + ): Result> = + api.listCommentLikes(transformer.fromUni(form)).map { PagedResponse(it.comment_likes.map(transformer::toUni)) } /** * List all the media for your user @@ -927,25 +961,35 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba */ override suspend fun listMedia( form: it.vercruysse.lemmyapi.datatypes.ListMedia, - ): Result = - api.listMedia(transformer.fromUni(form)).map(transformer::toUni) + ): Result> = + api.listMedia(transformer.fromUni(form)).map { PagedResponse(it.images.map(transformer::toUni)) } /** * List all the media known to your instance. * * @GET("admin/list_all_media") */ - override suspend fun listAllMedia( + override suspend fun listMediaAdmin( form: it.vercruysse.lemmyapi.datatypes.ListMedia, - ): Result = - api.listAllMedia(transformer.fromUni(form)).map(transformer::toUni) + ): Result> = + api.listAllMedia(transformer.fromUni(form)).map { PagedResponse(it.images.map(transformer::toUni)) } /** * Hide a post from list views. * * @POST("post/hide") */ - override suspend fun hidePost(form: it.vercruysse.lemmyapi.datatypes.HidePost): Result = + override suspend fun hidePost(form: it.vercruysse.lemmyapi.datatypes.HidePost): Result = + api.hidePost(it.vercruysse.lemmyapi.v0.x19.x6.datatypes.HidePost(post_ids = listOf(form.post_id), hide = form.hide)).fold( + onSuccess = { _ -> + api.getPost(it.vercruysse.lemmyapi.v0.x19.x6.datatypes.GetPost(id = form.post_id)) + .map(transformer::toUni) + .map { post -> it.vercruysse.lemmyapi.datatypes.PostResponse(post_view = post.post_view) } + }, + onFailure = { Result.failure(it) }, + ) + + override suspend fun hidePosts(form: it.vercruysse.lemmyapi.datatypes.HidePosts): Result = api.hidePost(transformer.fromUni(form)) /** @@ -957,4 +1001,238 @@ internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, ba form: it.vercruysse.lemmyapi.datatypes.GetRegistrationApplication, ): Result = api.getRegistrationApplication(transformer.fromUni(form)).map(transformer::toUni) + + /** + * Get data of current user + * + * @GET("/account") + */ + override suspend fun getMyUser(): Result = + api.getSite() + .mapCatching { it.my_user ?: throw IllegalStateException("Auth invalid") } + .map { transformer.toUni(it) } + + /** + * List the content for a person. + * + * @GET("person/content") + */ + override suspend fun listPersonContent( + form: it.vercruysse.lemmyapi.datatypes.ListPersonContent, + ): Result> { + val getPersonDetailsForm = GetPersonDetails( + person_id = form.person_id, + username = form.username, + community_id = form.community_id, + page = form.page, + limit = form.limit, + ) + return api.getPersonDetails(getPersonDetailsForm).map { response -> + val comments = when (form.type_) { + it.vercruysse.lemmyapi.enums.PersonContentType.Posts -> emptyList() + else -> response.comments.map { transformer.toUni(it) } + } + val posts = when (form.type_) { + it.vercruysse.lemmyapi.enums.PersonContentType.Comments -> emptyList() + else -> response.posts.map { transformer.toUni(it) } + } + PagedResponse(items = comments + posts) + } + } + + override suspend fun uploadImage(image: ByteArray): Result = + pictrsApi.uploadImage(image) + + override suspend fun uploadCommunityBanner( + image: ByteArray, + form: it.vercruysse.lemmyapi.datatypes.CommunityIdQuery, + ): Result = + uploadAndApplyImage(image) { imageUrl -> + api.editCommunity( + it.vercruysse.lemmyapi.v0.x19.x6.datatypes.EditCommunity( + community_id = form.id, + banner = imageUrl, + ), + ).map {} + } + + override suspend fun uploadCommunityIcon( + image: ByteArray, + form: it.vercruysse.lemmyapi.datatypes.CommunityIdQuery, + ): Result = + uploadAndApplyImage(image) { imageUrl -> + api.editCommunity( + it.vercruysse.lemmyapi.v0.x19.x6.datatypes.EditCommunity( + community_id = form.id, + icon = imageUrl, + ), + ).map {} + } + + override suspend fun uploadSiteBanner(image: ByteArray): Result = + uploadAndApplyImage(image) { imageUrl -> + api.editSite( + it.vercruysse.lemmyapi.v0.x19.x6.datatypes.EditSite( + banner = imageUrl, + ), + ).map {} + } + + override suspend fun uploadSiteIcon(image: ByteArray): Result = + uploadAndApplyImage(image) { imageUrl -> + api.editSite( + it.vercruysse.lemmyapi.v0.x19.x6.datatypes.EditSite( + icon = imageUrl, + ), + ).map {} + } + + override suspend fun uploadUserAvatar(image: ByteArray): Result = + uploadAndApplyImage(image) { imageUrl -> + api.saveUserSettings( + it.vercruysse.lemmyapi.v0.x19.x6.datatypes.SaveUserSettings( + avatar = imageUrl, + ), + ) + } + + override suspend fun uploadUserBanner(image: ByteArray): Result = + uploadAndApplyImage(image) { imageUrl -> + api.saveUserSettings( + it.vercruysse.lemmyapi.v0.x19.x6.datatypes.SaveUserSettings( + banner = imageUrl, + ), + ) + } + + override suspend fun deleteUserAvatar(): Result = + api.saveUserSettings(it.vercruysse.lemmyapi.v0.x19.x6.datatypes.SaveUserSettings(avatar = "")) + + override suspend fun deleteUserBanner(): Result = + api.saveUserSettings(it.vercruysse.lemmyapi.v0.x19.x6.datatypes.SaveUserSettings(banner = "")) + + override suspend fun deleteCommunityBanner(form: it.vercruysse.lemmyapi.datatypes.CommunityIdQuery): Result = + api.editCommunity( + it.vercruysse.lemmyapi.v0.x19.x6.datatypes.EditCommunity( + community_id = form.id, + banner = "", + ), + ).map {} + + override suspend fun deleteCommunityIcon(form: it.vercruysse.lemmyapi.datatypes.CommunityIdQuery): Result = + api.editCommunity( + it.vercruysse.lemmyapi.v0.x19.x6.datatypes.EditCommunity( + community_id = form.id, + icon = "", + ), + ).map {} + + override suspend fun deleteSiteBanner(): Result = + api.editSite( + it.vercruysse.lemmyapi.v0.x19.x6.datatypes.EditSite( + banner = "", + ), + ).map {} + + override suspend fun deleteSiteIcon(): Result = + api.editSite( + it.vercruysse.lemmyapi.v0.x19.x6.datatypes.EditSite( + icon = "", + ), + ).map {} + + override suspend fun deleteMedia(form: it.vercruysse.lemmyapi.datatypes.DeleteImageParams): Result = + pictrsApi.deleteMedia(form) + + override suspend fun adminListUsers(form: it.vercruysse.lemmyapi.datatypes.AdminListUsers): Result> = notSupported() + + override suspend fun getRandomCommunity(form: it.vercruysse.lemmyapi.datatypes.GetRandomCommunity): Result = notSupported() + + override suspend fun createCommunityReport(form: it.vercruysse.lemmyapi.datatypes.CreateCommunityReport): Result = notSupported() + + override suspend fun resolveCommunityReport(form: it.vercruysse.lemmyapi.datatypes.ResolveCommunityReport): Result = notSupported() + + override suspend fun createCommunityTag(form: it.vercruysse.lemmyapi.datatypes.CreateCommunityTag): Result = notSupported() + + override suspend fun editCommunityTag(form: it.vercruysse.lemmyapi.datatypes.EditCommunityTag): Result = notSupported() + + override suspend fun deleteCommunityTag(form: it.vercruysse.lemmyapi.datatypes.DeleteCommunityTag): Result = notSupported() + + override suspend fun editCommunityNotifications(form: it.vercruysse.lemmyapi.datatypes.EditCommunityNotifications): Result = notSupported() + + override suspend fun approveCommunityPendingFollow(form: it.vercruysse.lemmyapi.datatypes.ApproveCommunityPendingFollower): Result = notSupported() + + override suspend fun listCommunityPendingFollows(form: it.vercruysse.lemmyapi.datatypes.ListCommunityPendingFollows): Result> = notSupported() + + override suspend fun modEditPost(form: it.vercruysse.lemmyapi.datatypes.ModEditPost): Result = notSupported() + + override suspend fun editPostNotifications(form: it.vercruysse.lemmyapi.datatypes.EditPostNotifications): Result = notSupported() + + override suspend fun warnPost(form: it.vercruysse.lemmyapi.datatypes.CreatePostWarning): Result = notSupported() + + override suspend fun getCommentsSlim(form: it.vercruysse.lemmyapi.datatypes.GetComments): Result> = notSupported() + + override suspend fun lockComment(form: it.vercruysse.lemmyapi.datatypes.LockComment): Result = notSupported() + + override suspend fun warnComment(form: it.vercruysse.lemmyapi.datatypes.CreateCommentWarning): Result = notSupported() + + override suspend fun notePerson(form: it.vercruysse.lemmyapi.datatypes.NotePerson): Result = notSupported() + + override suspend fun listPersonSaved(form: it.vercruysse.lemmyapi.datatypes.ListPersonSaved): Result> = notSupported() + + override suspend fun listPersonRead(form: it.vercruysse.lemmyapi.datatypes.ListPersonRead): Result> = notSupported() + + override suspend fun listPersonHidden(form: it.vercruysse.lemmyapi.datatypes.ListPersonHidden): Result> = notSupported() + + override suspend fun listPersonLiked(form: it.vercruysse.lemmyapi.datatypes.ListPersonLiked): Result> = notSupported() + + override suspend fun resendVerificationEmail(form: it.vercruysse.lemmyapi.datatypes.ResendVerificationEmail): Result = notSupported() + + override suspend fun authenticateWithOAuth(form: it.vercruysse.lemmyapi.datatypes.AuthenticateWithOauth): Result = notSupported() + + override suspend fun userBlockInstancePersons(form: it.vercruysse.lemmyapi.datatypes.UserBlockInstancePersonsParams): Result = notSupported() + + override suspend fun adminAllowInstance(form: it.vercruysse.lemmyapi.datatypes.AdminAllowInstanceParams): Result = notSupported() + + override suspend fun adminBlockInstance(form: it.vercruysse.lemmyapi.datatypes.AdminBlockInstanceParams): Result = notSupported() + + override suspend fun createTagline(form: it.vercruysse.lemmyapi.datatypes.CreateTagline): Result = notSupported() + + override suspend fun editTagline(form: it.vercruysse.lemmyapi.datatypes.EditTagline): Result = notSupported() + + override suspend fun deleteTagline(form: it.vercruysse.lemmyapi.datatypes.DeleteTagline): Result = notSupported() + + override suspend fun listTaglines(form: it.vercruysse.lemmyapi.datatypes.ListTaglines): Result> = notSupported() + + override suspend fun createOAuthProvider(form: it.vercruysse.lemmyapi.datatypes.CreateOAuthProvider): Result = notSupported() + + override suspend fun editOAuthProvider(form: it.vercruysse.lemmyapi.datatypes.EditOAuthProvider): Result = notSupported() + + override suspend fun deleteOAuthProvider(form: it.vercruysse.lemmyapi.datatypes.DeleteOAuthProvider): Result = notSupported() + + override suspend fun getMultiCommunity(form: it.vercruysse.lemmyapi.datatypes.GetMultiCommunity): Result = notSupported() + + override suspend fun createMultiCommunity(form: it.vercruysse.lemmyapi.datatypes.CreateMultiCommunity): Result = notSupported() + + override suspend fun editMultiCommunity(form: it.vercruysse.lemmyapi.datatypes.EditMultiCommunity): Result = notSupported() + + override suspend fun createMultiCommunityEntry(form: it.vercruysse.lemmyapi.datatypes.CreateOrDeleteMultiCommunityEntry): Result = notSupported() + + override suspend fun deleteMultiCommunityEntry(form: it.vercruysse.lemmyapi.datatypes.CreateOrDeleteMultiCommunityEntry): Result = notSupported() + + override suspend fun followMultiCommunity(form: it.vercruysse.lemmyapi.datatypes.FollowMultiCommunity): Result = notSupported() + + override suspend fun listMultiCommunities(form: it.vercruysse.lemmyapi.datatypes.ListMultiCommunities): Result> = notSupported() + + override suspend fun deleteMediaAdmin(form: it.vercruysse.lemmyapi.datatypes.DeleteImageParams): Result = notSupported() + + override suspend fun imageHealth(): Result = notSupported() + + override suspend fun listPersons(form: it.vercruysse.lemmyapi.datatypes.ListPersons): Result> = notSupported() + + override suspend fun createRegistrationInvitation(form: it.vercruysse.lemmyapi.datatypes.CreateInvitation): Result = notSupported() + + override suspend fun revokeRegistrationInvitation(form: it.vercruysse.lemmyapi.datatypes.RevokeInvitation): Result = notSupported() + + override suspend fun listRegistrationInvitations(form: it.vercruysse.lemmyapi.datatypes.ListInvitations): Result> = notSupported() } diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/MapperGenerator.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/MapperGenerator.kt index f57ed44d..a0bcc7bf 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/MapperGenerator.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/MapperGenerator.kt @@ -6,34 +6,18 @@ internal interface MapperGenerator { fun toUni(d: AddAdminResponse): it.vercruysse.lemmyapi.datatypes.AddAdminResponse fun toUni(d: AddModToCommunityResponse): it.vercruysse.lemmyapi.datatypes.AddModToCommunityResponse - fun toUni(d: AdminPurgeComment): it.vercruysse.lemmyapi.datatypes.AdminPurgeComment - fun toUni(d: AdminPurgeCommentView): it.vercruysse.lemmyapi.datatypes.AdminPurgeCommentView - fun toUni(d: AdminPurgeCommunity): it.vercruysse.lemmyapi.datatypes.AdminPurgeCommunity - fun toUni(d: AdminPurgeCommunityView): it.vercruysse.lemmyapi.datatypes.AdminPurgeCommunityView - fun toUni(d: AdminPurgePerson): it.vercruysse.lemmyapi.datatypes.AdminPurgePerson - fun toUni(d: AdminPurgePersonView): it.vercruysse.lemmyapi.datatypes.AdminPurgePersonView - fun toUni(d: AdminPurgePost): it.vercruysse.lemmyapi.datatypes.AdminPurgePost - fun toUni(d: AdminPurgePostView): it.vercruysse.lemmyapi.datatypes.AdminPurgePostView - fun toUni(d: BanFromCommunityResponse): it.vercruysse.lemmyapi.datatypes.BanFromCommunityResponse - fun toUni(d: BannedPersonsResponse): it.vercruysse.lemmyapi.datatypes.BannedPersonsResponse - fun toUni(d: BanPersonResponse): it.vercruysse.lemmyapi.datatypes.BanPersonResponse - fun toUni(d: BlockCommunityResponse): it.vercruysse.lemmyapi.datatypes.BlockCommunityResponse - fun toUni(d: BlockInstanceResponse): it.vercruysse.lemmyapi.datatypes.BlockInstanceResponse - fun toUni(d: BlockPersonResponse): it.vercruysse.lemmyapi.datatypes.BlockPersonResponse + fun toUni(d: BanFromCommunityResponse): it.vercruysse.lemmyapi.datatypes.PersonResponse + fun toUni(d: BanPersonResponse): it.vercruysse.lemmyapi.datatypes.PersonResponse + fun toUni(d: BlockCommunityResponse): it.vercruysse.lemmyapi.datatypes.CommunityResponse + fun toUni(d: BlockPersonResponse): it.vercruysse.lemmyapi.datatypes.PersonResponse fun toUni(d: CaptchaResponse): it.vercruysse.lemmyapi.datatypes.CaptchaResponse - fun toUni(d: Comment): it.vercruysse.lemmyapi.datatypes.Comment - fun toUni(d: CommentAggregates): it.vercruysse.lemmyapi.datatypes.CommentAggregates - fun toUni(d: CommentReply): it.vercruysse.lemmyapi.datatypes.CommentReply - fun toUni(d: CommentReplyResponse): it.vercruysse.lemmyapi.datatypes.CommentReplyResponse - fun toUni(d: CommentReplyView): it.vercruysse.lemmyapi.datatypes.CommentReplyView + fun toUni(d: Comment, counts: CommentAggregates): it.vercruysse.lemmyapi.datatypes.Comment fun toUni(d: CommentReport): it.vercruysse.lemmyapi.datatypes.CommentReport fun toUni(d: CommentReportResponse): it.vercruysse.lemmyapi.datatypes.CommentReportResponse fun toUni(d: CommentReportView): it.vercruysse.lemmyapi.datatypes.CommentReportView fun toUni(d: CommentResponse): it.vercruysse.lemmyapi.datatypes.CommentResponse fun toUni(d: CommentView): it.vercruysse.lemmyapi.datatypes.CommentView - fun toUni(d: Community): it.vercruysse.lemmyapi.datatypes.Community - fun toUni(d: CommunityAggregates): it.vercruysse.lemmyapi.datatypes.CommunityAggregates - fun toUni(d: CommunityBlockView): it.vercruysse.lemmyapi.datatypes.CommunityBlockView + fun toUni(d: Community, counts: CommunityAggregates): it.vercruysse.lemmyapi.datatypes.Community fun toUni(d: CommunityFollowerView): it.vercruysse.lemmyapi.datatypes.CommunityFollowerView fun toUni(d: CommunityModeratorView): it.vercruysse.lemmyapi.datatypes.CommunityModeratorView fun toUni(d: CommunityResponse): it.vercruysse.lemmyapi.datatypes.CommunityResponse @@ -42,82 +26,30 @@ internal interface MapperGenerator { fun toUni(d: CustomEmojiKeyword): it.vercruysse.lemmyapi.datatypes.CustomEmojiKeyword fun toUni(d: CustomEmojiResponse): it.vercruysse.lemmyapi.datatypes.CustomEmojiResponse fun toUni(d: CustomEmojiView): it.vercruysse.lemmyapi.datatypes.CustomEmojiView - fun toUni(d: FederatedInstances): it.vercruysse.lemmyapi.datatypes.FederatedInstances fun toUni(d: GenerateTotpSecretResponse): it.vercruysse.lemmyapi.datatypes.GenerateTotpSecretResponse fun toUni(d: GetCaptchaResponse): it.vercruysse.lemmyapi.datatypes.GetCaptchaResponse - fun toUni(d: GetCommentsResponse): it.vercruysse.lemmyapi.datatypes.GetCommentsResponse fun toUni(d: GetCommunityResponse): it.vercruysse.lemmyapi.datatypes.GetCommunityResponse - fun toUni(d: GetFederatedInstancesResponse): it.vercruysse.lemmyapi.datatypes.GetFederatedInstancesResponse - fun toUni(d: GetModlogResponse): it.vercruysse.lemmyapi.datatypes.GetModlogResponse fun toUni(d: GetPersonDetailsResponse): it.vercruysse.lemmyapi.datatypes.GetPersonDetailsResponse - fun toUni(d: GetPersonMentionsResponse): it.vercruysse.lemmyapi.datatypes.GetPersonMentionsResponse fun toUni(d: GetPostResponse): it.vercruysse.lemmyapi.datatypes.GetPostResponse - fun toUni(d: GetPostsResponse): it.vercruysse.lemmyapi.datatypes.GetPostsResponse - fun toUni(d: GetRepliesResponse): it.vercruysse.lemmyapi.datatypes.GetRepliesResponse - fun toUni(d: GetReportCountResponse): it.vercruysse.lemmyapi.datatypes.GetReportCountResponse fun toUni(d: GetSiteMetadataResponse): it.vercruysse.lemmyapi.datatypes.GetSiteMetadataResponse fun toUni(d: GetSiteResponse): it.vercruysse.lemmyapi.datatypes.GetSiteResponse - fun toUni(d: GetUnreadCountResponse): it.vercruysse.lemmyapi.datatypes.GetUnreadCountResponse - fun toUni( - d: GetUnreadRegistrationApplicationCountResponse, - ): it.vercruysse.lemmyapi.datatypes.GetUnreadRegistrationApplicationCountResponse fun toUni(d: ImageDetails): it.vercruysse.lemmyapi.datatypes.ImageDetails fun toUni(d: Instance): it.vercruysse.lemmyapi.datatypes.Instance - fun toUni(d: InstanceBlockView): it.vercruysse.lemmyapi.datatypes.InstanceBlockView - fun toUni(d: InstanceWithFederationState): it.vercruysse.lemmyapi.datatypes.InstanceWithFederationState fun toUni(d: Language): it.vercruysse.lemmyapi.datatypes.Language fun toUni(d: LinkMetadata): it.vercruysse.lemmyapi.datatypes.LinkMetadata - fun toUni(d: ListCommentLikesResponse): it.vercruysse.lemmyapi.datatypes.ListCommentLikesResponse - fun toUni(d: ListCommentReportsResponse): it.vercruysse.lemmyapi.datatypes.ListCommentReportsResponse - fun toUni(d: ListCommunitiesResponse): it.vercruysse.lemmyapi.datatypes.ListCommunitiesResponse - fun toUni(d: ListMediaResponse): it.vercruysse.lemmyapi.datatypes.ListMediaResponse - fun toUni(d: ListPostLikesResponse): it.vercruysse.lemmyapi.datatypes.ListPostLikesResponse - fun toUni(d: ListPostReportsResponse): it.vercruysse.lemmyapi.datatypes.ListPostReportsResponse - fun toUni(d: ListPrivateMessageReportsResponse): it.vercruysse.lemmyapi.datatypes.ListPrivateMessageReportsResponse - fun toUni(d: ListRegistrationApplicationsResponse): it.vercruysse.lemmyapi.datatypes.ListRegistrationApplicationsResponse fun toUni(d: LocalImage): it.vercruysse.lemmyapi.datatypes.LocalImage fun toUni(d: LocalImageView): it.vercruysse.lemmyapi.datatypes.LocalImageView - fun toUni(d: LocalSite): it.vercruysse.lemmyapi.datatypes.LocalSite + fun toUni(d: LocalSite, counts: SiteAggregates): it.vercruysse.lemmyapi.datatypes.LocalSite fun toUni(d: LocalSiteRateLimit): it.vercruysse.lemmyapi.datatypes.LocalSiteRateLimit fun toUni(d: LocalSiteUrlBlocklist): it.vercruysse.lemmyapi.datatypes.LocalSiteUrlBlocklist - fun toUni(d: LocalUser): it.vercruysse.lemmyapi.datatypes.LocalUser + fun toUni(d: LocalUser, e: LocalUserVoteDisplayMode): it.vercruysse.lemmyapi.datatypes.LocalUser fun toUni(d: LocalUserView): it.vercruysse.lemmyapi.datatypes.LocalUserView - fun toUni(d: LocalUserVoteDisplayMode): it.vercruysse.lemmyapi.datatypes.LocalUserVoteDisplayMode fun toUni(d: LoginResponse): it.vercruysse.lemmyapi.datatypes.LoginResponse fun toUni(d: LoginToken): it.vercruysse.lemmyapi.datatypes.LoginToken - fun toUni(d: ModAdd): it.vercruysse.lemmyapi.datatypes.ModAdd - fun toUni(d: ModAddCommunity): it.vercruysse.lemmyapi.datatypes.ModAddCommunity - fun toUni(d: ModAddCommunityView): it.vercruysse.lemmyapi.datatypes.ModAddCommunityView - fun toUni(d: ModAddView): it.vercruysse.lemmyapi.datatypes.ModAddView - fun toUni(d: ModBan): it.vercruysse.lemmyapi.datatypes.ModBan - fun toUni(d: ModBanFromCommunity): it.vercruysse.lemmyapi.datatypes.ModBanFromCommunity - fun toUni(d: ModBanFromCommunityView): it.vercruysse.lemmyapi.datatypes.ModBanFromCommunityView - fun toUni(d: ModBanView): it.vercruysse.lemmyapi.datatypes.ModBanView - fun toUni(d: ModFeaturePost): it.vercruysse.lemmyapi.datatypes.ModFeaturePost - fun toUni(d: ModFeaturePostView): it.vercruysse.lemmyapi.datatypes.ModFeaturePostView - fun toUni(d: ModHideCommunity): it.vercruysse.lemmyapi.datatypes.ModHideCommunity - fun toUni(d: ModHideCommunityView): it.vercruysse.lemmyapi.datatypes.ModHideCommunityView - fun toUni(d: ModLockPost): it.vercruysse.lemmyapi.datatypes.ModLockPost - fun toUni(d: ModLockPostView): it.vercruysse.lemmyapi.datatypes.ModLockPostView - fun toUni(d: ModlogListParams): it.vercruysse.lemmyapi.datatypes.ModlogListParams - fun toUni(d: ModRemoveComment): it.vercruysse.lemmyapi.datatypes.ModRemoveComment - fun toUni(d: ModRemoveCommentView): it.vercruysse.lemmyapi.datatypes.ModRemoveCommentView - fun toUni(d: ModRemoveCommunity): it.vercruysse.lemmyapi.datatypes.ModRemoveCommunity - fun toUni(d: ModRemoveCommunityView): it.vercruysse.lemmyapi.datatypes.ModRemoveCommunityView - fun toUni(d: ModRemovePost): it.vercruysse.lemmyapi.datatypes.ModRemovePost - fun toUni(d: ModRemovePostView): it.vercruysse.lemmyapi.datatypes.ModRemovePostView - fun toUni(d: ModTransferCommunity): it.vercruysse.lemmyapi.datatypes.ModTransferCommunity - fun toUni(d: ModTransferCommunityView): it.vercruysse.lemmyapi.datatypes.ModTransferCommunityView fun toUni(d: MyUserInfo): it.vercruysse.lemmyapi.datatypes.MyUserInfo - fun toUni(d: Person): it.vercruysse.lemmyapi.datatypes.Person - fun toUni(d: PersonAggregates): it.vercruysse.lemmyapi.datatypes.PersonAggregates - fun toUni(d: PersonBlockView): it.vercruysse.lemmyapi.datatypes.PersonBlockView - fun toUni(d: PersonMention): it.vercruysse.lemmyapi.datatypes.PersonMention - fun toUni(d: PersonMentionResponse): it.vercruysse.lemmyapi.datatypes.PersonMentionResponse - fun toUni(d: PersonMentionView): it.vercruysse.lemmyapi.datatypes.PersonMentionView + fun toUni(d: Person, counts: PersonAggregates): it.vercruysse.lemmyapi.datatypes.Person fun toUni(d: PersonView): it.vercruysse.lemmyapi.datatypes.PersonView - fun toUni(d: Post): it.vercruysse.lemmyapi.datatypes.Post - fun toUni(d: PostAggregates): it.vercruysse.lemmyapi.datatypes.PostAggregates + fun toUni(d: Post, counts: PostAggregates): it.vercruysse.lemmyapi.datatypes.Post fun toUni(d: PostReport): it.vercruysse.lemmyapi.datatypes.PostReport fun toUni(d: PostReportResponse): it.vercruysse.lemmyapi.datatypes.PostReportResponse fun toUni(d: PostReportView): it.vercruysse.lemmyapi.datatypes.PostReportView @@ -128,20 +60,18 @@ internal interface MapperGenerator { fun toUni(d: PrivateMessageReportResponse): it.vercruysse.lemmyapi.datatypes.PrivateMessageReportResponse fun toUni(d: PrivateMessageReportView): it.vercruysse.lemmyapi.datatypes.PrivateMessageReportView fun toUni(d: PrivateMessageResponse): it.vercruysse.lemmyapi.datatypes.PrivateMessageResponse - fun toUni(d: PrivateMessagesResponse): it.vercruysse.lemmyapi.datatypes.PrivateMessagesResponse fun toUni(d: PrivateMessageView): it.vercruysse.lemmyapi.datatypes.PrivateMessageView - fun toUni(d: ReadableFederationState): it.vercruysse.lemmyapi.datatypes.ReadableFederationState + fun toUni(d: ReadableFederationState): it.vercruysse.lemmyapi.datatypes.FederationQueueState fun toUni(d: RegistrationApplication): it.vercruysse.lemmyapi.datatypes.RegistrationApplication fun toUni(d: RegistrationApplicationResponse): it.vercruysse.lemmyapi.datatypes.RegistrationApplicationResponse fun toUni(d: RegistrationApplicationView): it.vercruysse.lemmyapi.datatypes.RegistrationApplicationView - fun toUni(d: ResolveObjectResponse): it.vercruysse.lemmyapi.datatypes.ResolveObjectResponse + fun toUni(d: ResolveObjectResponse): it.vercruysse.lemmyapi.datatypes.SearchResponse fun toUni(d: SearchResponse): it.vercruysse.lemmyapi.datatypes.SearchResponse fun toUni(d: Site): it.vercruysse.lemmyapi.datatypes.Site - fun toUni(d: SiteAggregates): it.vercruysse.lemmyapi.datatypes.SiteAggregates fun toUni(d: SiteResponse): it.vercruysse.lemmyapi.datatypes.SiteResponse fun toUni(d: SiteView): it.vercruysse.lemmyapi.datatypes.SiteView fun toUni(d: Tagline): it.vercruysse.lemmyapi.datatypes.Tagline - fun toUni(d: UpdateTotpResponse): it.vercruysse.lemmyapi.datatypes.UpdateTotpResponse + fun toUni(d: UpdateTotpResponse): it.vercruysse.lemmyapi.datatypes.EditTotpResponse fun toUni(d: VoteView): it.vercruysse.lemmyapi.datatypes.VoteView // body mappings @@ -151,7 +81,7 @@ internal interface MapperGenerator { fun fromUni(d: it.vercruysse.lemmyapi.datatypes.BanFromCommunity): BanFromCommunity fun fromUni(d: it.vercruysse.lemmyapi.datatypes.BanPerson): BanPerson fun fromUni(d: it.vercruysse.lemmyapi.datatypes.BlockCommunity): BlockCommunity - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.BlockInstance): BlockInstance + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.UserBlockInstanceCommunitiesParams): BlockInstance fun fromUni(d: it.vercruysse.lemmyapi.datatypes.BlockPerson): BlockPerson fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ChangePassword): ChangePassword fun fromUni(d: it.vercruysse.lemmyapi.datatypes.CreateComment): CreateComment @@ -185,32 +115,26 @@ internal interface MapperGenerator { fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetCommunity): GetCommunity fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetModlog): GetModlog fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPersonDetails): GetPersonDetails - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPersonMentions): GetPersonMentions fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPost): GetPost fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPosts): GetPosts - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPrivateMessages): GetPrivateMessages fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetRegistrationApplication): GetRegistrationApplication - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetReplies): GetReplies - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetReportCount): GetReportCount + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetSiteMetadata): GetSiteMetadata fun fromUni(d: it.vercruysse.lemmyapi.datatypes.HideCommunity): HideCommunity - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.HidePost): HidePost + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.HidePosts): HidePost + fun fromUniC(d: it.vercruysse.lemmyapi.datatypes.ListReports): ListCommentReports + fun fromUniP(d: it.vercruysse.lemmyapi.datatypes.ListReports): ListPostReports + fun fromUniPm(d: it.vercruysse.lemmyapi.datatypes.ListReports): ListPrivateMessageReports fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListCommentLikes): ListCommentLikes - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListCommentReports): ListCommentReports fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListCommunities): ListCommunities fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListMedia): ListMedia fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListPostLikes): ListPostLikes - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListPostReports): ListPostReports - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListPrivateMessageReports): ListPrivateMessageReports fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListRegistrationApplications): ListRegistrationApplications fun fromUni(d: it.vercruysse.lemmyapi.datatypes.LockPost): LockPost fun fromUni(d: it.vercruysse.lemmyapi.datatypes.Login): Login - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.MarkCommentReplyAsRead): MarkCommentReplyAsRead - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.MarkPersonMentionAsRead): MarkPersonMentionAsRead - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.MarkPostAsRead): MarkPostAsRead - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.MarkPrivateMessageAsRead): MarkPrivateMessageAsRead - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PasswordChangeAfterReset): PasswordChangeAfterReset - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PasswordReset): PasswordReset + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.MarkManyPostsAsRead): MarkPostAsRead + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ChangePasswordAfterReset): PasswordChangeAfterReset + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ResetPassword): PasswordReset fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PurgeComment): PurgeComment fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PurgeCommunity): PurgeCommunity fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PurgePerson): PurgePerson @@ -228,6 +152,6 @@ internal interface MapperGenerator { fun fromUni(d: it.vercruysse.lemmyapi.datatypes.SaveUserSettings): SaveUserSettings fun fromUni(d: it.vercruysse.lemmyapi.datatypes.Search): Search fun fromUni(d: it.vercruysse.lemmyapi.datatypes.TransferCommunity): TransferCommunity - fun fromUni(d: it.vercruysse.lemmyapi.datatypes.UpdateTotp): UpdateTotp + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.EditTotp): UpdateTotp fun fromUni(d: it.vercruysse.lemmyapi.datatypes.VerifyEmail): VerifyEmail } diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/Transformer.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/Transformer.kt index 7cd3e755..65f83af9 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/Transformer.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/Transformer.kt @@ -1,44 +1,39 @@ package it.vercruysse.lemmyapi.v0.x19.x6 +import it.vercruysse.lemmyapi.datatypes.CommentActions +import it.vercruysse.lemmyapi.datatypes.CommunityActions +import it.vercruysse.lemmyapi.datatypes.MarkNotificationAsRead +import it.vercruysse.lemmyapi.datatypes.Notification +import it.vercruysse.lemmyapi.datatypes.NotificationView +import it.vercruysse.lemmyapi.datatypes.PersonActions +import it.vercruysse.lemmyapi.datatypes.PostActions +import it.vercruysse.lemmyapi.enums.CommentSortType +import it.vercruysse.lemmyapi.enums.CommunityFollowerState +import it.vercruysse.lemmyapi.enums.CommunityVisibility +import it.vercruysse.lemmyapi.enums.FederationMode +import it.vercruysse.lemmyapi.enums.ImageMode +import it.vercruysse.lemmyapi.enums.NotificationType +import it.vercruysse.lemmyapi.enums.VoteShow +import it.vercruysse.lemmyapi.utils.toAt import it.vercruysse.lemmyapi.datatypes.AddAdmin as LemmyapiDatatypesAddAdmin import it.vercruysse.lemmyapi.datatypes.AddAdminResponse as LemmyapiDatatypesAddAdminResponse import it.vercruysse.lemmyapi.datatypes.AddModToCommunity as LemmyapiDatatypesAddModToCommunity import it.vercruysse.lemmyapi.datatypes.AddModToCommunityResponse as LemmyapiDatatypesAddModToCommunityResponse -import it.vercruysse.lemmyapi.datatypes.AdminPurgeComment as LemmyapiDatatypesAdminPurgeComment -import it.vercruysse.lemmyapi.datatypes.AdminPurgeCommentView as LemmyapiDatatypesAdminPurgeCommentView -import it.vercruysse.lemmyapi.datatypes.AdminPurgeCommunity as LemmyapiDatatypesAdminPurgeCommunity -import it.vercruysse.lemmyapi.datatypes.AdminPurgeCommunityView as LemmyapiDatatypesAdminPurgeCommunityView -import it.vercruysse.lemmyapi.datatypes.AdminPurgePerson as LemmyapiDatatypesAdminPurgePerson -import it.vercruysse.lemmyapi.datatypes.AdminPurgePersonView as LemmyapiDatatypesAdminPurgePersonView -import it.vercruysse.lemmyapi.datatypes.AdminPurgePost as LemmyapiDatatypesAdminPurgePost -import it.vercruysse.lemmyapi.datatypes.AdminPurgePostView as LemmyapiDatatypesAdminPurgePostView import it.vercruysse.lemmyapi.datatypes.ApproveRegistrationApplication as LemmyapiDatatypesApproveRegistrationApplication import it.vercruysse.lemmyapi.datatypes.BanFromCommunity as LemmyapiDatatypesBanFromCommunity -import it.vercruysse.lemmyapi.datatypes.BanFromCommunityResponse as LemmyapiDatatypesBanFromCommunityResponse import it.vercruysse.lemmyapi.datatypes.BanPerson as LemmyapiDatatypesBanPerson -import it.vercruysse.lemmyapi.datatypes.BanPersonResponse as LemmyapiDatatypesBanPersonResponse -import it.vercruysse.lemmyapi.datatypes.BannedPersonsResponse as LemmyapiDatatypesBannedPersonsResponse import it.vercruysse.lemmyapi.datatypes.BlockCommunity as LemmyapiDatatypesBlockCommunity -import it.vercruysse.lemmyapi.datatypes.BlockCommunityResponse as LemmyapiDatatypesBlockCommunityResponse -import it.vercruysse.lemmyapi.datatypes.BlockInstance as LemmyapiDatatypesBlockInstance -import it.vercruysse.lemmyapi.datatypes.BlockInstanceResponse as LemmyapiDatatypesBlockInstanceResponse import it.vercruysse.lemmyapi.datatypes.BlockPerson as LemmyapiDatatypesBlockPerson -import it.vercruysse.lemmyapi.datatypes.BlockPersonResponse as LemmyapiDatatypesBlockPersonResponse import it.vercruysse.lemmyapi.datatypes.CaptchaResponse as LemmyapiDatatypesCaptchaResponse import it.vercruysse.lemmyapi.datatypes.ChangePassword as LemmyapiDatatypesChangePassword +import it.vercruysse.lemmyapi.datatypes.ChangePasswordAfterReset as LemmyapiDatatypesPasswordChangeAfterReset import it.vercruysse.lemmyapi.datatypes.Comment as LemmyapiDatatypesComment -import it.vercruysse.lemmyapi.datatypes.CommentAggregates as LemmyapiDatatypesCommentAggregates -import it.vercruysse.lemmyapi.datatypes.CommentReply as LemmyapiDatatypesCommentReply -import it.vercruysse.lemmyapi.datatypes.CommentReplyResponse as LemmyapiDatatypesCommentReplyResponse -import it.vercruysse.lemmyapi.datatypes.CommentReplyView as LemmyapiDatatypesCommentReplyView import it.vercruysse.lemmyapi.datatypes.CommentReport as LemmyapiDatatypesCommentReport import it.vercruysse.lemmyapi.datatypes.CommentReportResponse as LemmyapiDatatypesCommentReportResponse import it.vercruysse.lemmyapi.datatypes.CommentReportView as LemmyapiDatatypesCommentReportView import it.vercruysse.lemmyapi.datatypes.CommentResponse as LemmyapiDatatypesCommentResponse import it.vercruysse.lemmyapi.datatypes.CommentView as LemmyapiDatatypesCommentView import it.vercruysse.lemmyapi.datatypes.Community as LemmyapiDatatypesCommunity -import it.vercruysse.lemmyapi.datatypes.CommunityAggregates as LemmyapiDatatypesCommunityAggregates -import it.vercruysse.lemmyapi.datatypes.CommunityBlockView as LemmyapiDatatypesCommunityBlockView import it.vercruysse.lemmyapi.datatypes.CommunityFollowerView as LemmyapiDatatypesCommunityFollowerView import it.vercruysse.lemmyapi.datatypes.CommunityModeratorView as LemmyapiDatatypesCommunityModeratorView import it.vercruysse.lemmyapi.datatypes.CommunityResponse as LemmyapiDatatypesCommunityResponse @@ -71,62 +66,39 @@ import it.vercruysse.lemmyapi.datatypes.EditCustomEmoji as LemmyapiDatatypesEdit import it.vercruysse.lemmyapi.datatypes.EditPost as LemmyapiDatatypesEditPost import it.vercruysse.lemmyapi.datatypes.EditPrivateMessage as LemmyapiDatatypesEditPrivateMessage import it.vercruysse.lemmyapi.datatypes.EditSite as LemmyapiDatatypesEditSite +import it.vercruysse.lemmyapi.datatypes.EditTotp as LemmyapiDatatypesUpdateTotp +import it.vercruysse.lemmyapi.datatypes.EditTotpResponse as LemmyapiDatatypesUpdateTotpResponse import it.vercruysse.lemmyapi.datatypes.FeaturePost as LemmyapiDatatypesFeaturePost -import it.vercruysse.lemmyapi.datatypes.FederatedInstances as LemmyapiDatatypesFederatedInstances +import it.vercruysse.lemmyapi.datatypes.FederationQueueState as LemmyapiDatatypesReadableFederationState import it.vercruysse.lemmyapi.datatypes.FollowCommunity as LemmyapiDatatypesFollowCommunity import it.vercruysse.lemmyapi.datatypes.GenerateTotpSecretResponse as LemmyapiDatatypesGenerateTotpSecretResponse import it.vercruysse.lemmyapi.datatypes.GetCaptchaResponse as LemmyapiDatatypesGetCaptchaResponse import it.vercruysse.lemmyapi.datatypes.GetComment as LemmyapiDatatypesGetComment import it.vercruysse.lemmyapi.datatypes.GetComments as LemmyapiDatatypesGetComments -import it.vercruysse.lemmyapi.datatypes.GetCommentsResponse as LemmyapiDatatypesGetCommentsResponse import it.vercruysse.lemmyapi.datatypes.GetCommunity as LemmyapiDatatypesGetCommunity import it.vercruysse.lemmyapi.datatypes.GetCommunityResponse as LemmyapiDatatypesGetCommunityResponse -import it.vercruysse.lemmyapi.datatypes.GetFederatedInstancesResponse as LemmyapiDatatypesGetFederatedInstancesResponse import it.vercruysse.lemmyapi.datatypes.GetModlog as LemmyapiDatatypesGetModlog -import it.vercruysse.lemmyapi.datatypes.GetModlogResponse as LemmyapiDatatypesGetModlogResponse import it.vercruysse.lemmyapi.datatypes.GetPersonDetails as LemmyapiDatatypesGetPersonDetails import it.vercruysse.lemmyapi.datatypes.GetPersonDetailsResponse as LemmyapiDatatypesGetPersonDetailsResponse -import it.vercruysse.lemmyapi.datatypes.GetPersonMentions as LemmyapiDatatypesGetPersonMentions -import it.vercruysse.lemmyapi.datatypes.GetPersonMentionsResponse as LemmyapiDatatypesGetPersonMentionsResponse import it.vercruysse.lemmyapi.datatypes.GetPost as LemmyapiDatatypesGetPost import it.vercruysse.lemmyapi.datatypes.GetPostResponse as LemmyapiDatatypesGetPostResponse import it.vercruysse.lemmyapi.datatypes.GetPosts as LemmyapiDatatypesGetPosts -import it.vercruysse.lemmyapi.datatypes.GetPostsResponse as LemmyapiDatatypesGetPostsResponse -import it.vercruysse.lemmyapi.datatypes.GetPrivateMessages as LemmyapiDatatypesGetPrivateMessages import it.vercruysse.lemmyapi.datatypes.GetRegistrationApplication as LemmyapiDatatypesGetRegistrationApplication -import it.vercruysse.lemmyapi.datatypes.GetReplies as LemmyapiDatatypesGetReplies -import it.vercruysse.lemmyapi.datatypes.GetRepliesResponse as LemmyapiDatatypesGetRepliesResponse -import it.vercruysse.lemmyapi.datatypes.GetReportCount as LemmyapiDatatypesGetReportCount -import it.vercruysse.lemmyapi.datatypes.GetReportCountResponse as LemmyapiDatatypesGetReportCountResponse import it.vercruysse.lemmyapi.datatypes.GetSiteMetadata as LemmyapiDatatypesGetSiteMetadata import it.vercruysse.lemmyapi.datatypes.GetSiteMetadataResponse as LemmyapiDatatypesGetSiteMetadataResponse import it.vercruysse.lemmyapi.datatypes.GetSiteResponse as LemmyapiDatatypesGetSiteResponse -import it.vercruysse.lemmyapi.datatypes.GetUnreadCountResponse as LemmyapiDatatypesGetUnreadCountResponse -import it.vercruysse.lemmyapi.datatypes.GetUnreadRegistrationApplicationCountResponse as LemmyapiDatatypesGetUnreadRegistrationApplicationCountResponse import it.vercruysse.lemmyapi.datatypes.HideCommunity as LemmyapiDatatypesHideCommunity -import it.vercruysse.lemmyapi.datatypes.HidePost as LemmyapiDatatypesHidePost +import it.vercruysse.lemmyapi.datatypes.HidePosts as LemmyapiDatatypesHidePosts import it.vercruysse.lemmyapi.datatypes.ImageDetails as LemmyapiDatatypesImageDetails import it.vercruysse.lemmyapi.datatypes.Instance as LemmyapiDatatypesInstance -import it.vercruysse.lemmyapi.datatypes.InstanceBlockView as LemmyapiDatatypesInstanceBlockView -import it.vercruysse.lemmyapi.datatypes.InstanceWithFederationState as LemmyapiDatatypesInstanceWithFederationState import it.vercruysse.lemmyapi.datatypes.Language as LemmyapiDatatypesLanguage import it.vercruysse.lemmyapi.datatypes.LinkMetadata as LemmyapiDatatypesLinkMetadata import it.vercruysse.lemmyapi.datatypes.ListCommentLikes as LemmyapiDatatypesListCommentLikes -import it.vercruysse.lemmyapi.datatypes.ListCommentLikesResponse as LemmyapiDatatypesListCommentLikesResponse -import it.vercruysse.lemmyapi.datatypes.ListCommentReports as LemmyapiDatatypesListCommentReports -import it.vercruysse.lemmyapi.datatypes.ListCommentReportsResponse as LemmyapiDatatypesListCommentReportsResponse import it.vercruysse.lemmyapi.datatypes.ListCommunities as LemmyapiDatatypesListCommunities -import it.vercruysse.lemmyapi.datatypes.ListCommunitiesResponse as LemmyapiDatatypesListCommunitiesResponse import it.vercruysse.lemmyapi.datatypes.ListMedia as LemmyapiDatatypesListMedia -import it.vercruysse.lemmyapi.datatypes.ListMediaResponse as LemmyapiDatatypesListMediaResponse +import it.vercruysse.lemmyapi.datatypes.ListNotifications as LemmyapiDatatypesListNotifications import it.vercruysse.lemmyapi.datatypes.ListPostLikes as LemmyapiDatatypesListPostLikes -import it.vercruysse.lemmyapi.datatypes.ListPostLikesResponse as LemmyapiDatatypesListPostLikesResponse -import it.vercruysse.lemmyapi.datatypes.ListPostReports as LemmyapiDatatypesListPostReports -import it.vercruysse.lemmyapi.datatypes.ListPostReportsResponse as LemmyapiDatatypesListPostReportsResponse -import it.vercruysse.lemmyapi.datatypes.ListPrivateMessageReports as LemmyapiDatatypesListPrivateMessageReports -import it.vercruysse.lemmyapi.datatypes.ListPrivateMessageReportsResponse as LemmyapiDatatypesListPrivateMessageReportsResponse import it.vercruysse.lemmyapi.datatypes.ListRegistrationApplications as LemmyapiDatatypesListRegistrationApplications -import it.vercruysse.lemmyapi.datatypes.ListRegistrationApplicationsResponse as LemmyapiDatatypesListRegistrationApplicationsResponse import it.vercruysse.lemmyapi.datatypes.LocalImage as LemmyapiDatatypesLocalImage import it.vercruysse.lemmyapi.datatypes.LocalImageView as LemmyapiDatatypesLocalImageView import it.vercruysse.lemmyapi.datatypes.LocalSite as LemmyapiDatatypesLocalSite @@ -134,50 +106,15 @@ import it.vercruysse.lemmyapi.datatypes.LocalSiteRateLimit as LemmyapiDatatypesL import it.vercruysse.lemmyapi.datatypes.LocalSiteUrlBlocklist as LemmyapiDatatypesLocalSiteUrlBlocklist import it.vercruysse.lemmyapi.datatypes.LocalUser as LemmyapiDatatypesLocalUser import it.vercruysse.lemmyapi.datatypes.LocalUserView as LemmyapiDatatypesLocalUserView -import it.vercruysse.lemmyapi.datatypes.LocalUserVoteDisplayMode as LemmyapiDatatypesLocalUserVoteDisplayMode import it.vercruysse.lemmyapi.datatypes.LockPost as LemmyapiDatatypesLockPost import it.vercruysse.lemmyapi.datatypes.Login as LemmyapiDatatypesLogin import it.vercruysse.lemmyapi.datatypes.LoginResponse as LemmyapiDatatypesLoginResponse import it.vercruysse.lemmyapi.datatypes.LoginToken as LemmyapiDatatypesLoginToken -import it.vercruysse.lemmyapi.datatypes.MarkCommentReplyAsRead as LemmyapiDatatypesMarkCommentReplyAsRead -import it.vercruysse.lemmyapi.datatypes.MarkPersonMentionAsRead as LemmyapiDatatypesMarkPersonMentionAsRead -import it.vercruysse.lemmyapi.datatypes.MarkPostAsRead as LemmyapiDatatypesMarkPostAsRead -import it.vercruysse.lemmyapi.datatypes.MarkPrivateMessageAsRead as LemmyapiDatatypesMarkPrivateMessageAsRead -import it.vercruysse.lemmyapi.datatypes.ModAdd as LemmyapiDatatypesModAdd -import it.vercruysse.lemmyapi.datatypes.ModAddCommunity as LemmyapiDatatypesModAddCommunity -import it.vercruysse.lemmyapi.datatypes.ModAddCommunityView as LemmyapiDatatypesModAddCommunityView -import it.vercruysse.lemmyapi.datatypes.ModAddView as LemmyapiDatatypesModAddView -import it.vercruysse.lemmyapi.datatypes.ModBan as LemmyapiDatatypesModBan -import it.vercruysse.lemmyapi.datatypes.ModBanFromCommunity as LemmyapiDatatypesModBanFromCommunity -import it.vercruysse.lemmyapi.datatypes.ModBanFromCommunityView as LemmyapiDatatypesModBanFromCommunityView -import it.vercruysse.lemmyapi.datatypes.ModBanView as LemmyapiDatatypesModBanView -import it.vercruysse.lemmyapi.datatypes.ModFeaturePost as LemmyapiDatatypesModFeaturePost -import it.vercruysse.lemmyapi.datatypes.ModFeaturePostView as LemmyapiDatatypesModFeaturePostView -import it.vercruysse.lemmyapi.datatypes.ModHideCommunity as LemmyapiDatatypesModHideCommunity -import it.vercruysse.lemmyapi.datatypes.ModHideCommunityView as LemmyapiDatatypesModHideCommunityView -import it.vercruysse.lemmyapi.datatypes.ModLockPost as LemmyapiDatatypesModLockPost -import it.vercruysse.lemmyapi.datatypes.ModLockPostView as LemmyapiDatatypesModLockPostView -import it.vercruysse.lemmyapi.datatypes.ModRemoveComment as LemmyapiDatatypesModRemoveComment -import it.vercruysse.lemmyapi.datatypes.ModRemoveCommentView as LemmyapiDatatypesModRemoveCommentView -import it.vercruysse.lemmyapi.datatypes.ModRemoveCommunity as LemmyapiDatatypesModRemoveCommunity -import it.vercruysse.lemmyapi.datatypes.ModRemoveCommunityView as LemmyapiDatatypesModRemoveCommunityView -import it.vercruysse.lemmyapi.datatypes.ModRemovePost as LemmyapiDatatypesModRemovePost -import it.vercruysse.lemmyapi.datatypes.ModRemovePostView as LemmyapiDatatypesModRemovePostView -import it.vercruysse.lemmyapi.datatypes.ModTransferCommunity as LemmyapiDatatypesModTransferCommunity -import it.vercruysse.lemmyapi.datatypes.ModTransferCommunityView as LemmyapiDatatypesModTransferCommunityView -import it.vercruysse.lemmyapi.datatypes.ModlogListParams as LemmyapiDatatypesModlogListParams +import it.vercruysse.lemmyapi.datatypes.MarkManyPostsAsRead as LemmyapiDatatypesMarkPostAsRead import it.vercruysse.lemmyapi.datatypes.MyUserInfo as LemmyapiDatatypesMyUserInfo -import it.vercruysse.lemmyapi.datatypes.PasswordChangeAfterReset as LemmyapiDatatypesPasswordChangeAfterReset -import it.vercruysse.lemmyapi.datatypes.PasswordReset as LemmyapiDatatypesPasswordReset import it.vercruysse.lemmyapi.datatypes.Person as LemmyapiDatatypesPerson -import it.vercruysse.lemmyapi.datatypes.PersonAggregates as LemmyapiDatatypesPersonAggregates -import it.vercruysse.lemmyapi.datatypes.PersonBlockView as LemmyapiDatatypesPersonBlockView -import it.vercruysse.lemmyapi.datatypes.PersonMention as LemmyapiDatatypesPersonMention -import it.vercruysse.lemmyapi.datatypes.PersonMentionResponse as LemmyapiDatatypesPersonMentionResponse -import it.vercruysse.lemmyapi.datatypes.PersonMentionView as LemmyapiDatatypesPersonMentionView import it.vercruysse.lemmyapi.datatypes.PersonView as LemmyapiDatatypesPersonView import it.vercruysse.lemmyapi.datatypes.Post as LemmyapiDatatypesPost -import it.vercruysse.lemmyapi.datatypes.PostAggregates as LemmyapiDatatypesPostAggregates import it.vercruysse.lemmyapi.datatypes.PostReport as LemmyapiDatatypesPostReport import it.vercruysse.lemmyapi.datatypes.PostReportResponse as LemmyapiDatatypesPostReportResponse import it.vercruysse.lemmyapi.datatypes.PostReportView as LemmyapiDatatypesPostReportView @@ -189,12 +126,10 @@ import it.vercruysse.lemmyapi.datatypes.PrivateMessageReportResponse as Lemmyapi import it.vercruysse.lemmyapi.datatypes.PrivateMessageReportView as LemmyapiDatatypesPrivateMessageReportView import it.vercruysse.lemmyapi.datatypes.PrivateMessageResponse as LemmyapiDatatypesPrivateMessageResponse import it.vercruysse.lemmyapi.datatypes.PrivateMessageView as LemmyapiDatatypesPrivateMessageView -import it.vercruysse.lemmyapi.datatypes.PrivateMessagesResponse as LemmyapiDatatypesPrivateMessagesResponse import it.vercruysse.lemmyapi.datatypes.PurgeComment as LemmyapiDatatypesPurgeComment import it.vercruysse.lemmyapi.datatypes.PurgeCommunity as LemmyapiDatatypesPurgeCommunity import it.vercruysse.lemmyapi.datatypes.PurgePerson as LemmyapiDatatypesPurgePerson import it.vercruysse.lemmyapi.datatypes.PurgePost as LemmyapiDatatypesPurgePost -import it.vercruysse.lemmyapi.datatypes.ReadableFederationState as LemmyapiDatatypesReadableFederationState import it.vercruysse.lemmyapi.datatypes.Register as LemmyapiDatatypesRegister import it.vercruysse.lemmyapi.datatypes.RegistrationApplication as LemmyapiDatatypesRegistrationApplication import it.vercruysse.lemmyapi.datatypes.RegistrationApplicationResponse as LemmyapiDatatypesRegistrationApplicationResponse @@ -202,9 +137,9 @@ import it.vercruysse.lemmyapi.datatypes.RegistrationApplicationView as LemmyapiD import it.vercruysse.lemmyapi.datatypes.RemoveComment as LemmyapiDatatypesRemoveComment import it.vercruysse.lemmyapi.datatypes.RemoveCommunity as LemmyapiDatatypesRemoveCommunity import it.vercruysse.lemmyapi.datatypes.RemovePost as LemmyapiDatatypesRemovePost +import it.vercruysse.lemmyapi.datatypes.ResetPassword as LemmyapiDatatypesPasswordReset import it.vercruysse.lemmyapi.datatypes.ResolveCommentReport as LemmyapiDatatypesResolveCommentReport import it.vercruysse.lemmyapi.datatypes.ResolveObject as LemmyapiDatatypesResolveObject -import it.vercruysse.lemmyapi.datatypes.ResolveObjectResponse as LemmyapiDatatypesResolveObjectResponse import it.vercruysse.lemmyapi.datatypes.ResolvePostReport as LemmyapiDatatypesResolvePostReport import it.vercruysse.lemmyapi.datatypes.ResolvePrivateMessageReport as LemmyapiDatatypesResolvePrivateMessageReport import it.vercruysse.lemmyapi.datatypes.SaveComment as LemmyapiDatatypesSaveComment @@ -213,45 +148,40 @@ import it.vercruysse.lemmyapi.datatypes.SaveUserSettings as LemmyapiDatatypesSav import it.vercruysse.lemmyapi.datatypes.Search as LemmyapiDatatypesSearch import it.vercruysse.lemmyapi.datatypes.SearchResponse as LemmyapiDatatypesSearchResponse import it.vercruysse.lemmyapi.datatypes.Site as LemmyapiDatatypesSite -import it.vercruysse.lemmyapi.datatypes.SiteAggregates as LemmyapiDatatypesSiteAggregates import it.vercruysse.lemmyapi.datatypes.SiteResponse as LemmyapiDatatypesSiteResponse import it.vercruysse.lemmyapi.datatypes.SiteView as LemmyapiDatatypesSiteView import it.vercruysse.lemmyapi.datatypes.Tagline as LemmyapiDatatypesTagline import it.vercruysse.lemmyapi.datatypes.TransferCommunity as LemmyapiDatatypesTransferCommunity -import it.vercruysse.lemmyapi.datatypes.UpdateTotp as LemmyapiDatatypesUpdateTotp -import it.vercruysse.lemmyapi.datatypes.UpdateTotpResponse as LemmyapiDatatypesUpdateTotpResponse +import it.vercruysse.lemmyapi.datatypes.UserBlockInstanceCommunitiesParams as LemmyapiDatatypesBlockInstance import it.vercruysse.lemmyapi.datatypes.VerifyEmail as LemmyapiDatatypesVerifyEmail import it.vercruysse.lemmyapi.datatypes.VoteView as LemmyapiDatatypesVoteView +import it.vercruysse.lemmyapi.v0.enums.CommentSortType as V0CommentSortType +import it.vercruysse.lemmyapi.v0.enums.CommunityVisibility as V0CommunityVisibility +import it.vercruysse.lemmyapi.v0.enums.ListingType as V0ListingType +import it.vercruysse.lemmyapi.v0.enums.ModlogActionType as V0ModlogActionType +import it.vercruysse.lemmyapi.v0.enums.PostFeatureType as V0PostFeatureType +import it.vercruysse.lemmyapi.v0.enums.PostListingMode as V0PostListingMode +import it.vercruysse.lemmyapi.v0.enums.RegistrationMode as V0RegistrationMode +import it.vercruysse.lemmyapi.v0.enums.SearchType as V0SearchType +import it.vercruysse.lemmyapi.v0.enums.SortType as V0SortType import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.AddAdmin as X6DatatypesAddAdmin import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.AddAdminResponse as X6DatatypesAddAdminResponse import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.AddModToCommunity as X6DatatypesAddModToCommunity import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.AddModToCommunityResponse as X6DatatypesAddModToCommunityResponse -import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.AdminPurgeComment as X6DatatypesAdminPurgeComment -import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.AdminPurgeCommentView as X6DatatypesAdminPurgeCommentView -import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.AdminPurgeCommunity as X6DatatypesAdminPurgeCommunity -import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.AdminPurgeCommunityView as X6DatatypesAdminPurgeCommunityView -import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.AdminPurgePerson as X6DatatypesAdminPurgePerson -import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.AdminPurgePersonView as X6DatatypesAdminPurgePersonView -import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.AdminPurgePost as X6DatatypesAdminPurgePost -import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.AdminPurgePostView as X6DatatypesAdminPurgePostView import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.ApproveRegistrationApplication as X6DatatypesApproveRegistrationApplication import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.BanFromCommunity as X6DatatypesBanFromCommunity import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.BanFromCommunityResponse as X6DatatypesBanFromCommunityResponse import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.BanPerson as X6DatatypesBanPerson import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.BanPersonResponse as X6DatatypesBanPersonResponse -import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.BannedPersonsResponse as X6DatatypesBannedPersonsResponse import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.BlockCommunity as X6DatatypesBlockCommunity import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.BlockCommunityResponse as X6DatatypesBlockCommunityResponse import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.BlockInstance as X6DatatypesBlockInstance -import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.BlockInstanceResponse as X6DatatypesBlockInstanceResponse import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.BlockPerson as X6DatatypesBlockPerson import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.BlockPersonResponse as X6DatatypesBlockPersonResponse import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.CaptchaResponse as X6DatatypesCaptchaResponse import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.ChangePassword as X6DatatypesChangePassword import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.Comment as X6DatatypesComment import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.CommentAggregates as X6DatatypesCommentAggregates -import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.CommentReply as X6DatatypesCommentReply -import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.CommentReplyResponse as X6DatatypesCommentReplyResponse import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.CommentReplyView as X6DatatypesCommentReplyView import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.CommentReport as X6DatatypesCommentReport import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.CommentReportResponse as X6DatatypesCommentReportResponse @@ -260,7 +190,6 @@ import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.CommentResponse as X6Datatypes import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.CommentView as X6DatatypesCommentView import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.Community as X6DatatypesCommunity import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.CommunityAggregates as X6DatatypesCommunityAggregates -import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.CommunityBlockView as X6DatatypesCommunityBlockView import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.CommunityFollowerView as X6DatatypesCommunityFollowerView import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.CommunityModeratorView as X6DatatypesCommunityModeratorView import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.CommunityResponse as X6DatatypesCommunityResponse @@ -294,61 +223,40 @@ import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.EditPost as X6DatatypesEditPos import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.EditPrivateMessage as X6DatatypesEditPrivateMessage import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.EditSite as X6DatatypesEditSite import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.FeaturePost as X6DatatypesFeaturePost -import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.FederatedInstances as X6DatatypesFederatedInstances import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.FollowCommunity as X6DatatypesFollowCommunity import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.GenerateTotpSecretResponse as X6DatatypesGenerateTotpSecretResponse import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.GetCaptchaResponse as X6DatatypesGetCaptchaResponse import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.GetComment as X6DatatypesGetComment import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.GetComments as X6DatatypesGetComments -import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.GetCommentsResponse as X6DatatypesGetCommentsResponse import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.GetCommunity as X6DatatypesGetCommunity import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.GetCommunityResponse as X6DatatypesGetCommunityResponse -import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.GetFederatedInstancesResponse as X6DatatypesGetFederatedInstancesResponse import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.GetModlog as X6DatatypesGetModlog -import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.GetModlogResponse as X6DatatypesGetModlogResponse import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.GetPersonDetails as X6DatatypesGetPersonDetails import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.GetPersonDetailsResponse as X6DatatypesGetPersonDetailsResponse import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.GetPersonMentions as X6DatatypesGetPersonMentions -import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.GetPersonMentionsResponse as X6DatatypesGetPersonMentionsResponse import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.GetPost as X6DatatypesGetPost import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.GetPostResponse as X6DatatypesGetPostResponse import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.GetPosts as X6DatatypesGetPosts -import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.GetPostsResponse as X6DatatypesGetPostsResponse import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.GetPrivateMessages as X6DatatypesGetPrivateMessages import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.GetRegistrationApplication as X6DatatypesGetRegistrationApplication import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.GetReplies as X6DatatypesGetReplies -import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.GetRepliesResponse as X6DatatypesGetRepliesResponse -import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.GetReportCount as X6DatatypesGetReportCount -import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.GetReportCountResponse as X6DatatypesGetReportCountResponse import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.GetSiteMetadata as X6DatatypesGetSiteMetadata import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.GetSiteMetadataResponse as X6DatatypesGetSiteMetadataResponse import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.GetSiteResponse as X6DatatypesGetSiteResponse -import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.GetUnreadCountResponse as X6DatatypesGetUnreadCountResponse -import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.GetUnreadRegistrationApplicationCountResponse as X6DatatypesGetUnreadRegistrationApplicationCountResponse import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.HideCommunity as X6DatatypesHideCommunity import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.HidePost as X6DatatypesHidePost import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.ImageDetails as X6DatatypesImageDetails import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.Instance as X6DatatypesInstance -import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.InstanceBlockView as X6DatatypesInstanceBlockView -import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.InstanceWithFederationState as X6DatatypesInstanceWithFederationState import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.Language as X6DatatypesLanguage import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.LinkMetadata as X6DatatypesLinkMetadata import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.ListCommentLikes as X6DatatypesListCommentLikes -import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.ListCommentLikesResponse as X6DatatypesListCommentLikesResponse import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.ListCommentReports as X6DatatypesListCommentReports -import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.ListCommentReportsResponse as X6DatatypesListCommentReportsResponse import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.ListCommunities as X6DatatypesListCommunities -import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.ListCommunitiesResponse as X6DatatypesListCommunitiesResponse import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.ListMedia as X6DatatypesListMedia -import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.ListMediaResponse as X6DatatypesListMediaResponse import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.ListPostLikes as X6DatatypesListPostLikes -import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.ListPostLikesResponse as X6DatatypesListPostLikesResponse import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.ListPostReports as X6DatatypesListPostReports -import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.ListPostReportsResponse as X6DatatypesListPostReportsResponse import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.ListPrivateMessageReports as X6DatatypesListPrivateMessageReports -import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.ListPrivateMessageReportsResponse as X6DatatypesListPrivateMessageReportsResponse import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.ListRegistrationApplications as X6DatatypesListRegistrationApplications -import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.ListRegistrationApplicationsResponse as X6DatatypesListRegistrationApplicationsResponse import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.LocalImage as X6DatatypesLocalImage import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.LocalImageView as X6DatatypesLocalImageView import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.LocalSite as X6DatatypesLocalSite @@ -365,37 +273,11 @@ import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.MarkCommentReplyAsRead as X6Da import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.MarkPersonMentionAsRead as X6DatatypesMarkPersonMentionAsRead import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.MarkPostAsRead as X6DatatypesMarkPostAsRead import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.MarkPrivateMessageAsRead as X6DatatypesMarkPrivateMessageAsRead -import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.ModAdd as X6DatatypesModAdd -import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.ModAddCommunity as X6DatatypesModAddCommunity -import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.ModAddCommunityView as X6DatatypesModAddCommunityView -import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.ModAddView as X6DatatypesModAddView -import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.ModBan as X6DatatypesModBan -import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.ModBanFromCommunity as X6DatatypesModBanFromCommunity -import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.ModBanFromCommunityView as X6DatatypesModBanFromCommunityView -import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.ModBanView as X6DatatypesModBanView -import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.ModFeaturePost as X6DatatypesModFeaturePost -import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.ModFeaturePostView as X6DatatypesModFeaturePostView -import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.ModHideCommunity as X6DatatypesModHideCommunity -import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.ModHideCommunityView as X6DatatypesModHideCommunityView -import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.ModLockPost as X6DatatypesModLockPost -import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.ModLockPostView as X6DatatypesModLockPostView -import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.ModRemoveComment as X6DatatypesModRemoveComment -import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.ModRemoveCommentView as X6DatatypesModRemoveCommentView -import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.ModRemoveCommunity as X6DatatypesModRemoveCommunity -import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.ModRemoveCommunityView as X6DatatypesModRemoveCommunityView -import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.ModRemovePost as X6DatatypesModRemovePost -import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.ModRemovePostView as X6DatatypesModRemovePostView -import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.ModTransferCommunity as X6DatatypesModTransferCommunity -import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.ModTransferCommunityView as X6DatatypesModTransferCommunityView -import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.ModlogListParams as X6DatatypesModlogListParams import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.MyUserInfo as X6DatatypesMyUserInfo import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.PasswordChangeAfterReset as X6DatatypesPasswordChangeAfterReset import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.PasswordReset as X6DatatypesPasswordReset import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.Person as X6DatatypesPerson import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.PersonAggregates as X6DatatypesPersonAggregates -import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.PersonBlockView as X6DatatypesPersonBlockView -import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.PersonMention as X6DatatypesPersonMention -import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.PersonMentionResponse as X6DatatypesPersonMentionResponse import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.PersonMentionView as X6DatatypesPersonMentionView import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.PersonView as X6DatatypesPersonView import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.Post as X6DatatypesPost @@ -411,7 +293,6 @@ import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.PrivateMessageReportResponse a import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.PrivateMessageReportView as X6DatatypesPrivateMessageReportView import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.PrivateMessageResponse as X6DatatypesPrivateMessageResponse import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.PrivateMessageView as X6DatatypesPrivateMessageView -import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.PrivateMessagesResponse as X6DatatypesPrivateMessagesResponse import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.PurgeComment as X6DatatypesPurgeComment import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.PurgeCommunity as X6DatatypesPurgeCommunity import it.vercruysse.lemmyapi.v0.x19.x6.datatypes.PurgePerson as X6DatatypesPurgePerson @@ -456,96 +337,17 @@ internal class Transformer : MapperGenerator { moderators = d.moderators.map { this.toUni(d = it) }, ) - override fun toUni(d: X6DatatypesAdminPurgeComment): LemmyapiDatatypesAdminPurgeComment = - LemmyapiDatatypesAdminPurgeComment( - id = d.id, - admin_person_id = d.admin_person_id, - post_id = d.post_id, - reason = d.reason, - when_ = d.when_, - ) - - override fun toUni(d: X6DatatypesAdminPurgeCommentView): LemmyapiDatatypesAdminPurgeCommentView = - LemmyapiDatatypesAdminPurgeCommentView( - admin_purge_comment = this.toUni(d = d.admin_purge_comment), - admin = d.admin?.let { this.toUni(d = it) }, - post = this.toUni(d = d.post), - ) - - override fun toUni(d: X6DatatypesAdminPurgeCommunity): LemmyapiDatatypesAdminPurgeCommunity = - LemmyapiDatatypesAdminPurgeCommunity( - id = d.id, - admin_person_id = d.admin_person_id, - reason = d.reason, - when_ = d.when_, - ) - - override fun toUni(d: X6DatatypesAdminPurgeCommunityView): LemmyapiDatatypesAdminPurgeCommunityView = LemmyapiDatatypesAdminPurgeCommunityView( - admin_purge_community = this.toUni(d = d.admin_purge_community), - admin = d.admin?.let { this.toUni(d = it) }, - ) + override fun toUni(d: X6DatatypesBanFromCommunityResponse): it.vercruysse.lemmyapi.datatypes.PersonResponse = + it.vercruysse.lemmyapi.datatypes.PersonResponse(person_view = this.toUni(d = d.person_view)) - override fun toUni(d: X6DatatypesAdminPurgePerson): LemmyapiDatatypesAdminPurgePerson = - LemmyapiDatatypesAdminPurgePerson( - id = d.id, - admin_person_id = d.admin_person_id, - reason = d.reason, - when_ = d.when_, - ) + override fun toUni(d: X6DatatypesBanPersonResponse): it.vercruysse.lemmyapi.datatypes.PersonResponse = + it.vercruysse.lemmyapi.datatypes.PersonResponse(person_view = this.toUni(d = d.person_view)) - override fun toUni(d: X6DatatypesAdminPurgePersonView): LemmyapiDatatypesAdminPurgePersonView = - LemmyapiDatatypesAdminPurgePersonView( - admin_purge_person = this.toUni(d = d.admin_purge_person), - admin = d.admin?.let { this.toUni(d = it) }, - ) + override fun toUni(d: X6DatatypesBlockCommunityResponse): LemmyapiDatatypesCommunityResponse = + LemmyapiDatatypesCommunityResponse(community_view = this.toUni(d = d.community_view), discussion_languages = emptyList()) - override fun toUni(d: X6DatatypesAdminPurgePost): LemmyapiDatatypesAdminPurgePost = - LemmyapiDatatypesAdminPurgePost( - id = d.id, - admin_person_id = d.admin_person_id, - community_id = d.community_id, - reason = d.reason, - when_ = d.when_, - ) - - override fun toUni(d: X6DatatypesAdminPurgePostView): LemmyapiDatatypesAdminPurgePostView = - LemmyapiDatatypesAdminPurgePostView( - admin_purge_post = this.toUni(d = d.admin_purge_post), - admin = d.admin?.let { this.toUni(d = it) }, - community = this.toUni(d = d.community), - ) - - override fun toUni(d: X6DatatypesBanFromCommunityResponse): LemmyapiDatatypesBanFromCommunityResponse = LemmyapiDatatypesBanFromCommunityResponse( - person_view = this.toUni(d = d.person_view), - banned = d.banned, - ) - - override fun toUni(d: X6DatatypesBannedPersonsResponse): LemmyapiDatatypesBannedPersonsResponse = - LemmyapiDatatypesBannedPersonsResponse( - banned = d.banned.map { this.toUni(d = it) }, - ) - - override fun toUni(d: X6DatatypesBanPersonResponse): LemmyapiDatatypesBanPersonResponse = - LemmyapiDatatypesBanPersonResponse( - person_view = this.toUni(d = d.person_view), - banned = d.banned, - ) - - override fun toUni(d: X6DatatypesBlockCommunityResponse): LemmyapiDatatypesBlockCommunityResponse = LemmyapiDatatypesBlockCommunityResponse( - community_view = this.toUni(d = d.community_view), - blocked = d.blocked, - ) - - override fun toUni(d: X6DatatypesBlockInstanceResponse): LemmyapiDatatypesBlockInstanceResponse = - LemmyapiDatatypesBlockInstanceResponse( - blocked = d.blocked, - ) - - override fun toUni(d: X6DatatypesBlockPersonResponse): LemmyapiDatatypesBlockPersonResponse = - LemmyapiDatatypesBlockPersonResponse( - person_view = this.toUni(d = d.person_view), - blocked = d.blocked, - ) + override fun toUni(d: X6DatatypesBlockPersonResponse): it.vercruysse.lemmyapi.datatypes.PersonResponse = + it.vercruysse.lemmyapi.datatypes.PersonResponse(person_view = this.toUni(d = d.person_view)) override fun toUni(d: X6DatatypesCaptchaResponse): LemmyapiDatatypesCaptchaResponse = LemmyapiDatatypesCaptchaResponse( @@ -554,65 +356,30 @@ internal class Transformer : MapperGenerator { uuid = d.uuid, ) - override fun toUni(d: X6DatatypesComment): LemmyapiDatatypesComment = LemmyapiDatatypesComment( + override fun toUni(d: X6DatatypesComment, counts: X6DatatypesCommentAggregates): LemmyapiDatatypesComment = LemmyapiDatatypesComment( id = d.id, creator_id = d.creator_id, post_id = d.post_id, content = d.content, removed = d.removed, - published = d.published, - updated = d.updated, + published_at = d.published, + updated_at = d.updated, deleted = d.deleted, ap_id = d.ap_id, local = d.local, path = d.path, distinguished = d.distinguished, language_id = d.language_id, + score = counts.score, + upvotes = counts.upvotes, + downvotes = counts.downvotes, + child_count = counts.child_count, + report_count = -1, + unresolved_report_count = -1, + federation_pending = false, + locked = false, ) - override fun toUni(d: X6DatatypesCommentAggregates): LemmyapiDatatypesCommentAggregates = - LemmyapiDatatypesCommentAggregates( - comment_id = d.comment_id, - score = d.score, - upvotes = d.upvotes, - downvotes = d.downvotes, - published = d.published, - child_count = d.child_count, - ) - - override fun toUni(d: X6DatatypesCommentReply): LemmyapiDatatypesCommentReply = - LemmyapiDatatypesCommentReply( - id = d.id, - recipient_id = d.recipient_id, - comment_id = d.comment_id, - read = d.read, - published = d.published, - ) - - override fun toUni(d: X6DatatypesCommentReplyResponse): LemmyapiDatatypesCommentReplyResponse = - LemmyapiDatatypesCommentReplyResponse( - comment_reply_view = this.toUni(d = d.comment_reply_view), - ) - - override fun toUni(d: X6DatatypesCommentReplyView): LemmyapiDatatypesCommentReplyView = - LemmyapiDatatypesCommentReplyView( - comment_reply = this.toUni(d = d.comment_reply), - comment = this.toUni(d = d.comment), - creator = this.toUni(d = d.creator), - post = this.toUni(d = d.post), - community = this.toUni(d = d.community), - recipient = this.toUni(d = d.recipient), - counts = this.toUni(d = d.counts), - creator_banned_from_community = d.creator_banned_from_community, - banned_from_community = d.banned_from_community, - creator_is_moderator = d.creator_is_moderator, - creator_is_admin = d.creator_is_admin, - subscribed = d.subscribed, - saved = d.saved, - creator_blocked = d.creator_blocked, - my_vote = d.my_vote, - ) - override fun toUni(d: X6DatatypesCommentReport): LemmyapiDatatypesCommentReport = LemmyapiDatatypesCommentReport( id = d.id, @@ -622,8 +389,8 @@ internal class Transformer : MapperGenerator { reason = d.reason, resolved = d.resolved, resolver_id = d.resolver_id, - published = d.published, - updated = d.updated, + published_at = d.published, + updated_at = d.updated, ) override fun toUni(d: X6DatatypesCommentReportResponse): LemmyapiDatatypesCommentReportResponse = @@ -634,94 +401,84 @@ internal class Transformer : MapperGenerator { override fun toUni(d: X6DatatypesCommentReportView): LemmyapiDatatypesCommentReportView = LemmyapiDatatypesCommentReportView( comment_report = this.toUni(d = d.comment_report), - comment = this.toUni(d = d.comment), - post = this.toUni(d = d.post), - community = this.toUni(d = d.community), + comment = this.toUni(d = d.comment, d.counts), + post = this.toUni(d = d.post, counts = X6DatatypesPostAggregates(-1, -1, -1, -1, -1, "", "")), + community = this.toUni(d = d.community, counts = X6DatatypesCommunityAggregates(-1, -1, -1, -1, "", -1, -1, -1, -1, -1)), creator = this.toUni(d = d.creator), comment_creator = this.toUni(d = d.comment_creator), - counts = this.toUni(d = d.counts), creator_banned_from_community = d.creator_banned_from_community, creator_is_moderator = d.creator_is_moderator, creator_is_admin = d.creator_is_admin, - creator_blocked = d.creator_blocked, - subscribed = d.subscribed, - saved = d.saved, - my_vote = d.my_vote, resolver = d.resolver?.let { this.toUni(d = it) }, + creator_banned = d.creator.banned, + person_actions = PersonActions(if (d.creator_blocked) "" else null), + comment_actions = CommentActions(d.my_vote, null, if (d.saved) "" else null), + community_actions = CommunityActions(null, CommunityFollowerState.from(d.subscribed)), ) override fun toUni(d: X6DatatypesCommentResponse): LemmyapiDatatypesCommentResponse = LemmyapiDatatypesCommentResponse( comment_view = this.toUni(d = d.comment_view), - recipient_ids = d.recipient_ids, ) override fun toUni(d: X6DatatypesCommentView): LemmyapiDatatypesCommentView = LemmyapiDatatypesCommentView( - comment = this.toUni(d = d.comment), + comment = this.toUni(d = d.comment, d.counts), creator = this.toUni(d = d.creator), - post = this.toUni(d = d.post), - community = this.toUni(d = d.community), - counts = this.toUni(d = d.counts), + post = this.toUni(d = d.post, counts = X6DatatypesPostAggregates(-1, -1, -1, -1, -1, "", "")), + community = this.toUni(d = d.community, counts = X6DatatypesCommunityAggregates(-1, -1, -1, -1, "", -1, -1, -1, -1, -1)), creator_banned_from_community = d.creator_banned_from_community, - banned_from_community = d.banned_from_community, creator_is_moderator = d.creator_is_moderator, creator_is_admin = d.creator_is_admin, - subscribed = d.subscribed, - saved = d.saved, - creator_blocked = d.creator_blocked, - my_vote = d.my_vote, + tags = emptyList(), + creator_banned = d.creator.banned, + creator_ban_expires_at = d.creator.ban_expires, + can_mod = false, + person_actions = PersonActions(if (d.creator_blocked) "" else null), + comment_actions = CommentActions(d.my_vote, null, if (d.saved) "" else null), + community_actions = CommunityActions(null, CommunityFollowerState.from(d.subscribed)), ) - override fun toUni(d: X6DatatypesCommunity): LemmyapiDatatypesCommunity = + override fun toUni(d: X6DatatypesCommunity, counts: X6DatatypesCommunityAggregates): LemmyapiDatatypesCommunity = LemmyapiDatatypesCommunity( id = d.id, name = d.name, title = d.title, - description = d.description, + summary = d.description, removed = d.removed, - published = d.published, - updated = d.updated, + published_at = d.published, + updated_at = d.updated, deleted = d.deleted, nsfw = d.nsfw, - actor_id = d.actor_id, + ap_id = d.actor_id, local = d.local, icon = d.icon, banner = d.banner, - hidden = d.hidden, posting_restricted_to_mods = d.posting_restricted_to_mods, instance_id = d.instance_id, - visibility = d.visibility, - ) - - override fun toUni(d: X6DatatypesCommunityAggregates): LemmyapiDatatypesCommunityAggregates = - LemmyapiDatatypesCommunityAggregates( - community_id = d.community_id, - subscribers = d.subscribers, - posts = d.posts, - comments = d.comments, - published = d.published, - users_active_day = d.users_active_day, - users_active_week = d.users_active_week, - users_active_month = d.users_active_month, - users_active_half_year = d.users_active_half_year, - subscribers_local = d.subscribers_local, - ) - - override fun toUni(d: X6DatatypesCommunityBlockView): LemmyapiDatatypesCommunityBlockView = - LemmyapiDatatypesCommunityBlockView( - person = this.toUni(d = d.person), - community = this.toUni(d = d.community), + visibility = if (d.hidden) CommunityVisibility.Unlisted else d.visibility.toUni(), + subscribers = counts.subscribers, + posts = counts.posts, + comments = counts.comments, + users_active_day = counts.users_active_day, + users_active_week = counts.users_active_week, + users_active_month = counts.users_active_month, + users_active_half_year = counts.users_active_half_year, + subscribers_local = -1, + report_count = -1, + unresolved_report_count = -1, + local_removed = false, + last_refreshed_at = "", ) override fun toUni(d: X6DatatypesCommunityFollowerView): LemmyapiDatatypesCommunityFollowerView = LemmyapiDatatypesCommunityFollowerView( - community = this.toUni(d = d.community), + community = this.toUni(d = d.community, counts = X6DatatypesCommunityAggregates(-1, -1, -1, -1, "", -1, -1, -1, -1, -1)), follower = this.toUni(d = d.follower), ) override fun toUni(d: X6DatatypesCommunityModeratorView): LemmyapiDatatypesCommunityModeratorView = LemmyapiDatatypesCommunityModeratorView( - community = this.toUni(d = d.community), + community = this.toUni(d = d.community, counts = X6DatatypesCommunityAggregates(-1, -1, -1, -1, "", -1, -1, -1, -1, -1)), moderator = this.toUni(d = d.moderator), ) @@ -733,23 +490,21 @@ internal class Transformer : MapperGenerator { override fun toUni(d: X6DatatypesCommunityView): LemmyapiDatatypesCommunityView = LemmyapiDatatypesCommunityView( - community = this.toUni(d = d.community), - subscribed = d.subscribed, - blocked = d.blocked, - counts = this.toUni(d = d.counts), - banned_from_community = d.banned_from_community, + community = this.toUni(d = d.community, d.counts), + can_mod = false, + tags = emptyList(), + community_actions = CommunityActions(null, CommunityFollowerState.from(d.subscribed), if (d.blocked) "" else null, null, if (d.banned_from_community) "" else null, if (d.banned_from_community) "" else null), ) override fun toUni(d: X6DatatypesCustomEmoji): LemmyapiDatatypesCustomEmoji = LemmyapiDatatypesCustomEmoji( id = d.id, - local_site_id = d.local_site_id, shortcode = d.shortcode, image_url = d.image_url, alt_text = d.alt_text, category = d.category, - published = d.published, - updated = d.updated, + published_at = d.published, + updated_at = d.updated, ) override fun toUni(d: X6DatatypesCustomEmojiKeyword): LemmyapiDatatypesCustomEmojiKeyword = @@ -769,13 +524,6 @@ internal class Transformer : MapperGenerator { keywords = d.keywords.map { this.toUni(d = it) }, ) - override fun toUni(d: X6DatatypesFederatedInstances): LemmyapiDatatypesFederatedInstances = - LemmyapiDatatypesFederatedInstances( - linked = d.linked.map { this.toUni(d = it) }, - allowed = d.allowed.map { this.toUni(d = it) }, - blocked = d.blocked.map { this.toUni(d = it) }, - ) - override fun toUni(d: X6DatatypesGenerateTotpSecretResponse): LemmyapiDatatypesGenerateTotpSecretResponse = LemmyapiDatatypesGenerateTotpSecretResponse( totp_secret_url = d.totp_secret_url, ) @@ -785,11 +533,6 @@ internal class Transformer : MapperGenerator { ok = d.ok?.let { this.toUni(d = it) }, ) - override fun toUni(d: X6DatatypesGetCommentsResponse): LemmyapiDatatypesGetCommentsResponse = - LemmyapiDatatypesGetCommentsResponse( - comments = d.comments.map { this.toUni(d = it) }, - ) - override fun toUni(d: X6DatatypesGetCommunityResponse): LemmyapiDatatypesGetCommunityResponse = LemmyapiDatatypesGetCommunityResponse( community_view = this.toUni(d = d.community_view), @@ -798,40 +541,11 @@ internal class Transformer : MapperGenerator { discussion_languages = d.discussion_languages, ) - override fun toUni(d: X6DatatypesGetFederatedInstancesResponse): LemmyapiDatatypesGetFederatedInstancesResponse = - LemmyapiDatatypesGetFederatedInstancesResponse( - federated_instances = d.federated_instances?.let { this.toUni(d = it) }, - ) - - override fun toUni(d: X6DatatypesGetModlogResponse): LemmyapiDatatypesGetModlogResponse = - LemmyapiDatatypesGetModlogResponse( - removed_posts = d.removed_posts.map { this.toUni(d = it) }, - locked_posts = d.locked_posts.map { this.toUni(d = it) }, - featured_posts = d.featured_posts.map { this.toUni(d = it) }, - removed_comments = d.removed_comments.map { this.toUni(d = it) }, - removed_communities = d.removed_communities.map { this.toUni(d = it) }, - banned_from_community = d.banned_from_community.map { this.toUni(d = it) }, - banned = d.banned.map { this.toUni(d = it) }, - added_to_community = d.added_to_community.map { this.toUni(d = it) }, - transferred_to_community = d.transferred_to_community.map { this.toUni(d = it) }, - added = d.added.map { this.toUni(d = it) }, - admin_purged_persons = d.admin_purged_persons.map { this.toUni(d = it) }, - admin_purged_communities = d.admin_purged_communities.map { this.toUni(d = it) }, - admin_purged_posts = d.admin_purged_posts.map { this.toUni(d = it) }, - admin_purged_comments = d.admin_purged_comments.map { this.toUni(d = it) }, - hidden_communities = d.hidden_communities.map { this.toUni(d = it) }, - ) - override fun toUni(d: X6DatatypesGetPersonDetailsResponse): LemmyapiDatatypesGetPersonDetailsResponse = LemmyapiDatatypesGetPersonDetailsResponse( person_view = this.toUni(d = d.person_view), site = d.site?.let { this.toUni(d = it) }, - comments = d.comments.map { this.toUni(d = it) }, - posts = d.posts.map { this.toUni(d = it) }, moderates = d.moderates.map { this.toUni(d = it) }, - ) - - override fun toUni(d: X6DatatypesGetPersonMentionsResponse): LemmyapiDatatypesGetPersonMentionsResponse = LemmyapiDatatypesGetPersonMentionsResponse( - mentions = d.mentions.map { this.toUni(d = it) }, + multi_communities_created = emptyList(), ) override fun toUni(d: X6DatatypesGetPostResponse): LemmyapiDatatypesGetPostResponse = @@ -842,24 +556,85 @@ internal class Transformer : MapperGenerator { cross_posts = d.cross_posts.map { this.toUni(d = it) }, ) - override fun toUni(d: X6DatatypesGetPostsResponse): LemmyapiDatatypesGetPostsResponse = - LemmyapiDatatypesGetPostsResponse( - posts = d.posts.map { this.toUni(d = it) }, - next_page = d.next_page, + fun toUni(d: X6DatatypesCommentReplyView): NotificationView = + NotificationView( + notification = Notification( + id = d.comment_reply.id, + recipient_id = d.comment_reply.recipient_id, + comment_id = d.comment_reply.comment_id, + read = d.comment_reply.read, + published_at = d.comment_reply.published, + kind = NotificationType.Reply, + post_id = d.post.id, + creator_id = d.creator.id, + ), + data = this.toUniCV(d), ) - override fun toUni(d: X6DatatypesGetRepliesResponse): LemmyapiDatatypesGetRepliesResponse = - LemmyapiDatatypesGetRepliesResponse( - replies = d.replies.map { this.toUni(d = it) }, + fun toUniCV(d: X6DatatypesCommentReplyView): LemmyapiDatatypesCommentView = + LemmyapiDatatypesCommentView( + comment = this.toUni(d = d.comment, d.counts), + creator = this.toUni(d = d.creator), + post = this.toUni(d = d.post, counts = X6DatatypesPostAggregates(-1, -1, -1, -1, -1, "", "")), + community = this.toUni(d = d.community, counts = X6DatatypesCommunityAggregates(-1, -1, -1, -1, "", -1, -1, -1, -1, -1)), + creator_banned_from_community = d.creator_banned_from_community, + creator_is_moderator = d.creator_is_moderator, + creator_is_admin = d.creator_is_admin, + tags = emptyList(), + creator_banned = d.creator.banned, + creator_ban_expires_at = d.creator.ban_expires, + can_mod = false, + person_actions = PersonActions(if (d.creator_blocked) "" else null), + comment_actions = CommentActions(d.my_vote, null, if (d.saved) "" else null), + community_actions = CommunityActions(null, CommunityFollowerState.from(d.subscribed)), + ) + + fun toUni(d: X6DatatypesPersonMentionView): NotificationView = + NotificationView( + notification = Notification( + id = d.person_mention.id, + recipient_id = d.person_mention.recipient_id, + comment_id = d.person_mention.comment_id, + read = d.person_mention.read, + published_at = d.person_mention.published, + kind = NotificationType.Mention, + post_id = d.post.id, + creator_id = d.creator.id, + ), + data = this.toUniPV(d), + ) + + fun toUniPV(d: X6DatatypesPersonMentionView): LemmyapiDatatypesCommentView = + LemmyapiDatatypesCommentView( + comment = this.toUni(d = d.comment, d.counts), + creator = this.toUni(d = d.creator), + post = this.toUni(d = d.post, counts = X6DatatypesPostAggregates(-1, -1, -1, -1, -1, "", "")), + community = this.toUni(d = d.community, counts = X6DatatypesCommunityAggregates(-1, -1, -1, -1, "", -1, -1, -1, -1, -1)), + creator_banned_from_community = d.creator_banned_from_community, + creator_is_moderator = d.creator_is_moderator, + creator_is_admin = d.creator_is_admin, + tags = emptyList(), + creator_banned = d.creator.banned, + creator_ban_expires_at = d.creator.ban_expires, + can_mod = false, + person_actions = PersonActions(if (d.creator_blocked) "" else null), + comment_actions = CommentActions(d.my_vote, null, if (d.saved) "" else null), + community_actions = CommunityActions(null, CommunityFollowerState.from(d.subscribed)), + ) + + fun toUniPMV(d: X6DatatypesPrivateMessageView): NotificationView = + NotificationView( + notification = Notification( + id = d.private_message.id, + recipient_id = d.private_message.recipient_id, + read = d.private_message.read, + published_at = d.private_message.published, + kind = NotificationType.PrivateMessage, + creator_id = d.creator.id, + ), + data = this.toUni(d), ) - override fun toUni(d: X6DatatypesGetReportCountResponse): LemmyapiDatatypesGetReportCountResponse = LemmyapiDatatypesGetReportCountResponse( - community_id = d.community_id, - comment_reports = d.comment_reports, - post_reports = d.post_reports, - private_message_reports = d.private_message_reports, - ) - override fun toUni(d: X6DatatypesGetSiteMetadataResponse): LemmyapiDatatypesGetSiteMetadataResponse = LemmyapiDatatypesGetSiteMetadataResponse( metadata = this.toUni(d = d.metadata), ) @@ -869,23 +644,14 @@ internal class Transformer : MapperGenerator { site_view = this.toUni(d = d.site_view), admins = d.admins.map { this.toUni(d = it) }, version = d.version, - my_user = d.my_user?.let { this.toUni(d = it) }, all_languages = d.all_languages.map { this.toUni(d = it) }, discussion_languages = d.discussion_languages, - taglines = d.taglines.map { this.toUni(d = it) }, - custom_emojis = d.custom_emojis.map { this.toUni(d = it) }, blocked_urls = d.blocked_urls.map { this.toUni(d = it) }, - ) - - override fun toUni(d: X6DatatypesGetUnreadCountResponse): LemmyapiDatatypesGetUnreadCountResponse = LemmyapiDatatypesGetUnreadCountResponse( - replies = d.replies, - mentions = d.mentions, - private_messages = d.private_messages, - ) - - override fun toUni(d: X6DatatypesGetUnreadRegistrationApplicationCountResponse): LemmyapiDatatypesGetUnreadRegistrationApplicationCountResponse = - LemmyapiDatatypesGetUnreadRegistrationApplicationCountResponse( - registration_applications = d.registration_applications, + tagline = if (d.taglines.isEmpty()) null else this.toUni(d = d.taglines.random()), + oauth_providers = emptyList(), + admin_oauth_providers = emptyList(), + active_plugins = emptyList(), + captcha_enabled = false, ) override fun toUni(d: X6DatatypesImageDetails): LemmyapiDatatypesImageDetails = @@ -899,29 +665,12 @@ internal class Transformer : MapperGenerator { override fun toUni(d: X6DatatypesInstance): LemmyapiDatatypesInstance = LemmyapiDatatypesInstance( id = d.id, domain = d.domain, - published = d.published, - updated = d.updated, + published_at = d.published, + updated_at = d.updated, software = d.software, version = d.version, ) - override fun toUni(d: X6DatatypesInstanceBlockView): LemmyapiDatatypesInstanceBlockView = - LemmyapiDatatypesInstanceBlockView( - person = this.toUni(d = d.person), - instance = this.toUni(d = d.instance), - site = d.site?.let { this.toUni(d = it) }, - ) - - override fun toUni(d: X6DatatypesInstanceWithFederationState): LemmyapiDatatypesInstanceWithFederationState = LemmyapiDatatypesInstanceWithFederationState( - id = d.id, - domain = d.domain, - published = d.published, - updated = d.updated, - software = d.software, - version = d.version, - federation_state = d.federation_state?.let { this.toUni(d = it) }, - ) - override fun toUni(d: X6DatatypesLanguage): LemmyapiDatatypesLanguage = LemmyapiDatatypesLanguage( id = d.id, code = d.code, @@ -937,48 +686,12 @@ internal class Transformer : MapperGenerator { content_type = d.content_type, ) - override fun toUni(d: X6DatatypesListCommentLikesResponse): LemmyapiDatatypesListCommentLikesResponse = LemmyapiDatatypesListCommentLikesResponse( - comment_likes = d.comment_likes.map { this.toUni(d = it) }, - ) - - override fun toUni(d: X6DatatypesListCommentReportsResponse): LemmyapiDatatypesListCommentReportsResponse = LemmyapiDatatypesListCommentReportsResponse( - comment_reports = d.comment_reports.map { this.toUni(d = it) }, - ) - - override fun toUni(d: X6DatatypesListCommunitiesResponse): LemmyapiDatatypesListCommunitiesResponse = LemmyapiDatatypesListCommunitiesResponse( - communities = d.communities.map { this.toUni(d = it) }, - ) - - override fun toUni(d: X6DatatypesListMediaResponse): LemmyapiDatatypesListMediaResponse = - LemmyapiDatatypesListMediaResponse( - images = d.images.map { this.toUni(d = it) }, - ) - - override fun toUni(d: X6DatatypesListPostLikesResponse): LemmyapiDatatypesListPostLikesResponse = - LemmyapiDatatypesListPostLikesResponse( - post_likes = d.post_likes.map { this.toUni(d = it) }, - ) - - override fun toUni(d: X6DatatypesListPostReportsResponse): LemmyapiDatatypesListPostReportsResponse = LemmyapiDatatypesListPostReportsResponse( - post_reports = d.post_reports.map { this.toUni(d = it) }, - ) - - override fun toUni(d: X6DatatypesListPrivateMessageReportsResponse): LemmyapiDatatypesListPrivateMessageReportsResponse = - LemmyapiDatatypesListPrivateMessageReportsResponse( - private_message_reports = d.private_message_reports.map { this.toUni(d = it) }, - ) - - override fun toUni(d: X6DatatypesListRegistrationApplicationsResponse): LemmyapiDatatypesListRegistrationApplicationsResponse = - LemmyapiDatatypesListRegistrationApplicationsResponse( - registration_applications = d.registration_applications.map { this.toUni(d = it) }, - ) - override fun toUni(d: X6DatatypesLocalImage): LemmyapiDatatypesLocalImage = LemmyapiDatatypesLocalImage( - local_user_id = d.local_user_id, + person_id = d.local_user_id, pictrs_alias = d.pictrs_alias, pictrs_delete_token = d.pictrs_delete_token, - published = d.published, + published_at = d.published, ) override fun toUni(d: X6DatatypesLocalImageView): LemmyapiDatatypesLocalImageView = @@ -987,111 +700,134 @@ internal class Transformer : MapperGenerator { person = this.toUni(d = d.person), ) - override fun toUni(d: X6DatatypesLocalSite): LemmyapiDatatypesLocalSite = + override fun toUni(d: X6DatatypesLocalSite, counts: X6DatatypesSiteAggregates): LemmyapiDatatypesLocalSite = LemmyapiDatatypesLocalSite( id = d.id, site_id = d.site_id, site_setup = d.site_setup, - enable_downvotes = d.enable_downvotes, - enable_nsfw = d.enable_nsfw, community_creation_admin_only = d.community_creation_admin_only, - require_email_verification = d.require_email_verification, + email_verification_required = d.require_email_verification, application_question = d.application_question, private_instance = d.private_instance, default_theme = d.default_theme, - default_post_listing_type = d.default_post_listing_type, + default_post_listing_type = d.default_post_listing_type.toUni(), legal_information = d.legal_information, - hide_modlog_mod_names = d.hide_modlog_mod_names, application_email_admins = d.application_email_admins, slur_filter_regex = d.slur_filter_regex, - actor_name_max_length = d.actor_name_max_length, federation_enabled = d.federation_enabled, - captcha_enabled = d.captcha_enabled, - captcha_difficulty = d.captcha_difficulty, - published = d.published, - updated = d.updated, - registration_mode = d.registration_mode, + published_at = d.published, + updated_at = d.updated, + registration_mode = d.registration_mode.toUni(), reports_email_admins = d.reports_email_admins, federation_signed_fetch = d.federation_signed_fetch, - default_post_listing_mode = d.default_post_listing_mode, - default_sort_type = d.default_sort_type, + default_post_listing_mode = d.default_post_listing_mode.toUni(), + default_post_sort_type = d.default_sort_type.toUni(), + nsfw_content_disallowed = !d.enable_nsfw, + oauth_registration = false, + email_notifications_disabled = false, + suggested_multi_community_id = null, + default_comment_sort_type = CommentSortType.Hot, + default_post_time_range_seconds = null, + post_upvotes = FederationMode.All, + post_downvotes = if (d.enable_downvotes) FederationMode.All else FederationMode.Disable, + comment_upvotes = FederationMode.All, + comment_downvotes = if (d.enable_downvotes) FederationMode.All else FederationMode.Disable, + users = counts.users, + posts = counts.posts, + comments = counts.comments, + communities = counts.communities, + users_active_day = counts.users_active_day, + users_active_week = counts.users_active_week, + users_active_month = counts.users_active_month, + users_active_half_year = counts.users_active_half_year, + default_items_per_page = 20, + image_mode = ImageMode.StoreLinkPreviews, + image_upload_timeout_seconds = 0, + image_max_thumbnail_size = 0, + image_max_avatar_size = 0, + image_max_banner_size = 0, + image_max_upload_size = 0, + image_allow_video_uploads = false, + image_upload_disabled = false, + max_invites_per_user_allowed = 0, ) override fun toUni(d: X6DatatypesLocalSiteRateLimit): LemmyapiDatatypesLocalSiteRateLimit = LemmyapiDatatypesLocalSiteRateLimit( local_site_id = d.local_site_id, - message = d.message, - message_per_second = d.message_per_second, - post = d.post, - post_per_second = d.post_per_second, - register = d.register, - register_per_second = d.register_per_second, - image = d.image, - image_per_second = d.image_per_second, - comment = d.comment, - comment_per_second = d.comment_per_second, - search = d.search, - search_per_second = d.search_per_second, - published = d.published, - updated = d.updated, - import_user_settings = d.import_user_settings, - import_user_settings_per_second = d.import_user_settings_per_second, + message_max_requests = d.message, + message_interval_seconds = d.message_per_second, + post_max_requests = d.post, + post_interval_seconds = d.post_per_second, + register_max_requests = d.register, + register_interval_seconds = d.register_per_second, + image_max_requests = d.image, + image_interval_seconds = d.image_per_second, + comment_max_requests = d.comment, + comment_interval_seconds = d.comment_per_second, + search_max_requests = d.search, + search_interval_seconds = d.search_per_second, + published_at = d.published, + updated_at = d.updated, + import_user_settings_max_requests = d.import_user_settings, + import_user_settings_interval_seconds = d.import_user_settings_per_second, ) override fun toUni(d: X6DatatypesLocalSiteUrlBlocklist): LemmyapiDatatypesLocalSiteUrlBlocklist = LemmyapiDatatypesLocalSiteUrlBlocklist( id = d.id, url = d.url, - published = d.published, - updated = d.updated, + published_at = d.published, + updated_at = d.updated, ) - override fun toUni(d: X6DatatypesLocalUser): LemmyapiDatatypesLocalUser = + override fun toUni(d: X6DatatypesLocalUser, e: X6DatatypesLocalUserVoteDisplayMode): LemmyapiDatatypesLocalUser = LemmyapiDatatypesLocalUser( id = d.id, person_id = d.person_id, email = d.email, show_nsfw = d.show_nsfw, theme = d.theme, - default_sort_type = d.default_sort_type, - default_listing_type = d.default_listing_type, + default_post_sort_type = d.default_sort_type.toUni(), + default_listing_type = d.default_listing_type.toUni(), interface_language = d.interface_language, show_avatars = d.show_avatars, send_notifications_to_email = d.send_notifications_to_email, - show_scores = d.show_scores, show_bot_accounts = d.show_bot_accounts, show_read_posts = d.show_read_posts, email_verified = d.email_verified, accepted_application = d.accepted_application, open_links_in_new_tab = d.open_links_in_new_tab, blur_nsfw = d.blur_nsfw, - auto_expand = d.auto_expand, infinite_scroll_enabled = d.infinite_scroll_enabled, admin = d.admin, - post_listing_mode = d.post_listing_mode, - totp_2fa_enabled = d.totp_2fa_enabled, - enable_keyboard_navigation = d.enable_keyboard_navigation, - enable_animated_images = d.enable_animated_images, + post_listing_mode = d.post_listing_mode.toUni(), + animated_images_enabled = d.enable_animated_images, collapse_bot_comments = d.collapse_bot_comments, - last_donation_notification = "", + last_donation_notification_at = "", + show_score = e.score, + show_upvotes = e.upvotes, + show_person_votes = e.score, + show_upvote_percentage = e.upvote_percentage, + show_downvotes = if (e.downvotes) VoteShow.Show else VoteShow.Hide, + hide_posts_with_media = false, + show_media = true, + private_messages_enabled = true, + default_comment_sort_type = CommentSortType.Hot, + auto_mark_fetched_posts_as_read = false, + default_post_time_range_seconds = null, + default_items_per_page = 20, + totp_2fa_enabled = d.totp_2fa_enabled, ) override fun toUni(d: X6DatatypesLocalUserView): LemmyapiDatatypesLocalUserView = LemmyapiDatatypesLocalUserView( - local_user = this.toUni(d = d.local_user), - local_user_vote_display_mode = this.toUni(d = d.local_user_vote_display_mode), - person = this.toUni(d = d.person), - counts = this.toUni(d = d.counts), + local_user = this.toUni(d = d.local_user, e = d.local_user_vote_display_mode), + person = this.toUni(d = d.person, d.counts), + banned = d.person.banned, + ban_expires_at = d.person.ban_expires, ) - override fun toUni(d: X6DatatypesLocalUserVoteDisplayMode): LemmyapiDatatypesLocalUserVoteDisplayMode = LemmyapiDatatypesLocalUserVoteDisplayMode( - local_user_id = d.local_user_id, - score = d.score, - upvotes = d.upvotes, - downvotes = d.downvotes, - upvote_percentage = d.upvote_percentage, - ) - override fun toUni(d: X6DatatypesLoginResponse): LemmyapiDatatypesLoginResponse = LemmyapiDatatypesLoginResponse( jwt = d.jwt, @@ -1102,298 +838,56 @@ internal class Transformer : MapperGenerator { override fun toUni(d: X6DatatypesLoginToken): LemmyapiDatatypesLoginToken = LemmyapiDatatypesLoginToken( user_id = d.user_id, - published = d.published, + published_at = d.published, ip = d.ip, user_agent = d.user_agent, ) - override fun toUni(d: X6DatatypesModAdd): LemmyapiDatatypesModAdd = LemmyapiDatatypesModAdd( - id = d.id, - mod_person_id = d.mod_person_id, - other_person_id = d.other_person_id, - removed = d.removed, - when_ = d.when_, - ) - - override fun toUni(d: X6DatatypesModAddCommunity): LemmyapiDatatypesModAddCommunity = - LemmyapiDatatypesModAddCommunity( - id = d.id, - mod_person_id = d.mod_person_id, - other_person_id = d.other_person_id, - community_id = d.community_id, - removed = d.removed, - when_ = d.when_, - ) - - override fun toUni(d: X6DatatypesModAddCommunityView): LemmyapiDatatypesModAddCommunityView = - LemmyapiDatatypesModAddCommunityView( - mod_add_community = this.toUni(d = d.mod_add_community), - moderator = d.moderator?.let { this.toUni(d = it) }, - community = this.toUni(d = d.community), - modded_person = this.toUni(d = d.modded_person), - ) - - override fun toUni(d: X6DatatypesModAddView): LemmyapiDatatypesModAddView = - LemmyapiDatatypesModAddView( - mod_add = this.toUni(d = d.mod_add), - moderator = d.moderator?.let { this.toUni(d = it) }, - modded_person = this.toUni(d = d.modded_person), - ) - - override fun toUni(d: X6DatatypesModBan): LemmyapiDatatypesModBan = LemmyapiDatatypesModBan( - id = d.id, - mod_person_id = d.mod_person_id, - other_person_id = d.other_person_id, - reason = d.reason, - banned = d.banned, - expires = d.expires, - when_ = d.when_, - ) - - override fun toUni(d: X6DatatypesModBanFromCommunity): LemmyapiDatatypesModBanFromCommunity = - LemmyapiDatatypesModBanFromCommunity( - id = d.id, - mod_person_id = d.mod_person_id, - other_person_id = d.other_person_id, - community_id = d.community_id, - reason = d.reason, - banned = d.banned, - expires = d.expires, - when_ = d.when_, - ) - - override fun toUni(d: X6DatatypesModBanFromCommunityView): LemmyapiDatatypesModBanFromCommunityView = LemmyapiDatatypesModBanFromCommunityView( - mod_ban_from_community = this.toUni(d = d.mod_ban_from_community), - moderator = d.moderator?.let { this.toUni(d = it) }, - community = this.toUni(d = d.community), - banned_person = this.toUni(d = d.banned_person), - ) - - override fun toUni(d: X6DatatypesModBanView): LemmyapiDatatypesModBanView = - LemmyapiDatatypesModBanView( - mod_ban = this.toUni(d = d.mod_ban), - moderator = d.moderator?.let { this.toUni(d = it) }, - banned_person = this.toUni(d = d.banned_person), - ) - - override fun toUni(d: X6DatatypesModFeaturePost): LemmyapiDatatypesModFeaturePost = - LemmyapiDatatypesModFeaturePost( - id = d.id, - mod_person_id = d.mod_person_id, - post_id = d.post_id, - featured = d.featured, - when_ = d.when_, - is_featured_community = d.is_featured_community, - ) - - override fun toUni(d: X6DatatypesModFeaturePostView): LemmyapiDatatypesModFeaturePostView = - LemmyapiDatatypesModFeaturePostView( - mod_feature_post = this.toUni(d = d.mod_feature_post), - moderator = d.moderator?.let { this.toUni(d = it) }, - post = this.toUni(d = d.post), - community = this.toUni(d = d.community), - ) - - override fun toUni(d: X6DatatypesModHideCommunity): LemmyapiDatatypesModHideCommunity = - LemmyapiDatatypesModHideCommunity( - id = d.id, - community_id = d.community_id, - mod_person_id = d.mod_person_id, - when_ = d.when_, - reason = d.reason, - hidden = d.hidden, - ) - - override fun toUni(d: X6DatatypesModHideCommunityView): LemmyapiDatatypesModHideCommunityView = - LemmyapiDatatypesModHideCommunityView( - mod_hide_community = this.toUni(d = d.mod_hide_community), - admin = d.admin?.let { this.toUni(d = it) }, - community = this.toUni(d = d.community), - ) - - override fun toUni(d: X6DatatypesModLockPost): LemmyapiDatatypesModLockPost = - LemmyapiDatatypesModLockPost( - id = d.id, - mod_person_id = d.mod_person_id, - post_id = d.post_id, - locked = d.locked, - when_ = d.when_, - ) - - override fun toUni(d: X6DatatypesModLockPostView): LemmyapiDatatypesModLockPostView = - LemmyapiDatatypesModLockPostView( - mod_lock_post = this.toUni(d = d.mod_lock_post), - moderator = d.moderator?.let { this.toUni(d = it) }, - post = this.toUni(d = d.post), - community = this.toUni(d = d.community), - ) - - override fun toUni(d: X6DatatypesModlogListParams): LemmyapiDatatypesModlogListParams = - LemmyapiDatatypesModlogListParams( - community_id = d.community_id, - mod_person_id = d.mod_person_id, - other_person_id = d.other_person_id, - post_id = d.post_id, - comment_id = d.comment_id, - page = d.page, - limit = d.limit, - hide_modlog_names = d.hide_modlog_names, - ) - - override fun toUni(d: X6DatatypesModRemoveComment): LemmyapiDatatypesModRemoveComment = - LemmyapiDatatypesModRemoveComment( - id = d.id, - mod_person_id = d.mod_person_id, - comment_id = d.comment_id, - reason = d.reason, - removed = d.removed, - when_ = d.when_, - ) - - override fun toUni(d: X6DatatypesModRemoveCommentView): LemmyapiDatatypesModRemoveCommentView = - LemmyapiDatatypesModRemoveCommentView( - mod_remove_comment = this.toUni(d = d.mod_remove_comment), - moderator = d.moderator?.let { this.toUni(d = it) }, - comment = this.toUni(d = d.comment), - commenter = this.toUni(d = d.commenter), - post = this.toUni(d = d.post), - community = this.toUni(d = d.community), - ) - - override fun toUni(d: X6DatatypesModRemoveCommunity): LemmyapiDatatypesModRemoveCommunity = - LemmyapiDatatypesModRemoveCommunity( - id = d.id, - mod_person_id = d.mod_person_id, - community_id = d.community_id, - reason = d.reason, - removed = d.removed, - when_ = d.when_, - ) - - override fun toUni(d: X6DatatypesModRemoveCommunityView): LemmyapiDatatypesModRemoveCommunityView = LemmyapiDatatypesModRemoveCommunityView( - mod_remove_community = this.toUni(d = d.mod_remove_community), - moderator = d.moderator?.let { this.toUni(d = it) }, - community = this.toUni(d = d.community), - ) - - override fun toUni(d: X6DatatypesModRemovePost): LemmyapiDatatypesModRemovePost = - LemmyapiDatatypesModRemovePost( - id = d.id, - mod_person_id = d.mod_person_id, - post_id = d.post_id, - reason = d.reason, - removed = d.removed, - when_ = d.when_, - ) - - override fun toUni(d: X6DatatypesModRemovePostView): LemmyapiDatatypesModRemovePostView = - LemmyapiDatatypesModRemovePostView( - mod_remove_post = this.toUni(d = d.mod_remove_post), - moderator = d.moderator?.let { this.toUni(d = it) }, - post = this.toUni(d = d.post), - community = this.toUni(d = d.community), - ) - - override fun toUni(d: X6DatatypesModTransferCommunity): LemmyapiDatatypesModTransferCommunity = - LemmyapiDatatypesModTransferCommunity( - id = d.id, - mod_person_id = d.mod_person_id, - other_person_id = d.other_person_id, - community_id = d.community_id, - when_ = d.when_, - ) - - override fun toUni(d: X6DatatypesModTransferCommunityView): LemmyapiDatatypesModTransferCommunityView = LemmyapiDatatypesModTransferCommunityView( - mod_transfer_community = this.toUni(d = d.mod_transfer_community), - moderator = d.moderator?.let { this.toUni(d = it) }, - community = this.toUni(d = d.community), - modded_person = this.toUni(d = d.modded_person), - ) - override fun toUni(d: X6DatatypesMyUserInfo): LemmyapiDatatypesMyUserInfo = LemmyapiDatatypesMyUserInfo( local_user_view = this.toUni(d = d.local_user_view), follows = d.follows.map { this.toUni(d = it) }, moderates = d.moderates.map { this.toUni(d = it) }, - community_blocks = d.community_blocks.map { this.toUni(d = it) }, - instance_blocks = d.instance_blocks.map { this.toUni(d = it) }, - person_blocks = d.person_blocks.map { this.toUni(d = it) }, + community_blocks = d.community_blocks.map { this.toUni(d = it.community, counts = X6DatatypesCommunityAggregates(-1, -1, -1, -1, "", -1, -1, -1, -1, -1)) }, + instance_communities_blocks = d.instance_blocks.map { this.toUni(d = it.instance) }, + instance_persons_blocks = emptyList(), + person_blocks = d.person_blocks.map { this.toUni(d = it.target) }, discussion_languages = d.discussion_languages, + multi_community_follows = emptyList(), ) - override fun toUni(d: X6DatatypesPerson): LemmyapiDatatypesPerson = LemmyapiDatatypesPerson( + fun toUni(d: X6DatatypesPerson) = this.toUni(d, X6DatatypesPersonAggregates(-1, -1, -1)) + + override fun toUni(d: X6DatatypesPerson, counts: X6DatatypesPersonAggregates): LemmyapiDatatypesPerson = LemmyapiDatatypesPerson( id = d.id, name = d.name, display_name = d.display_name, avatar = d.avatar, - banned = d.banned, - published = d.published, - updated = d.updated, - actor_id = d.actor_id, + published_at = d.published, + updated_at = d.updated, + ap_id = d.actor_id, bio = d.bio, local = d.local, banner = d.banner, deleted = d.deleted, matrix_user_id = d.matrix_user_id, bot_account = d.bot_account, - ban_expires = d.ban_expires, instance_id = d.instance_id, + comment_count = counts.comment_count, + post_count = counts.post_count, + last_refreshed_at = "", ) - override fun toUni(d: X6DatatypesPersonAggregates): LemmyapiDatatypesPersonAggregates = - LemmyapiDatatypesPersonAggregates( - person_id = d.person_id, - post_count = d.post_count, - comment_count = d.comment_count, - ) - - override fun toUni(d: X6DatatypesPersonBlockView): LemmyapiDatatypesPersonBlockView = - LemmyapiDatatypesPersonBlockView( - person = this.toUni(d = d.person), - target = this.toUni(d = d.target), - ) - - override fun toUni(d: X6DatatypesPersonMention): LemmyapiDatatypesPersonMention = - LemmyapiDatatypesPersonMention( - id = d.id, - recipient_id = d.recipient_id, - comment_id = d.comment_id, - read = d.read, - published = d.published, - ) - - override fun toUni(d: X6DatatypesPersonMentionResponse): LemmyapiDatatypesPersonMentionResponse = - LemmyapiDatatypesPersonMentionResponse( - person_mention_view = this.toUni(d = d.person_mention_view), - ) - - override fun toUni(d: X6DatatypesPersonMentionView): LemmyapiDatatypesPersonMentionView = - LemmyapiDatatypesPersonMentionView( - person_mention = this.toUni(d = d.person_mention), - comment = this.toUni(d = d.comment), - creator = this.toUni(d = d.creator), - post = this.toUni(d = d.post), - community = this.toUni(d = d.community), - recipient = this.toUni(d = d.recipient), - counts = this.toUni(d = d.counts), - creator_banned_from_community = d.creator_banned_from_community, - banned_from_community = d.banned_from_community, - creator_is_moderator = d.creator_is_moderator, - creator_is_admin = d.creator_is_admin, - subscribed = d.subscribed, - saved = d.saved, - creator_blocked = d.creator_blocked, - my_vote = d.my_vote, - ) - override fun toUni(d: X6DatatypesPersonView): LemmyapiDatatypesPersonView = LemmyapiDatatypesPersonView( - person = this.toUni(d = d.person), - counts = this.toUni(d = d.counts), + person = this.toUni(d = d.person, d.counts), is_admin = d.is_admin, + person_actions = null, + banned = d.person.banned, + ban_expires_at = d.person.ban_expires, ) - override fun toUni(d: X6DatatypesPost): LemmyapiDatatypesPost = LemmyapiDatatypesPost( + override fun toUni(d: X6DatatypesPost, counts: X6DatatypesPostAggregates): LemmyapiDatatypesPost = LemmyapiDatatypesPost( id = d.id, name = d.name, url = d.url, @@ -1402,8 +896,8 @@ internal class Transformer : MapperGenerator { community_id = d.community_id, removed = d.removed, locked = d.locked, - published = d.published, - updated = d.updated, + published_at = d.published, + updated_at = d.updated, deleted = d.deleted, nsfw = d.nsfw, embed_title = d.embed_title, @@ -1417,19 +911,16 @@ internal class Transformer : MapperGenerator { featured_local = d.featured_local, url_content_type = d.url_content_type, alt_text = d.alt_text, + comments = counts.comments, + score = counts.score, + upvotes = counts.upvotes, + downvotes = counts.downvotes, + newest_comment_time_at = counts.newest_comment_time, + report_count = -1, + unresolved_report_count = -1, + federation_pending = false, ) - override fun toUni(d: X6DatatypesPostAggregates): LemmyapiDatatypesPostAggregates = - LemmyapiDatatypesPostAggregates( - post_id = d.post_id, - comments = d.comments, - score = d.score, - upvotes = d.upvotes, - downvotes = d.downvotes, - published = d.published, - newest_comment_time = d.newest_comment_time, - ) - override fun toUni(d: X6DatatypesPostReport): LemmyapiDatatypesPostReport = LemmyapiDatatypesPostReport( id = d.id, @@ -1441,8 +932,9 @@ internal class Transformer : MapperGenerator { reason = d.reason, resolved = d.resolved, resolver_id = d.resolver_id, - published = d.published, - updated = d.updated, + published_at = d.published, + updated_at = d.updated, + violates_instance_rules = false, ) override fun toUni(d: X6DatatypesPostReportResponse): LemmyapiDatatypesPostReportResponse = @@ -1453,22 +945,18 @@ internal class Transformer : MapperGenerator { override fun toUni(d: X6DatatypesPostReportView): LemmyapiDatatypesPostReportView = LemmyapiDatatypesPostReportView( post_report = this.toUni(d = d.post_report), - post = this.toUni(d = d.post), - community = this.toUni(d = d.community), + post = this.toUni(d = d.post, d.counts), + community = this.toUni(d = d.community, counts = X6DatatypesCommunityAggregates(-1, -1, -1, -1, "", -1, -1, -1, -1, -1)), creator = this.toUni(d = d.creator), post_creator = this.toUni(d = d.post_creator), + post_actions = PostActions(toAt(d.read), null, d.counts.comments - d.unread_comments, toAt(d.saved), null, d.my_vote, toAt(d.hidden)), + person_actions = PersonActions(toAt(d.creator_blocked)), + community_actions = CommunityActions(null, CommunityFollowerState.from(d.subscribed)), + resolver = d.resolver?.let { this.toUni(d = it) }, creator_banned_from_community = d.creator_banned_from_community, + creator_banned = d.creator.banned, creator_is_moderator = d.creator_is_moderator, creator_is_admin = d.creator_is_admin, - subscribed = d.subscribed, - saved = d.saved, - read = d.read, - hidden = d.hidden, - creator_blocked = d.creator_blocked, - my_vote = d.my_vote, - unread_comments = d.unread_comments, - counts = this.toUni(d = d.counts), - resolver = d.resolver?.let { this.toUni(d = it) }, ) override fun toUni(d: X6DatatypesPostResponse): LemmyapiDatatypesPostResponse = @@ -1477,22 +965,20 @@ internal class Transformer : MapperGenerator { ) override fun toUni(d: X6DatatypesPostView): LemmyapiDatatypesPostView = LemmyapiDatatypesPostView( - post = this.toUni(d = d.post), + post = this.toUni(d = d.post, d.counts), creator = this.toUni(d = d.creator), - community = this.toUni(d = d.community), + community = this.toUni(d = d.community, counts = X6DatatypesCommunityAggregates(-1, -1, -1, -1, "", -1, -1, -1, -1, -1)), + image_details = d.image_details?.let { this.toUni(d = it) }, + post_actions = PostActions(toAt(d.read), null, d.counts.comments - d.unread_comments, toAt(d.saved), null, d.my_vote, toAt(d.hidden)), + person_actions = PersonActions(toAt(d.creator_blocked)), + community_actions = CommunityActions(null, CommunityFollowerState.from(d.subscribed)), + can_mod = false, + tags = emptyList(), creator_banned_from_community = d.creator_banned_from_community, - banned_from_community = d.banned_from_community, + creator_banned = d.creator.banned, + creator_ban_expires_at = d.creator.ban_expires, creator_is_moderator = d.creator_is_moderator, creator_is_admin = d.creator_is_admin, - counts = this.toUni(d = d.counts), - subscribed = d.subscribed, - saved = d.saved, - read = d.read, - hidden = d.hidden, - creator_blocked = d.creator_blocked, - my_vote = d.my_vote, - unread_comments = d.unread_comments, - image_details = d.image_details?.let { this.toUni(d = it) }, ) override fun toUni(d: X6DatatypesPrivateMessage): LemmyapiDatatypesPrivateMessage = @@ -1503,10 +989,12 @@ internal class Transformer : MapperGenerator { content = d.content, deleted = d.deleted, read = d.read, - published = d.published, - updated = d.updated, + published_at = d.published, + updated_at = d.updated, ap_id = d.ap_id, local = d.local, + removed = false, + deleted_by_recipient = false, ) override fun toUni(d: X6DatatypesPrivateMessageReport): LemmyapiDatatypesPrivateMessageReport = @@ -1518,8 +1006,8 @@ internal class Transformer : MapperGenerator { reason = d.reason, resolved = d.resolved, resolver_id = d.resolver_id, - published = d.published, - updated = d.updated, + published_at = d.published, + updated_at = d.updated, ) override fun toUni(d: X6DatatypesPrivateMessageReportResponse): LemmyapiDatatypesPrivateMessageReportResponse = LemmyapiDatatypesPrivateMessageReportResponse( @@ -1532,16 +1020,15 @@ internal class Transformer : MapperGenerator { private_message_creator = this.toUni(d = d.private_message_creator), creator = this.toUni(d = d.creator), resolver = d.resolver?.let { this.toUni(d = it) }, + creator_is_admin = false, + creator_banned = d.creator.banned, + creator_ban_expires_at = d.creator.ban_expires, ) override fun toUni(d: X6DatatypesPrivateMessageResponse): LemmyapiDatatypesPrivateMessageResponse = LemmyapiDatatypesPrivateMessageResponse( private_message_view = this.toUni(d = d.private_message_view), ) - override fun toUni(d: X6DatatypesPrivateMessagesResponse): LemmyapiDatatypesPrivateMessagesResponse = LemmyapiDatatypesPrivateMessagesResponse( - private_messages = d.private_messages.map { this.toUni(d = it) }, - ) - override fun toUni(d: X6DatatypesPrivateMessageView): LemmyapiDatatypesPrivateMessageView = LemmyapiDatatypesPrivateMessageView( private_message = this.toUni(d = d.private_message), @@ -1552,10 +1039,9 @@ internal class Transformer : MapperGenerator { override fun toUni(d: X6DatatypesReadableFederationState): LemmyapiDatatypesReadableFederationState = LemmyapiDatatypesReadableFederationState( instance_id = d.instance_id, last_successful_id = d.last_successful_id, - last_successful_published_time = d.last_successful_published_time, + last_successful_published_time_at = d.last_successful_published_time, fail_count = d.fail_count, - last_retry = d.last_retry, - next_retry = d.next_retry, + last_retry_at = d.last_retry, ) override fun toUni(d: X6DatatypesRegistrationApplication): LemmyapiDatatypesRegistrationApplication = LemmyapiDatatypesRegistrationApplication( @@ -1564,7 +1050,7 @@ internal class Transformer : MapperGenerator { answer = d.answer, admin_id = d.admin_id, deny_reason = d.deny_reason, - published = d.published, + published_at = d.published, ) override fun toUni(d: X6DatatypesRegistrationApplicationResponse): LemmyapiDatatypesRegistrationApplicationResponse = @@ -1574,76 +1060,69 @@ internal class Transformer : MapperGenerator { override fun toUni(d: X6DatatypesRegistrationApplicationView): LemmyapiDatatypesRegistrationApplicationView = LemmyapiDatatypesRegistrationApplicationView( registration_application = this.toUni(d = d.registration_application), - creator_local_user = this.toUni(d = d.creator_local_user), + creator_local_user = this.toUni(d = d.creator_local_user, e = X6DatatypesLocalUserVoteDisplayMode(-1, true, true, true, true)), creator = this.toUni(d = d.creator), admin = d.admin?.let { this.toUni(d = it) }, ) - override fun toUni(d: X6DatatypesResolveObjectResponse): LemmyapiDatatypesResolveObjectResponse = - LemmyapiDatatypesResolveObjectResponse( - comment = d.comment?.let { this.toUni(d = it) }, - post = d.post?.let { this.toUni(d = it) }, - community = d.community?.let { this.toUni(d = it) }, - person = d.person?.let { this.toUni(d = it) }, + override fun toUni(d: X6DatatypesResolveObjectResponse): LemmyapiDatatypesSearchResponse = + LemmyapiDatatypesSearchResponse( + resolve = when { + d.post != null -> toUni(d.post) + d.comment != null -> toUni(d.comment) + d.community != null -> toUni(d.community) + d.person != null -> toUni(d.person) + else -> null + }, + comments = emptyList(), + posts = emptyList(), + communities = emptyList(), + persons = emptyList(), + multi_communities = emptyList(), ) override fun toUni(d: X6DatatypesSearchResponse): LemmyapiDatatypesSearchResponse = LemmyapiDatatypesSearchResponse( - type_ = d.type_, - comments = d.comments.map { this.toUni(d = it) }, - posts = d.posts.map { this.toUni(d = it) }, - communities = d.communities.map { this.toUni(d = it) }, - users = d.users.map { this.toUni(d = it) }, + comments = d.comments.map(this@Transformer::toUni), + posts = d.posts.map(this@Transformer::toUni), + communities = d.communities.map(this@Transformer::toUni), + persons = d.users.map(this@Transformer::toUni), + multi_communities = emptyList(), ) override fun toUni(d: X6DatatypesSite): LemmyapiDatatypesSite = LemmyapiDatatypesSite( id = d.id, name = d.name, sidebar = d.sidebar, - published = d.published, - updated = d.updated, + published_at = d.published, + updated_at = d.updated, icon = d.icon, banner = d.banner, - description = d.description, - actor_id = d.actor_id, + summary = d.description, + ap_id = d.actor_id, last_refreshed_at = d.last_refreshed_at, inbox_url = d.inbox_url, instance_id = d.instance_id, content_warning = d.content_warning, ) - override fun toUni(d: X6DatatypesSiteAggregates): LemmyapiDatatypesSiteAggregates = - LemmyapiDatatypesSiteAggregates( - site_id = d.site_id, - users = d.users, - posts = d.posts, - comments = d.comments, - communities = d.communities, - users_active_day = d.users_active_day, - users_active_week = d.users_active_week, - users_active_month = d.users_active_month, - users_active_half_year = d.users_active_half_year, - ) - override fun toUni(d: X6DatatypesSiteResponse): LemmyapiDatatypesSiteResponse = LemmyapiDatatypesSiteResponse( site_view = this.toUni(d = d.site_view), - taglines = d.taglines.map { this.toUni(d = it) }, ) override fun toUni(d: X6DatatypesSiteView): LemmyapiDatatypesSiteView = LemmyapiDatatypesSiteView( site = this.toUni(d = d.site), - local_site = this.toUni(d = d.local_site), + local_site = this.toUni(d = d.local_site, counts = d.counts), local_site_rate_limit = this.toUni(d = d.local_site_rate_limit), - counts = this.toUni(d = d.counts), + instance = null, ) override fun toUni(d: X6DatatypesTagline): LemmyapiDatatypesTagline = LemmyapiDatatypesTagline( id = d.id, - local_site_id = d.local_site_id, content = d.content, - published = d.published, - updated = d.updated, + published_at = d.published, + updated_at = d.updated, ) override fun toUni(d: X6DatatypesUpdateTotpResponse): LemmyapiDatatypesUpdateTotpResponse = @@ -1653,6 +1132,7 @@ internal class Transformer : MapperGenerator { override fun toUni(d: X6DatatypesVoteView): LemmyapiDatatypesVoteView = LemmyapiDatatypesVoteView( creator = this.toUni(d = d.creator), + creator_banned = d.creator.banned, creator_banned_from_community = d.creator_banned_from_community, score = d.score, ) @@ -1680,17 +1160,17 @@ internal class Transformer : MapperGenerator { community_id = d.community_id, person_id = d.person_id, ban = d.ban, - remove_data = d.remove_data, + remove_data = d.remove_or_restore_data, reason = d.reason, - expires = d.expires, + expires = d.expires_at, ) override fun fromUni(d: LemmyapiDatatypesBanPerson): X6DatatypesBanPerson = X6DatatypesBanPerson( person_id = d.person_id, ban = d.ban, - remove_data = d.remove_data, + remove_data = d.remove_or_restore_data, reason = d.reason, - expires = d.expires, + expires = d.expires_at, ) override fun fromUni(d: LemmyapiDatatypesBlockCommunity): X6DatatypesBlockCommunity = @@ -1742,13 +1222,11 @@ internal class Transformer : MapperGenerator { X6DatatypesCreateCommunity( name = d.name, title = d.title, - description = d.description, - icon = d.icon, - banner = d.banner, + description = d.summary, nsfw = d.nsfw, posting_restricted_to_mods = d.posting_restricted_to_mods, discussion_languages = d.discussion_languages, - visibility = d.visibility, + visibility = V0CommunityVisibility.fromUniNullable(d.visibility), ) override fun fromUni(d: LemmyapiDatatypesCreateCustomEmoji): X6DatatypesCreateCustomEmoji = @@ -1800,46 +1278,45 @@ internal class Transformer : MapperGenerator { X6DatatypesCreateSite( name = d.name, sidebar = d.sidebar, - description = d.description, - icon = d.icon, - banner = d.banner, - enable_downvotes = d.enable_downvotes, - enable_nsfw = d.enable_nsfw, + description = d.summary, + enable_downvotes = when (d.post_downvotes) { + FederationMode.Local, FederationMode.All -> true + FederationMode.Disable -> false + null -> null + }, + enable_nsfw = if (d.nsfw_content_disallowed == null) null else !d.nsfw_content_disallowed, community_creation_admin_only = d.community_creation_admin_only, - require_email_verification = d.require_email_verification, + require_email_verification = d.email_verification_required, application_question = d.application_question, private_instance = d.private_instance, default_theme = d.default_theme, - default_post_listing_type = d.default_post_listing_type, - default_sort_type = d.default_sort_type, + default_post_listing_type = V0ListingType.fromUniNullable(d.default_post_listing_type), + default_sort_type = V0SortType.fromUniNullable(d.default_post_sort_type), legal_information = d.legal_information, application_email_admins = d.application_email_admins, - hide_modlog_mod_names = d.hide_modlog_mod_names, discussion_languages = d.discussion_languages, slur_filter_regex = d.slur_filter_regex, - actor_name_max_length = d.actor_name_max_length, - rate_limit_message = d.rate_limit_message, - rate_limit_message_per_second = d.rate_limit_message_per_second, - rate_limit_post = d.rate_limit_post, - rate_limit_post_per_second = d.rate_limit_post_per_second, - rate_limit_register = d.rate_limit_register, - rate_limit_register_per_second = d.rate_limit_register_per_second, - rate_limit_image = d.rate_limit_image, - rate_limit_image_per_second = d.rate_limit_image_per_second, - rate_limit_comment = d.rate_limit_comment, - rate_limit_comment_per_second = d.rate_limit_comment_per_second, - rate_limit_search = d.rate_limit_search, - rate_limit_search_per_second = d.rate_limit_search_per_second, + rate_limit_message = d.rate_limit_message_max_requests, + rate_limit_message_per_second = d.rate_limit_message_interval_seconds, + rate_limit_post = d.rate_limit_post_max_requests, + rate_limit_post_per_second = d.rate_limit_post_interval_seconds, + rate_limit_register = d.rate_limit_register_max_requests, + rate_limit_register_per_second = d.rate_limit_register_interval_seconds, + rate_limit_image = d.rate_limit_image_max_requests, + rate_limit_image_per_second = d.rate_limit_image_interval_seconds, + rate_limit_comment = d.rate_limit_comment_max_requests, + rate_limit_comment_per_second = d.rate_limit_comment_interval_seconds, + rate_limit_search = d.rate_limit_search_max_requests, + rate_limit_search_per_second = d.rate_limit_search_interval_seconds, federation_enabled = d.federation_enabled, - federation_debug = d.federation_debug, - captcha_enabled = d.captcha_enabled, - captcha_difficulty = d.captcha_difficulty, + captcha_enabled = null, + captcha_difficulty = null, allowed_instances = d.allowed_instances, blocked_instances = d.blocked_instances, taglines = d.taglines, - registration_mode = d.registration_mode, + registration_mode = V0RegistrationMode.fromUniNullable(d.registration_mode), content_warning = d.content_warning, - default_post_listing_mode = d.default_post_listing_mode, + default_post_listing_mode = V0PostListingMode.fromUniNullable(d.default_post_listing_mode), ) override fun fromUni(d: LemmyapiDatatypesDeleteAccount): X6DatatypesDeleteAccount = @@ -1894,22 +1371,20 @@ internal class Transformer : MapperGenerator { X6DatatypesEditCommunity( community_id = d.community_id, title = d.title, - description = d.description, - icon = d.icon, - banner = d.banner, + description = d.summary, nsfw = d.nsfw, posting_restricted_to_mods = d.posting_restricted_to_mods, discussion_languages = d.discussion_languages, - visibility = d.visibility, + visibility = V0CommunityVisibility.fromUniNullable(d.visibility), ) override fun fromUni(d: LemmyapiDatatypesEditCustomEmoji): X6DatatypesEditCustomEmoji = X6DatatypesEditCustomEmoji( id = d.id, - category = d.category, - image_url = d.image_url, - alt_text = d.alt_text, - keywords = d.keywords, + category = d.category ?: "", + image_url = d.image_url ?: "", + alt_text = d.alt_text ?: "", + keywords = d.keywords ?: emptyList(), ) override fun fromUni(d: LemmyapiDatatypesEditPost): X6DatatypesEditPost = X6DatatypesEditPost( @@ -1932,55 +1407,56 @@ internal class Transformer : MapperGenerator { override fun fromUni(d: LemmyapiDatatypesEditSite): X6DatatypesEditSite = X6DatatypesEditSite( name = d.name, sidebar = d.sidebar, - description = d.description, - icon = d.icon, - banner = d.banner, - enable_downvotes = d.enable_downvotes, + description = d.summary, + enable_downvotes = when (d.post_downvotes) { + FederationMode.Local, FederationMode.All -> true + FederationMode.Disable -> false + null -> null + }, enable_nsfw = d.enable_nsfw, community_creation_admin_only = d.community_creation_admin_only, - require_email_verification = d.require_email_verification, + require_email_verification = d.email_verification_required, application_question = d.application_question, private_instance = d.private_instance, default_theme = d.default_theme, - default_post_listing_type = d.default_post_listing_type, - default_sort_type = d.default_sort_type, + default_post_listing_type = V0ListingType.fromUniNullable(d.default_post_listing_type), + default_sort_type = V0SortType.fromUniNullable(d.default_post_sort_type), legal_information = d.legal_information, application_email_admins = d.application_email_admins, hide_modlog_mod_names = d.hide_modlog_mod_names, discussion_languages = d.discussion_languages, slur_filter_regex = d.slur_filter_regex, - actor_name_max_length = d.actor_name_max_length, - rate_limit_message = d.rate_limit_message, - rate_limit_message_per_second = d.rate_limit_message_per_second, - rate_limit_post = d.rate_limit_post, - rate_limit_post_per_second = d.rate_limit_post_per_second, - rate_limit_register = d.rate_limit_register, - rate_limit_register_per_second = d.rate_limit_register_per_second, - rate_limit_image = d.rate_limit_image, - rate_limit_image_per_second = d.rate_limit_image_per_second, - rate_limit_comment = d.rate_limit_comment, - rate_limit_comment_per_second = d.rate_limit_comment_per_second, - rate_limit_search = d.rate_limit_search, - rate_limit_search_per_second = d.rate_limit_search_per_second, + rate_limit_message = d.rate_limit_message_max_requests, + rate_limit_message_per_second = d.rate_limit_message_interval_seconds, + rate_limit_post = d.rate_limit_post_max_requests, + rate_limit_post_per_second = d.rate_limit_post_interval_seconds, + rate_limit_register = d.rate_limit_register_max_requests, + rate_limit_register_per_second = d.rate_limit_register_interval_seconds, + rate_limit_image = d.rate_limit_image_max_requests, + rate_limit_image_per_second = d.rate_limit_image_interval_seconds, + rate_limit_comment = d.rate_limit_comment_max_requests, + rate_limit_comment_per_second = d.rate_limit_comment_interval_seconds, + rate_limit_search = d.rate_limit_search_max_requests, + rate_limit_search_per_second = d.rate_limit_search_interval_seconds, federation_enabled = d.federation_enabled, federation_debug = d.federation_debug, - captcha_enabled = d.captcha_enabled, - captcha_difficulty = d.captcha_difficulty, + captcha_enabled = null, + captcha_difficulty = null, allowed_instances = d.allowed_instances, blocked_instances = d.blocked_instances, blocked_urls = d.blocked_urls, taglines = d.taglines, - registration_mode = d.registration_mode, + registration_mode = V0RegistrationMode.fromUniNullable(d.registration_mode), reports_email_admins = d.reports_email_admins, content_warning = d.content_warning, - default_post_listing_mode = d.default_post_listing_mode, + default_post_listing_mode = V0PostListingMode.fromUniNullable(d.default_post_listing_mode), ) override fun fromUni(d: LemmyapiDatatypesFeaturePost): X6DatatypesFeaturePost = X6DatatypesFeaturePost( post_id = d.post_id, featured = d.featured, - feature_type = d.feature_type, + feature_type = V0PostFeatureType.fromUni(d.feature_type), ) override fun fromUni(d: LemmyapiDatatypesFollowCommunity): X6DatatypesFollowCommunity = @@ -1996,8 +1472,8 @@ internal class Transformer : MapperGenerator { override fun fromUni(d: LemmyapiDatatypesGetComments): X6DatatypesGetComments = X6DatatypesGetComments( - type_ = d.type_, - sort = d.sort, + type_ = V0ListingType.fromUniNullable(d.type_), + sort = V0CommentSortType.fromUniNullable(d.sort), max_depth = d.max_depth, page = d.page, limit = d.limit, @@ -2021,7 +1497,7 @@ internal class Transformer : MapperGenerator { community_id = d.community_id, page = d.page, limit = d.limit, - type_ = d.type_, + type_ = V0ModlogActionType.fromUniNullable(d.type_), other_person_id = d.other_person_id, post_id = d.post_id, comment_id = d.comment_id, @@ -2031,19 +1507,6 @@ internal class Transformer : MapperGenerator { X6DatatypesGetPersonDetails( person_id = d.person_id, username = d.username, - sort = d.sort, - page = d.page, - limit = d.limit, - community_id = d.community_id, - saved_only = d.saved_only, - ) - - override fun fromUni(d: LemmyapiDatatypesGetPersonMentions): X6DatatypesGetPersonMentions = - X6DatatypesGetPersonMentions( - sort = d.sort, - page = d.page, - limit = d.limit, - unread_only = d.unread_only, ) override fun fromUni(d: LemmyapiDatatypesGetPost): X6DatatypesGetPost = X6DatatypesGetPost( @@ -2052,46 +1515,45 @@ internal class Transformer : MapperGenerator { ) override fun fromUni(d: LemmyapiDatatypesGetPosts): X6DatatypesGetPosts = X6DatatypesGetPosts( - type_ = d.type_, - sort = d.sort, + type_ = V0ListingType.fromUniNullable(d.type_), + sort = V0SortType.fromUniNullable(d.sort), page = d.page, limit = d.limit, community_id = d.community_id, community_name = d.community_name, - saved_only = d.saved_only, - liked_only = d.liked_only, - disliked_only = d.disliked_only, show_hidden = d.show_hidden, show_read = d.show_read, show_nsfw = d.show_nsfw, page_cursor = d.page_cursor, ) - override fun fromUni(d: LemmyapiDatatypesGetPrivateMessages): X6DatatypesGetPrivateMessages = - X6DatatypesGetPrivateMessages( - unread_only = d.unread_only, + fun fromUniR(d: LemmyapiDatatypesListNotifications): X6DatatypesGetReplies = + X6DatatypesGetReplies( + sort = V0CommentSortType.New, page = d.page, limit = d.limit, - creator_id = d.creator_id, + unread_only = d.unread_only, ) - override fun fromUni(d: LemmyapiDatatypesGetRegistrationApplication): X6DatatypesGetRegistrationApplication = X6DatatypesGetRegistrationApplication( - person_id = d.person_id, - ) - - override fun fromUni(d: LemmyapiDatatypesGetReplies): X6DatatypesGetReplies = - X6DatatypesGetReplies( - sort = d.sort, + fun fromUniM(d: LemmyapiDatatypesListNotifications): X6DatatypesGetPersonMentions = + X6DatatypesGetPersonMentions( + sort = V0CommentSortType.New, page = d.page, limit = d.limit, unread_only = d.unread_only, ) - override fun fromUni(d: LemmyapiDatatypesGetReportCount): X6DatatypesGetReportCount = - X6DatatypesGetReportCount( - community_id = d.community_id, + fun fromUniP(d: LemmyapiDatatypesListNotifications): X6DatatypesGetPrivateMessages = + X6DatatypesGetPrivateMessages( + page = d.page, + limit = d.limit, + unread_only = d.unread_only, ) + override fun fromUni(d: LemmyapiDatatypesGetRegistrationApplication): X6DatatypesGetRegistrationApplication = X6DatatypesGetRegistrationApplication( + person_id = d.person_id, + ) + override fun fromUni(d: LemmyapiDatatypesGetSiteMetadata): X6DatatypesGetSiteMetadata = X6DatatypesGetSiteMetadata( url = d.url, @@ -2104,31 +1566,47 @@ internal class Transformer : MapperGenerator { reason = d.reason, ) - override fun fromUni(d: LemmyapiDatatypesHidePost): X6DatatypesHidePost = X6DatatypesHidePost( + override fun fromUni(d: LemmyapiDatatypesHidePosts): X6DatatypesHidePost = X6DatatypesHidePost( post_ids = d.post_ids, hide = d.hide, ) - override fun fromUni(d: LemmyapiDatatypesListCommentLikes): X6DatatypesListCommentLikes = - X6DatatypesListCommentLikes( - comment_id = d.comment_id, + // Unified ListReports helpers (for combined ListReports support) + override fun fromUniC(d: it.vercruysse.lemmyapi.datatypes.ListReports): X6DatatypesListCommentReports = + X6DatatypesListCommentReports( page = d.page, limit = d.limit, + unresolved_only = d.unresolved_only, + community_id = d.community_id, ) - override fun fromUni(d: LemmyapiDatatypesListCommentReports): X6DatatypesListCommentReports = - X6DatatypesListCommentReports( - comment_id = d.comment_id, + override fun fromUniP(d: it.vercruysse.lemmyapi.datatypes.ListReports): X6DatatypesListPostReports = + X6DatatypesListPostReports( page = d.page, limit = d.limit, unresolved_only = d.unresolved_only, community_id = d.community_id, + post_id = d.post_id, + ) + + override fun fromUniPm(d: it.vercruysse.lemmyapi.datatypes.ListReports): X6DatatypesListPrivateMessageReports = + X6DatatypesListPrivateMessageReports( + page = d.page, + limit = d.limit, + unresolved_only = d.unresolved_only, + ) + + override fun fromUni(d: LemmyapiDatatypesListCommentLikes): X6DatatypesListCommentLikes = + X6DatatypesListCommentLikes( + comment_id = d.comment_id, + page = d.page, + limit = d.limit, ) override fun fromUni(d: LemmyapiDatatypesListCommunities): X6DatatypesListCommunities = X6DatatypesListCommunities( - type_ = d.type_, - sort = d.sort, + type_ = V0ListingType.fromUniNullable(d.type_), + sort = V0SortType.fromUniNullable(d.sort), show_nsfw = d.show_nsfw, page = d.page, limit = d.limit, @@ -2146,21 +1624,6 @@ internal class Transformer : MapperGenerator { limit = d.limit, ) - override fun fromUni(d: LemmyapiDatatypesListPostReports): X6DatatypesListPostReports = - X6DatatypesListPostReports( - page = d.page, - limit = d.limit, - unresolved_only = d.unresolved_only, - community_id = d.community_id, - post_id = d.post_id, - ) - - override fun fromUni(d: LemmyapiDatatypesListPrivateMessageReports): X6DatatypesListPrivateMessageReports = X6DatatypesListPrivateMessageReports( - page = d.page, - limit = d.limit, - unresolved_only = d.unresolved_only, - ) - override fun fromUni(d: LemmyapiDatatypesListRegistrationApplications): X6DatatypesListRegistrationApplications = X6DatatypesListRegistrationApplications( unread_only = d.unread_only, page = d.page, @@ -2178,13 +1641,18 @@ internal class Transformer : MapperGenerator { totp_2fa_token = d.totp_2fa_token, ) - override fun fromUni(d: LemmyapiDatatypesMarkCommentReplyAsRead): X6DatatypesMarkCommentReplyAsRead = X6DatatypesMarkCommentReplyAsRead( - comment_reply_id = d.comment_reply_id, + fun fromUniR(d: MarkNotificationAsRead): X6DatatypesMarkCommentReplyAsRead = X6DatatypesMarkCommentReplyAsRead( + comment_reply_id = d.notification_id, + read = d.read, + ) + + fun fromUniM(d: MarkNotificationAsRead): X6DatatypesMarkPersonMentionAsRead = X6DatatypesMarkPersonMentionAsRead( + person_mention_id = d.notification_id, read = d.read, ) - override fun fromUni(d: LemmyapiDatatypesMarkPersonMentionAsRead): X6DatatypesMarkPersonMentionAsRead = X6DatatypesMarkPersonMentionAsRead( - person_mention_id = d.person_mention_id, + fun fromUniP(d: MarkNotificationAsRead): X6DatatypesMarkPrivateMessageAsRead = X6DatatypesMarkPrivateMessageAsRead( + private_message_id = d.notification_id, read = d.read, ) @@ -2194,11 +1662,6 @@ internal class Transformer : MapperGenerator { read = d.read, ) - override fun fromUni(d: LemmyapiDatatypesMarkPrivateMessageAsRead): X6DatatypesMarkPrivateMessageAsRead = X6DatatypesMarkPrivateMessageAsRead( - private_message_id = d.private_message_id, - read = d.read, - ) - override fun fromUni(d: LemmyapiDatatypesPasswordChangeAfterReset): X6DatatypesPasswordChangeAfterReset = X6DatatypesPasswordChangeAfterReset( token = d.token, password = d.password, @@ -2303,13 +1766,10 @@ internal class Transformer : MapperGenerator { X6DatatypesSaveUserSettings( show_nsfw = d.show_nsfw, blur_nsfw = d.blur_nsfw, - auto_expand = d.auto_expand, theme = d.theme, - default_sort_type = d.default_sort_type, - default_listing_type = d.default_listing_type, + default_sort_type = V0SortType.fromUniNullable(d.default_post_sort_type), + default_listing_type = V0ListingType.fromUniNullable(d.default_listing_type), interface_language = d.interface_language, - avatar = d.avatar, - banner = d.banner, display_name = d.display_name, email = d.email, bio = d.bio, @@ -2322,27 +1782,29 @@ internal class Transformer : MapperGenerator { discussion_languages = d.discussion_languages, open_links_in_new_tab = d.open_links_in_new_tab, infinite_scroll_enabled = d.infinite_scroll_enabled, - post_listing_mode = d.post_listing_mode, - enable_keyboard_navigation = d.enable_keyboard_navigation, - enable_animated_images = d.enable_animated_images, + post_listing_mode = V0PostListingMode.fromUniNullable(d.post_listing_mode), + enable_animated_images = d.animated_images_enabled, collapse_bot_comments = d.collapse_bot_comments, - show_scores = d.show_scores, + show_scores = d.show_score, show_upvotes = d.show_upvotes, - show_downvotes = d.show_downvotes, + show_downvotes = when (d.show_downvotes) { + VoteShow.ShowForOthers, VoteShow.Show -> true + VoteShow.Hide -> false + null -> null + }, show_upvote_percentage = d.show_upvote_percentage, ) override fun fromUni(d: LemmyapiDatatypesSearch): X6DatatypesSearch = X6DatatypesSearch( - q = d.q, + q = d.search_term, community_id = d.community_id, community_name = d.community_name, creator_id = d.creator_id, - type_ = d.type_, - sort = d.sort, - listing_type = d.listing_type, + type_ = V0SearchType.fromUniNullable(d.type_), + listing_type = V0ListingType.fromUniNullable(d.listing_type), page = d.page, limit = d.limit, - post_title_only = d.post_title_only, + post_title_only = d.title_only, ) override fun fromUni(d: LemmyapiDatatypesTransferCommunity): X6DatatypesTransferCommunity = diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/ActivityId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/ActivityId.kt index c304f90a..a4bfc193 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/ActivityId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/ActivityId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x6.datatypes -typealias ActivityId = Long +internal typealias ActivityId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/BlockInstanceResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/BlockInstanceResponse.kt deleted file mode 100644 index c20a0e9d..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/BlockInstanceResponse.kt +++ /dev/null @@ -1,8 +0,0 @@ -package it.vercruysse.lemmyapi.v0.x19.x6.datatypes - -import kotlinx.serialization.Serializable - -@Serializable -internal data class BlockInstanceResponse( - val blocked: Boolean, -) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/CommentId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/CommentId.kt index b1b3a907..2df85ae3 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/CommentId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/CommentId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x6.datatypes -typealias CommentId = Long +internal typealias CommentId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/CommentReplyId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/CommentReplyId.kt index 9ad939c7..caa3cebf 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/CommentReplyId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/CommentReplyId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x6.datatypes -typealias CommentReplyId = Long +internal typealias CommentReplyId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/CommentReplyView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/CommentReplyView.kt index 59d114fb..7e04307a 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/CommentReplyView.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/CommentReplyView.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x6.datatypes -import it.vercruysse.lemmyapi.dto.SubscribedType +import it.vercruysse.lemmyapi.v0.enums.SubscribedType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/CommentReportId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/CommentReportId.kt index 7cdc545f..11bfee6a 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/CommentReportId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/CommentReportId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x6.datatypes -typealias CommentReportId = Long +internal typealias CommentReportId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/CommentReportView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/CommentReportView.kt index 0feacee8..01c6e065 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/CommentReportView.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/CommentReportView.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x6.datatypes -import it.vercruysse.lemmyapi.dto.SubscribedType +import it.vercruysse.lemmyapi.v0.enums.SubscribedType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/CommentView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/CommentView.kt index cdd45dcb..7dbeeb7d 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/CommentView.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/CommentView.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x6.datatypes -import it.vercruysse.lemmyapi.dto.SubscribedType +import it.vercruysse.lemmyapi.v0.enums.SubscribedType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/Community.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/Community.kt index aa40ef96..35c42bba 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/Community.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/Community.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x6.datatypes -import it.vercruysse.lemmyapi.dto.CommunityVisibility +import it.vercruysse.lemmyapi.v0.enums.CommunityVisibility import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/CommunityId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/CommunityId.kt index ee5e7dc8..e8184236 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/CommunityId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/CommunityId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x6.datatypes -typealias CommunityId = Long +internal typealias CommunityId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/CommunityView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/CommunityView.kt index 5d2ebb86..0f997468 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/CommunityView.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/CommunityView.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x6.datatypes -import it.vercruysse.lemmyapi.dto.SubscribedType +import it.vercruysse.lemmyapi.v0.enums.SubscribedType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/CreateCommunity.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/CreateCommunity.kt index 7eaeb30a..a8586b7a 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/CreateCommunity.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/CreateCommunity.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x6.datatypes -import it.vercruysse.lemmyapi.dto.CommunityVisibility +import it.vercruysse.lemmyapi.v0.enums.CommunityVisibility import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/CreateSite.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/CreateSite.kt index ca360a5e..c1995789 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/CreateSite.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/CreateSite.kt @@ -1,9 +1,9 @@ package it.vercruysse.lemmyapi.v0.x19.x6.datatypes -import it.vercruysse.lemmyapi.dto.PostListingMode -import it.vercruysse.lemmyapi.dto.RegistrationMode -import it.vercruysse.lemmyapi.dto.SortType -import it.vercruysse.lemmyapi.dto.ListingType +import it.vercruysse.lemmyapi.v0.enums.ListingType +import it.vercruysse.lemmyapi.v0.enums.PostListingMode +import it.vercruysse.lemmyapi.v0.enums.RegistrationMode +import it.vercruysse.lemmyapi.v0.enums.SortType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/CustomEmojiId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/CustomEmojiId.kt index 3461c16b..f450cb48 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/CustomEmojiId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/CustomEmojiId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x6.datatypes -typealias CustomEmojiId = Long +internal typealias CustomEmojiId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/EditCommunity.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/EditCommunity.kt index ae565c6c..3876f90c 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/EditCommunity.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/EditCommunity.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x6.datatypes -import it.vercruysse.lemmyapi.dto.CommunityVisibility +import it.vercruysse.lemmyapi.v0.enums.CommunityVisibility import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/EditSite.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/EditSite.kt index 9bca2099..f854579a 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/EditSite.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/EditSite.kt @@ -1,9 +1,9 @@ package it.vercruysse.lemmyapi.v0.x19.x6.datatypes -import it.vercruysse.lemmyapi.dto.PostListingMode -import it.vercruysse.lemmyapi.dto.RegistrationMode -import it.vercruysse.lemmyapi.dto.SortType -import it.vercruysse.lemmyapi.dto.ListingType +import it.vercruysse.lemmyapi.v0.enums.ListingType +import it.vercruysse.lemmyapi.v0.enums.PostListingMode +import it.vercruysse.lemmyapi.v0.enums.RegistrationMode +import it.vercruysse.lemmyapi.v0.enums.SortType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/FeaturePost.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/FeaturePost.kt index c8ab6502..f83102b6 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/FeaturePost.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/FeaturePost.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x6.datatypes -import it.vercruysse.lemmyapi.dto.PostFeatureType +import it.vercruysse.lemmyapi.v0.enums.PostFeatureType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/GetComments.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/GetComments.kt index 3ee1e66b..b143f77f 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/GetComments.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/GetComments.kt @@ -1,7 +1,7 @@ package it.vercruysse.lemmyapi.v0.x19.x6.datatypes -import it.vercruysse.lemmyapi.dto.CommentSortType -import it.vercruysse.lemmyapi.dto.ListingType +import it.vercruysse.lemmyapi.v0.enums.CommentSortType +import it.vercruysse.lemmyapi.v0.enums.ListingType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/GetModlog.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/GetModlog.kt index 94388727..d9d308bf 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/GetModlog.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/GetModlog.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x6.datatypes -import it.vercruysse.lemmyapi.dto.ModlogActionType +import it.vercruysse.lemmyapi.v0.enums.ModlogActionType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/GetPersonDetails.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/GetPersonDetails.kt index 1d0361da..ce1d3b72 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/GetPersonDetails.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/GetPersonDetails.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x6.datatypes -import it.vercruysse.lemmyapi.dto.SortType +import it.vercruysse.lemmyapi.v0.enums.SortType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/GetPersonMentions.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/GetPersonMentions.kt index a6ddad0d..c1778d5d 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/GetPersonMentions.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/GetPersonMentions.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x6.datatypes -import it.vercruysse.lemmyapi.dto.CommentSortType +import it.vercruysse.lemmyapi.v0.enums.CommentSortType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/GetPosts.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/GetPosts.kt index db71eebd..d8378eac 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/GetPosts.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/GetPosts.kt @@ -1,7 +1,7 @@ package it.vercruysse.lemmyapi.v0.x19.x6.datatypes -import it.vercruysse.lemmyapi.dto.SortType -import it.vercruysse.lemmyapi.dto.ListingType +import it.vercruysse.lemmyapi.v0.enums.ListingType +import it.vercruysse.lemmyapi.v0.enums.SortType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/GetReplies.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/GetReplies.kt index 49fc6f6b..67b0c1a7 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/GetReplies.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/GetReplies.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x6.datatypes -import it.vercruysse.lemmyapi.dto.CommentSortType +import it.vercruysse.lemmyapi.v0.enums.CommentSortType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/InstanceId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/InstanceId.kt index ed4b3055..321da257 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/InstanceId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/InstanceId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x6.datatypes -typealias InstanceId = Long +internal typealias InstanceId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/LanguageId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/LanguageId.kt index 756013bc..d8b2addc 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/LanguageId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/LanguageId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x6.datatypes -typealias LanguageId = Long +internal typealias LanguageId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/ListCommunities.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/ListCommunities.kt index 42956494..a0c18347 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/ListCommunities.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/ListCommunities.kt @@ -1,7 +1,7 @@ package it.vercruysse.lemmyapi.v0.x19.x6.datatypes -import it.vercruysse.lemmyapi.dto.SortType -import it.vercruysse.lemmyapi.dto.ListingType +import it.vercruysse.lemmyapi.v0.enums.ListingType +import it.vercruysse.lemmyapi.v0.enums.SortType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/LocalSite.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/LocalSite.kt index a0bfa8cd..dec38a56 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/LocalSite.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/LocalSite.kt @@ -1,9 +1,9 @@ package it.vercruysse.lemmyapi.v0.x19.x6.datatypes -import it.vercruysse.lemmyapi.dto.SortType -import it.vercruysse.lemmyapi.dto.PostListingMode -import it.vercruysse.lemmyapi.dto.RegistrationMode -import it.vercruysse.lemmyapi.dto.ListingType +import it.vercruysse.lemmyapi.v0.enums.ListingType +import it.vercruysse.lemmyapi.v0.enums.PostListingMode +import it.vercruysse.lemmyapi.v0.enums.RegistrationMode +import it.vercruysse.lemmyapi.v0.enums.SortType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/LocalSiteId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/LocalSiteId.kt index df138f98..96b3a8a0 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/LocalSiteId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/LocalSiteId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x6.datatypes -typealias LocalSiteId = Long +internal typealias LocalSiteId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/LocalUser.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/LocalUser.kt index cac64f25..e3abb5e0 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/LocalUser.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/LocalUser.kt @@ -1,8 +1,8 @@ package it.vercruysse.lemmyapi.v0.x19.x6.datatypes -import it.vercruysse.lemmyapi.dto.PostListingMode -import it.vercruysse.lemmyapi.dto.ListingType -import it.vercruysse.lemmyapi.dto.SortType +import it.vercruysse.lemmyapi.v0.enums.ListingType +import it.vercruysse.lemmyapi.v0.enums.PostListingMode +import it.vercruysse.lemmyapi.v0.enums.SortType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/LocalUserId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/LocalUserId.kt index 7df0af4c..81066fee 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/LocalUserId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/LocalUserId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x6.datatypes -typealias LocalUserId = Long +internal typealias LocalUserId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/ModlogListParams.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/ModlogListParams.kt deleted file mode 100644 index 6a53eab8..00000000 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/ModlogListParams.kt +++ /dev/null @@ -1,15 +0,0 @@ -package it.vercruysse.lemmyapi.v0.x19.x6.datatypes - -import kotlinx.serialization.Serializable - -@Serializable -internal data class ModlogListParams( - val community_id: CommunityId? = null, - val mod_person_id: PersonId? = null, - val other_person_id: PersonId? = null, - val post_id: PostId? = null, - val comment_id: CommentId? = null, - val page: Long? = null, - val limit: Long? = null, - val hide_modlog_names: Boolean, -) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/PaginationCursor.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/PaginationCursor.kt index a6827087..5df1828e 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/PaginationCursor.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/PaginationCursor.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x6.datatypes -typealias PaginationCursor = String +internal typealias PaginationCursor = String diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/PersonId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/PersonId.kt index b9eced39..a48febf7 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/PersonId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/PersonId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x6.datatypes -typealias PersonId = Long +internal typealias PersonId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/PersonMentionId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/PersonMentionId.kt index c7997995..368c54e9 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/PersonMentionId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/PersonMentionId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x6.datatypes -typealias PersonMentionId = Long +internal typealias PersonMentionId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/PersonMentionView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/PersonMentionView.kt index bce2a442..6d9c487d 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/PersonMentionView.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/PersonMentionView.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x6.datatypes -import it.vercruysse.lemmyapi.dto.SubscribedType +import it.vercruysse.lemmyapi.v0.enums.SubscribedType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/PostId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/PostId.kt index e6665a4a..ac0a58be 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/PostId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/PostId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x6.datatypes -typealias PostId = Long +internal typealias PostId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/PostReportId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/PostReportId.kt index 17927756..a682510d 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/PostReportId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/PostReportId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x6.datatypes -typealias PostReportId = Long +internal typealias PostReportId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/PostReportView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/PostReportView.kt index a72b7ee5..4aef7c87 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/PostReportView.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/PostReportView.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x6.datatypes -import it.vercruysse.lemmyapi.dto.SubscribedType +import it.vercruysse.lemmyapi.v0.enums.SubscribedType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/PostView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/PostView.kt index 729b7b2c..b134cabb 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/PostView.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/PostView.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x6.datatypes -import it.vercruysse.lemmyapi.dto.SubscribedType +import it.vercruysse.lemmyapi.v0.enums.SubscribedType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/PrivateMessageId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/PrivateMessageId.kt index d756618c..974e64f0 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/PrivateMessageId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/PrivateMessageId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x6.datatypes -typealias PrivateMessageId = Long +internal typealias PrivateMessageId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/PrivateMessageReportId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/PrivateMessageReportId.kt index eb7e5093..bcfc16df 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/PrivateMessageReportId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/PrivateMessageReportId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x6.datatypes -typealias PrivateMessageReportId = Long +internal typealias PrivateMessageReportId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/RegistrationApplicationId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/RegistrationApplicationId.kt index 498590dc..ea39ffef 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/RegistrationApplicationId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/RegistrationApplicationId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x6.datatypes -typealias RegistrationApplicationId = Long +internal typealias RegistrationApplicationId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/SaveUserSettings.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/SaveUserSettings.kt index 0f6f45b9..d496245d 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/SaveUserSettings.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/SaveUserSettings.kt @@ -1,8 +1,8 @@ package it.vercruysse.lemmyapi.v0.x19.x6.datatypes -import it.vercruysse.lemmyapi.dto.PostListingMode -import it.vercruysse.lemmyapi.dto.ListingType -import it.vercruysse.lemmyapi.dto.SortType +import it.vercruysse.lemmyapi.v0.enums.ListingType +import it.vercruysse.lemmyapi.v0.enums.PostListingMode +import it.vercruysse.lemmyapi.v0.enums.SortType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/Search.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/Search.kt index a2c4aafd..8fbc7a84 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/Search.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/Search.kt @@ -1,8 +1,8 @@ package it.vercruysse.lemmyapi.v0.x19.x6.datatypes -import it.vercruysse.lemmyapi.dto.ListingType -import it.vercruysse.lemmyapi.dto.SortType -import it.vercruysse.lemmyapi.dto.SearchType +import it.vercruysse.lemmyapi.v0.enums.ListingType +import it.vercruysse.lemmyapi.v0.enums.SearchType +import it.vercruysse.lemmyapi.v0.enums.SortType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/SearchResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/SearchResponse.kt index b1b5fdac..db024bd5 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/SearchResponse.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/SearchResponse.kt @@ -1,6 +1,6 @@ package it.vercruysse.lemmyapi.v0.x19.x6.datatypes -import it.vercruysse.lemmyapi.dto.SearchType +import it.vercruysse.lemmyapi.v0.enums.SearchType import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/SiteId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/SiteId.kt index 7771c0c6..b156baa9 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/SiteId.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/SiteId.kt @@ -1,3 +1,3 @@ package it.vercruysse.lemmyapi.v0.x19.x6.datatypes -typealias SiteId = Long +internal typealias SiteId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/VoteView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/VoteView.kt index cb4cc74c..1c3e35ea 100644 --- a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/VoteView.kt +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v0/x19/x6/datatypes/VoteView.kt @@ -6,5 +6,5 @@ import kotlinx.serialization.Serializable internal data class VoteView( val creator: Person, val creator_banned_from_community: Boolean, - val score: Long, + val score: Int, ) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/LemmyApiController.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/LemmyApiController.kt new file mode 100644 index 00000000..44b77449 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/LemmyApiController.kt @@ -0,0 +1,643 @@ +package it.vercruysse.lemmyapi.v1.x0.x0 + +import io.ktor.client.HttpClient +import it.vercruysse.lemmyapi.dto.ExportUserSettingsResponse +import it.vercruysse.lemmyapi.dto.ImportUserSettings +import it.vercruysse.lemmyapi.utils.addQueryParams +import it.vercruysse.lemmyapi.utils.deleteResult +import it.vercruysse.lemmyapi.utils.getResult +import it.vercruysse.lemmyapi.utils.postResult +import it.vercruysse.lemmyapi.utils.postUploadResult +import it.vercruysse.lemmyapi.utils.putResult +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.* + +internal class LemmyApiController(client: HttpClient, auth: String?) : + LemmyApiRouter( + client, + auth, + ) { + + /** @GET("site") */ + override suspend fun getSite(): Result = + client.getResult("site") + + /** @POST("site") */ + override suspend fun createSite(form: CreateSite): Result = + client.postResult("site", form) + + /** @PUT("site") */ + override suspend fun editSite(form: EditSite): Result = + client.putResult("site", form) + + /** @DELETE("site/banner") */ + override suspend fun deleteSiteBanner(): Result = + client.deleteResult("site/banner") + + /** @DELETE("site/icon") */ + override suspend fun deleteSiteIcon(): Result = + client.deleteResult("site/icon") + + /** @GET("modlog") */ + override suspend fun getModlog(form: GetModlog): Result> = + client.getResult("modlog", form) + + /** @GET("search") */ + override suspend fun search(form: Search): Result = + client.getResult("search", form) + + /** @GET("resolve_object") */ + override suspend fun resolveObject(form: ResolveObject): Result = + client.getResult("resolve_object", form) + + /** @GET("community") */ + override suspend fun getCommunity(form: GetCommunity): Result = + client.getResult("community", form) + + /** @POST("community") */ + override suspend fun createCommunity(form: CreateCommunity): Result = + client.postResult("community", form) + + /** @PUT("community") */ + override suspend fun editCommunity(form: EditCommunity): Result = + client.putResult("community", form) + + /** @DELETE("community") */ + override suspend fun deleteCommunity(form: DeleteCommunity): Result = + client.deleteResult("community", form) + + /** @PUT("community/hide") */ + override suspend fun hideCommunity(form: HideCommunity): Result = + client.putResult("community/hide", form) + + /** @GET("community/list") */ + override suspend fun listCommunities(form: ListCommunities): Result> = + client.getResult("community/list", form) + + /** @POST("community/follow") */ + override suspend fun followCommunity(form: FollowCommunity): Result = + client.postResult("community/follow", form) + + /** @POST("community/remove") */ + override suspend fun removeCommunity(form: RemoveCommunity): Result = + client.postResult("community/remove", form) + + /** @POST("community/transfer") */ + override suspend fun transferCommunity(form: TransferCommunity): Result = + client.postResult("community/transfer", form) + + /** @POST("community/ban_user") */ + override suspend fun banFromCommunity(form: BanFromCommunity): Result = + client.postResult("community/ban_user", form) + + /** @POST("community/mod") */ + override suspend fun addModToCommunity(form: AddModToCommunity): Result = + client.postResult("community/mod", form) + + /** @GET("community/random") */ + override suspend fun getRandomCommunity(form: GetRandomCommunity): Result = + client.getResult("community/random", form) + + /** @POST("community/report") */ + override suspend fun createCommunityReport(form: CreateCommunityReport): Result = + client.postResult("community/report", form) + + /** @PUT("community/report/resolve") */ + override suspend fun resolveCommunityReport(form: ResolveCommunityReport): Result = + client.putResult("community/report/resolve", form) + + /** @POST("community/tag") */ + override suspend fun createCommunityTag(form: CreateCommunityTag): Result = + client.postResult("community/tag", form) + + /** @PUT("community/tag") */ + override suspend fun editCommunityTag(form: EditCommunityTag): Result = + client.putResult("community/tag", form) + + /** @DELETE("community/tag") */ + override suspend fun deleteCommunityTag(form: DeleteCommunityTag): Result = + client.deleteResult("community/tag", form) + + /** @PUT("community/notifications") */ + override suspend fun editCommunityNotifications(form: EditCommunityNotifications): Result = + client.putResult("community/notifications", form) + + /** @POST("community/pending_follows/approve") */ + override suspend fun approveCommunityPendingFollow(form: ApproveCommunityPendingFollower): Result = + client.postResult("community/pending_follows/approve", form) + + /** @GET("community/pending_follows/list") */ + override suspend fun listCommunityPendingFollows(form: ListCommunityPendingFollows): Result> = + client.getResult("community/pending_follows/list", form) + + /** @DELETE("community/banner") */ + override suspend fun deleteCommunityBanner(form: CommunityIdQuery): Result = + client.deleteResult("community/banner", form) + + /** @DELETE("community/icon") */ + override suspend fun deleteCommunityIcon(form: CommunityIdQuery): Result = + client.deleteResult("community/icon", form) + + /** @GET("federated_instances") */ + override suspend fun getFederatedInstances(form: GetFederatedInstances): Result> = + client.getResult("federated_instances", form) + + /** @GET("post") */ + override suspend fun getPost(form: GetPost): Result = + client.getResult("post", form) + + /** @POST("post") */ + override suspend fun createPost(form: CreatePost): Result = + client.postResult("post", form) + + /** @PUT("post") */ + override suspend fun editPost(form: EditPost): Result = + client.putResult("post", form) + + /** @DELETE("post") */ + override suspend fun deletePost(form: DeletePost): Result = + client.deleteResult("post", form) + + /** @GET("post/list") */ + override suspend fun getPosts(form: GetPosts): Result> = + client.getResult("post/list", form) + + /** @POST("post/remove") */ + override suspend fun removePost(form: RemovePost): Result = + client.postResult("post/remove", form) + + /** @POST("post/mark_as_read") */ + override suspend fun markPostAsRead(form: MarkPostAsRead): Result = + client.postResult("post/mark_as_read", form) + + /** @POST("post/mark_as_read/many") */ + override suspend fun markManyPostsAsRead(form: MarkManyPostsAsRead): Result = + client.postResult("post/mark_as_read/many", form) + + /** @POST("post/lock") */ + override suspend fun lockPost(form: LockPost): Result = + client.postResult("post/lock", form) + + /** @POST("post/feature") */ + override suspend fun featurePost(form: FeaturePost): Result = + client.postResult("post/feature", form) + + /** @POST("post/like") */ + override suspend fun createPostLike(form: CreatePostLike): Result = + client.postResult("post/like", form) + + /** @PUT("post/save") */ + override suspend fun savePost(form: SavePost): Result = + client.putResult("post/save", form) + + /** @POST("post/report") */ + override suspend fun createPostReport(form: CreatePostReport): Result = + client.postResult("post/report", form) + + /** @PUT("post/report/resolve") */ + override suspend fun resolvePostReport(form: ResolvePostReport): Result = + client.putResult("post/report/resolve", form) + + /** @GET("post/site_metadata") */ + override suspend fun getSiteMetadata(form: GetSiteMetadata): Result = + client.getResult("post/site_metadata", form) + + /** @POST("post/hide") */ + override suspend fun hidePost(form: HidePost): Result = + client.postResult("post/hide", form) + + /** @GET("post/like/list") */ + override suspend fun listPostLikes(form: ListPostLikes): Result> = + client.getResult("post/like/list", form) + + /** @PUT("post/mod_edit") */ + override suspend fun modEditPost(form: ModEditPost): Result = + client.putResult("post/mod_edit", form) + + /** @PUT("post/notifications") */ + override suspend fun editPostNotifications(form: EditPostNotifications): Result = + client.putResult("post/notifications", form) + + /** @POST("post/warn") */ + override suspend fun warnPost(form: CreatePostWarning): Result = + client.postResult("post/warn", form) + + /** @GET("comment") */ + override suspend fun getComment(form: GetComment): Result = + client.getResult("comment", form) + + /** @POST("comment") */ + override suspend fun createComment(form: CreateComment): Result = + client.postResult("comment", form) + + /** @PUT("comment") */ + override suspend fun editComment(form: EditComment): Result = + client.putResult("comment", form) + + /** @DELETE("comment") */ + override suspend fun deleteComment(form: DeleteComment): Result = + client.deleteResult("comment", form) + + /** @GET("comment/list") */ + override suspend fun getComments(form: GetComments): Result> = + client.getResult("comment/list", form) + + /** @GET("comment/list/slim") */ + override suspend fun getCommentsSlim(form: GetComments): Result> = + client.getResult("comment/list/slim", form) + + /** @POST("comment/remove") */ + override suspend fun removeComment(form: RemoveComment): Result = + client.postResult("comment/remove", form) + + /** @POST("comment/lock") */ + override suspend fun lockComment(form: LockComment): Result = + client.postResult("comment/lock", form) + + /** @POST("comment/distinguish") */ + override suspend fun distinguishComment(form: DistinguishComment): Result = + client.postResult("comment/distinguish", form) + + /** @POST("comment/like") */ + override suspend fun createCommentLike(form: CreateCommentLike): Result = + client.postResult("comment/like", form) + + /** @PUT("comment/save") */ + override suspend fun saveComment(form: SaveComment): Result = + client.putResult("comment/save", form) + + /** @POST("comment/report") */ + override suspend fun createCommentReport(form: CreateCommentReport): Result = + client.postResult("comment/report", form) + + /** @PUT("comment/report/resolve") */ + override suspend fun resolveCommentReport(form: ResolveCommentReport): Result = + client.putResult("comment/report/resolve", form) + + /** @GET("comment/like/list") */ + override suspend fun listCommentLikes(form: ListCommentLikes): Result> = + client.getResult("comment/like/list", form) + + /** @POST("comment/warn") */ + override suspend fun warnComment(form: CreateCommentWarning): Result = + client.postResult("comment/warn", form) + + /** @POST("private_message") */ + override suspend fun createPrivateMessage(form: CreatePrivateMessage): Result = + client.postResult("private_message", form) + + /** @PUT("private_message") */ + override suspend fun editPrivateMessage(form: EditPrivateMessage): Result = + client.putResult("private_message", form) + + /** @DELETE("private_message") */ + override suspend fun deletePrivateMessage(form: DeletePrivateMessage): Result = + client.deleteResult("private_message", form) + + /** @POST("private_message/report") */ + override suspend fun createPrivateMessageReport(form: CreatePrivateMessageReport): Result = + client.postResult("private_message/report", form) + + /** @PUT("private_message/report/resolve") */ + override suspend fun resolvePrivateMessageReport(form: ResolvePrivateMessageReport): Result = + client.putResult("private_message/report/resolve", form) + + /** @GET("person") */ + override suspend fun getPersonDetails(form: GetPersonDetails): Result = + client.getResult("person", form) + + /** @GET("person/list") */ + override suspend fun listPersons(form: ListPersons): Result> = + client.getResult("person/list", form) + + /** @GET("person/content") */ + override suspend fun listPersonContent(form: ListPersonContent): Result> = + client.getResult("person/content", form) + + /** @POST("person/note") */ + override suspend fun notePerson(form: NotePerson): Result = + client.postResult("person/note", form) + + /** @GET("account") */ + override suspend fun getMyUser(): Result = + client.getResult("account") + + /** @DELETE("account") */ + override suspend fun deleteAccount(form: DeleteAccount): Result = + client.deleteResult("account", form) + + /** @POST("account/auth/login") */ + override suspend fun login(form: Login): Result = + client.postResult("account/auth/login", form) + + /** @POST("account/auth/logout") */ + override suspend fun logout(): Result = + client.postResult("account/auth/logout") + + /** @POST("account/auth/register") */ + override suspend fun register(form: Register): Result = + client.postResult("account/auth/register", form) + + /** @GET("account/auth/get_captcha") */ + override suspend fun getCaptcha(): Result = + client.getResult("account/auth/get_captcha") + + /** @POST("account/auth/password_reset") */ + override suspend fun resetPassword(form: ResetPassword): Result = + client.postResult("account/auth/password_reset", form) + + /** @POST("account/auth/password_change") */ + override suspend fun changePasswordAfterReset(form: ChangePasswordAfterReset): Result = + client.postResult("account/auth/password_change", form) + + /** @PUT("account/auth/change_password") */ + override suspend fun changePassword(form: ChangePassword): Result = + client.putResult("account/auth/change_password", form) + + /** @POST("account/auth/verify_email") */ + override suspend fun verifyEmail(form: VerifyEmail): Result = + client.postResult("account/auth/verify_email", form) + + /** @POST("account/auth/resend_verification_email") */ + override suspend fun resendVerificationEmail(form: ResendVerificationEmail): Result = + client.postResult("account/auth/resend_verification_email", form) + + /** @POST("account/auth/totp/generate") */ + override suspend fun generateTotpSecret(): Result = + client.postResult("account/auth/totp/generate") + + /** @POST("account/auth/totp/edit") */ + override suspend fun editTotp(form: EditTotp): Result = + client.postResult("account/auth/totp/edit", form) + + /** @PUT("account/settings/save") */ + override suspend fun saveUserSettings(form: SaveUserSettings): Result = + client.putResult("account/settings/save", form) + + /** @GET("account/settings/export") */ + override suspend fun exportUserSettings(): Result = + client.getResult("account/settings/export") + + /** @POST("account/settings/import") */ + override suspend fun importUserSettings(form: ImportUserSettings): Result = + client.postResult("account/settings/import", form) + + /** @POST("account/block/community") */ + override suspend fun blockCommunity(form: BlockCommunity): Result = + client.postResult("account/block/community", form) + + /** @POST("account/block/person") */ + override suspend fun blockPerson(form: BlockPerson): Result = + client.postResult("account/block/person", form) + + /** @POST("account/block/instance/communities") */ + override suspend fun userBlockInstanceCommunities(form: UserBlockInstanceCommunitiesParams): Result = + client.postResult("account/block/instance/communities", form) + + /** @POST("account/block/instance/persons") */ + override suspend fun userBlockInstancePersons(form: UserBlockInstancePersonsParams): Result = + client.postResult("account/block/instance/persons", form) + + /** @POST("account/donation_dialog_shown") */ + override suspend fun markDonationDialogShown(): Result = + client.postResult("account/donation_dialog_shown") + + /** @GET("account/login/list") */ + override suspend fun listLogins(): Result = + client.getResult("account/login/list") + + /** @GET("account/validate_auth") */ + override suspend fun validateAuth(): Result = + client.getResult("account/validate_auth") + + /** @GET("account/unread_counts") */ + override suspend fun getUnreadCounts(): Result = + client.getResult("account/unread_counts") + + /** @POST("account/notification/mark_as_read") */ + override suspend fun markNotificationAsRead(form: MarkNotificationAsRead): Result = + client.postResult("account/notification/mark_as_read", form) + + /** @POST("account/notification/mark_as_read/all") */ + override suspend fun markAllNotificationsAsRead(): Result = + client.postResult("account/notification/mark_as_read/all") + + /** @GET("account/notification/list") */ + override suspend fun listNotifications(form: ListNotifications): Result> = + client.getResult("account/notification/list", form) + + /** @GET("account/saved") */ + override suspend fun listPersonSaved(form: ListPersonSaved): Result> = + client.getResult("account/saved", form) + + /** @GET("account/read") */ + override suspend fun listPersonRead(form: ListPersonRead): Result> = + client.getResult("account/read", form) + + /** @GET("account/hidden") */ + override suspend fun listPersonHidden(form: ListPersonHidden): Result> = + client.getResult("account/hidden", form) + + /** @GET("account/liked") */ + override suspend fun listPersonLiked(form: ListPersonLiked): Result> = + client.getResult("account/liked", form) + + /** @POST("account/invite") */ + override suspend fun createRegistrationInvitation(form: CreateInvitation): Result = + client.postResult("account/invite", form) + + /** @DELETE("account/invite") */ + override suspend fun revokeRegistrationInvitation(form: RevokeInvitation): Result = + client.deleteResult("account/invite", form) + + /** @GET("account/invite") */ + override suspend fun listRegistrationInvitations(form: ListInvitations): Result> = + client.getResult("account/invite", form) + + /** @GET("account/media/list") */ + override suspend fun listMedia(form: ListMedia): Result> = + client.getResult("account/media/list", form) + + /** @DELETE("account/media") */ + override suspend fun deleteMedia(form: DeleteImageParams): Result = + client.deleteResult("account/media", form) + + /** @DELETE("account/avatar") */ + override suspend fun deleteUserAvatar(): Result = + client.deleteResult("account/avatar") + + /** @DELETE("account/banner") */ + override suspend fun deleteUserBanner(): Result = + client.deleteResult("account/banner") + + /** @POST("admin/add") */ + override suspend fun addAdmin(form: AddAdmin): Result = + client.postResult("admin/add", form) + + /** @POST("admin/ban") */ + override suspend fun banPerson(form: BanPerson): Result = + client.postResult("admin/ban", form) + + /** @POST("admin/leave") */ + override suspend fun leaveAdmin(): Result = + client.postResult("admin/leave") + + /** @GET("admin/registration_application") */ + override suspend fun getRegistrationApplication(form: GetRegistrationApplication): Result = + client.getResult("admin/registration_application", form) + + /** @PUT("admin/registration_application/approve") */ + override suspend fun approveRegistrationApplication(form: ApproveRegistrationApplication): Result = + client.putResult("admin/registration_application/approve", form) + + /** @GET("admin/registration_application/list") */ + override suspend fun listRegistrationApplications(form: ListRegistrationApplications): Result> = + client.getResult("admin/registration_application/list", form) + + /** @POST("admin/purge/person") */ + override suspend fun purgePerson(form: PurgePerson): Result = + client.postResult("admin/purge/person", form) + + /** @POST("admin/purge/community") */ + override suspend fun purgeCommunity(form: PurgeCommunity): Result = + client.postResult("admin/purge/community", form) + + /** @POST("admin/purge/post") */ + override suspend fun purgePost(form: PurgePost): Result = + client.postResult("admin/purge/post", form) + + /** @POST("admin/purge/comment") */ + override suspend fun purgeComment(form: PurgeComment): Result = + client.postResult("admin/purge/comment", form) + + /** @POST("admin/instance/block") */ + override suspend fun adminBlockInstance(form: AdminBlockInstanceParams): Result = + client.postResult("admin/instance/block", form) + + /** @POST("admin/instance/allow") */ + override suspend fun adminAllowInstance(form: AdminAllowInstanceParams): Result = + client.postResult("admin/instance/allow", form) + + /** @POST("admin/tagline") */ + override suspend fun createTagline(form: CreateTagline): Result = + client.postResult("admin/tagline", form) + + /** @PUT("admin/tagline") */ + override suspend fun editTagline(form: EditTagline): Result = + client.putResult("admin/tagline", form) + + /** @DELETE("admin/tagline") */ + override suspend fun deleteTagline(form: DeleteTagline): Result = + client.deleteResult("admin/tagline", form) + + /** @GET("admin/tagline/list") */ + override suspend fun listTaglines(form: ListTaglines): Result> = + client.getResult("admin/tagline/list", form) + + /** @GET("admin/users") */ + override suspend fun adminListUsers(form: AdminListUsers): Result> = + client.getResult("admin/users", form) + + /** @POST("custom_emoji") */ + override suspend fun createCustomEmoji(form: CreateCustomEmoji): Result = + client.postResult("custom_emoji", form) + + /** @PUT("custom_emoji") */ + override suspend fun editCustomEmoji(form: EditCustomEmoji): Result = + client.putResult("custom_emoji", form) + + /** @POST("custom_emoji/delete") */ + override suspend fun deleteCustomEmoji(form: DeleteCustomEmoji): Result = + client.postResult("custom_emoji/delete", form) + + /** @GET("custom_emoji/list") */ + override suspend fun listCustomEmojis(form: ListCustomEmojis): Result = + client.getResult("custom_emoji/list", form) + + /** @POST("oauth/authenticate") */ + override suspend fun authenticateWithOAuth(form: AuthenticateWithOauth): Result = + client.postResult("oauth/authenticate", form) + + /** @POST("oauth_provider") */ + override suspend fun createOAuthProvider(form: CreateOAuthProvider): Result = + client.postResult("oauth_provider", form) + + /** @PUT("oauth_provider") */ + override suspend fun editOAuthProvider(form: EditOAuthProvider): Result = + client.putResult("oauth_provider", form) + + /** @DELETE("oauth_provider") */ + override suspend fun deleteOAuthProvider(form: DeleteOAuthProvider): Result = + client.deleteResult("oauth_provider", form) + + /** @GET("report/list") */ + override suspend fun listReports(form: ListReports): Result> = + client.getResult("report/list", form) + + /** @GET("multi_community") */ + override suspend fun getMultiCommunity(form: GetMultiCommunity): Result = + client.getResult("multi_community", form) + + /** @POST("multi_community") */ + override suspend fun createMultiCommunity(form: CreateMultiCommunity): Result = + client.postResult("multi_community", form) + + /** @PUT("multi_community") */ + override suspend fun editMultiCommunity(form: EditMultiCommunity): Result = + client.putResult("multi_community", form) + + /** @POST("multi_community/entry") */ + override suspend fun createMultiCommunityEntry(form: CreateOrDeleteMultiCommunityEntry): Result = + client.postResult("multi_community/entry", form) + + /** @DELETE("multi_community/entry") */ + override suspend fun deleteMultiCommunityEntry(form: CreateOrDeleteMultiCommunityEntry): Result = + client.deleteResult("multi_community/entry", form) + + /** @POST("multi_community/follow") */ + override suspend fun followMultiCommunity(form: FollowMultiCommunity): Result = + client.postResult("multi_community/follow", form) + + /** @GET("multi_community/list") */ + override suspend fun listMultiCommunities(form: ListMultiCommunities): Result> = + client.getResult("multi_community/list", form) + + /** @DELETE("image") */ + override suspend fun deleteMediaAdmin(form: DeleteImageParams): Result = + client.deleteResult("image", form) + + /** @GET("image/health") */ + override suspend fun imageHealth(): Result = + client.getResult("image/health") + + /** @GET("image/list") */ + override suspend fun listMediaAdmin(form: ListMedia): Result> = + client.getResult("image/list", form) + + /** @POST("community/banner") */ + override suspend fun uploadCommunityBanner(image: ByteArray, form: CommunityIdQuery): Result = + client.postUploadResult("community/banner", image) { addQueryParams(form) } + + /** @POST("community/icon") */ + override suspend fun uploadCommunityIcon(image: ByteArray, form: CommunityIdQuery): Result = + client.postUploadResult("community/icon", image) { addQueryParams(form) } + + /** @POST("image") */ + override suspend fun uploadImage(image: ByteArray): Result = + client.postUploadResult("image", image) + + /** @POST("site/banner") */ + override suspend fun uploadSiteBanner(image: ByteArray): Result = + client.postUploadResult("site/banner", image) + + /** @POST("site/icon") */ + override suspend fun uploadSiteIcon(image: ByteArray): Result = + client.postUploadResult("site/icon", image) + + /** @POST("account/avatar") */ + override suspend fun uploadUserAvatar(image: ByteArray): Result = + client.postUploadResult("account/avatar", image) + + /** @POST("account/banner") */ + override suspend fun uploadUserBanner(image: ByteArray): Result = + client.postUploadResult("account/banner", image) +} diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/LemmyApiRouter.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/LemmyApiRouter.kt new file mode 100644 index 00000000..8acbeabb --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/LemmyApiRouter.kt @@ -0,0 +1,478 @@ +package it.vercruysse.lemmyapi.v1.x0.x0 + +import io.ktor.client.HttpClient +import it.vercruysse.lemmyapi.AuthBaseClient +import it.vercruysse.lemmyapi.dto.ExportUserSettingsResponse +import it.vercruysse.lemmyapi.dto.ImportUserSettings +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.* + +internal abstract class LemmyApiRouter(client: HttpClient, auth: String?) : AuthBaseClient(client, auth) { + + /** @GET("site") */ + abstract suspend fun getSite(): Result + + /** @POST("site") */ + abstract suspend fun createSite(form: CreateSite): Result + + /** @PUT("site") */ + abstract suspend fun editSite(form: EditSite): Result + + /** @GET("modlog") */ + abstract suspend fun getModlog(form: GetModlog): Result> + + /** @GET("search") */ + abstract suspend fun search(form: Search): Result + + /** @GET("resolve_object") */ + abstract suspend fun resolveObject(form: ResolveObject): Result + + /** @GET("community") */ + abstract suspend fun getCommunity(form: GetCommunity): Result + + /** @POST("community") */ + abstract suspend fun createCommunity(form: CreateCommunity): Result + + /** @PUT("community") */ + abstract suspend fun editCommunity(form: EditCommunity): Result + + /** @DELETE("community") */ + abstract suspend fun deleteCommunity(form: DeleteCommunity): Result + + /** @PUT("community/hide") */ + abstract suspend fun hideCommunity(form: HideCommunity): Result + + /** @GET("community/list") */ + abstract suspend fun listCommunities(form: ListCommunities): Result> + + /** @POST("community/follow") */ + abstract suspend fun followCommunity(form: FollowCommunity): Result + + /** @POST("community/remove") */ + abstract suspend fun removeCommunity(form: RemoveCommunity): Result + + /** @POST("community/transfer") */ + abstract suspend fun transferCommunity(form: TransferCommunity): Result + + /** @POST("community/ban_user") */ + abstract suspend fun banFromCommunity(form: BanFromCommunity): Result + + /** @POST("community/mod") */ + abstract suspend fun addModToCommunity(form: AddModToCommunity): Result + + /** @GET("community/random") */ + abstract suspend fun getRandomCommunity(form: GetRandomCommunity): Result + + /** @POST("community/report") */ + abstract suspend fun createCommunityReport(form: CreateCommunityReport): Result + + /** @PUT("community/report/resolve") */ + abstract suspend fun resolveCommunityReport(form: ResolveCommunityReport): Result + + /** @POST("community/tag") */ + abstract suspend fun createCommunityTag(form: CreateCommunityTag): Result + + /** @PUT("community/tag") */ + abstract suspend fun editCommunityTag(form: EditCommunityTag): Result + + /** @DELETE("community/tag") */ + abstract suspend fun deleteCommunityTag(form: DeleteCommunityTag): Result + + /** @PUT("community/notifications") */ + abstract suspend fun editCommunityNotifications(form: EditCommunityNotifications): Result + + /** @POST("community/pending_follows/approve") */ + abstract suspend fun approveCommunityPendingFollow(form: ApproveCommunityPendingFollower): Result + + /** @GET("community/pending_follows/list") */ + abstract suspend fun listCommunityPendingFollows(form: ListCommunityPendingFollows): Result> + + /** @GET("federated_instances") */ + abstract suspend fun getFederatedInstances(form: GetFederatedInstances): Result> + + /** @GET("post") */ + abstract suspend fun getPost(form: GetPost): Result + + /** @POST("post") */ + abstract suspend fun createPost(form: CreatePost): Result + + /** @PUT("post") */ + abstract suspend fun editPost(form: EditPost): Result + + /** @DELETE("post") */ + abstract suspend fun deletePost(form: DeletePost): Result + + /** @GET("post/list") */ + abstract suspend fun getPosts(form: GetPosts): Result> + + /** @POST("post/remove") */ + abstract suspend fun removePost(form: RemovePost): Result + + /** @POST("post/mark_as_read") */ + abstract suspend fun markPostAsRead(form: MarkPostAsRead): Result + + /** @POST("post/mark_as_read/many") */ + abstract suspend fun markManyPostsAsRead(form: MarkManyPostsAsRead): Result + + /** @POST("post/lock") */ + abstract suspend fun lockPost(form: LockPost): Result + + /** @POST("post/feature") */ + abstract suspend fun featurePost(form: FeaturePost): Result + + /** @POST("post/like") */ + abstract suspend fun createPostLike(form: CreatePostLike): Result + + /** @PUT("post/save") */ + abstract suspend fun savePost(form: SavePost): Result + + /** @POST("post/report") */ + abstract suspend fun createPostReport(form: CreatePostReport): Result + + /** @PUT("post/report/resolve") */ + abstract suspend fun resolvePostReport(form: ResolvePostReport): Result + + /** @GET("post/site_metadata") */ + abstract suspend fun getSiteMetadata(form: GetSiteMetadata): Result + + /** @POST("post/hide") */ + abstract suspend fun hidePost(form: HidePost): Result + + /** @GET("post/like/list") */ + abstract suspend fun listPostLikes(form: ListPostLikes): Result> + + /** @PUT("post/mod_edit") */ + abstract suspend fun modEditPost(form: ModEditPost): Result + + /** @PUT("post/notifications") */ + abstract suspend fun editPostNotifications(form: EditPostNotifications): Result + + /** @POST("post/warn") */ + abstract suspend fun warnPost(form: CreatePostWarning): Result + + /** @GET("comment") */ + abstract suspend fun getComment(form: GetComment): Result + + /** @POST("comment") */ + abstract suspend fun createComment(form: CreateComment): Result + + /** @PUT("comment") */ + abstract suspend fun editComment(form: EditComment): Result + + /** @DELETE("comment") */ + abstract suspend fun deleteComment(form: DeleteComment): Result + + /** @GET("comment/list") */ + abstract suspend fun getComments(form: GetComments): Result> + + /** @GET("comment/list/slim") */ + abstract suspend fun getCommentsSlim(form: GetComments): Result> + + /** @POST("comment/remove") */ + abstract suspend fun removeComment(form: RemoveComment): Result + + /** @POST("comment/lock") */ + abstract suspend fun lockComment(form: LockComment): Result + + /** @POST("comment/distinguish") */ + abstract suspend fun distinguishComment(form: DistinguishComment): Result + + /** @POST("comment/like") */ + abstract suspend fun createCommentLike(form: CreateCommentLike): Result + + /** @PUT("comment/save") */ + abstract suspend fun saveComment(form: SaveComment): Result + + /** @POST("comment/report") */ + abstract suspend fun createCommentReport(form: CreateCommentReport): Result + + /** @PUT("comment/report/resolve") */ + abstract suspend fun resolveCommentReport(form: ResolveCommentReport): Result + + /** @GET("comment/like/list") */ + abstract suspend fun listCommentLikes(form: ListCommentLikes): Result> + + /** @POST("comment/warn") */ + abstract suspend fun warnComment(form: CreateCommentWarning): Result + + /** @POST("private_message") */ + abstract suspend fun createPrivateMessage(form: CreatePrivateMessage): Result + + /** @PUT("private_message") */ + abstract suspend fun editPrivateMessage(form: EditPrivateMessage): Result + + /** @DELETE("private_message") */ + abstract suspend fun deletePrivateMessage(form: DeletePrivateMessage): Result + + /** @POST("private_message/report") */ + abstract suspend fun createPrivateMessageReport(form: CreatePrivateMessageReport): Result + + /** @PUT("private_message/report/resolve") */ + abstract suspend fun resolvePrivateMessageReport(form: ResolvePrivateMessageReport): Result + + /** @GET("person") */ + abstract suspend fun getPersonDetails(form: GetPersonDetails): Result + + /** @GET("person/list") */ + abstract suspend fun listPersons(form: ListPersons): Result> + + /** @GET("person/content") */ + abstract suspend fun listPersonContent(form: ListPersonContent): Result> + + /** @POST("person/note") */ + abstract suspend fun notePerson(form: NotePerson): Result + + /** @GET("account") */ + abstract suspend fun getMyUser(): Result + + /** @DELETE("account") */ + abstract suspend fun deleteAccount(form: DeleteAccount): Result + + /** @POST("account/auth/login") */ + abstract suspend fun login(form: Login): Result + + /** @POST("account/auth/logout") */ + abstract suspend fun logout(): Result + + /** @POST("account/auth/register") */ + abstract suspend fun register(form: Register): Result + + /** @GET("account/auth/get_captcha") */ + abstract suspend fun getCaptcha(): Result + + /** @POST("account/auth/password_reset") */ + abstract suspend fun resetPassword(form: ResetPassword): Result + + /** @POST("account/auth/password_change") */ + abstract suspend fun changePasswordAfterReset(form: ChangePasswordAfterReset): Result + + /** @PUT("account/auth/change_password") */ + abstract suspend fun changePassword(form: ChangePassword): Result + + /** @POST("account/auth/verify_email") */ + abstract suspend fun verifyEmail(form: VerifyEmail): Result + + /** @POST("account/auth/resend_verification_email") */ + abstract suspend fun resendVerificationEmail(form: ResendVerificationEmail): Result + + /** @POST("account/auth/totp/generate") */ + abstract suspend fun generateTotpSecret(): Result + + /** @POST("account/auth/totp/edit") */ + abstract suspend fun editTotp(form: EditTotp): Result + + /** @PUT("account/settings/save") */ + abstract suspend fun saveUserSettings(form: SaveUserSettings): Result + + /** @GET("account/settings/export") */ + abstract suspend fun exportUserSettings(): Result + + /** @POST("account/settings/import") */ + abstract suspend fun importUserSettings(form: ImportUserSettings): Result + + /** @POST("account/block/community") */ + abstract suspend fun blockCommunity(form: BlockCommunity): Result + + /** @POST("account/block/person") */ + abstract suspend fun blockPerson(form: BlockPerson): Result + + /** @POST("account/block/instance/communities") */ + abstract suspend fun userBlockInstanceCommunities(form: UserBlockInstanceCommunitiesParams): Result + + /** @POST("account/block/instance/persons") */ + abstract suspend fun userBlockInstancePersons(form: UserBlockInstancePersonsParams): Result + + /** @POST("account/donation_dialog_shown") */ + abstract suspend fun markDonationDialogShown(): Result + + /** @GET("account/login/list") */ + abstract suspend fun listLogins(): Result + + /** @GET("account/validate_auth") */ + abstract suspend fun validateAuth(): Result + + /** @GET("account/unread_counts") */ + abstract suspend fun getUnreadCounts(): Result + + /** @POST("account/notification/mark_as_read") */ + abstract suspend fun markNotificationAsRead(form: MarkNotificationAsRead): Result + + /** @POST("account/notification/mark_as_read/all") */ + abstract suspend fun markAllNotificationsAsRead(): Result + + /** @GET("account/notification/list") */ + abstract suspend fun listNotifications(form: ListNotifications): Result> + + /** @GET("account/saved") */ + abstract suspend fun listPersonSaved(form: ListPersonSaved): Result> + + /** @GET("account/read") */ + abstract suspend fun listPersonRead(form: ListPersonRead): Result> + + /** @GET("account/hidden") */ + abstract suspend fun listPersonHidden(form: ListPersonHidden): Result> + + /** @GET("account/liked") */ + abstract suspend fun listPersonLiked(form: ListPersonLiked): Result> + + /** @POST("account/invite") */ + abstract suspend fun createRegistrationInvitation(form: CreateInvitation): Result + + /** @DELETE("account/invite") */ + abstract suspend fun revokeRegistrationInvitation(form: RevokeInvitation): Result + + /** @GET("account/invite") */ + abstract suspend fun listRegistrationInvitations(form: ListInvitations): Result> + + /** @GET("account/media/list") */ + abstract suspend fun listMedia(form: ListMedia): Result> + + /** @POST("admin/add") */ + abstract suspend fun addAdmin(form: AddAdmin): Result + + /** @POST("admin/ban") */ + abstract suspend fun banPerson(form: BanPerson): Result + + /** @POST("admin/leave") */ + abstract suspend fun leaveAdmin(): Result + + /** @GET("admin/registration_application") */ + abstract suspend fun getRegistrationApplication(form: GetRegistrationApplication): Result + + /** @PUT("admin/registration_application/approve") */ + abstract suspend fun approveRegistrationApplication(form: ApproveRegistrationApplication): Result + + /** @GET("admin/registration_application/list") */ + abstract suspend fun listRegistrationApplications(form: ListRegistrationApplications): Result> + + /** @POST("admin/purge/person") */ + abstract suspend fun purgePerson(form: PurgePerson): Result + + /** @POST("admin/purge/community") */ + abstract suspend fun purgeCommunity(form: PurgeCommunity): Result + + /** @POST("admin/purge/post") */ + abstract suspend fun purgePost(form: PurgePost): Result + + /** @POST("admin/purge/comment") */ + abstract suspend fun purgeComment(form: PurgeComment): Result + + /** @POST("admin/instance/block") */ + abstract suspend fun adminBlockInstance(form: AdminBlockInstanceParams): Result + + /** @POST("admin/instance/allow") */ + abstract suspend fun adminAllowInstance(form: AdminAllowInstanceParams): Result + + /** @POST("admin/tagline") */ + abstract suspend fun createTagline(form: CreateTagline): Result + + /** @PUT("admin/tagline") */ + abstract suspend fun editTagline(form: EditTagline): Result + + /** @DELETE("admin/tagline") */ + abstract suspend fun deleteTagline(form: DeleteTagline): Result + + /** @GET("admin/tagline/list") */ + abstract suspend fun listTaglines(form: ListTaglines): Result> + + /** @GET("admin/users") */ + abstract suspend fun adminListUsers(form: AdminListUsers): Result> + + /** @POST("custom_emoji") */ + abstract suspend fun createCustomEmoji(form: CreateCustomEmoji): Result + + /** @PUT("custom_emoji") */ + abstract suspend fun editCustomEmoji(form: EditCustomEmoji): Result + + /** @POST("custom_emoji/delete") */ + abstract suspend fun deleteCustomEmoji(form: DeleteCustomEmoji): Result + + /** @GET("custom_emoji/list") */ + abstract suspend fun listCustomEmojis(form: ListCustomEmojis): Result + + /** @POST("oauth/authenticate") */ + abstract suspend fun authenticateWithOAuth(form: AuthenticateWithOauth): Result + + /** @POST("oauth_provider") */ + abstract suspend fun createOAuthProvider(form: CreateOAuthProvider): Result + + /** @PUT("oauth_provider") */ + abstract suspend fun editOAuthProvider(form: EditOAuthProvider): Result + + /** @DELETE("oauth_provider") */ + abstract suspend fun deleteOAuthProvider(form: DeleteOAuthProvider): Result + + /** @GET("report/list") */ + abstract suspend fun listReports(form: ListReports): Result> + + /** @GET("multi_community") */ + abstract suspend fun getMultiCommunity(form: GetMultiCommunity): Result + + /** @POST("multi_community") */ + abstract suspend fun createMultiCommunity(form: CreateMultiCommunity): Result + + /** @PUT("multi_community") */ + abstract suspend fun editMultiCommunity(form: EditMultiCommunity): Result + + /** @POST("multi_community/entry") */ + abstract suspend fun createMultiCommunityEntry(form: CreateOrDeleteMultiCommunityEntry): Result + + /** @DELETE("multi_community/entry") */ + abstract suspend fun deleteMultiCommunityEntry(form: CreateOrDeleteMultiCommunityEntry): Result + + /** @POST("multi_community/follow") */ + abstract suspend fun followMultiCommunity(form: FollowMultiCommunity): Result + + /** @GET("multi_community/list") */ + abstract suspend fun listMultiCommunities(form: ListMultiCommunities): Result> + + /** @DELETE("image") */ + abstract suspend fun deleteMediaAdmin(form: DeleteImageParams): Result + + /** @GET("image/health") */ + abstract suspend fun imageHealth(): Result + + /** @GET("image/list") */ + abstract suspend fun listMediaAdmin(form: ListMedia): Result> + + /** @POST("image") */ + abstract suspend fun uploadImage(image: ByteArray): Result + + /** @DELETE("account/media") */ + abstract suspend fun deleteMedia(form: DeleteImageParams): Result + + /** @POST("community/banner") */ + abstract suspend fun uploadCommunityBanner(image: ByteArray, form: CommunityIdQuery): Result + + /** @POST("community/icon") */ + abstract suspend fun uploadCommunityIcon(image: ByteArray, form: CommunityIdQuery): Result + + /** @POST("site/banner") */ + abstract suspend fun uploadSiteBanner(image: ByteArray): Result + + /** @POST("site/icon") */ + abstract suspend fun uploadSiteIcon(image: ByteArray): Result + + /** @POST("account/avatar") */ + abstract suspend fun uploadUserAvatar(image: ByteArray): Result + + /** @POST("account/banner") */ + abstract suspend fun uploadUserBanner(image: ByteArray): Result + + /** @DELETE("account/avatar") */ + abstract suspend fun deleteUserAvatar(): Result + + /** @DELETE("account/banner") */ + abstract suspend fun deleteUserBanner(): Result + + /** @DELETE("community/banner") */ + abstract suspend fun deleteCommunityBanner(form: CommunityIdQuery): Result + + /** @DELETE("community/icon") */ + abstract suspend fun deleteCommunityIcon(form: CommunityIdQuery): Result + + /** @DELETE("site/banner") */ + abstract suspend fun deleteSiteBanner(): Result + + /** @DELETE("site/icon") */ + abstract suspend fun deleteSiteIcon(): Result +} diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/LemmyApiUniWrapper.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/LemmyApiUniWrapper.kt new file mode 100644 index 00000000..070bf0b4 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/LemmyApiUniWrapper.kt @@ -0,0 +1,549 @@ +package it.vercruysse.lemmyapi.v1.x0.x0 + +import io.github.z4kn4fein.semver.Version +import io.ktor.client.HttpClient +import it.vercruysse.lemmyapi.LemmyApiBaseController +import it.vercruysse.lemmyapi.datatypes.ListCustomEmojis +import it.vercruysse.lemmyapi.datatypes.ListCustomEmojisResponse +import it.vercruysse.lemmyapi.datatypes.ListLoginsResponse +import it.vercruysse.lemmyapi.datatypes.ListNotifications +import it.vercruysse.lemmyapi.datatypes.MarkNotificationAsRead +import it.vercruysse.lemmyapi.datatypes.MyUserInfo +import it.vercruysse.lemmyapi.datatypes.PagedResponse +import it.vercruysse.lemmyapi.datatypes.UnreadCountsResponse +import it.vercruysse.lemmyapi.dto.ExportUserSettingsResponse +import it.vercruysse.lemmyapi.dto.ImportUserSettings + +internal class LemmyApiUniWrapper(client: HttpClient, actualVersion: Version, baseUrl: String, auth: String?) : + LemmyApiBaseController(client, actualVersion, baseUrl, auth) { + private val api = LemmyApiController(client, auth) + private val transformer = Transformer() + + override var auth: String? + get() = super.auth + set(value) { + super.auth = value + api.auth = value + } + + override suspend fun getSite(): Result = + api.getSite().map(transformer::toUni) + + override suspend fun createSite(form: it.vercruysse.lemmyapi.datatypes.CreateSite): Result = + api.createSite(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun editSite(form: it.vercruysse.lemmyapi.datatypes.EditSite): Result = + api.editSite(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun getModlog(form: it.vercruysse.lemmyapi.datatypes.GetModlog): Result> = + api.getModlog(transformer.fromUni(form)).map { resp -> + PagedResponse(resp.items.map(transformer::toUni)) + } + + override suspend fun search(form: it.vercruysse.lemmyapi.datatypes.Search): Result = + api.search(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun resolveObject(form: it.vercruysse.lemmyapi.datatypes.ResolveObject): Result = + api.resolveObject(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun getCommunity(form: it.vercruysse.lemmyapi.datatypes.GetCommunity): Result = + api.getCommunity(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun createCommunity(form: it.vercruysse.lemmyapi.datatypes.CreateCommunity): Result = + api.createCommunity(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun editCommunity(form: it.vercruysse.lemmyapi.datatypes.EditCommunity): Result = + api.editCommunity(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun hideCommunity(form: it.vercruysse.lemmyapi.datatypes.HideCommunity): Result = + api.hideCommunity(transformer.fromUni(form)) + + override suspend fun listCommunities(form: it.vercruysse.lemmyapi.datatypes.ListCommunities): Result> = + api.listCommunities(transformer.fromUni(form)).map { resp -> + PagedResponse(resp.items.map(transformer::toUni)) + } + + override suspend fun followCommunity(form: it.vercruysse.lemmyapi.datatypes.FollowCommunity): Result = + api.followCommunity(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun blockCommunity(form: it.vercruysse.lemmyapi.datatypes.BlockCommunity): Result = + api.blockCommunity(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun deleteCommunity(form: it.vercruysse.lemmyapi.datatypes.DeleteCommunity): Result = + api.deleteCommunity(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun removeCommunity(form: it.vercruysse.lemmyapi.datatypes.RemoveCommunity): Result = + api.removeCommunity(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun transferCommunity(form: it.vercruysse.lemmyapi.datatypes.TransferCommunity): Result = + api.transferCommunity(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun banFromCommunity(form: it.vercruysse.lemmyapi.datatypes.BanFromCommunity): Result = + api.banFromCommunity(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun addModToCommunity(form: it.vercruysse.lemmyapi.datatypes.AddModToCommunity): Result = + api.addModToCommunity(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun getFederatedInstances(form: it.vercruysse.lemmyapi.datatypes.GetFederatedInstances): Result> = + api.getFederatedInstances(transformer.fromUni(form)).map { resp -> + PagedResponse(resp.items.map(transformer::toUni)) + } + + override suspend fun getPost(form: it.vercruysse.lemmyapi.datatypes.GetPost): Result = + api.getPost(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun editPost(form: it.vercruysse.lemmyapi.datatypes.EditPost): Result = + api.editPost(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun createPost(form: it.vercruysse.lemmyapi.datatypes.CreatePost): Result = + api.createPost(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun getPosts(form: it.vercruysse.lemmyapi.datatypes.GetPosts): Result> = + api.getPosts(transformer.fromUni(form.toValidatedForm())).map { resp -> + PagedResponse(resp.items.map(transformer::toUni)) + } + + override suspend fun deletePost(form: it.vercruysse.lemmyapi.datatypes.DeletePost): Result = + api.deletePost(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun removePost(form: it.vercruysse.lemmyapi.datatypes.RemovePost): Result = + api.removePost(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun markPostAsRead(form: it.vercruysse.lemmyapi.datatypes.MarkPostAsRead): Result = + api.markPostAsRead(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun markManyPostsAsRead(form: it.vercruysse.lemmyapi.datatypes.MarkManyPostsAsRead): Result = + api.markManyPostsAsRead(transformer.fromUni(form)) + + override suspend fun lockPost(form: it.vercruysse.lemmyapi.datatypes.LockPost): Result = + api.lockPost(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun featurePost(form: it.vercruysse.lemmyapi.datatypes.FeaturePost): Result = + api.featurePost(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun createPostLike(form: it.vercruysse.lemmyapi.datatypes.CreatePostLike): Result = + api.createPostLike(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun savePost(form: it.vercruysse.lemmyapi.datatypes.SavePost): Result = + api.savePost(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun createPostReport(form: it.vercruysse.lemmyapi.datatypes.CreatePostReport): Result = + api.createPostReport(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun resolvePostReport(form: it.vercruysse.lemmyapi.datatypes.ResolvePostReport): Result = + api.resolvePostReport(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun listReports(form: it.vercruysse.lemmyapi.datatypes.ListReports): Result> = + api.listReports(transformer.fromUni(form)).map { resp -> + PagedResponse(resp.items.map(transformer::toUni)) + } + + override suspend fun getSiteMetadata(form: it.vercruysse.lemmyapi.datatypes.GetSiteMetadata): Result = + api.getSiteMetadata(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun getComment(form: it.vercruysse.lemmyapi.datatypes.GetComment): Result = + api.getComment(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun createComment(form: it.vercruysse.lemmyapi.datatypes.CreateComment): Result = + api.createComment(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun editComment(form: it.vercruysse.lemmyapi.datatypes.EditComment): Result = + api.editComment(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun getComments(form: it.vercruysse.lemmyapi.datatypes.GetComments): Result> = + api.getComments(transformer.fromUni(form)).map { resp -> + PagedResponse(resp.items.map(transformer::toUni)) + } + + override suspend fun deleteComment(form: it.vercruysse.lemmyapi.datatypes.DeleteComment): Result = + api.deleteComment(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun removeComment(form: it.vercruysse.lemmyapi.datatypes.RemoveComment): Result = + api.removeComment(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun distinguishComment(form: it.vercruysse.lemmyapi.datatypes.DistinguishComment): Result = + api.distinguishComment(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun createCommentLike(form: it.vercruysse.lemmyapi.datatypes.CreateCommentLike): Result = + api.createCommentLike(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun saveComment(form: it.vercruysse.lemmyapi.datatypes.SaveComment): Result = + api.saveComment(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun createCommentReport(form: it.vercruysse.lemmyapi.datatypes.CreateCommentReport): Result = + api.createCommentReport(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun resolveCommentReport(form: it.vercruysse.lemmyapi.datatypes.ResolveCommentReport): Result = + api.resolveCommentReport(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun editPrivateMessage(form: it.vercruysse.lemmyapi.datatypes.EditPrivateMessage): Result = + api.editPrivateMessage(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun createPrivateMessage(form: it.vercruysse.lemmyapi.datatypes.CreatePrivateMessage): Result = + api.createPrivateMessage(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun deletePrivateMessage(form: it.vercruysse.lemmyapi.datatypes.DeletePrivateMessage): Result = + api.deletePrivateMessage(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun createPrivateMessageReport(form: it.vercruysse.lemmyapi.datatypes.CreatePrivateMessageReport): Result = + api.createPrivateMessageReport(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun resolvePrivateMessageReport(form: it.vercruysse.lemmyapi.datatypes.ResolvePrivateMessageReport): Result = + api.resolvePrivateMessageReport(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun getPersonDetails(form: it.vercruysse.lemmyapi.datatypes.GetPersonDetails): Result = + api.getPersonDetails(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun listPersons(form: it.vercruysse.lemmyapi.datatypes.ListPersons): Result> = + api.listPersons(transformer.fromUni(form)).map { resp -> + PagedResponse(resp.items.map(transformer::toUni)) + } + + override suspend fun register(form: it.vercruysse.lemmyapi.datatypes.Register): Result = + api.register(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun getCaptcha(): Result = + api.getCaptcha().map(transformer::toUni) + + override suspend fun markNotificationAsRead(form: MarkNotificationAsRead): Result = + api.markNotificationAsRead(transformer.fromUni(form)) + + override suspend fun markAllNotificationsAsRead(): Result = + api.markAllNotificationsAsRead() + + override suspend fun listNotifications(form: ListNotifications): Result> = + api.listNotifications(transformer.fromUni(form)).map { resp -> + PagedResponse(resp.items.map(transformer::toUni)) + } + + override suspend fun banPerson(form: it.vercruysse.lemmyapi.datatypes.BanPerson): Result = + api.banPerson(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun getBannedPersons(): Result> = + notSupported() + + override suspend fun blockPerson(form: it.vercruysse.lemmyapi.datatypes.BlockPerson): Result = + api.blockPerson(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun login(form: it.vercruysse.lemmyapi.datatypes.Login): Result = + api.login(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun deleteAccount(form: it.vercruysse.lemmyapi.datatypes.DeleteAccount): Result = + api.deleteAccount(transformer.fromUni(form)) + + override suspend fun resetPassword(form: it.vercruysse.lemmyapi.datatypes.ResetPassword): Result = + api.resetPassword(transformer.fromUni(form)) + + override suspend fun changePasswordAfterReset(form: it.vercruysse.lemmyapi.datatypes.ChangePasswordAfterReset): Result = + api.changePasswordAfterReset(transformer.fromUni(form)) + + override suspend fun saveUserSettings(form: it.vercruysse.lemmyapi.datatypes.SaveUserSettings): Result = + api.saveUserSettings(transformer.fromUni(form)) + + override suspend fun changePassword(form: it.vercruysse.lemmyapi.datatypes.ChangePassword): Result = + api.changePassword(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun getUnreadCounts(): Result = + api.getUnreadCounts().map(transformer::toUni) + + override suspend fun verifyEmail(form: it.vercruysse.lemmyapi.datatypes.VerifyEmail): Result = + api.verifyEmail(transformer.fromUni(form)) + + override suspend fun leaveAdmin(): Result = + api.leaveAdmin().map(transformer::toUni) + + override suspend fun markDonationDialogShown(): Result = + api.markDonationDialogShown() + + override suspend fun addAdmin(form: it.vercruysse.lemmyapi.datatypes.AddAdmin): Result = + api.addAdmin(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun listRegistrationApplications(form: it.vercruysse.lemmyapi.datatypes.ListRegistrationApplications): Result> = + api.listRegistrationApplications(transformer.fromUni(form)).map { resp -> + PagedResponse(resp.items.map(transformer::toUni)) + } + + override suspend fun approveRegistrationApplication(form: it.vercruysse.lemmyapi.datatypes.ApproveRegistrationApplication): Result = + api.approveRegistrationApplication(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun purgePerson(form: it.vercruysse.lemmyapi.datatypes.PurgePerson): Result = + api.purgePerson(transformer.fromUni(form)) + + override suspend fun purgeCommunity(form: it.vercruysse.lemmyapi.datatypes.PurgeCommunity): Result = + api.purgeCommunity(transformer.fromUni(form)) + + override suspend fun purgePost(form: it.vercruysse.lemmyapi.datatypes.PurgePost): Result = + api.purgePost(transformer.fromUni(form)) + + override suspend fun purgeComment(form: it.vercruysse.lemmyapi.datatypes.PurgeComment): Result = + api.purgeComment(transformer.fromUni(form)) + + override suspend fun editCustomEmoji(form: it.vercruysse.lemmyapi.datatypes.EditCustomEmoji): Result = + api.editCustomEmoji(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun createCustomEmoji(form: it.vercruysse.lemmyapi.datatypes.CreateCustomEmoji): Result = + api.createCustomEmoji(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun deleteCustomEmoji(form: it.vercruysse.lemmyapi.datatypes.DeleteCustomEmoji): Result = + api.deleteCustomEmoji(transformer.fromUni(form)) + + override suspend fun listCustomEmojis(form: ListCustomEmojis): Result = + api.listCustomEmojis(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun userBlockInstanceCommunities(form: it.vercruysse.lemmyapi.datatypes.UserBlockInstanceCommunitiesParams): Result = + api.userBlockInstanceCommunities(transformer.fromUni(form)) + + override suspend fun generateTotpSecret(): Result = + api.generateTotpSecret().map(transformer::toUni) + + override suspend fun editTotp(form: it.vercruysse.lemmyapi.datatypes.EditTotp): Result = + api.editTotp(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun exportUserSettings(): Result = + api.exportUserSettings() + + override suspend fun importUserSettings(form: ImportUserSettings): Result = + api.importUserSettings(form) + + override suspend fun listLogins(): Result = + api.listLogins().map(transformer::toUni) + + override suspend fun validateAuth(): Result = + api.validateAuth() + + override suspend fun getMyUser(): Result = + api.getMyUser().map(transformer::toUni) + + override suspend fun logout(): Result = + api.logout() + + override suspend fun listPostLikes(form: it.vercruysse.lemmyapi.datatypes.ListPostLikes): Result> = + api.listPostLikes(transformer.fromUni(form)).map { resp -> + PagedResponse(resp.items.map(transformer::toUni)) + } + + override suspend fun listCommentLikes(form: it.vercruysse.lemmyapi.datatypes.ListCommentLikes): Result> = + api.listCommentLikes(transformer.fromUni(form)).map { resp -> + PagedResponse(resp.items.map(transformer::toUni)) + } + + override suspend fun createRegistrationInvitation(form: it.vercruysse.lemmyapi.datatypes.CreateInvitation): Result = + api.createRegistrationInvitation(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun revokeRegistrationInvitation(form: it.vercruysse.lemmyapi.datatypes.RevokeInvitation): Result = + api.revokeRegistrationInvitation(transformer.fromUni(form)) + + override suspend fun listRegistrationInvitations(form: it.vercruysse.lemmyapi.datatypes.ListInvitations): Result> = + api.listRegistrationInvitations(transformer.fromUni(form)).map { resp -> + PagedResponse(resp.items.map(transformer::toUni)) + } + + override suspend fun listMedia(form: it.vercruysse.lemmyapi.datatypes.ListMedia): Result> = + api.listMedia(transformer.fromUni(form)).map { resp -> + PagedResponse(resp.items.map(transformer::toUni)) + } + + override suspend fun listMediaAdmin(form: it.vercruysse.lemmyapi.datatypes.ListMedia): Result> = + api.listMediaAdmin(transformer.fromUni(form)).map { resp -> + PagedResponse(resp.items.map(transformer::toUni)) + } + + override suspend fun hidePost(form: it.vercruysse.lemmyapi.datatypes.HidePost): Result = + api.hidePost(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun hidePosts(form: it.vercruysse.lemmyapi.datatypes.HidePosts): Result = notSupported() + + override suspend fun getRegistrationApplication(form: it.vercruysse.lemmyapi.datatypes.GetRegistrationApplication): Result = + api.getRegistrationApplication(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun listPersonContent(form: it.vercruysse.lemmyapi.datatypes.ListPersonContent): Result> = + api.listPersonContent(transformer.fromUni(form)).map { resp -> + PagedResponse(resp.items.map(transformer::toUni)) + } + + override suspend fun uploadImage(image: ByteArray): Result = + api.uploadImage(image).map(transformer::toUni) + + override suspend fun uploadCommunityBanner(image: ByteArray, form: it.vercruysse.lemmyapi.datatypes.CommunityIdQuery): Result = + api.uploadCommunityBanner(image, transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun uploadCommunityIcon(image: ByteArray, form: it.vercruysse.lemmyapi.datatypes.CommunityIdQuery): Result = + api.uploadCommunityIcon(image, transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun uploadSiteBanner(image: ByteArray): Result = + api.uploadSiteBanner(image).map(transformer::toUni) + + override suspend fun uploadSiteIcon(image: ByteArray): Result = + api.uploadSiteIcon(image).map(transformer::toUni) + + override suspend fun uploadUserAvatar(image: ByteArray): Result = + api.uploadUserAvatar(image).map(transformer::toUni) + + override suspend fun uploadUserBanner(image: ByteArray): Result = + api.uploadUserBanner(image).map(transformer::toUni) + + override suspend fun deleteUserAvatar(): Result = + api.deleteUserAvatar() + + override suspend fun deleteUserBanner(): Result = + api.deleteUserBanner() + + override suspend fun deleteCommunityBanner(form: it.vercruysse.lemmyapi.datatypes.CommunityIdQuery): Result = + api.deleteCommunityBanner(transformer.fromUni(form)) + + override suspend fun deleteCommunityIcon(form: it.vercruysse.lemmyapi.datatypes.CommunityIdQuery): Result = + api.deleteCommunityIcon(transformer.fromUni(form)) + + override suspend fun deleteSiteBanner(): Result = + api.deleteSiteBanner() + + override suspend fun deleteSiteIcon(): Result = + api.deleteSiteIcon() + + override suspend fun deleteMedia(form: it.vercruysse.lemmyapi.datatypes.DeleteImageParams): Result = + api.deleteMedia(transformer.fromUni(form)) + + override suspend fun deleteMediaAdmin(form: it.vercruysse.lemmyapi.datatypes.DeleteImageParams): Result = + api.deleteMediaAdmin(transformer.fromUni(form)) + + override suspend fun imageHealth(): Result = + api.imageHealth() + + override suspend fun adminListUsers(form: it.vercruysse.lemmyapi.datatypes.AdminListUsers): Result> = + api.adminListUsers(transformer.fromUni(form)).map { resp -> + PagedResponse(resp.items.map(transformer::toUni)) + } + + override suspend fun getRandomCommunity(form: it.vercruysse.lemmyapi.datatypes.GetRandomCommunity): Result = + api.getRandomCommunity(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun createCommunityReport(form: it.vercruysse.lemmyapi.datatypes.CreateCommunityReport): Result = + api.createCommunityReport(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun resolveCommunityReport(form: it.vercruysse.lemmyapi.datatypes.ResolveCommunityReport): Result = + api.resolveCommunityReport(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun createCommunityTag(form: it.vercruysse.lemmyapi.datatypes.CreateCommunityTag): Result = + api.createCommunityTag(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun editCommunityTag(form: it.vercruysse.lemmyapi.datatypes.EditCommunityTag): Result = + api.editCommunityTag(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun deleteCommunityTag(form: it.vercruysse.lemmyapi.datatypes.DeleteCommunityTag): Result = + api.deleteCommunityTag(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun editCommunityNotifications(form: it.vercruysse.lemmyapi.datatypes.EditCommunityNotifications): Result = + api.editCommunityNotifications(transformer.fromUni(form)) + + override suspend fun approveCommunityPendingFollow(form: it.vercruysse.lemmyapi.datatypes.ApproveCommunityPendingFollower): Result = + api.approveCommunityPendingFollow(transformer.fromUni(form)) + + override suspend fun listCommunityPendingFollows(form: it.vercruysse.lemmyapi.datatypes.ListCommunityPendingFollows): Result> = + api.listCommunityPendingFollows(transformer.fromUni(form)).map { resp -> + PagedResponse(resp.items.map(transformer::toUni)) + } + + override suspend fun modEditPost(form: it.vercruysse.lemmyapi.datatypes.ModEditPost): Result = + api.modEditPost(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun editPostNotifications(form: it.vercruysse.lemmyapi.datatypes.EditPostNotifications): Result = + api.editPostNotifications(transformer.fromUni(form)) + + override suspend fun warnPost(form: it.vercruysse.lemmyapi.datatypes.CreatePostWarning): Result = + api.warnPost(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun getCommentsSlim(form: it.vercruysse.lemmyapi.datatypes.GetComments): Result> = + api.getCommentsSlim(transformer.fromUni(form)).map { resp -> + PagedResponse(resp.items.map(transformer::toUni)) + } + + override suspend fun lockComment(form: it.vercruysse.lemmyapi.datatypes.LockComment): Result = + api.lockComment(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun warnComment(form: it.vercruysse.lemmyapi.datatypes.CreateCommentWarning): Result = + api.warnComment(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun notePerson(form: it.vercruysse.lemmyapi.datatypes.NotePerson): Result = + api.notePerson(transformer.fromUni(form)) + + override suspend fun listPersonSaved(form: it.vercruysse.lemmyapi.datatypes.ListPersonSaved): Result> = + api.listPersonSaved(transformer.fromUni(form)).map { resp -> + PagedResponse(resp.items.map(transformer::toUni)) + } + + override suspend fun listPersonRead(form: it.vercruysse.lemmyapi.datatypes.ListPersonRead): Result> = + api.listPersonRead(transformer.fromUni(form)).map { resp -> + PagedResponse(resp.items.map(transformer::toUni)) + } + + override suspend fun listPersonHidden(form: it.vercruysse.lemmyapi.datatypes.ListPersonHidden): Result> = + api.listPersonHidden(transformer.fromUni(form)).map { resp -> + PagedResponse(resp.items.map(transformer::toUni)) + } + + override suspend fun listPersonLiked(form: it.vercruysse.lemmyapi.datatypes.ListPersonLiked): Result> = + api.listPersonLiked(transformer.fromUni(form)).map { resp -> + PagedResponse(resp.items.map(transformer::toUni)) + } + + override suspend fun resendVerificationEmail(form: it.vercruysse.lemmyapi.datatypes.ResendVerificationEmail): Result = + api.resendVerificationEmail(transformer.fromUni(form)) + + override suspend fun authenticateWithOAuth(form: it.vercruysse.lemmyapi.datatypes.AuthenticateWithOauth): Result = + api.authenticateWithOAuth(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun userBlockInstancePersons(form: it.vercruysse.lemmyapi.datatypes.UserBlockInstancePersonsParams): Result = + api.userBlockInstancePersons(transformer.fromUni(form)) + + override suspend fun adminAllowInstance(form: it.vercruysse.lemmyapi.datatypes.AdminAllowInstanceParams): Result = + api.adminAllowInstance(transformer.fromUni(form)) + + override suspend fun adminBlockInstance(form: it.vercruysse.lemmyapi.datatypes.AdminBlockInstanceParams): Result = + api.adminBlockInstance(transformer.fromUni(form)) + + override suspend fun createTagline(form: it.vercruysse.lemmyapi.datatypes.CreateTagline): Result = + api.createTagline(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun editTagline(form: it.vercruysse.lemmyapi.datatypes.EditTagline): Result = + api.editTagline(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun deleteTagline(form: it.vercruysse.lemmyapi.datatypes.DeleteTagline): Result = + api.deleteTagline(transformer.fromUni(form)) + + override suspend fun listTaglines(form: it.vercruysse.lemmyapi.datatypes.ListTaglines): Result> = + api.listTaglines(transformer.fromUni(form)).map { resp -> + PagedResponse(resp.items.map(transformer::toUni)) + } + + override suspend fun createOAuthProvider(form: it.vercruysse.lemmyapi.datatypes.CreateOAuthProvider): Result = + api.createOAuthProvider(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun editOAuthProvider(form: it.vercruysse.lemmyapi.datatypes.EditOAuthProvider): Result = + api.editOAuthProvider(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun deleteOAuthProvider(form: it.vercruysse.lemmyapi.datatypes.DeleteOAuthProvider): Result = + api.deleteOAuthProvider(transformer.fromUni(form)) + + override suspend fun getMultiCommunity(form: it.vercruysse.lemmyapi.datatypes.GetMultiCommunity): Result = + api.getMultiCommunity(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun createMultiCommunity(form: it.vercruysse.lemmyapi.datatypes.CreateMultiCommunity): Result = + api.createMultiCommunity(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun editMultiCommunity(form: it.vercruysse.lemmyapi.datatypes.EditMultiCommunity): Result = + api.editMultiCommunity(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun createMultiCommunityEntry(form: it.vercruysse.lemmyapi.datatypes.CreateOrDeleteMultiCommunityEntry): Result = + api.createMultiCommunityEntry(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun deleteMultiCommunityEntry(form: it.vercruysse.lemmyapi.datatypes.CreateOrDeleteMultiCommunityEntry): Result = + api.deleteMultiCommunityEntry(transformer.fromUni(form)) + + override suspend fun followMultiCommunity(form: it.vercruysse.lemmyapi.datatypes.FollowMultiCommunity): Result = + api.followMultiCommunity(transformer.fromUni(form)).map(transformer::toUni) + + override suspend fun listMultiCommunities(form: it.vercruysse.lemmyapi.datatypes.ListMultiCommunities): Result> = + api.listMultiCommunities(transformer.fromUni(form)).map { resp -> + PagedResponse(resp.items.map(transformer::toUni)) + } +} diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/MapperGenerator.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/MapperGenerator.kt new file mode 100644 index 00000000..2552b8d3 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/MapperGenerator.kt @@ -0,0 +1,289 @@ +package it.vercruysse.lemmyapi.v1.x0.x0 + +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.* + +internal interface MapperGenerator { + + fun toUni(d: AddAdminResponse): it.vercruysse.lemmyapi.datatypes.AddAdminResponse + fun toUni(d: AddModToCommunityResponse): it.vercruysse.lemmyapi.datatypes.AddModToCommunityResponse + fun toUni(d: AdminAllowInstanceParams): it.vercruysse.lemmyapi.datatypes.AdminAllowInstanceParams + fun toUni(d: AdminBlockInstanceParams): it.vercruysse.lemmyapi.datatypes.AdminBlockInstanceParams + fun toUni(d: AdminListUsers): it.vercruysse.lemmyapi.datatypes.AdminListUsers + fun toUni(d: AdminOAuthProvider): it.vercruysse.lemmyapi.datatypes.AdminOAuthProvider + fun toUni(d: AuthenticateWithOauth): it.vercruysse.lemmyapi.datatypes.AuthenticateWithOauth + fun toUni(d: CaptchaResponse): it.vercruysse.lemmyapi.datatypes.CaptchaResponse + fun toUni(d: Comment): it.vercruysse.lemmyapi.datatypes.Comment + fun toUni(d: CreateInvitationResponse): it.vercruysse.lemmyapi.datatypes.CreateInvitationResponse + fun toUni(d: CommentActions): it.vercruysse.lemmyapi.datatypes.CommentActions + fun toUni(d: CommentReport): it.vercruysse.lemmyapi.datatypes.CommentReport + fun toUni(d: CommentReportResponse): it.vercruysse.lemmyapi.datatypes.CommentReportResponse + fun toUni(d: CommentReportView): it.vercruysse.lemmyapi.datatypes.CommentReportView + fun toUni(d: CommentResponse): it.vercruysse.lemmyapi.datatypes.CommentResponse + fun toUni(d: CommentSlimView): it.vercruysse.lemmyapi.datatypes.CommentSlimView + + fun toUni(d: CommentView): it.vercruysse.lemmyapi.datatypes.CommentView + fun toUni(d: Community): it.vercruysse.lemmyapi.datatypes.Community + fun toUni(d: CommunityActions): it.vercruysse.lemmyapi.datatypes.CommunityActions + fun toUni(d: CommunityFollowerView): it.vercruysse.lemmyapi.datatypes.CommunityFollowerView + fun toUni(d: CommunityIdQuery): it.vercruysse.lemmyapi.datatypes.CommunityIdQuery + fun toUni(d: CommunityModeratorView): it.vercruysse.lemmyapi.datatypes.CommunityModeratorView + fun toUni(d: CommunityReport): it.vercruysse.lemmyapi.datatypes.CommunityReport + fun toUni(d: CommunityReportResponse): it.vercruysse.lemmyapi.datatypes.CommunityReportResponse + fun toUni(d: CommunityReportView): it.vercruysse.lemmyapi.datatypes.CommunityReportView + fun toUni(d: CommunityResponse): it.vercruysse.lemmyapi.datatypes.CommunityResponse + fun toUni(d: CommunityTag): it.vercruysse.lemmyapi.datatypes.CommunityTag + + fun toUni(d: CommunityView): it.vercruysse.lemmyapi.datatypes.CommunityView + fun toUni(d: CustomEmoji): it.vercruysse.lemmyapi.datatypes.CustomEmoji + fun toUni(d: CustomEmojiKeyword): it.vercruysse.lemmyapi.datatypes.CustomEmojiKeyword + fun toUni(d: CustomEmojiResponse): it.vercruysse.lemmyapi.datatypes.CustomEmojiResponse + fun toUni(d: CustomEmojiView): it.vercruysse.lemmyapi.datatypes.CustomEmojiView + fun toUni(d: EditTotpResponse): it.vercruysse.lemmyapi.datatypes.EditTotpResponse + + fun toUni(d: ExportDataResponse): it.vercruysse.lemmyapi.datatypes.ExportDataResponse + fun toUni(d: FederatedInstanceView): it.vercruysse.lemmyapi.datatypes.FederatedInstanceView + fun toUni(d: FederationAllowList): it.vercruysse.lemmyapi.datatypes.FederationAllowList + fun toUni(d: FederationBlockList): it.vercruysse.lemmyapi.datatypes.FederationBlockList + fun toUni(d: FederationQueueState): it.vercruysse.lemmyapi.datatypes.FederationQueueState + fun toUni(d: GenerateTotpSecretResponse): it.vercruysse.lemmyapi.datatypes.GenerateTotpSecretResponse + fun toUni(d: GetCaptchaResponse): it.vercruysse.lemmyapi.datatypes.GetCaptchaResponse + fun toUni(d: GetCommunityResponse): it.vercruysse.lemmyapi.datatypes.GetCommunityResponse + fun toUni(d: GetMultiCommunityResponse): it.vercruysse.lemmyapi.datatypes.GetMultiCommunityResponse + fun toUni(d: GetPersonDetailsResponse): it.vercruysse.lemmyapi.datatypes.GetPersonDetailsResponse + fun toUni(d: GetPostResponse): it.vercruysse.lemmyapi.datatypes.GetPostResponse + fun toUni(d: GetSiteMetadataResponse): it.vercruysse.lemmyapi.datatypes.GetSiteMetadataResponse + fun toUni(d: GetSiteResponse): it.vercruysse.lemmyapi.datatypes.GetSiteResponse + fun toUni(d: ImageDetails): it.vercruysse.lemmyapi.datatypes.ImageDetails + fun toUni(d: ImageGetParams): it.vercruysse.lemmyapi.datatypes.ImageGetParams + fun toUni(d: ImageProxyParams): it.vercruysse.lemmyapi.datatypes.ImageProxyParams + fun toUni(d: Instance): it.vercruysse.lemmyapi.datatypes.Instance + fun toUni(d: InstanceActions): it.vercruysse.lemmyapi.datatypes.InstanceActions + fun toUni(d: Language): it.vercruysse.lemmyapi.datatypes.Language + fun toUni(d: LinkMetadata): it.vercruysse.lemmyapi.datatypes.LinkMetadata + fun toUni(d: ListCustomEmojisResponse): it.vercruysse.lemmyapi.datatypes.ListCustomEmojisResponse + fun toUni(d: ListLoginsResponse): it.vercruysse.lemmyapi.datatypes.ListLoginsResponse + fun toUni(d: LocalImage): it.vercruysse.lemmyapi.datatypes.LocalImage + fun toUni(d: LocalImageView): it.vercruysse.lemmyapi.datatypes.LocalImageView + fun toUni(d: LocalSite): it.vercruysse.lemmyapi.datatypes.LocalSite + fun toUni(d: LocalSiteRateLimit): it.vercruysse.lemmyapi.datatypes.LocalSiteRateLimit + fun toUni(d: LocalSiteUrlBlocklist): it.vercruysse.lemmyapi.datatypes.LocalSiteUrlBlocklist + fun toUni(d: LocalUser): it.vercruysse.lemmyapi.datatypes.LocalUser + fun toUni(d: LocalUserInvite): it.vercruysse.lemmyapi.datatypes.LocalUserInvite + fun toUni(d: LocalUserView): it.vercruysse.lemmyapi.datatypes.LocalUserView + fun toUni(d: LoginResponse): it.vercruysse.lemmyapi.datatypes.LoginResponse + fun toUni(d: LoginToken): it.vercruysse.lemmyapi.datatypes.LoginToken + fun toUni(d: ModEditPost): it.vercruysse.lemmyapi.datatypes.ModEditPost + fun toUni(d: Modlog): it.vercruysse.lemmyapi.datatypes.Modlog + fun toUni(d: ModlogView): it.vercruysse.lemmyapi.datatypes.ModlogView + fun toUni(d: MultiCommunity): it.vercruysse.lemmyapi.datatypes.MultiCommunity + fun toUni(d: MultiCommunityEntry): it.vercruysse.lemmyapi.datatypes.MultiCommunityEntry + fun toUni(d: MultiCommunityFollow): it.vercruysse.lemmyapi.datatypes.MultiCommunityFollow + fun toUni(d: MultiCommunityResponse): it.vercruysse.lemmyapi.datatypes.MultiCommunityResponse + fun toUni(d: MultiCommunityView): it.vercruysse.lemmyapi.datatypes.MultiCommunityView + fun toUni(d: MyUserInfo): it.vercruysse.lemmyapi.datatypes.MyUserInfo + fun toUni(d: NotePerson): it.vercruysse.lemmyapi.datatypes.NotePerson + fun toUni(d: Notification): it.vercruysse.lemmyapi.datatypes.Notification + + fun toUni(d: NotificationData): it.vercruysse.lemmyapi.datatypes.NotificationData = when (d) { + is CommentView -> toUni(d) + is ModlogView -> toUni(d) + is PrivateMessageView -> toUni(d) + } + + fun toUni(d: NotificationView): it.vercruysse.lemmyapi.datatypes.NotificationView + fun toUni(d: OAuthAccount): it.vercruysse.lemmyapi.datatypes.OAuthAccount + fun toUni(d: PendingFollow): it.vercruysse.lemmyapi.datatypes.PendingFollow + fun toUni(d: PendingFollowerView): it.vercruysse.lemmyapi.datatypes.PendingFollowerView + fun toUni(d: Person): it.vercruysse.lemmyapi.datatypes.Person + fun toUni(d: PersonActions): it.vercruysse.lemmyapi.datatypes.PersonActions + fun toUni(d: PersonResponse): it.vercruysse.lemmyapi.datatypes.PersonResponse + fun toUni(d: PersonView): it.vercruysse.lemmyapi.datatypes.PersonView + fun toUni(d: PluginMetadata): it.vercruysse.lemmyapi.datatypes.PluginMetadata + fun toUni(d: Post): it.vercruysse.lemmyapi.datatypes.Post + fun toUni(d: PostActions): it.vercruysse.lemmyapi.datatypes.PostActions + + fun toUni(d: PostCommentCombinedView): it.vercruysse.lemmyapi.datatypes.PostCommentCombinedView = when (d) { + is CommentView -> toUni(d) + is PostView -> toUni(d) + } + + fun toUni(d: PostOrCommentOrPrivateMessage): it.vercruysse.lemmyapi.datatypes.PostOrCommentOrPrivateMessage = when (d) { + is Comment -> toUni(d) + is Post -> toUni(d) + is PrivateMessage -> toUni(d) + } + fun toUni(d: PostReport): it.vercruysse.lemmyapi.datatypes.PostReport + fun toUni(d: PostReportResponse): it.vercruysse.lemmyapi.datatypes.PostReportResponse + fun toUni(d: PostReportView): it.vercruysse.lemmyapi.datatypes.PostReportView + fun toUni(d: PostResponse): it.vercruysse.lemmyapi.datatypes.PostResponse + + fun toUni(d: PostView): it.vercruysse.lemmyapi.datatypes.PostView + fun toUni(d: PrivateMessage): it.vercruysse.lemmyapi.datatypes.PrivateMessage + fun toUni(d: PrivateMessageReport): it.vercruysse.lemmyapi.datatypes.PrivateMessageReport + fun toUni(d: PrivateMessageReportResponse): it.vercruysse.lemmyapi.datatypes.PrivateMessageReportResponse + fun toUni(d: PrivateMessageReportView): it.vercruysse.lemmyapi.datatypes.PrivateMessageReportView + fun toUni(d: PrivateMessageResponse): it.vercruysse.lemmyapi.datatypes.PrivateMessageResponse + fun toUni(d: PrivateMessageView): it.vercruysse.lemmyapi.datatypes.PrivateMessageView + fun toUni(d: PublicOAuthProvider): it.vercruysse.lemmyapi.datatypes.PublicOAuthProvider + fun toUni(d: RegistrationApplication): it.vercruysse.lemmyapi.datatypes.RegistrationApplication + fun toUni(d: RegistrationApplicationResponse): it.vercruysse.lemmyapi.datatypes.RegistrationApplicationResponse + fun toUni(d: RegistrationApplicationView): it.vercruysse.lemmyapi.datatypes.RegistrationApplicationView + + // ReportCombinedView is a sealed interface — Konvert cannot generate this automatically. + fun toUni(d: ReportCombinedView): it.vercruysse.lemmyapi.datatypes.ReportCombinedView = when (d) { + is CommentReportView -> toUni(d) + is PostReportView -> toUni(d) + is CommunityReportView -> toUni(d) + is PrivateMessageReportView -> toUni(d) + } + + // fun toUni(d: ReportCombinedView): already implemented above as when-dispatch + fun toUni(d: ResendVerificationEmail): it.vercruysse.lemmyapi.datatypes.ResendVerificationEmail + fun toUni(d: ResolveObjectView): it.vercruysse.lemmyapi.datatypes.ResolveObjectView = when (d) { + is CommentView -> toUni(d) + is CommunityView -> toUni(d) + is PersonView -> toUni(d) + is PostView -> toUni(d) + is MultiCommunityView -> toUni(d) + } + fun toUni(d: SearchResponse): it.vercruysse.lemmyapi.datatypes.SearchResponse + fun toUni(d: Site): it.vercruysse.lemmyapi.datatypes.Site + fun toUni(d: SiteResponse): it.vercruysse.lemmyapi.datatypes.SiteResponse + fun toUni(d: SiteView): it.vercruysse.lemmyapi.datatypes.SiteView + fun toUni(d: Tagline): it.vercruysse.lemmyapi.datatypes.Tagline + fun toUni(d: TaglineResponse): it.vercruysse.lemmyapi.datatypes.TaglineResponse + fun toUni(d: UnreadCountsResponse): it.vercruysse.lemmyapi.datatypes.UnreadCountsResponse + fun toUni(d: UploadImageResponse): it.vercruysse.lemmyapi.datatypes.UploadImageResponse + fun toUni(d: UserBlockInstanceCommunitiesParams): it.vercruysse.lemmyapi.datatypes.UserBlockInstanceCommunitiesParams + fun toUni(d: UserBlockInstancePersonsParams): it.vercruysse.lemmyapi.datatypes.UserBlockInstancePersonsParams + fun toUni(d: UserSettingsBackup): it.vercruysse.lemmyapi.datatypes.UserSettingsBackup + fun toUni(d: VoteView): it.vercruysse.lemmyapi.datatypes.VoteView + + // body mappings + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.AddAdmin): AddAdmin + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.AddModToCommunity): AddModToCommunity + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.AdminAllowInstanceParams): AdminAllowInstanceParams + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.AdminBlockInstanceParams): AdminBlockInstanceParams + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.AdminListUsers): AdminListUsers + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ApproveCommunityPendingFollower): ApproveCommunityPendingFollower + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ApproveRegistrationApplication): ApproveRegistrationApplication + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.AuthenticateWithOauth): AuthenticateWithOauth + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.BanFromCommunity): BanFromCommunity + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.BanPerson): BanPerson + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.BlockCommunity): BlockCommunity + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.BlockPerson): BlockPerson + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ChangePassword): ChangePassword + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.CommunityIdQuery): CommunityIdQuery + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.CreateComment): CreateComment + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.CreateCommentLike): CreateCommentLike + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.CreateCommentReport): CreateCommentReport + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.CreateCommentWarning): CreateCommentWarning + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.CreateCommunity): CreateCommunity + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.CreateCommunityReport): CreateCommunityReport + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.CreateCommunityTag): CreateCommunityTag + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.CreateCustomEmoji): CreateCustomEmoji + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.CreateInvitation): CreateInvitation + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.CreateMultiCommunity): CreateMultiCommunity + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.CreateOAuthProvider): CreateOAuthProvider + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.CreateOrDeleteMultiCommunityEntry): CreateOrDeleteMultiCommunityEntry + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.CreatePost): CreatePost + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.CreatePostLike): CreatePostLike + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.CreatePostReport): CreatePostReport + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.CreatePostWarning): CreatePostWarning + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.CreatePrivateMessage): CreatePrivateMessage + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.CreatePrivateMessageReport): CreatePrivateMessageReport + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.CreateSite): CreateSite + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.CreateTagline): CreateTagline + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.DeleteAccount): DeleteAccount + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.DeleteComment): DeleteComment + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.DeleteCommunity): DeleteCommunity + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.DeleteCommunityTag): DeleteCommunityTag + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.DeleteCustomEmoji): DeleteCustomEmoji + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.DeleteImageParams): DeleteImageParams + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.DeleteOAuthProvider): DeleteOAuthProvider + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.DeletePost): DeletePost + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.DeletePrivateMessage): DeletePrivateMessage + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.DeleteTagline): DeleteTagline + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.DistinguishComment): DistinguishComment + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.EditComment): EditComment + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.EditCommunity): EditCommunity + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.EditCommunityNotifications): EditCommunityNotifications + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.EditCommunityTag): EditCommunityTag + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.EditCustomEmoji): EditCustomEmoji + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.EditMultiCommunity): EditMultiCommunity + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.EditOAuthProvider): EditOAuthProvider + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.EditPost): EditPost + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.EditPostNotifications): EditPostNotifications + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.EditPrivateMessage): EditPrivateMessage + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.EditSite): EditSite + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.EditTagline): EditTagline + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.EditTotp): EditTotp + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.FeaturePost): FeaturePost + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.FollowCommunity): FollowCommunity + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.FollowMultiCommunity): FollowMultiCommunity + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetComment): GetComment + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetComments): GetComments + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetCommunity): GetCommunity + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetFederatedInstances): GetFederatedInstances + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetModlog): GetModlog + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetMultiCommunity): GetMultiCommunity + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPersonDetails): GetPersonDetails + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPost): GetPost + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetPosts): GetPosts + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetRandomCommunity): GetRandomCommunity + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetRegistrationApplication): GetRegistrationApplication + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.GetSiteMetadata): GetSiteMetadata + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.HideCommunity): HideCommunity + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.HidePost): HidePost + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListCommentLikes): ListCommentLikes + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListCommunities): ListCommunities + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListCommunityPendingFollows): ListCommunityPendingFollows + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListCustomEmojis): ListCustomEmojis + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListInvitations): ListInvitations + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListMedia): ListMedia + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListMultiCommunities): ListMultiCommunities + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListNotifications): ListNotifications + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListPersonContent): ListPersonContent + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListPersons): ListPersons + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListPersonHidden): ListPersonHidden + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListPersonLiked): ListPersonLiked + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListPersonRead): ListPersonRead + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListPersonSaved): ListPersonSaved + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListPostLikes): ListPostLikes + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListRegistrationApplications): ListRegistrationApplications + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListReports): ListReports + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ListTaglines): ListTaglines + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.LockComment): LockComment + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.LockPost): LockPost + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.Login): Login + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.MarkManyPostsAsRead): MarkManyPostsAsRead + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.MarkNotificationAsRead): MarkNotificationAsRead + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.MarkPostAsRead): MarkPostAsRead + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ModEditPost): ModEditPost + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.NotePerson): NotePerson + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ChangePasswordAfterReset): ChangePasswordAfterReset + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ResetPassword): ResetPassword + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PurgeComment): PurgeComment + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PurgeCommunity): PurgeCommunity + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PurgePerson): PurgePerson + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.PurgePost): PurgePost + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.Register): Register + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.RemoveComment): RemoveComment + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.RemoveCommunity): RemoveCommunity + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.RemovePost): RemovePost + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ResendVerificationEmail): ResendVerificationEmail + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ResolveCommentReport): ResolveCommentReport + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ResolveCommunityReport): ResolveCommunityReport + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ResolveObject): ResolveObject + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ResolvePostReport): ResolvePostReport + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.ResolvePrivateMessageReport): ResolvePrivateMessageReport + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.RevokeInvitation): RevokeInvitation + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.SaveComment): SaveComment + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.SavePost): SavePost + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.SaveUserSettings): SaveUserSettings + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.Search): Search + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.TransferCommunity): TransferCommunity + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.UserBlockInstanceCommunitiesParams): UserBlockInstanceCommunitiesParams + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.UserBlockInstancePersonsParams): UserBlockInstancePersonsParams + fun fromUni(d: it.vercruysse.lemmyapi.datatypes.VerifyEmail): VerifyEmail +} diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/Transformer.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/Transformer.kt new file mode 100644 index 00000000..cdb51cb1 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/Transformer.kt @@ -0,0 +1,2553 @@ +package it.vercruysse.lemmyapi.v1.x0.x0 + +import it.vercruysse.lemmyapi.datatypes.AddAdmin as LemmyapiDatatypesAddAdmin +import it.vercruysse.lemmyapi.datatypes.AddAdminResponse as LemmyapiDatatypesAddAdminResponse +import it.vercruysse.lemmyapi.datatypes.AddModToCommunity as LemmyapiDatatypesAddModToCommunity +import it.vercruysse.lemmyapi.datatypes.AddModToCommunityResponse as LemmyapiDatatypesAddModToCommunityResponse +import it.vercruysse.lemmyapi.datatypes.AdminAllowInstanceParams as LemmyapiDatatypesAdminAllowInstanceParams +import it.vercruysse.lemmyapi.datatypes.AdminBlockInstanceParams as LemmyapiDatatypesAdminBlockInstanceParams +import it.vercruysse.lemmyapi.datatypes.AdminListUsers as LemmyapiDatatypesAdminListUsers +import it.vercruysse.lemmyapi.datatypes.AdminOAuthProvider as LemmyapiDatatypesAdminOAuthProvider +import it.vercruysse.lemmyapi.datatypes.ApproveCommunityPendingFollower as LemmyapiDatatypesApproveCommunityPendingFollower +import it.vercruysse.lemmyapi.datatypes.ApproveRegistrationApplication as LemmyapiDatatypesApproveRegistrationApplication +import it.vercruysse.lemmyapi.datatypes.AuthenticateWithOauth as LemmyapiDatatypesAuthenticateWithOauth +import it.vercruysse.lemmyapi.datatypes.BanFromCommunity as LemmyapiDatatypesBanFromCommunity +import it.vercruysse.lemmyapi.datatypes.BanPerson as LemmyapiDatatypesBanPerson +import it.vercruysse.lemmyapi.datatypes.BlockCommunity as LemmyapiDatatypesBlockCommunity +import it.vercruysse.lemmyapi.datatypes.BlockPerson as LemmyapiDatatypesBlockPerson +import it.vercruysse.lemmyapi.datatypes.CaptchaResponse as LemmyapiDatatypesCaptchaResponse +import it.vercruysse.lemmyapi.datatypes.ChangePassword as LemmyapiDatatypesChangePassword +import it.vercruysse.lemmyapi.datatypes.ChangePasswordAfterReset as LemmyapiDatatypesPasswordChangeAfterReset +import it.vercruysse.lemmyapi.datatypes.Comment as LemmyapiDatatypesComment +import it.vercruysse.lemmyapi.datatypes.CommentActions as LemmyapiDatatypesCommentActions +import it.vercruysse.lemmyapi.datatypes.CommentReport as LemmyapiDatatypesCommentReport +import it.vercruysse.lemmyapi.datatypes.CommentReportResponse as LemmyapiDatatypesCommentReportResponse +import it.vercruysse.lemmyapi.datatypes.CommentReportView as LemmyapiDatatypesCommentReportView +import it.vercruysse.lemmyapi.datatypes.CommentResponse as LemmyapiDatatypesCommentResponse +import it.vercruysse.lemmyapi.datatypes.CommentSlimView as LemmyapiDatatypesCommentSlimView +import it.vercruysse.lemmyapi.datatypes.CommentView as LemmyapiDatatypesCommentView +import it.vercruysse.lemmyapi.datatypes.Community as LemmyapiDatatypesCommunity +import it.vercruysse.lemmyapi.datatypes.CommunityActions as LemmyapiDatatypesCommunityActions +import it.vercruysse.lemmyapi.datatypes.CommunityFollowerView as LemmyapiDatatypesCommunityFollowerView +import it.vercruysse.lemmyapi.datatypes.CommunityIdQuery as LemmyapiDatatypesCommunityIdQuery +import it.vercruysse.lemmyapi.datatypes.CommunityModeratorView as LemmyapiDatatypesCommunityModeratorView +import it.vercruysse.lemmyapi.datatypes.CommunityReport as LemmyapiDatatypesCommunityReport +import it.vercruysse.lemmyapi.datatypes.CommunityReportResponse as LemmyapiDatatypesCommunityReportResponse +import it.vercruysse.lemmyapi.datatypes.CommunityReportView as LemmyapiDatatypesCommunityReportView +import it.vercruysse.lemmyapi.datatypes.CommunityResponse as LemmyapiDatatypesCommunityResponse +import it.vercruysse.lemmyapi.datatypes.CommunityTag as LemmyapiDatatypesCommunityTag +import it.vercruysse.lemmyapi.datatypes.CommunityView as LemmyapiDatatypesCommunityView +import it.vercruysse.lemmyapi.datatypes.CreateComment as LemmyapiDatatypesCreateComment +import it.vercruysse.lemmyapi.datatypes.CreateCommentLike as LemmyapiDatatypesCreateCommentLike +import it.vercruysse.lemmyapi.datatypes.CreateCommentReport as LemmyapiDatatypesCreateCommentReport +import it.vercruysse.lemmyapi.datatypes.CreateCommentWarning as LemmyapiDatatypesCreateCommentWarning +import it.vercruysse.lemmyapi.datatypes.CreateCommunity as LemmyapiDatatypesCreateCommunity +import it.vercruysse.lemmyapi.datatypes.CreateCommunityReport as LemmyapiDatatypesCreateCommunityReport +import it.vercruysse.lemmyapi.datatypes.CreateCommunityTag as LemmyapiDatatypesCreateCommunityTag +import it.vercruysse.lemmyapi.datatypes.CreateCustomEmoji as LemmyapiDatatypesCreateCustomEmoji +import it.vercruysse.lemmyapi.datatypes.CreateInvitation as LemmyapiDatatypesCreateInvitation +import it.vercruysse.lemmyapi.datatypes.CreateInvitationResponse as LemmyapiDatatypesCreateInvitationResponse +import it.vercruysse.lemmyapi.datatypes.CreateMultiCommunity as LemmyapiDatatypesCreateMultiCommunity +import it.vercruysse.lemmyapi.datatypes.CreateOAuthProvider as LemmyapiDatatypesCreateOAuthProvider +import it.vercruysse.lemmyapi.datatypes.CreateOrDeleteMultiCommunityEntry as LemmyapiDatatypesCreateOrDeleteMultiCommunityEntry +import it.vercruysse.lemmyapi.datatypes.CreatePost as LemmyapiDatatypesCreatePost +import it.vercruysse.lemmyapi.datatypes.CreatePostLike as LemmyapiDatatypesCreatePostLike +import it.vercruysse.lemmyapi.datatypes.CreatePostReport as LemmyapiDatatypesCreatePostReport +import it.vercruysse.lemmyapi.datatypes.CreatePostWarning as LemmyapiDatatypesCreatePostWarning +import it.vercruysse.lemmyapi.datatypes.CreatePrivateMessage as LemmyapiDatatypesCreatePrivateMessage +import it.vercruysse.lemmyapi.datatypes.CreatePrivateMessageReport as LemmyapiDatatypesCreatePrivateMessageReport +import it.vercruysse.lemmyapi.datatypes.CreateSite as LemmyapiDatatypesCreateSite +import it.vercruysse.lemmyapi.datatypes.CreateTagline as LemmyapiDatatypesCreateTagline +import it.vercruysse.lemmyapi.datatypes.CustomEmoji as LemmyapiDatatypesCustomEmoji +import it.vercruysse.lemmyapi.datatypes.CustomEmojiKeyword as LemmyapiDatatypesCustomEmojiKeyword +import it.vercruysse.lemmyapi.datatypes.CustomEmojiResponse as LemmyapiDatatypesCustomEmojiResponse +import it.vercruysse.lemmyapi.datatypes.CustomEmojiView as LemmyapiDatatypesCustomEmojiView +import it.vercruysse.lemmyapi.datatypes.DeleteAccount as LemmyapiDatatypesDeleteAccount +import it.vercruysse.lemmyapi.datatypes.DeleteComment as LemmyapiDatatypesDeleteComment +import it.vercruysse.lemmyapi.datatypes.DeleteCommunity as LemmyapiDatatypesDeleteCommunity +import it.vercruysse.lemmyapi.datatypes.DeleteCommunityTag as LemmyapiDatatypesDeleteCommunityTag +import it.vercruysse.lemmyapi.datatypes.DeleteCustomEmoji as LemmyapiDatatypesDeleteCustomEmoji +import it.vercruysse.lemmyapi.datatypes.DeleteImageParams as LemmyapiDatatypesDeleteImageParams +import it.vercruysse.lemmyapi.datatypes.DeleteOAuthProvider as LemmyapiDatatypesDeleteOAuthProvider +import it.vercruysse.lemmyapi.datatypes.DeletePost as LemmyapiDatatypesDeletePost +import it.vercruysse.lemmyapi.datatypes.DeletePrivateMessage as LemmyapiDatatypesDeletePrivateMessage +import it.vercruysse.lemmyapi.datatypes.DeleteTagline as LemmyapiDatatypesDeleteTagline +import it.vercruysse.lemmyapi.datatypes.DistinguishComment as LemmyapiDatatypesDistinguishComment +import it.vercruysse.lemmyapi.datatypes.EditComment as LemmyapiDatatypesEditComment +import it.vercruysse.lemmyapi.datatypes.EditCommunity as LemmyapiDatatypesEditCommunity +import it.vercruysse.lemmyapi.datatypes.EditCommunityNotifications as LemmyapiDatatypesEditCommunityNotifications +import it.vercruysse.lemmyapi.datatypes.EditCommunityTag as LemmyapiDatatypesEditCommunityTag +import it.vercruysse.lemmyapi.datatypes.EditCustomEmoji as LemmyapiDatatypesEditCustomEmoji +import it.vercruysse.lemmyapi.datatypes.EditMultiCommunity as LemmyapiDatatypesEditMultiCommunity +import it.vercruysse.lemmyapi.datatypes.EditOAuthProvider as LemmyapiDatatypesEditOAuthProvider +import it.vercruysse.lemmyapi.datatypes.EditPost as LemmyapiDatatypesEditPost +import it.vercruysse.lemmyapi.datatypes.EditPostNotifications as LemmyapiDatatypesEditPostNotifications +import it.vercruysse.lemmyapi.datatypes.EditPrivateMessage as LemmyapiDatatypesEditPrivateMessage +import it.vercruysse.lemmyapi.datatypes.EditSite as LemmyapiDatatypesEditSite +import it.vercruysse.lemmyapi.datatypes.EditTagline as LemmyapiDatatypesEditTagline +import it.vercruysse.lemmyapi.datatypes.EditTotp as LemmyapiDatatypesEditTotp +import it.vercruysse.lemmyapi.datatypes.EditTotpResponse as LemmyapiDatatypesEditTotpResponse +import it.vercruysse.lemmyapi.datatypes.ExportDataResponse as LemmyapiDatatypesExportDataResponse +import it.vercruysse.lemmyapi.datatypes.FeaturePost as LemmyapiDatatypesFeaturePost +import it.vercruysse.lemmyapi.datatypes.FederatedInstanceView as LemmyapiDatatypesFederatedInstanceView +import it.vercruysse.lemmyapi.datatypes.FederationAllowList as LemmyapiDatatypesFederationAllowList +import it.vercruysse.lemmyapi.datatypes.FederationBlockList as LemmyapiDatatypesFederationBlockList +import it.vercruysse.lemmyapi.datatypes.FederationQueueState as LemmyapiDatatypesFederationQueueState +import it.vercruysse.lemmyapi.datatypes.FollowCommunity as LemmyapiDatatypesFollowCommunity +import it.vercruysse.lemmyapi.datatypes.FollowMultiCommunity as LemmyapiDatatypesFollowMultiCommunity +import it.vercruysse.lemmyapi.datatypes.GenerateTotpSecretResponse as LemmyapiDatatypesGenerateTotpSecretResponse +import it.vercruysse.lemmyapi.datatypes.GetCaptchaResponse as LemmyapiDatatypesGetCaptchaResponse +import it.vercruysse.lemmyapi.datatypes.GetComment as LemmyapiDatatypesGetComment +import it.vercruysse.lemmyapi.datatypes.GetComments as LemmyapiDatatypesGetComments +import it.vercruysse.lemmyapi.datatypes.GetCommunity as LemmyapiDatatypesGetCommunity +import it.vercruysse.lemmyapi.datatypes.GetCommunityResponse as LemmyapiDatatypesGetCommunityResponse +import it.vercruysse.lemmyapi.datatypes.GetFederatedInstances as LemmyapiDatatypesGetFederatedInstances +import it.vercruysse.lemmyapi.datatypes.GetModlog as LemmyapiDatatypesGetModlog +import it.vercruysse.lemmyapi.datatypes.GetMultiCommunity as LemmyapiDatatypesGetMultiCommunity +import it.vercruysse.lemmyapi.datatypes.GetMultiCommunityResponse as LemmyapiDatatypesGetMultiCommunityResponse +import it.vercruysse.lemmyapi.datatypes.GetPersonDetails as LemmyapiDatatypesGetPersonDetails +import it.vercruysse.lemmyapi.datatypes.GetPersonDetailsResponse as LemmyapiDatatypesGetPersonDetailsResponse +import it.vercruysse.lemmyapi.datatypes.GetPost as LemmyapiDatatypesGetPost +import it.vercruysse.lemmyapi.datatypes.GetPostResponse as LemmyapiDatatypesGetPostResponse +import it.vercruysse.lemmyapi.datatypes.GetPosts as LemmyapiDatatypesGetPosts +import it.vercruysse.lemmyapi.datatypes.GetRandomCommunity as LemmyapiDatatypesGetRandomCommunity +import it.vercruysse.lemmyapi.datatypes.GetRegistrationApplication as LemmyapiDatatypesGetRegistrationApplication +import it.vercruysse.lemmyapi.datatypes.GetSiteMetadata as LemmyapiDatatypesGetSiteMetadata +import it.vercruysse.lemmyapi.datatypes.GetSiteMetadataResponse as LemmyapiDatatypesGetSiteMetadataResponse +import it.vercruysse.lemmyapi.datatypes.GetSiteResponse as LemmyapiDatatypesGetSiteResponse +import it.vercruysse.lemmyapi.datatypes.HideCommunity as LemmyapiDatatypesHideCommunity +import it.vercruysse.lemmyapi.datatypes.HidePost as LemmyapiDatatypesHidePost +import it.vercruysse.lemmyapi.datatypes.ImageDetails as LemmyapiDatatypesImageDetails +import it.vercruysse.lemmyapi.datatypes.ImageGetParams as LemmyapiDatatypesImageGetParams +import it.vercruysse.lemmyapi.datatypes.ImageProxyParams as LemmyapiDatatypesImageProxyParams +import it.vercruysse.lemmyapi.datatypes.Instance as LemmyapiDatatypesInstance +import it.vercruysse.lemmyapi.datatypes.InstanceActions as LemmyapiDatatypesInstanceActions +import it.vercruysse.lemmyapi.datatypes.Language as LemmyapiDatatypesLanguage +import it.vercruysse.lemmyapi.datatypes.LinkMetadata as LemmyapiDatatypesLinkMetadata +import it.vercruysse.lemmyapi.datatypes.ListCommentLikes as LemmyapiDatatypesListCommentLikes +import it.vercruysse.lemmyapi.datatypes.ListCommunities as LemmyapiDatatypesListCommunities +import it.vercruysse.lemmyapi.datatypes.ListCommunityPendingFollows as LemmyapiDatatypesListCommunityPendingFollows +import it.vercruysse.lemmyapi.datatypes.ListCustomEmojis as LemmyapiDatatypesListCustomEmojis +import it.vercruysse.lemmyapi.datatypes.ListCustomEmojisResponse as LemmyapiDatatypesListCustomEmojisResponse +import it.vercruysse.lemmyapi.datatypes.ListInvitations as LemmyapiDatatypesListInvitations +import it.vercruysse.lemmyapi.datatypes.ListLoginsResponse as LemmyapiDatatypesListLoginsResponse +import it.vercruysse.lemmyapi.datatypes.ListMedia as LemmyapiDatatypesListMedia +import it.vercruysse.lemmyapi.datatypes.ListMultiCommunities as LemmyapiDatatypesListMultiCommunities +import it.vercruysse.lemmyapi.datatypes.ListNotifications as LemmyapiDatatypesListNotifications +import it.vercruysse.lemmyapi.datatypes.ListPersonContent as LemmyapiDatatypesListPersonContent +import it.vercruysse.lemmyapi.datatypes.ListPersonHidden as LemmyapiDatatypesListPersonHidden +import it.vercruysse.lemmyapi.datatypes.ListPersonLiked as LemmyapiDatatypesListPersonLiked +import it.vercruysse.lemmyapi.datatypes.ListPersonRead as LemmyapiDatatypesListPersonRead +import it.vercruysse.lemmyapi.datatypes.ListPersonSaved as LemmyapiDatatypesListPersonSaved +import it.vercruysse.lemmyapi.datatypes.ListPersons as LemmyapiDatatypesListPersons +import it.vercruysse.lemmyapi.datatypes.ListPostLikes as LemmyapiDatatypesListPostLikes +import it.vercruysse.lemmyapi.datatypes.ListRegistrationApplications as LemmyapiDatatypesListRegistrationApplications +import it.vercruysse.lemmyapi.datatypes.ListReports as LemmyapiDatatypesListReports +import it.vercruysse.lemmyapi.datatypes.ListTaglines as LemmyapiDatatypesListTaglines +import it.vercruysse.lemmyapi.datatypes.LocalImage as LemmyapiDatatypesLocalImage +import it.vercruysse.lemmyapi.datatypes.LocalImageView as LemmyapiDatatypesLocalImageView +import it.vercruysse.lemmyapi.datatypes.LocalSite as LemmyapiDatatypesLocalSite +import it.vercruysse.lemmyapi.datatypes.LocalSiteRateLimit as LemmyapiDatatypesLocalSiteRateLimit +import it.vercruysse.lemmyapi.datatypes.LocalSiteUrlBlocklist as LemmyapiDatatypesLocalSiteUrlBlocklist +import it.vercruysse.lemmyapi.datatypes.LocalUser as LemmyapiDatatypesLocalUser +import it.vercruysse.lemmyapi.datatypes.LocalUserInvite as LemmyapiDatatypesLocalUserInvite +import it.vercruysse.lemmyapi.datatypes.LocalUserView as LemmyapiDatatypesLocalUserView +import it.vercruysse.lemmyapi.datatypes.LockComment as LemmyapiDatatypesLockComment +import it.vercruysse.lemmyapi.datatypes.LockPost as LemmyapiDatatypesLockPost +import it.vercruysse.lemmyapi.datatypes.Login as LemmyapiDatatypesLogin +import it.vercruysse.lemmyapi.datatypes.LoginResponse as LemmyapiDatatypesLoginResponse +import it.vercruysse.lemmyapi.datatypes.LoginToken as LemmyapiDatatypesLoginToken +import it.vercruysse.lemmyapi.datatypes.MarkManyPostsAsRead as LemmyapiDatatypesMarkManyPostsAsRead +import it.vercruysse.lemmyapi.datatypes.MarkNotificationAsRead as LemmyapiDatatypesMarkNotificationAsRead +import it.vercruysse.lemmyapi.datatypes.MarkPostAsRead as LemmyapiDatatypesMarkPostAsRead +import it.vercruysse.lemmyapi.datatypes.ModEditPost as LemmyapiDatatypesModEditPost +import it.vercruysse.lemmyapi.datatypes.Modlog as LemmyapiDatatypesModlog +import it.vercruysse.lemmyapi.datatypes.ModlogView as LemmyapiDatatypesModlogView +import it.vercruysse.lemmyapi.datatypes.MultiCommunity as LemmyapiDatatypesMultiCommunity +import it.vercruysse.lemmyapi.datatypes.MultiCommunityEntry as LemmyapiDatatypesMultiCommunityEntry +import it.vercruysse.lemmyapi.datatypes.MultiCommunityFollow as LemmyapiDatatypesMultiCommunityFollow +import it.vercruysse.lemmyapi.datatypes.MultiCommunityResponse as LemmyapiDatatypesMultiCommunityResponse +import it.vercruysse.lemmyapi.datatypes.MultiCommunityView as LemmyapiDatatypesMultiCommunityView +import it.vercruysse.lemmyapi.datatypes.MyUserInfo as LemmyapiDatatypesMyUserInfo +import it.vercruysse.lemmyapi.datatypes.NotePerson as LemmyapiDatatypesNotePerson +import it.vercruysse.lemmyapi.datatypes.Notification as LemmyapiDatatypesNotification +import it.vercruysse.lemmyapi.datatypes.NotificationData as LemmyapiDatatypesNotificationData +import it.vercruysse.lemmyapi.datatypes.NotificationView as LemmyapiDatatypesNotificationView +import it.vercruysse.lemmyapi.datatypes.OAuthAccount as LemmyapiDatatypesOAuthAccount +import it.vercruysse.lemmyapi.datatypes.PendingFollow as LemmyapiDatatypesPendingFollow +import it.vercruysse.lemmyapi.datatypes.PendingFollowerView as LemmyapiDatatypesPendingFollowerView +import it.vercruysse.lemmyapi.datatypes.Person as LemmyapiDatatypesPerson +import it.vercruysse.lemmyapi.datatypes.PersonActions as LemmyapiDatatypesPersonActions +import it.vercruysse.lemmyapi.datatypes.PersonResponse as LemmyapiDatatypesPersonResponse +import it.vercruysse.lemmyapi.datatypes.PersonView as LemmyapiDatatypesPersonView +import it.vercruysse.lemmyapi.datatypes.PluginMetadata as LemmyapiDatatypesPluginMetadata +import it.vercruysse.lemmyapi.datatypes.Post as LemmyapiDatatypesPost +import it.vercruysse.lemmyapi.datatypes.PostActions as LemmyapiDatatypesPostActions +import it.vercruysse.lemmyapi.datatypes.PostCommentCombinedView as LemmyapiDatatypesPostCommentCombinedView +import it.vercruysse.lemmyapi.datatypes.PostOrCommentOrPrivateMessage as LemmyapiDatatypesPostOrCommentOrPrivateMessage +import it.vercruysse.lemmyapi.datatypes.PostReport as LemmyapiDatatypesPostReport +import it.vercruysse.lemmyapi.datatypes.PostReportResponse as LemmyapiDatatypesPostReportResponse +import it.vercruysse.lemmyapi.datatypes.PostReportView as LemmyapiDatatypesPostReportView +import it.vercruysse.lemmyapi.datatypes.PostResponse as LemmyapiDatatypesPostResponse +import it.vercruysse.lemmyapi.datatypes.PostView as LemmyapiDatatypesPostView +import it.vercruysse.lemmyapi.datatypes.PrivateMessage as LemmyapiDatatypesPrivateMessage +import it.vercruysse.lemmyapi.datatypes.PrivateMessageReport as LemmyapiDatatypesPrivateMessageReport +import it.vercruysse.lemmyapi.datatypes.PrivateMessageReportResponse as LemmyapiDatatypesPrivateMessageReportResponse +import it.vercruysse.lemmyapi.datatypes.PrivateMessageReportView as LemmyapiDatatypesPrivateMessageReportView +import it.vercruysse.lemmyapi.datatypes.PrivateMessageResponse as LemmyapiDatatypesPrivateMessageResponse +import it.vercruysse.lemmyapi.datatypes.PrivateMessageView as LemmyapiDatatypesPrivateMessageView +import it.vercruysse.lemmyapi.datatypes.PublicOAuthProvider as LemmyapiDatatypesPublicOAuthProvider +import it.vercruysse.lemmyapi.datatypes.PurgeComment as LemmyapiDatatypesPurgeComment +import it.vercruysse.lemmyapi.datatypes.PurgeCommunity as LemmyapiDatatypesPurgeCommunity +import it.vercruysse.lemmyapi.datatypes.PurgePerson as LemmyapiDatatypesPurgePerson +import it.vercruysse.lemmyapi.datatypes.PurgePost as LemmyapiDatatypesPurgePost +import it.vercruysse.lemmyapi.datatypes.Register as LemmyapiDatatypesRegister +import it.vercruysse.lemmyapi.datatypes.RegistrationApplication as LemmyapiDatatypesRegistrationApplication +import it.vercruysse.lemmyapi.datatypes.RegistrationApplicationResponse as LemmyapiDatatypesRegistrationApplicationResponse +import it.vercruysse.lemmyapi.datatypes.RegistrationApplicationView as LemmyapiDatatypesRegistrationApplicationView +import it.vercruysse.lemmyapi.datatypes.RemoveComment as LemmyapiDatatypesRemoveComment +import it.vercruysse.lemmyapi.datatypes.RemoveCommunity as LemmyapiDatatypesRemoveCommunity +import it.vercruysse.lemmyapi.datatypes.RemovePost as LemmyapiDatatypesRemovePost +import it.vercruysse.lemmyapi.datatypes.ReportCombinedView as LemmyapiDatatypesReportCombinedView +import it.vercruysse.lemmyapi.datatypes.ResendVerificationEmail as LemmyapiDatatypesResendVerificationEmail +import it.vercruysse.lemmyapi.datatypes.ResetPassword as LemmyapiDatatypesPasswordReset +import it.vercruysse.lemmyapi.datatypes.ResolveCommentReport as LemmyapiDatatypesResolveCommentReport +import it.vercruysse.lemmyapi.datatypes.ResolveCommunityReport as LemmyapiDatatypesResolveCommunityReport +import it.vercruysse.lemmyapi.datatypes.ResolveObject as LemmyapiDatatypesResolveObject +import it.vercruysse.lemmyapi.datatypes.ResolveObjectView as LemmyapiDatatypesResolveObjectView +import it.vercruysse.lemmyapi.datatypes.ResolvePostReport as LemmyapiDatatypesResolvePostReport +import it.vercruysse.lemmyapi.datatypes.ResolvePrivateMessageReport as LemmyapiDatatypesResolvePrivateMessageReport +import it.vercruysse.lemmyapi.datatypes.RevokeInvitation as LemmyapiDatatypesRevokeInvitation +import it.vercruysse.lemmyapi.datatypes.SaveComment as LemmyapiDatatypesSaveComment +import it.vercruysse.lemmyapi.datatypes.SavePost as LemmyapiDatatypesSavePost +import it.vercruysse.lemmyapi.datatypes.SaveUserSettings as LemmyapiDatatypesSaveUserSettings +import it.vercruysse.lemmyapi.datatypes.Search as LemmyapiDatatypesSearch +import it.vercruysse.lemmyapi.datatypes.SearchResponse as LemmyapiDatatypesSearchResponse +import it.vercruysse.lemmyapi.datatypes.Site as LemmyapiDatatypesSite +import it.vercruysse.lemmyapi.datatypes.SiteResponse as LemmyapiDatatypesSiteResponse +import it.vercruysse.lemmyapi.datatypes.SiteView as LemmyapiDatatypesSiteView +import it.vercruysse.lemmyapi.datatypes.Tagline as LemmyapiDatatypesTagline +import it.vercruysse.lemmyapi.datatypes.TaglineResponse as LemmyapiDatatypesTaglineResponse +import it.vercruysse.lemmyapi.datatypes.TransferCommunity as LemmyapiDatatypesTransferCommunity +import it.vercruysse.lemmyapi.datatypes.UnreadCountsResponse as LemmyapiDatatypesUnreadCountsResponse +import it.vercruysse.lemmyapi.datatypes.UploadImageResponse as LemmyapiDatatypesUploadImageResponse +import it.vercruysse.lemmyapi.datatypes.UserBlockInstanceCommunitiesParams as LemmyapiDatatypesUserBlockInstanceCommunitiesParams +import it.vercruysse.lemmyapi.datatypes.UserBlockInstancePersonsParams as LemmyapiDatatypesUserBlockInstancePersonsParams +import it.vercruysse.lemmyapi.datatypes.UserSettingsBackup as LemmyapiDatatypesUserSettingsBackup +import it.vercruysse.lemmyapi.datatypes.VerifyEmail as LemmyapiDatatypesVerifyEmail +import it.vercruysse.lemmyapi.datatypes.VoteView as LemmyapiDatatypesVoteView +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.AddAdmin as X0DatatypesAddAdmin +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.AddAdminResponse as X0DatatypesAddAdminResponse +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.AddModToCommunity as X0DatatypesAddModToCommunity +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.AddModToCommunityResponse as X0DatatypesAddModToCommunityResponse +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.AdminAllowInstanceParams as X0DatatypesAdminAllowInstanceParams +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.AdminBlockInstanceParams as X0DatatypesAdminBlockInstanceParams +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.AdminListUsers as X0DatatypesAdminListUsers +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.AdminOAuthProvider as X0DatatypesAdminOAuthProvider +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.ApproveCommunityPendingFollower as X0DatatypesApproveCommunityPendingFollower +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.ApproveRegistrationApplication as X0DatatypesApproveRegistrationApplication +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.AuthenticateWithOauth as X0DatatypesAuthenticateWithOauth +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.BanFromCommunity as X0DatatypesBanFromCommunity +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.BanPerson as X0DatatypesBanPerson +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.BlockCommunity as X0DatatypesBlockCommunity +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.BlockPerson as X0DatatypesBlockPerson +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.CaptchaResponse as X0DatatypesCaptchaResponse +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.ChangePassword as X0DatatypesChangePassword +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.ChangePasswordAfterReset as X0DatatypesPasswordChangeAfterReset +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.Comment as X0DatatypesComment +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.CommentActions as X0DatatypesCommentActions +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.CommentReport as X0DatatypesCommentReport +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.CommentReportResponse as X0DatatypesCommentReportResponse +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.CommentReportView as X0DatatypesCommentReportView +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.CommentResponse as X0DatatypesCommentResponse +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.CommentSlimView as X0DatatypesCommentSlimView +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.CommentView as X0DatatypesCommentView +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.Community as X0DatatypesCommunity +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.CommunityActions as X0DatatypesCommunityActions +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.CommunityFollowerView as X0DatatypesCommunityFollowerView +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.CommunityIdQuery as X0DatatypesCommunityIdQuery +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.CommunityModeratorView as X0DatatypesCommunityModeratorView +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.CommunityReport as X0DatatypesCommunityReport +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.CommunityReportResponse as X0DatatypesCommunityReportResponse +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.CommunityReportView as X0DatatypesCommunityReportView +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.CommunityResponse as X0DatatypesCommunityResponse +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.CommunityTag as X0DatatypesCommunityTag +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.CommunityView as X0DatatypesCommunityView +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.CreateComment as X0DatatypesCreateComment +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.CreateCommentLike as X0DatatypesCreateCommentLike +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.CreateCommentReport as X0DatatypesCreateCommentReport +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.CreateCommentWarning as X0DatatypesCreateCommentWarning +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.CreateCommunity as X0DatatypesCreateCommunity +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.CreateCommunityReport as X0DatatypesCreateCommunityReport +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.CreateCommunityTag as X0DatatypesCreateCommunityTag +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.CreateCustomEmoji as X0DatatypesCreateCustomEmoji +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.CreateInvitation as X0DatatypesCreateInvitation +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.CreateInvitationResponse as X0DatatypesCreateInvitationResponse +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.CreateMultiCommunity as X0DatatypesCreateMultiCommunity +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.CreateOAuthProvider as X0DatatypesCreateOAuthProvider +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.CreateOrDeleteMultiCommunityEntry as X0DatatypesCreateOrDeleteMultiCommunityEntry +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.CreatePost as X0DatatypesCreatePost +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.CreatePostLike as X0DatatypesCreatePostLike +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.CreatePostReport as X0DatatypesCreatePostReport +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.CreatePostWarning as X0DatatypesCreatePostWarning +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.CreatePrivateMessage as X0DatatypesCreatePrivateMessage +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.CreatePrivateMessageReport as X0DatatypesCreatePrivateMessageReport +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.CreateSite as X0DatatypesCreateSite +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.CreateTagline as X0DatatypesCreateTagline +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.CustomEmoji as X0DatatypesCustomEmoji +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.CustomEmojiKeyword as X0DatatypesCustomEmojiKeyword +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.CustomEmojiResponse as X0DatatypesCustomEmojiResponse +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.CustomEmojiView as X0DatatypesCustomEmojiView +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.DeleteAccount as X0DatatypesDeleteAccount +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.DeleteComment as X0DatatypesDeleteComment +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.DeleteCommunity as X0DatatypesDeleteCommunity +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.DeleteCommunityTag as X0DatatypesDeleteCommunityTag +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.DeleteCustomEmoji as X0DatatypesDeleteCustomEmoji +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.DeleteImageParams as X0DatatypesDeleteImageParams +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.DeleteOAuthProvider as X0DatatypesDeleteOAuthProvider +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.DeletePost as X0DatatypesDeletePost +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.DeletePrivateMessage as X0DatatypesDeletePrivateMessage +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.DeleteTagline as X0DatatypesDeleteTagline +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.DistinguishComment as X0DatatypesDistinguishComment +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.EditComment as X0DatatypesEditComment +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.EditCommunity as X0DatatypesEditCommunity +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.EditCommunityNotifications as X0DatatypesEditCommunityNotifications +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.EditCommunityTag as X0DatatypesEditCommunityTag +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.EditCustomEmoji as X0DatatypesEditCustomEmoji +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.EditMultiCommunity as X0DatatypesEditMultiCommunity +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.EditOAuthProvider as X0DatatypesEditOAuthProvider +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.EditPost as X0DatatypesEditPost +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.EditPostNotifications as X0DatatypesEditPostNotifications +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.EditPrivateMessage as X0DatatypesEditPrivateMessage +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.EditSite as X0DatatypesEditSite +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.EditTagline as X0DatatypesEditTagline +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.EditTotp as X0DatatypesEditTotp +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.EditTotpResponse as X0DatatypesEditTotpResponse +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.ExportDataResponse as X0DatatypesExportDataResponse +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.FeaturePost as X0DatatypesFeaturePost +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.FederatedInstanceView as X0DatatypesFederatedInstanceView +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.FederationAllowList as X0DatatypesFederationAllowList +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.FederationBlockList as X0DatatypesFederationBlockList +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.FederationQueueState as X0DatatypesFederationQueueState +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.FollowCommunity as X0DatatypesFollowCommunity +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.FollowMultiCommunity as X0DatatypesFollowMultiCommunity +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.GenerateTotpSecretResponse as X0DatatypesGenerateTotpSecretResponse +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.GetCaptchaResponse as X0DatatypesGetCaptchaResponse +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.GetComment as X0DatatypesGetComment +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.GetComments as X0DatatypesGetComments +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.GetCommunity as X0DatatypesGetCommunity +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.GetCommunityResponse as X0DatatypesGetCommunityResponse +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.GetFederatedInstances as X0DatatypesGetFederatedInstances +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.GetModlog as X0DatatypesGetModlog +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.GetMultiCommunity as X0DatatypesGetMultiCommunity +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.GetMultiCommunityResponse as X0DatatypesGetMultiCommunityResponse +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.GetPersonDetails as X0DatatypesGetPersonDetails +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.GetPersonDetailsResponse as X0DatatypesGetPersonDetailsResponse +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.GetPost as X0DatatypesGetPost +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.GetPostResponse as X0DatatypesGetPostResponse +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.GetPosts as X0DatatypesGetPosts +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.GetRandomCommunity as X0DatatypesGetRandomCommunity +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.GetRegistrationApplication as X0DatatypesGetRegistrationApplication +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.GetSiteMetadata as X0DatatypesGetSiteMetadata +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.GetSiteMetadataResponse as X0DatatypesGetSiteMetadataResponse +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.GetSiteResponse as X0DatatypesGetSiteResponse +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.HideCommunity as X0DatatypesHideCommunity +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.HidePost as X0DatatypesHidePost +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.ImageDetails as X0DatatypesImageDetails +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.ImageGetParams as X0DatatypesImageGetParams +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.ImageProxyParams as X0DatatypesImageProxyParams +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.Instance as X0DatatypesInstance +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.InstanceActions as X0DatatypesInstanceActions +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.Language as X0DatatypesLanguage +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.LinkMetadata as X0DatatypesLinkMetadata +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.ListCommentLikes as X0DatatypesListCommentLikes +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.ListCommunities as X0DatatypesListCommunities +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.ListCommunityPendingFollows as X0DatatypesListCommunityPendingFollows +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.ListCustomEmojis as X0DatatypesListCustomEmojis +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.ListCustomEmojisResponse as X0DatatypesListCustomEmojisResponse +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.ListInvitations as X0DatatypesListInvitations +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.ListLoginsResponse as X0DatatypesListLoginsResponse +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.ListMedia as X0DatatypesListMedia +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.ListMultiCommunities as X0DatatypesListMultiCommunities +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.ListNotifications as X0DatatypesListNotifications +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.ListPersonContent as X0DatatypesListPersonContent +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.ListPersonHidden as X0DatatypesListPersonHidden +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.ListPersonLiked as X0DatatypesListPersonLiked +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.ListPersonRead as X0DatatypesListPersonRead +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.ListPersonSaved as X0DatatypesListPersonSaved +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.ListPersons as X0DatatypesListPersons +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.ListPostLikes as X0DatatypesListPostLikes +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.ListRegistrationApplications as X0DatatypesListRegistrationApplications +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.ListReports as X0DatatypesListReports +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.ListTaglines as X0DatatypesListTaglines +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.LocalImage as X0DatatypesLocalImage +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.LocalImageView as X0DatatypesLocalImageView +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.LocalSite as X0DatatypesLocalSite +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.LocalSiteRateLimit as X0DatatypesLocalSiteRateLimit +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.LocalSiteUrlBlocklist as X0DatatypesLocalSiteUrlBlocklist +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.LocalUser as X0DatatypesLocalUser +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.LocalUserInvite as X0DatatypesLocalUserInvite +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.LocalUserView as X0DatatypesLocalUserView +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.LockComment as X0DatatypesLockComment +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.LockPost as X0DatatypesLockPost +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.Login as X0DatatypesLogin +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.LoginResponse as X0DatatypesLoginResponse +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.LoginToken as X0DatatypesLoginToken +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.MarkManyPostsAsRead as X0DatatypesMarkManyPostsAsRead +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.MarkNotificationAsRead as X0DatatypesMarkNotificationAsRead +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.MarkPostAsRead as X0DatatypesMarkPostAsRead +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.ModEditPost as X0DatatypesModEditPost +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.Modlog as X0DatatypesModlog +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.ModlogView as X0DatatypesModlogView +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.MultiCommunity as X0DatatypesMultiCommunity +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.MultiCommunityEntry as X0DatatypesMultiCommunityEntry +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.MultiCommunityFollow as X0DatatypesMultiCommunityFollow +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.MultiCommunityResponse as X0DatatypesMultiCommunityResponse +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.MultiCommunityView as X0DatatypesMultiCommunityView +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.MyUserInfo as X0DatatypesMyUserInfo +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.NotePerson as X0DatatypesNotePerson +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.Notification as X0DatatypesNotification +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.NotificationData as X0DatatypesNotificationData +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.NotificationView as X0DatatypesNotificationView +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.OAuthAccount as X0DatatypesOAuthAccount +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.PendingFollow as X0DatatypesPendingFollow +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.PendingFollowerView as X0DatatypesPendingFollowerView +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.Person as X0DatatypesPerson +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.PersonActions as X0DatatypesPersonActions +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.PersonResponse as X0DatatypesPersonResponse +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.PersonView as X0DatatypesPersonView +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.PluginMetadata as X0DatatypesPluginMetadata +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.Post as X0DatatypesPost +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.PostActions as X0DatatypesPostActions +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.PostCommentCombinedView as X0DatatypesPostCommentCombinedView +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.PostOrCommentOrPrivateMessage as X0DatatypesPostOrCommentOrPrivateMessage +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.PostReport as X0DatatypesPostReport +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.PostReportResponse as X0DatatypesPostReportResponse +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.PostReportView as X0DatatypesPostReportView +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.PostResponse as X0DatatypesPostResponse +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.PostView as X0DatatypesPostView +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.PrivateMessage as X0DatatypesPrivateMessage +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.PrivateMessageReport as X0DatatypesPrivateMessageReport +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.PrivateMessageReportResponse as X0DatatypesPrivateMessageReportResponse +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.PrivateMessageReportView as X0DatatypesPrivateMessageReportView +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.PrivateMessageResponse as X0DatatypesPrivateMessageResponse +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.PrivateMessageView as X0DatatypesPrivateMessageView +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.PublicOAuthProvider as X0DatatypesPublicOAuthProvider +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.PurgeComment as X0DatatypesPurgeComment +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.PurgeCommunity as X0DatatypesPurgeCommunity +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.PurgePerson as X0DatatypesPurgePerson +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.PurgePost as X0DatatypesPurgePost +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.Register as X0DatatypesRegister +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.RegistrationApplication as X0DatatypesRegistrationApplication +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.RegistrationApplicationResponse as X0DatatypesRegistrationApplicationResponse +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.RegistrationApplicationView as X0DatatypesRegistrationApplicationView +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.RemoveComment as X0DatatypesRemoveComment +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.RemoveCommunity as X0DatatypesRemoveCommunity +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.RemovePost as X0DatatypesRemovePost +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.ReportCombinedView as X0DatatypesReportCombinedView +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.ResendVerificationEmail as X0DatatypesResendVerificationEmail +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.ResetPassword as X0DatatypesPasswordReset +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.ResolveCommentReport as X0DatatypesResolveCommentReport +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.ResolveCommunityReport as X0DatatypesResolveCommunityReport +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.ResolveObject as X0DatatypesResolveObject +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.ResolveObjectView as X0DatatypesResolveObjectView +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.ResolvePostReport as X0DatatypesResolvePostReport +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.ResolvePrivateMessageReport as X0DatatypesResolvePrivateMessageReport +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.RevokeInvitation as X0DatatypesRevokeInvitation +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.SaveComment as X0DatatypesSaveComment +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.SavePost as X0DatatypesSavePost +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.SaveUserSettings as X0DatatypesSaveUserSettings +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.Search as X0DatatypesSearch +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.SearchResponse as X0DatatypesSearchResponse +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.Site as X0DatatypesSite +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.SiteResponse as X0DatatypesSiteResponse +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.SiteView as X0DatatypesSiteView +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.Tagline as X0DatatypesTagline +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.TaglineResponse as X0DatatypesTaglineResponse +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.TransferCommunity as X0DatatypesTransferCommunity +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.UnreadCountsResponse as X0DatatypesUnreadCountsResponse +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.UploadImageResponse as X0DatatypesUploadImageResponse +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.UserBlockInstanceCommunitiesParams as X0DatatypesUserBlockInstanceCommunitiesParams +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.UserBlockInstancePersonsParams as X0DatatypesUserBlockInstancePersonsParams +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.UserSettingsBackup as X0DatatypesUserSettingsBackup +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.VerifyEmail as X0DatatypesVerifyEmail +import it.vercruysse.lemmyapi.v1.x0.x0.datatypes.VoteView as X0DatatypesVoteView + +internal class Transformer : MapperGenerator { + + fun voteBoolToInt(d: Boolean) = if (d) 1 else -1 + fun voteTriBoolToInt(d: Boolean?) = when (d) { + null -> 0 + true -> 1 + false -> -1 + } + fun voteIntToBool(d: Int): Boolean = when (d) { + 1 -> true + -1 -> false + else -> throw IllegalArgumentException("Invalid vote value: $d") + } + fun voteIntToTriBool(d: Int): Boolean? = when (d) { + 1 -> true + -1 -> false + 0 -> null + else -> throw IllegalArgumentException("Invalid vote value: $d") + } + + override fun toUni(d: X0DatatypesAddAdminResponse): LemmyapiDatatypesAddAdminResponse = LemmyapiDatatypesAddAdminResponse( + admins = d.admins.map { this.toUni(d = it) }, + ) + + override fun toUni(d: X0DatatypesAddModToCommunityResponse): LemmyapiDatatypesAddModToCommunityResponse = LemmyapiDatatypesAddModToCommunityResponse( + moderators = d.moderators.map { this.toUni(d = it) }, + ) + + override fun toUni(d: X0DatatypesAdminAllowInstanceParams): LemmyapiDatatypesAdminAllowInstanceParams = LemmyapiDatatypesAdminAllowInstanceParams( + instance = d.instance, + allow = d.allow, + reason = d.reason, + ) + + override fun toUni(d: X0DatatypesAdminBlockInstanceParams): LemmyapiDatatypesAdminBlockInstanceParams = LemmyapiDatatypesAdminBlockInstanceParams( + instance = d.instance, + block = d.block, + reason = d.reason, + expires_at = d.expires_at, + ) + + override fun toUni(d: X0DatatypesAdminListUsers): LemmyapiDatatypesAdminListUsers = LemmyapiDatatypesAdminListUsers( + banned_only = d.banned_only, + page_cursor = d.page_cursor, + sort = d.sort, + limit = d.limit, + ) + + override fun toUni(d: X0DatatypesAdminOAuthProvider): LemmyapiDatatypesAdminOAuthProvider = LemmyapiDatatypesAdminOAuthProvider( + id = d.id, + display_name = d.display_name, + issuer = d.issuer, + authorization_endpoint = d.authorization_endpoint, + token_endpoint = d.token_endpoint, + userinfo_endpoint = d.userinfo_endpoint, + id_claim = d.id_claim, + client_id = d.client_id, + scopes = d.scopes, + auto_verify_email = d.auto_verify_email, + account_linking_enabled = d.account_linking_enabled, + enabled = d.enabled, + published_at = d.published_at, + updated_at = d.updated_at, + use_pkce = d.use_pkce, + ) + + override fun toUni(d: X0DatatypesAuthenticateWithOauth): LemmyapiDatatypesAuthenticateWithOauth = LemmyapiDatatypesAuthenticateWithOauth( + code = d.code, + oauth_provider_id = d.oauth_provider_id, + redirect_uri = d.redirect_uri, + show_nsfw = d.show_nsfw, + username = d.username, + answer = d.answer, + pkce_code_verifier = d.pkce_code_verifier, + stay_logged_in = d.stay_logged_in, + ) + + override fun toUni(d: X0DatatypesCaptchaResponse): LemmyapiDatatypesCaptchaResponse = LemmyapiDatatypesCaptchaResponse( + png = d.png, + wav = d.wav, + uuid = d.uuid, + ) + + override fun toUni(d: X0DatatypesCreateInvitationResponse): LemmyapiDatatypesCreateInvitationResponse = LemmyapiDatatypesCreateInvitationResponse( + invite = this.toUni(d = d.invite), + ) + + override fun toUni(d: X0DatatypesComment): LemmyapiDatatypesComment = LemmyapiDatatypesComment( + id = d.id, + creator_id = d.creator_id, + post_id = d.post_id, + content = d.content, + removed = d.removed, + published_at = d.published_at, + updated_at = d.updated_at, + deleted = d.deleted, + ap_id = d.ap_id, + local = d.local, + path = d.path, + distinguished = d.distinguished, + language_id = d.language_id, + score = d.score, + upvotes = d.upvotes, + downvotes = d.downvotes, + child_count = d.child_count, + report_count = d.report_count, + unresolved_report_count = d.unresolved_report_count, + federation_pending = d.federation_pending, + locked = d.locked, + ) + + override fun toUni(d: X0DatatypesCommentActions): LemmyapiDatatypesCommentActions = LemmyapiDatatypesCommentActions( + like_score = voteTriBoolToInt(d.vote_is_upvote), + voted_at = d.voted_at, + saved_at = d.saved_at, + ) + + override fun toUni(d: X0DatatypesCommentReport): LemmyapiDatatypesCommentReport = LemmyapiDatatypesCommentReport( + id = d.id, + creator_id = d.creator_id, + comment_id = d.comment_id, + original_comment_text = d.original_comment_text, + reason = d.reason, + resolved = d.resolved, + resolver_id = d.resolver_id, + published_at = d.published_at, + updated_at = d.updated_at, + violates_instance_rules = d.violates_instance_rules, + ) + + override fun toUni(d: X0DatatypesCommentReportResponse): LemmyapiDatatypesCommentReportResponse = LemmyapiDatatypesCommentReportResponse( + comment_report_view = this.toUni(d = d.comment_report_view), + ) + + override fun toUni(d: X0DatatypesCommentReportView): LemmyapiDatatypesCommentReportView = LemmyapiDatatypesCommentReportView( + comment_report = this.toUni(d = d.comment_report), + comment = this.toUni(d = d.comment), + post = this.toUni(d = d.post), + community = this.toUni(d = d.community), + creator = this.toUni(d = d.creator), + comment_creator = this.toUni(d = d.comment_creator), + comment_actions = d.comment_actions?.let { this.toUni(d = it) }, + resolver = d.resolver?.let { this.toUni(d = it) }, + person_actions = d.person_actions?.let { this.toUni(d = it) }, + community_actions = d.community_actions?.let { this.toUni(d = it) }, + creator_is_admin = d.creator_is_admin, + creator_is_moderator = d.creator_is_moderator, + creator_banned = d.creator_banned, + creator_ban_expires_at = d.creator_ban_expires_at, + creator_banned_from_community = d.creator_banned_from_community, + creator_community_ban_expires_at = d.creator_community_ban_expires_at, + tags = d.tags.map { this.toUni(d = it) }, + ) + + override fun toUni(d: X0DatatypesCommentResponse): LemmyapiDatatypesCommentResponse = LemmyapiDatatypesCommentResponse( + comment_view = this.toUni(d = d.comment_view), + ) + + override fun toUni(d: X0DatatypesCommentSlimView): LemmyapiDatatypesCommentSlimView = LemmyapiDatatypesCommentSlimView( + comment = this.toUni(d = d.comment), + creator = this.toUni(d = d.creator), + comment_actions = d.comment_actions?.let { this.toUni(d = it) }, + person_actions = d.person_actions?.let { this.toUni(d = it) }, + creator_is_admin = d.creator_is_admin, + can_mod = d.can_mod, + creator_banned = d.creator_banned, + creator_is_moderator = d.creator_is_moderator, + creator_banned_from_community = d.creator_banned_from_community, + ) + + override fun toUni(d: X0DatatypesCommentView): LemmyapiDatatypesCommentView = LemmyapiDatatypesCommentView( + comment = this.toUni(d = d.comment), + creator = this.toUni(d = d.creator), + post = this.toUni(d = d.post), + community = this.toUni(d = d.community), + community_actions = d.community_actions?.let { this.toUni(d = it) }, + comment_actions = d.comment_actions?.let { this.toUni(d = it) }, + person_actions = d.person_actions?.let { this.toUni(d = it) }, + tags = d.tags.map { this.toUni(d = it) }, + can_mod = d.can_mod, + creator_banned = d.creator_banned, + creator_ban_expires_at = d.creator_ban_expires_at, + creator_is_admin = d.creator_is_admin, + creator_is_moderator = d.creator_is_moderator, + creator_banned_from_community = d.creator_banned_from_community, + creator_community_ban_expires_at = d.creator_community_ban_expires_at, + ) + + override fun toUni(d: X0DatatypesCommunity): LemmyapiDatatypesCommunity = LemmyapiDatatypesCommunity( + id = d.id, + name = d.name, + title = d.title, + sidebar = d.sidebar, + removed = d.removed, + published_at = d.published_at, + updated_at = d.updated_at, + deleted = d.deleted, + nsfw = d.nsfw, + ap_id = d.ap_id, + local = d.local, + last_refreshed_at = d.last_refreshed_at, + icon = d.icon, + banner = d.banner, + posting_restricted_to_mods = d.posting_restricted_to_mods, + instance_id = d.instance_id, + visibility = d.visibility, + summary = d.summary, + subscribers = d.subscribers, + posts = d.posts, + comments = d.comments, + users_active_day = d.users_active_day, + users_active_week = d.users_active_week, + users_active_month = d.users_active_month, + users_active_half_year = d.users_active_half_year, + subscribers_local = d.subscribers_local, + report_count = d.report_count, + unresolved_report_count = d.unresolved_report_count, + local_removed = d.local_removed, + ) + + override fun toUni(d: X0DatatypesCommunityActions): LemmyapiDatatypesCommunityActions = LemmyapiDatatypesCommunityActions( + followed_at = d.followed_at, + follow_state = d.follow_state, + blocked_at = d.blocked_at, + became_moderator_at = d.became_moderator_at, + received_ban_at = d.received_ban_at, + ban_expires_at = d.ban_expires_at, + notifications = d.notifications, + ) + + override fun toUni(d: X0DatatypesCommunityFollowerView): LemmyapiDatatypesCommunityFollowerView = LemmyapiDatatypesCommunityFollowerView( + community = this.toUni(d = d.community), + follower = this.toUni(d = d.follower), + ) + + override fun toUni(d: X0DatatypesCommunityIdQuery): LemmyapiDatatypesCommunityIdQuery = LemmyapiDatatypesCommunityIdQuery( + id = d.id, + ) + + override fun toUni(d: X0DatatypesCommunityModeratorView): LemmyapiDatatypesCommunityModeratorView = LemmyapiDatatypesCommunityModeratorView( + community = this.toUni(d = d.community), + moderator = this.toUni(d = d.moderator), + ) + + override fun toUni(d: X0DatatypesCommunityReport): LemmyapiDatatypesCommunityReport = LemmyapiDatatypesCommunityReport( + id = d.id, + creator_id = d.creator_id, + community_id = d.community_id, + original_community_name = d.original_community_name, + original_community_title = d.original_community_title, + original_community_summary = d.original_community_summary, + original_community_sidebar = d.original_community_sidebar, + original_community_icon = d.original_community_icon, + original_community_banner = d.original_community_banner, + reason = d.reason, + resolved = d.resolved, + resolver_id = d.resolver_id, + published_at = d.published_at, + updated_at = d.updated_at, + ) + + override fun toUni(d: X0DatatypesCommunityReportResponse): LemmyapiDatatypesCommunityReportResponse = LemmyapiDatatypesCommunityReportResponse( + community_report_view = this.toUni(d = d.community_report_view), + ) + + override fun toUni(d: X0DatatypesCommunityReportView): LemmyapiDatatypesCommunityReportView = LemmyapiDatatypesCommunityReportView( + community_report = this.toUni(d = d.community_report), + community = this.toUni(d = d.community), + creator = this.toUni(d = d.creator), + resolver = d.resolver?.let { this.toUni(d = it) }, + creator_is_admin = d.creator_is_admin, + creator_is_moderator = d.creator_is_moderator, + creator_banned = d.creator_banned, + creator_ban_expires_at = d.creator_ban_expires_at, + creator_banned_from_community = d.creator_banned_from_community, + creator_community_ban_expires_at = d.creator_community_ban_expires_at, + ) + + override fun toUni(d: X0DatatypesCommunityResponse): LemmyapiDatatypesCommunityResponse = LemmyapiDatatypesCommunityResponse( + community_view = this.toUni(d = d.community_view), + discussion_languages = d.discussion_languages, + ) + + override fun toUni(d: X0DatatypesCommunityTag): LemmyapiDatatypesCommunityTag = LemmyapiDatatypesCommunityTag( + id = d.id, + ap_id = d.ap_id, + name = d.name, + display_name = d.display_name, + summary = d.summary, + community_id = d.community_id, + published_at = d.published_at, + updated_at = d.updated_at, + deleted = d.deleted, + color = d.color, + ) + + override fun toUni(d: X0DatatypesCommunityView): LemmyapiDatatypesCommunityView = LemmyapiDatatypesCommunityView( + community = this.toUni(d = d.community), + community_actions = d.community_actions?.let { this.toUni(d = it) }, + can_mod = d.can_mod, + tags = d.tags.map { this.toUni(d = it) }, + ) + + override fun toUni(d: X0DatatypesCustomEmoji): LemmyapiDatatypesCustomEmoji = LemmyapiDatatypesCustomEmoji( + id = d.id, + shortcode = d.shortcode, + image_url = d.image_url, + alt_text = d.alt_text, + category = d.category, + published_at = d.published_at, + updated_at = d.updated_at, + ) + + override fun toUni(d: X0DatatypesCustomEmojiKeyword): LemmyapiDatatypesCustomEmojiKeyword = LemmyapiDatatypesCustomEmojiKeyword( + custom_emoji_id = d.custom_emoji_id, + keyword = d.keyword, + ) + + override fun toUni(d: X0DatatypesCustomEmojiResponse): LemmyapiDatatypesCustomEmojiResponse = LemmyapiDatatypesCustomEmojiResponse( + custom_emoji = this.toUni(d = d.custom_emoji), + ) + + override fun toUni(d: X0DatatypesCustomEmojiView): LemmyapiDatatypesCustomEmojiView = LemmyapiDatatypesCustomEmojiView( + custom_emoji = this.toUni(d = d.custom_emoji), + keywords = d.keywords.map { this.toUni(d = it) }, + ) + + override fun toUni(d: X0DatatypesEditTotpResponse): LemmyapiDatatypesEditTotpResponse = LemmyapiDatatypesEditTotpResponse( + enabled = d.enabled, + ) + + override fun toUni(d: X0DatatypesExportDataResponse): LemmyapiDatatypesExportDataResponse = LemmyapiDatatypesExportDataResponse( + notifications = d.notifications.map { this.toUni(d = it) }, + content = d.content.map { this.toUni(d = it) }, + read_posts = d.read_posts, + liked = d.liked, + moderates = d.moderates, + settings = this.toUni(d = d.settings), + ) + + override fun toUni(d: X0DatatypesFederatedInstanceView): LemmyapiDatatypesFederatedInstanceView = LemmyapiDatatypesFederatedInstanceView( + instance = this.toUni(d = d.instance), + site = d.site?.let { this.toUni(d = it) }, + queue_state = d.queue_state?.let { this.toUni(d = it) }, + blocked = d.blocked?.let { this.toUni(d = it) }, + allowed = d.allowed?.let { this.toUni(d = it) }, + ) + + override fun toUni(d: X0DatatypesFederationAllowList): LemmyapiDatatypesFederationAllowList = LemmyapiDatatypesFederationAllowList( + published_at = d.published_at, + updated_at = d.updated_at, + ) + + override fun toUni(d: X0DatatypesFederationBlockList): LemmyapiDatatypesFederationBlockList = LemmyapiDatatypesFederationBlockList( + published_at = d.published_at, + updated_at = d.updated_at, + expires_at = d.expires_at, + ) + + override fun toUni(d: X0DatatypesFederationQueueState): LemmyapiDatatypesFederationQueueState = LemmyapiDatatypesFederationQueueState( + instance_id = d.instance_id, + last_successful_id = d.last_successful_id, + last_successful_published_time_at = d.last_successful_published_time_at, + fail_count = d.fail_count, + last_retry_at = d.last_retry_at, + ) + + override fun toUni(d: X0DatatypesGenerateTotpSecretResponse): LemmyapiDatatypesGenerateTotpSecretResponse = LemmyapiDatatypesGenerateTotpSecretResponse( + totp_secret_url = d.totp_secret_url, + ) + + override fun toUni(d: X0DatatypesGetCaptchaResponse): LemmyapiDatatypesGetCaptchaResponse = LemmyapiDatatypesGetCaptchaResponse( + ok = d.ok?.let { this.toUni(d = it) }, + ) + + override fun toUni(d: X0DatatypesGetCommunityResponse): LemmyapiDatatypesGetCommunityResponse = LemmyapiDatatypesGetCommunityResponse( + community_view = this.toUni(d = d.community_view), + site = d.site?.let { this.toUni(d = it) }, + moderators = d.moderators.map { this.toUni(d = it) }, + discussion_languages = d.discussion_languages, + ) + + override fun toUni(d: X0DatatypesGetMultiCommunityResponse): LemmyapiDatatypesGetMultiCommunityResponse = LemmyapiDatatypesGetMultiCommunityResponse( + multi_community_view = this.toUni(d = d.multi_community_view), + communities = d.communities.map { this.toUni(d = it) }, + ) + + override fun toUni(d: X0DatatypesGetPersonDetailsResponse): LemmyapiDatatypesGetPersonDetailsResponse = LemmyapiDatatypesGetPersonDetailsResponse( + person_view = this.toUni(d = d.person_view), + site = d.site?.let { this.toUni(d = it) }, + moderates = d.moderates.map { this.toUni(d = it) }, + multi_communities_created = d.multi_communities_created.map { this.toUni(d = it) }, + ) + + override fun toUni(d: X0DatatypesGetPostResponse): LemmyapiDatatypesGetPostResponse = LemmyapiDatatypesGetPostResponse( + post_view = this.toUni(d = d.post_view), + community_view = this.toUni(d = d.community_view), + moderators = d.moderators.map { this.toUni(d = it) }, + cross_posts = d.cross_posts.map { this.toUni(d = it) }, + ) + + override fun toUni(d: X0DatatypesGetSiteMetadataResponse): LemmyapiDatatypesGetSiteMetadataResponse = LemmyapiDatatypesGetSiteMetadataResponse( + metadata = this.toUni(d = d.metadata), + ) + + override fun toUni(d: X0DatatypesGetSiteResponse): LemmyapiDatatypesGetSiteResponse = LemmyapiDatatypesGetSiteResponse( + site_view = this.toUni(d = d.site_view), + admins = d.admins.map { this.toUni(d = it) }, + version = d.version, + all_languages = d.all_languages.map { this.toUni(d = it) }, + discussion_languages = d.discussion_languages, + blocked_urls = d.blocked_urls.map { this.toUni(d = it) }, + tagline = d.tagline?.let { this.toUni(d = it) }, + oauth_providers = d.oauth_providers.map { this.toUni(d = it) }, + admin_oauth_providers = d.admin_oauth_providers.map { this.toUni(d = it) }, + active_plugins = d.active_plugins.map { this.toUni(d = it) }, + last_application_duration_seconds = d.last_application_duration_seconds, + captcha_enabled = d.captcha_enabled, + ) + + override fun toUni(d: X0DatatypesImageDetails): LemmyapiDatatypesImageDetails = LemmyapiDatatypesImageDetails( + link = d.link, + width = d.width, + height = d.height, + content_type = d.content_type, + blurhash = d.blurhash, + ) + + override fun toUni(d: X0DatatypesImageGetParams): LemmyapiDatatypesImageGetParams = LemmyapiDatatypesImageGetParams( + file_type = d.file_type, + max_size = d.max_size, + ) + + override fun toUni(d: X0DatatypesImageProxyParams): LemmyapiDatatypesImageProxyParams = LemmyapiDatatypesImageProxyParams( + url = d.url, + file_type = d.file_type, + max_size = d.max_size, + ) + + override fun toUni(d: X0DatatypesInstance): LemmyapiDatatypesInstance = LemmyapiDatatypesInstance( + id = d.id, + domain = d.domain, + published_at = d.published_at, + updated_at = d.updated_at, + software = d.software, + version = d.version, + ) + + override fun toUni(d: X0DatatypesInstanceActions): LemmyapiDatatypesInstanceActions = LemmyapiDatatypesInstanceActions( + blocked_communities_at = d.blocked_communities_at, + received_ban_at = d.received_ban_at, + ban_expires_at = d.ban_expires_at, + blocked_persons_at = d.blocked_persons_at, + ) + + override fun toUni(d: X0DatatypesLanguage): LemmyapiDatatypesLanguage = LemmyapiDatatypesLanguage( + id = d.id, + code = d.code, + name = d.name, + ) + + override fun toUni(d: X0DatatypesLinkMetadata): LemmyapiDatatypesLinkMetadata = LemmyapiDatatypesLinkMetadata( + content_type = d.content_type, + title = d.title, + description = d.description, + image = d.image, + image_width = d.image_width, + image_height = d.image_height, + embed_video_url = d.embed_video_url, + video_width = d.video_width, + video_height = d.video_height, + ) + + override fun toUni(d: X0DatatypesListCustomEmojisResponse): LemmyapiDatatypesListCustomEmojisResponse = LemmyapiDatatypesListCustomEmojisResponse( + custom_emojis = d.custom_emojis.map { this.toUni(d = it) }, + ) + + override fun toUni(d: X0DatatypesListLoginsResponse): LemmyapiDatatypesListLoginsResponse = LemmyapiDatatypesListLoginsResponse( + logins = d.logins.map { this.toUni(d = it) }, + ) + + override fun toUni(d: X0DatatypesLocalImage): LemmyapiDatatypesLocalImage = LemmyapiDatatypesLocalImage( + person_id = d.person_id, + pictrs_alias = d.pictrs_alias, + published_at = d.published_at, + thumbnail_for_post_id = d.thumbnail_for_post_id, + ) + + override fun toUni(d: X0DatatypesLocalImageView): LemmyapiDatatypesLocalImageView = LemmyapiDatatypesLocalImageView( + local_image = this.toUni(d = d.local_image), + person = this.toUni(d = d.person), + post = d.post?.let { this.toUni(d = it) }, + ) + + override fun toUni(d: X0DatatypesLocalSite): LemmyapiDatatypesLocalSite = LemmyapiDatatypesLocalSite( + id = d.id, + site_id = d.site_id, + site_setup = d.site_setup, + community_creation_admin_only = d.community_creation_admin_only, + email_verification_required = d.email_verification_required, + application_question = d.application_question, + private_instance = d.private_instance, + default_theme = d.default_theme, + default_post_listing_type = d.default_post_listing_type, + legal_information = d.legal_information, + application_email_admins = d.application_email_admins, + slur_filter_regex = d.slur_filter_regex, + federation_enabled = d.federation_enabled, + published_at = d.published_at, + updated_at = d.updated_at, + registration_mode = d.registration_mode, + reports_email_admins = d.reports_email_admins, + federation_signed_fetch = d.federation_signed_fetch, + default_post_listing_mode = d.default_post_listing_mode, + default_post_sort_type = d.default_post_sort_type, + default_comment_sort_type = d.default_comment_sort_type, + oauth_registration = d.oauth_registration, + post_upvotes = d.post_upvotes, + post_downvotes = d.post_downvotes, + comment_upvotes = d.comment_upvotes, + comment_downvotes = d.comment_downvotes, + default_post_time_range_seconds = d.default_post_time_range_seconds, + nsfw_content_disallowed = d.nsfw_content_disallowed, + users = d.users, + posts = d.posts, + comments = d.comments, + communities = d.communities, + users_active_day = d.users_active_day, + users_active_week = d.users_active_week, + users_active_month = d.users_active_month, + users_active_half_year = d.users_active_half_year, + email_notifications_disabled = d.email_notifications_disabled, + suggested_multi_community_id = d.suggested_multi_community_id, + default_items_per_page = d.default_items_per_page, + image_mode = d.image_mode, + image_proxy_bypass_domains = d.image_proxy_bypass_domains, + image_upload_timeout_seconds = d.image_upload_timeout_seconds, + image_max_thumbnail_size = d.image_max_thumbnail_size, + image_max_avatar_size = d.image_max_avatar_size, + image_max_banner_size = d.image_max_banner_size, + image_max_upload_size = d.image_max_upload_size, + image_allow_video_uploads = d.image_allow_video_uploads, + image_upload_disabled = d.image_upload_disabled, + max_invites_per_user_allowed = d.max_invites_per_user_allowed, + ) + + override fun toUni(d: X0DatatypesLocalSiteRateLimit): LemmyapiDatatypesLocalSiteRateLimit = LemmyapiDatatypesLocalSiteRateLimit( + local_site_id = d.local_site_id, + message_max_requests = d.message_max_requests, + message_interval_seconds = d.message_interval_seconds, + post_max_requests = d.post_max_requests, + post_interval_seconds = d.post_interval_seconds, + register_max_requests = d.register_max_requests, + register_interval_seconds = d.register_interval_seconds, + image_max_requests = d.image_max_requests, + image_interval_seconds = d.image_interval_seconds, + comment_max_requests = d.comment_max_requests, + comment_interval_seconds = d.comment_interval_seconds, + search_max_requests = d.search_max_requests, + search_interval_seconds = d.search_interval_seconds, + published_at = d.published_at, + updated_at = d.updated_at, + import_user_settings_max_requests = d.import_user_settings_max_requests, + import_user_settings_interval_seconds = d.import_user_settings_interval_seconds, + ) + + override fun toUni(d: X0DatatypesLocalSiteUrlBlocklist): LemmyapiDatatypesLocalSiteUrlBlocklist = LemmyapiDatatypesLocalSiteUrlBlocklist( + id = d.id, + url = d.url, + published_at = d.published_at, + updated_at = d.updated_at, + ) + + override fun toUni(d: X0DatatypesLocalUser): LemmyapiDatatypesLocalUser = LemmyapiDatatypesLocalUser( + id = d.id, + person_id = d.person_id, + email = d.email, + show_nsfw = d.show_nsfw, + theme = d.theme, + default_post_sort_type = d.default_post_sort_type, + default_listing_type = d.default_listing_type, + interface_language = d.interface_language, + show_avatars = d.show_avatars, + send_notifications_to_email = d.send_notifications_to_email, + show_bot_accounts = d.show_bot_accounts, + show_read_posts = d.show_read_posts, + email_verified = d.email_verified, + accepted_application = d.accepted_application, + open_links_in_new_tab = d.open_links_in_new_tab, + blur_nsfw = d.blur_nsfw, + infinite_scroll_enabled = d.infinite_scroll_enabled, + admin = d.admin, + post_listing_mode = d.post_listing_mode, + totp_2fa_enabled = d.totp_2fa_enabled, + animated_images_enabled = d.animated_images_enabled, + private_messages_enabled = d.private_messages_enabled, + collapse_bot_comments = d.collapse_bot_comments, + default_comment_sort_type = d.default_comment_sort_type, + auto_mark_fetched_posts_as_read = d.auto_mark_fetched_posts_as_read, + last_donation_notification_at = d.last_donation_notification_at, + hide_posts_with_media = d.hide_posts_with_media, + default_post_time_range_seconds = d.default_post_time_range_seconds, + show_score = d.show_score, + show_upvotes = d.show_upvotes, + show_downvotes = d.show_downvotes, + show_upvote_percentage = d.show_upvote_percentage, + show_person_votes = d.show_person_votes, + default_items_per_page = d.default_items_per_page, + invited_by_local_user_id = d.invited_by_local_user_id, + show_media = d.show_media, + ) + + override fun toUni(d: X0DatatypesLocalUserView): LemmyapiDatatypesLocalUserView = LemmyapiDatatypesLocalUserView( + local_user = this.toUni(d = d.local_user), + person = this.toUni(d = d.person), + banned = d.banned, + ban_expires_at = d.ban_expires_at, + ) + + override fun toUni(d: X0DatatypesLocalUserInvite): LemmyapiDatatypesLocalUserInvite = LemmyapiDatatypesLocalUserInvite( + id = d.id, + token = d.token, + local_user_id = d.local_user_id, + max_uses = d.max_uses, + uses_count = d.uses_count, + expires_at = d.expires_at, + published_at = d.published_at, + ) + + override fun toUni(d: X0DatatypesLoginResponse): LemmyapiDatatypesLoginResponse = LemmyapiDatatypesLoginResponse( + jwt = d.jwt, + registration_created = d.registration_created, + verify_email_sent = d.verify_email_sent, + ) + + override fun toUni(d: X0DatatypesLoginToken): LemmyapiDatatypesLoginToken = LemmyapiDatatypesLoginToken( + user_id = d.user_id, + published_at = d.published_at, + ip = d.ip, + user_agent = d.user_agent, + ) + + override fun toUni(d: X0DatatypesModEditPost): LemmyapiDatatypesModEditPost = LemmyapiDatatypesModEditPost( + post_id = d.post_id, + nsfw = d.nsfw, + tags = d.tags, + ) + + override fun toUni(d: X0DatatypesModlog): LemmyapiDatatypesModlog = LemmyapiDatatypesModlog( + id = d.id, + kind = d.kind, + is_revert = d.is_revert, + reason = d.reason, + expires_at = d.expires_at, + published_at = d.published_at, + bulk_action_parent_id = d.bulk_action_parent_id, + child_count = d.child_count, + ) + + override fun toUni(d: X0DatatypesModlogView): LemmyapiDatatypesModlogView = LemmyapiDatatypesModlogView( + modlog = this.toUni(d = d.modlog), + moderator = d.moderator?.let { this.toUni(d = it) }, + target_person = d.target_person?.let { this.toUni(d = it) }, + target_instance = d.target_instance?.let { this.toUni(d = it) }, + target_community = d.target_community?.let { this.toUni(d = it) }, + target_post = d.target_post?.let { this.toUni(d = it) }, + target_comment = d.target_comment?.let { this.toUni(d = it) }, + ) + + override fun toUni(d: X0DatatypesMultiCommunity): LemmyapiDatatypesMultiCommunity = LemmyapiDatatypesMultiCommunity( + id = d.id, + creator_id = d.creator_id, + instance_id = d.instance_id, + name = d.name, + title = d.title, + summary = d.summary, + local = d.local, + deleted = d.deleted, + ap_id = d.ap_id, + last_refreshed_at = d.last_refreshed_at, + published_at = d.published_at, + updated_at = d.updated_at, + subscribers = d.subscribers, + subscribers_local = d.subscribers_local, + communities = d.communities, + sidebar = d.sidebar, + ) + + override fun toUni(d: X0DatatypesMultiCommunityEntry): LemmyapiDatatypesMultiCommunityEntry = LemmyapiDatatypesMultiCommunityEntry( + multi_community_id = d.multi_community_id, + community_id = d.community_id, + ) + + override fun toUni(d: X0DatatypesMultiCommunityFollow): LemmyapiDatatypesMultiCommunityFollow = LemmyapiDatatypesMultiCommunityFollow( + multi_community_id = d.multi_community_id, + person_id = d.person_id, + follow_state = d.follow_state, + ) + + override fun toUni(d: X0DatatypesMultiCommunityResponse): LemmyapiDatatypesMultiCommunityResponse = LemmyapiDatatypesMultiCommunityResponse( + multi_community_view = this.toUni(d = d.multi_community_view), + ) + + override fun toUni(d: X0DatatypesMultiCommunityView): LemmyapiDatatypesMultiCommunityView = LemmyapiDatatypesMultiCommunityView( + multi = this.toUni(d = d.multi), + follow_state = d.follow_state, + owner = this.toUni(d = d.owner), + ) + + override fun toUni(d: X0DatatypesMyUserInfo): LemmyapiDatatypesMyUserInfo = LemmyapiDatatypesMyUserInfo( + local_user_view = this.toUni(d = d.local_user_view), + follows = d.follows.map { this.toUni(d = it) }, + moderates = d.moderates.map { this.toUni(d = it) }, + multi_community_follows = d.multi_community_follows.map { this.toUni(d = it) }, + community_blocks = d.community_blocks.map { this.toUni(d = it) }, + instance_communities_blocks = d.instance_communities_blocks.map { this.toUni(d = it) }, + instance_persons_blocks = d.instance_persons_blocks.map { this.toUni(d = it) }, + person_blocks = d.person_blocks.map { this.toUni(d = it) }, + keyword_blocks = d.keyword_blocks, + discussion_languages = d.discussion_languages, + ) + + override fun toUni(d: X0DatatypesNotePerson): LemmyapiDatatypesNotePerson = LemmyapiDatatypesNotePerson( + person_id = d.person_id, + note = d.note, + ) + + override fun toUni(d: X0DatatypesNotification): LemmyapiDatatypesNotification = LemmyapiDatatypesNotification( + id = d.id, + recipient_id = d.recipient_id, + comment_id = d.comment_id, + read = d.read, + published_at = d.published_at, + kind = d.kind, + post_id = d.post_id, + private_message_id = d.private_message_id, + modlog_id = d.modlog_id, + creator_id = d.creator_id, + ) + + override fun toUni(d: X0DatatypesNotificationData): LemmyapiDatatypesNotificationData = super.toUni(d) + + override fun toUni(d: X0DatatypesNotificationView): LemmyapiDatatypesNotificationView = LemmyapiDatatypesNotificationView( + notification = this.toUni(d = d.notification), + data = this.toUni(d.data), + ) + + override fun toUni(d: X0DatatypesOAuthAccount): LemmyapiDatatypesOAuthAccount = LemmyapiDatatypesOAuthAccount( + local_user_id = d.local_user_id, + oauth_provider_id = d.oauth_provider_id, + oauth_user_id = d.oauth_user_id, + published_at = d.published_at, + updated_at = d.updated_at, + ) + + override fun toUni(d: X0DatatypesPendingFollow): LemmyapiDatatypesPendingFollow = LemmyapiDatatypesPendingFollow( + person = this.toUni(d = d.person), + community = this.toUni(d = d.community), + is_new_instance = d.is_new_instance, + follow_state = d.follow_state, + ) + + override fun toUni(d: X0DatatypesPendingFollowerView): LemmyapiDatatypesPendingFollowerView = LemmyapiDatatypesPendingFollowerView( + person = this.toUni(d = d.person), + community = this.toUni(d = d.community), + is_new_instance = d.is_new_instance, + follow_state = d.follow_state, + ) + + override fun toUni(d: X0DatatypesPerson): LemmyapiDatatypesPerson = LemmyapiDatatypesPerson( + id = d.id, + name = d.name, + display_name = d.display_name, + avatar = d.avatar, + published_at = d.published_at, + updated_at = d.updated_at, + ap_id = d.ap_id, + bio = d.bio, + local = d.local, + banner = d.banner, + deleted = d.deleted, + matrix_user_id = d.matrix_user_id, + bot_account = d.bot_account, + instance_id = d.instance_id, + post_count = d.post_count, + comment_count = d.comment_count, + last_refreshed_at = d.last_refreshed_at, + ) + + override fun toUni(d: X0DatatypesPersonActions): LemmyapiDatatypesPersonActions = LemmyapiDatatypesPersonActions( + blocked_at = d.blocked_at, + noted_at = d.noted_at, + note = d.note, + voted_at = d.voted_at, + upvotes = d.upvotes, + downvotes = d.downvotes, + ) + + override fun toUni(d: X0DatatypesPersonResponse): LemmyapiDatatypesPersonResponse = LemmyapiDatatypesPersonResponse( + person_view = this.toUni(d = d.person_view), + ) + + override fun toUni(d: X0DatatypesPersonView): LemmyapiDatatypesPersonView = LemmyapiDatatypesPersonView( + person = this.toUni(d = d.person), + is_admin = d.is_admin, + person_actions = d.person_actions?.let { this.toUni(d = it) }, + banned = d.banned, + ban_expires_at = d.ban_expires_at, + ) + + override fun toUni(d: X0DatatypesPluginMetadata): LemmyapiDatatypesPluginMetadata = LemmyapiDatatypesPluginMetadata( + name = d.name, + url = d.url, + description = d.description, + ) + + override fun toUni(d: X0DatatypesPost): LemmyapiDatatypesPost = LemmyapiDatatypesPost( + id = d.id, + name = d.name, + url = d.url, + body = d.body, + creator_id = d.creator_id, + community_id = d.community_id, + removed = d.removed, + locked = d.locked, + published_at = d.published_at, + updated_at = d.updated_at, + deleted = d.deleted, + nsfw = d.nsfw, + embed_title = d.embed_title, + embed_description = d.embed_description, + thumbnail_url = d.thumbnail_url, + ap_id = d.ap_id, + local = d.local, + embed_video_url = d.embed_video_url, + language_id = d.language_id, + featured_community = d.featured_community, + featured_local = d.featured_local, + url_content_type = d.url_content_type, + alt_text = d.alt_text, + scheduled_publish_time_at = d.scheduled_publish_time_at, + newest_comment_time_at = d.newest_comment_time_at, + comments = d.comments, + score = d.score, + upvotes = d.upvotes, + downvotes = d.downvotes, + report_count = d.report_count, + unresolved_report_count = d.unresolved_report_count, + federation_pending = d.federation_pending, + embed_video_width = d.embed_video_width, + embed_video_height = d.embed_video_height, + ) + + override fun toUni(d: X0DatatypesPostActions): LemmyapiDatatypesPostActions = LemmyapiDatatypesPostActions( + read_at = d.read_at, + read_comments_at = d.read_comments_at, + read_comments_amount = d.read_comments_amount, + saved_at = d.saved_at, + voted_at = d.voted_at, + hidden_at = d.hidden_at, + notifications = d.notifications, + like_score = voteTriBoolToInt(d.vote_is_upvote), + ) + + override fun toUni(d: X0DatatypesPostCommentCombinedView): LemmyapiDatatypesPostCommentCombinedView = super.toUni(d) + + override fun toUni(d: X0DatatypesPostOrCommentOrPrivateMessage): LemmyapiDatatypesPostOrCommentOrPrivateMessage = super.toUni(d) + + override fun toUni(d: X0DatatypesPostReport): LemmyapiDatatypesPostReport = LemmyapiDatatypesPostReport( + id = d.id, + creator_id = d.creator_id, + post_id = d.post_id, + original_post_name = d.original_post_name, + original_post_url = d.original_post_url, + original_post_body = d.original_post_body, + reason = d.reason, + resolved = d.resolved, + resolver_id = d.resolver_id, + published_at = d.published_at, + updated_at = d.updated_at, + violates_instance_rules = d.violates_instance_rules, + ) + + override fun toUni(d: X0DatatypesPostReportResponse): LemmyapiDatatypesPostReportResponse = LemmyapiDatatypesPostReportResponse( + post_report_view = this.toUni(d = d.post_report_view), + ) + + override fun toUni(d: X0DatatypesPostReportView): LemmyapiDatatypesPostReportView = LemmyapiDatatypesPostReportView( + post_report = this.toUni(d = d.post_report), + post = this.toUni(d = d.post), + community = this.toUni(d = d.community), + creator = this.toUni(d = d.creator), + post_creator = this.toUni(d = d.post_creator), + community_actions = d.community_actions?.let { this.toUni(d = it) }, + post_actions = d.post_actions?.let { this.toUni(d = it) }, + person_actions = d.person_actions?.let { this.toUni(d = it) }, + resolver = d.resolver?.let { this.toUni(d = it) }, + creator_is_admin = d.creator_is_admin, + creator_is_moderator = d.creator_is_moderator, + creator_banned = d.creator_banned, + creator_ban_expires_at = d.creator_ban_expires_at, + creator_banned_from_community = d.creator_banned_from_community, + creator_community_ban_expires_at = d.creator_community_ban_expires_at, + tags = d.tags.map { this.toUni(d = it) }, + ) + + override fun toUni(d: X0DatatypesPostResponse): LemmyapiDatatypesPostResponse = LemmyapiDatatypesPostResponse( + post_view = this.toUni(d = d.post_view), + ) + + override fun toUni(d: X0DatatypesPostView): LemmyapiDatatypesPostView = LemmyapiDatatypesPostView( + post = this.toUni(d = d.post), + creator = this.toUni(d = d.creator), + community = this.toUni(d = d.community), + image_details = d.image_details?.let { this.toUni(d = it) }, + community_actions = d.community_actions?.let { this.toUni(d = it) }, + person_actions = d.person_actions?.let { this.toUni(d = it) }, + post_actions = d.post_actions?.let { this.toUni(d = it) }, + tags = d.tags.map { this.toUni(d = it) }, + can_mod = d.can_mod, + creator_banned = d.creator_banned, + creator_ban_expires_at = d.creator_ban_expires_at, + creator_is_admin = d.creator_is_admin, + creator_is_moderator = d.creator_is_moderator, + creator_banned_from_community = d.creator_banned_from_community, + creator_community_ban_expires_at = d.creator_community_ban_expires_at, + ) + + override fun toUni(d: X0DatatypesPrivateMessage): LemmyapiDatatypesPrivateMessage = LemmyapiDatatypesPrivateMessage( + id = d.id, + creator_id = d.creator_id, + recipient_id = d.recipient_id, + content = d.content, + deleted = d.deleted, + published_at = d.published_at, + updated_at = d.updated_at, + ap_id = d.ap_id, + local = d.local, + removed = d.removed, + deleted_by_recipient = d.deleted_by_recipient, + ) + + override fun toUni(d: X0DatatypesPrivateMessageReport): LemmyapiDatatypesPrivateMessageReport = LemmyapiDatatypesPrivateMessageReport( + id = d.id, + creator_id = d.creator_id, + private_message_id = d.private_message_id, + original_pm_text = d.original_pm_text, + reason = d.reason, + resolved = d.resolved, + resolver_id = d.resolver_id, + published_at = d.published_at, + updated_at = d.updated_at, + ) + + override fun toUni(d: X0DatatypesPrivateMessageReportResponse): LemmyapiDatatypesPrivateMessageReportResponse = LemmyapiDatatypesPrivateMessageReportResponse( + private_message_report_view = this.toUni(d = d.private_message_report_view), + ) + + override fun toUni(d: X0DatatypesPrivateMessageReportView): LemmyapiDatatypesPrivateMessageReportView = LemmyapiDatatypesPrivateMessageReportView( + private_message_report = this.toUni(d = d.private_message_report), + private_message = this.toUni(d = d.private_message), + private_message_creator = this.toUni(d = d.private_message_creator), + creator = this.toUni(d = d.creator), + resolver = d.resolver?.let { this.toUni(d = it) }, + creator_is_admin = d.creator_is_admin, + creator_banned = d.creator_banned, + creator_ban_expires_at = d.creator_ban_expires_at, + ) + + override fun toUni(d: X0DatatypesPrivateMessageResponse): LemmyapiDatatypesPrivateMessageResponse = LemmyapiDatatypesPrivateMessageResponse( + private_message_view = this.toUni(d = d.private_message_view), + ) + + override fun toUni(d: X0DatatypesPrivateMessageView): LemmyapiDatatypesPrivateMessageView = LemmyapiDatatypesPrivateMessageView( + private_message = this.toUni(d = d.private_message), + creator = this.toUni(d = d.creator), + recipient = this.toUni(d = d.recipient), + ) + + override fun toUni(d: X0DatatypesPublicOAuthProvider): LemmyapiDatatypesPublicOAuthProvider = LemmyapiDatatypesPublicOAuthProvider( + id = d.id, + display_name = d.display_name, + authorization_endpoint = d.authorization_endpoint, + client_id = d.client_id, + scopes = d.scopes, + use_pkce = d.use_pkce, + ) + + override fun toUni(d: X0DatatypesRegistrationApplication): LemmyapiDatatypesRegistrationApplication = LemmyapiDatatypesRegistrationApplication( + id = d.id, + local_user_id = d.local_user_id, + answer = d.answer, + admin_id = d.admin_id, + deny_reason = d.deny_reason, + published_at = d.published_at, + updated_at = d.updated_at, + ) + + override fun toUni(d: X0DatatypesRegistrationApplicationResponse): LemmyapiDatatypesRegistrationApplicationResponse = LemmyapiDatatypesRegistrationApplicationResponse( + registration_application = this.toUni(d = d.registration_application), + ) + + override fun toUni(d: X0DatatypesRegistrationApplicationView): LemmyapiDatatypesRegistrationApplicationView = LemmyapiDatatypesRegistrationApplicationView( + registration_application = this.toUni(d = d.registration_application), + creator_local_user = this.toUni(d = d.creator_local_user), + creator = this.toUni(d = d.creator), + admin = d.admin?.let { this.toUni(d = it) }, + ) + + override fun toUni(d: X0DatatypesReportCombinedView): LemmyapiDatatypesReportCombinedView = super.toUni(d) + + override fun toUni(d: X0DatatypesResendVerificationEmail): LemmyapiDatatypesResendVerificationEmail = LemmyapiDatatypesResendVerificationEmail( + email = d.email, + ) + + override fun toUni(d: X0DatatypesResolveObjectView): LemmyapiDatatypesResolveObjectView = super.toUni(d) + + override fun toUni(d: X0DatatypesSearchResponse): LemmyapiDatatypesSearchResponse = LemmyapiDatatypesSearchResponse( + resolve = d.resolve?.let { this.toUni(d = it) }, + comments = d.comments.map { this.toUni(d = it) }, + posts = d.posts.map { this.toUni(d = it) }, + communities = d.communities.map { this.toUni(d = it) }, + persons = d.persons.map { this.toUni(d = it) }, + multi_communities = d.multi_communities.map { this.toUni(d = it) }, + next_page = d.next_page, + prev_page = d.prev_page, + ) + + override fun toUni(d: X0DatatypesSite): LemmyapiDatatypesSite = LemmyapiDatatypesSite( + id = d.id, + name = d.name, + sidebar = d.sidebar, + published_at = d.published_at, + updated_at = d.updated_at, + icon = d.icon, + banner = d.banner, + summary = d.summary, + ap_id = d.ap_id, + last_refreshed_at = d.last_refreshed_at, + inbox_url = d.inbox_url, + instance_id = d.instance_id, + content_warning = d.content_warning, + ) + + override fun toUni(d: X0DatatypesSiteResponse): LemmyapiDatatypesSiteResponse = LemmyapiDatatypesSiteResponse( + site_view = this.toUni(d = d.site_view), + ) + + override fun toUni(d: X0DatatypesSiteView): LemmyapiDatatypesSiteView = LemmyapiDatatypesSiteView( + site = this.toUni(d = d.site), + local_site = this.toUni(d = d.local_site), + local_site_rate_limit = this.toUni(d = d.local_site_rate_limit), + instance = this.toUni(d = d.instance), + ) + + override fun toUni(d: X0DatatypesTagline): LemmyapiDatatypesTagline = LemmyapiDatatypesTagline( + id = d.id, + content = d.content, + published_at = d.published_at, + updated_at = d.updated_at, + ) + + override fun toUni(d: X0DatatypesTaglineResponse): LemmyapiDatatypesTaglineResponse = LemmyapiDatatypesTaglineResponse( + tagline = this.toUni(d = d.tagline), + ) + + override fun toUni(d: X0DatatypesUnreadCountsResponse): LemmyapiDatatypesUnreadCountsResponse = LemmyapiDatatypesUnreadCountsResponse( + notification_count = d.notification_count, + report_count = d.report_count, + pending_follow_count = d.pending_follow_count, + registration_application_count = d.registration_application_count, + ) + + override fun toUni(d: X0DatatypesUploadImageResponse): LemmyapiDatatypesUploadImageResponse = LemmyapiDatatypesUploadImageResponse( + image_url = d.image_url, + filename = d.filename, + ) + + override fun toUni(d: X0DatatypesUserBlockInstanceCommunitiesParams): LemmyapiDatatypesUserBlockInstanceCommunitiesParams = LemmyapiDatatypesUserBlockInstanceCommunitiesParams( + instance_id = d.instance_id, + block = d.block, + ) + + override fun toUni(d: X0DatatypesUserBlockInstancePersonsParams): LemmyapiDatatypesUserBlockInstancePersonsParams = LemmyapiDatatypesUserBlockInstancePersonsParams( + instance_id = d.instance_id, + block = d.block, + ) + + override fun toUni(d: X0DatatypesUserSettingsBackup): LemmyapiDatatypesUserSettingsBackup = LemmyapiDatatypesUserSettingsBackup( + display_name = d.display_name, + bio = d.bio, + avatar = d.avatar, + banner = d.banner, + matrix_id = d.matrix_id, + bot_account = d.bot_account, + settings = d.settings?.let { this.toUni(d = it) }, + followed_communities = d.followed_communities, + saved_posts = d.saved_posts, + saved_comments = d.saved_comments, + blocked_communities = d.blocked_communities, + blocked_users = d.blocked_users, + blocked_instances_communities = d.blocked_instances_communities, + blocked_instances_persons = d.blocked_instances_persons, + blocking_keywords = d.blocking_keywords, + discussion_languages = d.discussion_languages, + ) + + override fun toUni(d: X0DatatypesVoteView): LemmyapiDatatypesVoteView = LemmyapiDatatypesVoteView( + creator = this.toUni(d = d.creator), + creator_banned = d.creator_banned, + creator_banned_from_community = d.creator_banned_from_community, + score = voteBoolToInt(d.is_upvote), + ) + + override fun fromUni(d: LemmyapiDatatypesAddAdmin): X0DatatypesAddAdmin = X0DatatypesAddAdmin( + person_id = d.person_id, + added = d.added, + ) + + override fun fromUni(d: LemmyapiDatatypesAddModToCommunity): X0DatatypesAddModToCommunity = X0DatatypesAddModToCommunity( + community_id = d.community_id, + person_id = d.person_id, + added = d.added, + ) + + override fun fromUni(d: LemmyapiDatatypesAdminAllowInstanceParams): X0DatatypesAdminAllowInstanceParams = X0DatatypesAdminAllowInstanceParams( + instance = d.instance, + allow = d.allow, + reason = d.reason, + ) + + override fun fromUni(d: LemmyapiDatatypesAdminBlockInstanceParams): X0DatatypesAdminBlockInstanceParams = X0DatatypesAdminBlockInstanceParams( + instance = d.instance, + block = d.block, + reason = d.reason, + expires_at = d.expires_at, + ) + + override fun fromUni(d: LemmyapiDatatypesAdminListUsers): X0DatatypesAdminListUsers = X0DatatypesAdminListUsers( + banned_only = d.banned_only, + page_cursor = d.page_cursor, + sort = d.sort, + limit = d.limit, + ) + + override fun fromUni(d: LemmyapiDatatypesApproveCommunityPendingFollower): X0DatatypesApproveCommunityPendingFollower = X0DatatypesApproveCommunityPendingFollower( + community_id = d.community_id, + follower_id = d.follower_id, + approve = d.approve, + ) + + override fun fromUni(d: LemmyapiDatatypesApproveRegistrationApplication): X0DatatypesApproveRegistrationApplication = X0DatatypesApproveRegistrationApplication( + id = d.id, + approve = d.approve, + deny_reason = d.deny_reason, + ) + + override fun fromUni(d: LemmyapiDatatypesAuthenticateWithOauth): X0DatatypesAuthenticateWithOauth = X0DatatypesAuthenticateWithOauth( + code = d.code, + oauth_provider_id = d.oauth_provider_id, + redirect_uri = d.redirect_uri, + show_nsfw = d.show_nsfw, + username = d.username, + answer = d.answer, + pkce_code_verifier = d.pkce_code_verifier, + stay_logged_in = d.stay_logged_in, + ) + + override fun fromUni(d: LemmyapiDatatypesBanFromCommunity): X0DatatypesBanFromCommunity = X0DatatypesBanFromCommunity( + community_id = d.community_id, + person_id = d.person_id, + ban = d.ban, + remove_or_restore_data = d.remove_or_restore_data, + reason = d.reason, + expires_at = d.expires_at, + ) + + override fun fromUni(d: LemmyapiDatatypesBanPerson): X0DatatypesBanPerson = X0DatatypesBanPerson( + person_id = d.person_id, + ban = d.ban, + remove_or_restore_data = d.remove_or_restore_data, + reason = d.reason, + expires_at = d.expires_at, + ) + + override fun fromUni(d: LemmyapiDatatypesBlockCommunity): X0DatatypesBlockCommunity = X0DatatypesBlockCommunity( + community_id = d.community_id, + block = d.block, + ) + + override fun fromUni(d: LemmyapiDatatypesBlockPerson): X0DatatypesBlockPerson = X0DatatypesBlockPerson( + person_id = d.person_id, + block = d.block, + ) + + override fun fromUni(d: LemmyapiDatatypesChangePassword): X0DatatypesChangePassword = X0DatatypesChangePassword( + new_password = d.new_password, + new_password_verify = d.new_password_verify, + old_password = d.old_password, + stay_logged_in = d.stay_logged_in, + ) + + override fun fromUni(d: LemmyapiDatatypesCommunityIdQuery): X0DatatypesCommunityIdQuery = X0DatatypesCommunityIdQuery( + id = d.id, + ) + + override fun fromUni(d: LemmyapiDatatypesCreateComment): X0DatatypesCreateComment = X0DatatypesCreateComment( + content = d.content, + post_id = d.post_id, + parent_id = d.parent_id, + language_id = d.language_id, + ) + + override fun fromUni(d: LemmyapiDatatypesCreateCommentLike): X0DatatypesCreateCommentLike = X0DatatypesCreateCommentLike( + comment_id = d.comment_id, + is_upvote = voteIntToTriBool(d.score), + ) + + override fun fromUni(d: LemmyapiDatatypesCreateCommentReport): X0DatatypesCreateCommentReport = X0DatatypesCreateCommentReport( + comment_id = d.comment_id, + reason = d.reason, + violates_instance_rules = d.violates_instance_rules, + ) + + override fun fromUni(d: LemmyapiDatatypesCreateCommentWarning): X0DatatypesCreateCommentWarning = X0DatatypesCreateCommentWarning( + comment_id = d.comment_id, + reason = d.reason, + ) + + override fun fromUni(d: LemmyapiDatatypesCreateCommunity): X0DatatypesCreateCommunity = X0DatatypesCreateCommunity( + name = d.name, + title = d.title, + sidebar = d.sidebar, + summary = d.summary, + nsfw = d.nsfw, + posting_restricted_to_mods = d.posting_restricted_to_mods, + discussion_languages = d.discussion_languages, + visibility = d.visibility, + ) + + override fun fromUni(d: LemmyapiDatatypesCreateCommunityReport): X0DatatypesCreateCommunityReport = X0DatatypesCreateCommunityReport( + community_id = d.community_id, + reason = d.reason, + ) + + override fun fromUni(d: LemmyapiDatatypesCreateCommunityTag): X0DatatypesCreateCommunityTag = X0DatatypesCreateCommunityTag( + community_id = d.community_id, + name = d.name, + display_name = d.display_name, + summary = d.summary, + color = d.color, + ) + + override fun fromUni(d: LemmyapiDatatypesCreateCustomEmoji): X0DatatypesCreateCustomEmoji = X0DatatypesCreateCustomEmoji( + category = d.category, + shortcode = d.shortcode, + image_url = d.image_url, + alt_text = d.alt_text, + keywords = d.keywords, + ) + + override fun fromUni(d: LemmyapiDatatypesCreateInvitation): X0DatatypesCreateInvitation = X0DatatypesCreateInvitation( + max_uses = d.max_uses, + expires_at = d.expires_at, + ) + + override fun fromUni(d: LemmyapiDatatypesCreateMultiCommunity): X0DatatypesCreateMultiCommunity = X0DatatypesCreateMultiCommunity( + name = d.name, + title = d.title, + summary = d.summary, + sidebar = d.sidebar, + ) + + override fun fromUni(d: LemmyapiDatatypesCreateOAuthProvider): X0DatatypesCreateOAuthProvider = X0DatatypesCreateOAuthProvider( + display_name = d.display_name, + issuer = d.issuer, + authorization_endpoint = d.authorization_endpoint, + token_endpoint = d.token_endpoint, + userinfo_endpoint = d.userinfo_endpoint, + id_claim = d.id_claim, + client_id = d.client_id, + client_secret = d.client_secret, + scopes = d.scopes, + auto_verify_email = d.auto_verify_email, + account_linking_enabled = d.account_linking_enabled, + use_pkce = d.use_pkce, + enabled = d.enabled, + ) + + override fun fromUni(d: LemmyapiDatatypesCreateOrDeleteMultiCommunityEntry): X0DatatypesCreateOrDeleteMultiCommunityEntry = X0DatatypesCreateOrDeleteMultiCommunityEntry( + id = d.id, + community_id = d.community_id, + ) + + override fun fromUni(d: LemmyapiDatatypesCreatePost): X0DatatypesCreatePost = X0DatatypesCreatePost( + name = d.name, + community_id = d.community_id, + url = d.url, + body = d.body, + alt_text = d.alt_text, + honeypot = d.honeypot, + nsfw = d.nsfw, + language_id = d.language_id, + custom_thumbnail = d.custom_thumbnail, + tags = d.tags, + scheduled_publish_time_at = d.scheduled_publish_time_at, + ) + + override fun fromUni(d: LemmyapiDatatypesCreatePostLike): X0DatatypesCreatePostLike = X0DatatypesCreatePostLike( + post_id = d.post_id, + is_upvote = voteIntToTriBool(d.score), + ) + + override fun fromUni(d: LemmyapiDatatypesCreatePostReport): X0DatatypesCreatePostReport = X0DatatypesCreatePostReport( + post_id = d.post_id, + reason = d.reason, + violates_instance_rules = d.violates_instance_rules, + ) + + override fun fromUni(d: LemmyapiDatatypesCreatePostWarning): X0DatatypesCreatePostWarning = X0DatatypesCreatePostWarning( + post_id = d.post_id, + reason = d.reason, + ) + + override fun fromUni(d: LemmyapiDatatypesCreatePrivateMessage): X0DatatypesCreatePrivateMessage = X0DatatypesCreatePrivateMessage( + content = d.content, + recipient_id = d.recipient_id, + ) + + override fun fromUni(d: LemmyapiDatatypesCreatePrivateMessageReport): X0DatatypesCreatePrivateMessageReport = X0DatatypesCreatePrivateMessageReport( + private_message_id = d.private_message_id, + reason = d.reason, + ) + + override fun fromUni(d: LemmyapiDatatypesCreateSite): X0DatatypesCreateSite = X0DatatypesCreateSite( + name = d.name, + sidebar = d.sidebar, + summary = d.summary, + community_creation_admin_only = d.community_creation_admin_only, + email_verification_required = d.email_verification_required, + application_question = d.application_question, + private_instance = d.private_instance, + default_theme = d.default_theme, + default_post_listing_type = d.default_post_listing_type, + default_post_listing_mode = d.default_post_listing_mode, + default_post_sort_type = d.default_post_sort_type, + default_post_time_range_seconds = d.default_post_time_range_seconds, + default_comment_sort_type = d.default_comment_sort_type, + legal_information = d.legal_information, + application_email_admins = d.application_email_admins, + discussion_languages = d.discussion_languages, + slur_filter_regex = d.slur_filter_regex, + rate_limit_message_max_requests = d.rate_limit_message_max_requests, + rate_limit_message_interval_seconds = d.rate_limit_message_interval_seconds, + rate_limit_post_max_requests = d.rate_limit_post_max_requests, + rate_limit_post_interval_seconds = d.rate_limit_post_interval_seconds, + rate_limit_register_max_requests = d.rate_limit_register_max_requests, + rate_limit_register_interval_seconds = d.rate_limit_register_interval_seconds, + rate_limit_image_max_requests = d.rate_limit_image_max_requests, + rate_limit_image_interval_seconds = d.rate_limit_image_interval_seconds, + rate_limit_comment_max_requests = d.rate_limit_comment_max_requests, + rate_limit_comment_interval_seconds = d.rate_limit_comment_interval_seconds, + rate_limit_search_max_requests = d.rate_limit_search_max_requests, + rate_limit_search_interval_seconds = d.rate_limit_search_interval_seconds, + rate_limit_import_user_settings_max_requests = d.rate_limit_import_user_settings_max_requests, + rate_limit_import_user_settings_interval_seconds = d.rate_limit_import_user_settings_interval_seconds, + federation_enabled = d.federation_enabled, + registration_mode = d.registration_mode, + oauth_registration = d.oauth_registration, + content_warning = d.content_warning, + post_upvotes = d.post_upvotes, + post_downvotes = d.post_downvotes, + comment_upvotes = d.comment_upvotes, + comment_downvotes = d.comment_downvotes, + nsfw_content_disallowed = d.nsfw_content_disallowed, + email_notifications_disabled = d.email_notifications_disabled, + suggested_multi_community_id = d.suggested_multi_community_id, + default_items_per_page = d.default_items_per_page, + reports_email_admins = d.reports_email_admins, + federation_signed_fetch = d.federation_signed_fetch, + image_mode = d.image_mode, + image_proxy_bypass_domains = d.image_proxy_bypass_domains, + image_upload_timeout_seconds = d.image_upload_timeout_seconds, + image_max_thumbnail_size = d.image_max_thumbnail_size, + image_max_avatar_size = d.image_max_avatar_size, + image_max_banner_size = d.image_max_banner_size, + image_max_upload_size = d.image_max_upload_size, + image_allow_video_uploads = d.image_allow_video_uploads, + image_upload_disabled = d.image_upload_disabled, + max_invites_per_user_allowed = d.max_invites_per_user_allowed, + ) + + override fun fromUni(d: LemmyapiDatatypesCreateTagline): X0DatatypesCreateTagline = X0DatatypesCreateTagline( + content = d.content, + ) + + override fun fromUni(d: LemmyapiDatatypesDeleteAccount): X0DatatypesDeleteAccount = X0DatatypesDeleteAccount( + password = d.password, + delete_content = d.delete_content, + ) + + override fun fromUni(d: LemmyapiDatatypesDeleteComment): X0DatatypesDeleteComment = X0DatatypesDeleteComment( + comment_id = d.comment_id, + deleted = d.deleted, + ) + + override fun fromUni(d: LemmyapiDatatypesDeleteCommunity): X0DatatypesDeleteCommunity = X0DatatypesDeleteCommunity( + community_id = d.community_id, + deleted = d.deleted, + ) + + override fun fromUni(d: LemmyapiDatatypesDeleteCommunityTag): X0DatatypesDeleteCommunityTag = X0DatatypesDeleteCommunityTag( + tag_id = d.tag_id, + delete = d.delete, + ) + + override fun fromUni(d: LemmyapiDatatypesDeleteCustomEmoji): X0DatatypesDeleteCustomEmoji = X0DatatypesDeleteCustomEmoji( + id = d.id, + ) + + override fun fromUni(d: LemmyapiDatatypesDeleteImageParams): X0DatatypesDeleteImageParams = X0DatatypesDeleteImageParams( + filename = d.filename, + ) + + override fun fromUni(d: LemmyapiDatatypesDeleteOAuthProvider): X0DatatypesDeleteOAuthProvider = X0DatatypesDeleteOAuthProvider( + id = d.id, + ) + + override fun fromUni(d: LemmyapiDatatypesDeletePost): X0DatatypesDeletePost = X0DatatypesDeletePost( + post_id = d.post_id, + deleted = d.deleted, + ) + + override fun fromUni(d: LemmyapiDatatypesDeletePrivateMessage): X0DatatypesDeletePrivateMessage = X0DatatypesDeletePrivateMessage( + private_message_id = d.private_message_id, + deleted = d.deleted, + ) + + override fun fromUni(d: LemmyapiDatatypesDeleteTagline): X0DatatypesDeleteTagline = X0DatatypesDeleteTagline( + id = d.id, + ) + + override fun fromUni(d: LemmyapiDatatypesDistinguishComment): X0DatatypesDistinguishComment = X0DatatypesDistinguishComment( + comment_id = d.comment_id, + distinguished = d.distinguished, + ) + + override fun fromUni(d: LemmyapiDatatypesEditComment): X0DatatypesEditComment = X0DatatypesEditComment( + comment_id = d.comment_id, + content = d.content, + language_id = d.language_id, + ) + + override fun fromUni(d: LemmyapiDatatypesEditCommunity): X0DatatypesEditCommunity = X0DatatypesEditCommunity( + community_id = d.community_id, + title = d.title, + sidebar = d.sidebar, + summary = d.summary, + nsfw = d.nsfw, + posting_restricted_to_mods = d.posting_restricted_to_mods, + discussion_languages = d.discussion_languages, + visibility = d.visibility, + ) + + override fun fromUni(d: LemmyapiDatatypesEditCommunityNotifications): X0DatatypesEditCommunityNotifications = X0DatatypesEditCommunityNotifications( + community_id = d.community_id, + mode = d.mode, + ) + + override fun fromUni(d: LemmyapiDatatypesEditCommunityTag): X0DatatypesEditCommunityTag = X0DatatypesEditCommunityTag( + tag_id = d.tag_id, + display_name = d.display_name, + summary = d.summary, + color = d.color, + ) + + override fun fromUni(d: LemmyapiDatatypesEditCustomEmoji): X0DatatypesEditCustomEmoji = X0DatatypesEditCustomEmoji( + id = d.id, + category = d.category, + shortcode = d.shortcode, + image_url = d.image_url, + alt_text = d.alt_text, + keywords = d.keywords, + ) + + override fun fromUni(d: LemmyapiDatatypesEditMultiCommunity): X0DatatypesEditMultiCommunity = X0DatatypesEditMultiCommunity( + id = d.id, + title = d.title, + summary = d.summary, + sidebar = d.sidebar, + deleted = d.deleted, + ) + + override fun fromUni(d: LemmyapiDatatypesEditOAuthProvider): X0DatatypesEditOAuthProvider = X0DatatypesEditOAuthProvider( + id = d.id, + display_name = d.display_name, + authorization_endpoint = d.authorization_endpoint, + token_endpoint = d.token_endpoint, + userinfo_endpoint = d.userinfo_endpoint, + id_claim = d.id_claim, + client_secret = d.client_secret, + scopes = d.scopes, + auto_verify_email = d.auto_verify_email, + account_linking_enabled = d.account_linking_enabled, + use_pkce = d.use_pkce, + enabled = d.enabled, + ) + + override fun fromUni(d: LemmyapiDatatypesEditPost): X0DatatypesEditPost = X0DatatypesEditPost( + post_id = d.post_id, + name = d.name, + url = d.url, + body = d.body, + alt_text = d.alt_text, + nsfw = d.nsfw, + language_id = d.language_id, + custom_thumbnail = d.custom_thumbnail, + scheduled_publish_time_at = d.scheduled_publish_time_at, + tags = d.tags, + ) + + override fun fromUni(d: LemmyapiDatatypesEditPostNotifications): X0DatatypesEditPostNotifications = X0DatatypesEditPostNotifications( + post_id = d.post_id, + mode = d.mode, + ) + + override fun fromUni(d: LemmyapiDatatypesEditPrivateMessage): X0DatatypesEditPrivateMessage = X0DatatypesEditPrivateMessage( + private_message_id = d.private_message_id, + content = d.content, + ) + + override fun fromUni(d: LemmyapiDatatypesEditSite): X0DatatypesEditSite = X0DatatypesEditSite( + name = d.name, + sidebar = d.sidebar, + summary = d.summary, + community_creation_admin_only = d.community_creation_admin_only, + email_verification_required = d.email_verification_required, + application_question = d.application_question, + private_instance = d.private_instance, + default_theme = d.default_theme, + default_post_listing_type = d.default_post_listing_type, + default_post_listing_mode = d.default_post_listing_mode, + default_post_sort_type = d.default_post_sort_type, + default_post_time_range_seconds = d.default_post_time_range_seconds, + default_items_per_page = d.default_items_per_page, + default_comment_sort_type = d.default_comment_sort_type, + legal_information = d.legal_information, + application_email_admins = d.application_email_admins, + federation_signed_fetch = d.federation_signed_fetch, + discussion_languages = d.discussion_languages, + slur_filter_regex = d.slur_filter_regex, + rate_limit_message_max_requests = d.rate_limit_message_max_requests, + rate_limit_message_interval_seconds = d.rate_limit_message_interval_seconds, + rate_limit_post_max_requests = d.rate_limit_post_max_requests, + rate_limit_post_interval_seconds = d.rate_limit_post_interval_seconds, + rate_limit_register_max_requests = d.rate_limit_register_max_requests, + rate_limit_register_interval_seconds = d.rate_limit_register_interval_seconds, + rate_limit_image_max_requests = d.rate_limit_image_max_requests, + rate_limit_image_interval_seconds = d.rate_limit_image_interval_seconds, + rate_limit_comment_max_requests = d.rate_limit_comment_max_requests, + rate_limit_comment_interval_seconds = d.rate_limit_comment_interval_seconds, + rate_limit_search_max_requests = d.rate_limit_search_max_requests, + rate_limit_search_interval_seconds = d.rate_limit_search_interval_seconds, + rate_limit_import_user_settings_max_requests = d.rate_limit_import_user_settings_max_requests, + rate_limit_import_user_settings_interval_seconds = d.rate_limit_import_user_settings_interval_seconds, + federation_enabled = d.federation_enabled, + blocked_urls = d.blocked_urls, + registration_mode = d.registration_mode, + reports_email_admins = d.reports_email_admins, + content_warning = d.content_warning, + oauth_registration = d.oauth_registration, + post_upvotes = d.post_upvotes, + post_downvotes = d.post_downvotes, + comment_upvotes = d.comment_upvotes, + comment_downvotes = d.comment_downvotes, + suggested_multi_community_id = d.suggested_multi_community_id, + nsfw_content_disallowed = d.nsfw_content_disallowed, + email_notifications_disabled = d.email_notifications_disabled, + image_mode = d.image_mode, + image_proxy_bypass_domains = d.image_proxy_bypass_domains, + image_upload_timeout_seconds = d.image_upload_timeout_seconds, + image_max_thumbnail_size = d.image_max_thumbnail_size, + image_max_avatar_size = d.image_max_avatar_size, + image_max_banner_size = d.image_max_banner_size, + image_max_upload_size = d.image_max_upload_size, + image_allow_video_uploads = d.image_allow_video_uploads, + image_upload_disabled = d.image_upload_disabled, + max_invites_per_user_allowed = d.max_invites_per_user_allowed, + ) + + override fun fromUni(d: LemmyapiDatatypesEditTagline): X0DatatypesEditTagline = X0DatatypesEditTagline( + id = d.id, + content = d.content, + ) + + override fun fromUni(d: LemmyapiDatatypesEditTotp): X0DatatypesEditTotp = X0DatatypesEditTotp( + totp_token = d.totp_token, + enabled = d.enabled, + ) + + override fun fromUni(d: LemmyapiDatatypesFeaturePost): X0DatatypesFeaturePost = X0DatatypesFeaturePost( + post_id = d.post_id, + featured = d.featured, + feature_type = d.feature_type, + ) + + override fun fromUni(d: LemmyapiDatatypesFollowCommunity): X0DatatypesFollowCommunity = X0DatatypesFollowCommunity( + community_id = d.community_id, + follow = d.follow, + ) + + override fun fromUni(d: LemmyapiDatatypesFollowMultiCommunity): X0DatatypesFollowMultiCommunity = X0DatatypesFollowMultiCommunity( + multi_community_id = d.multi_community_id, + follow = d.follow, + ) + + override fun fromUni(d: LemmyapiDatatypesGetComment): X0DatatypesGetComment = X0DatatypesGetComment( + id = d.id, + ) + + override fun fromUni(d: LemmyapiDatatypesGetComments): X0DatatypesGetComments = X0DatatypesGetComments( + type_ = d.type_, + sort = d.sort, + time_range_seconds = d.time_range_seconds, + max_depth = d.max_depth, + page_cursor = d.page_cursor, + limit = d.limit, + community_id = d.community_id, + community_name = d.community_name, + creator_id = d.creator_id, + creator_username = d.creator_username, + post_id = d.post_id, + parent_id = d.parent_id, + search_term = d.search_term, + ) + + override fun fromUni(d: LemmyapiDatatypesGetCommunity): X0DatatypesGetCommunity = X0DatatypesGetCommunity( + id = d.id, + name = d.name, + ) + + override fun fromUni(d: LemmyapiDatatypesGetFederatedInstances): X0DatatypesGetFederatedInstances = X0DatatypesGetFederatedInstances( + domain_filter = d.domain_filter, + kind = d.kind, + page_cursor = d.page_cursor, + limit = d.limit, + ) + + override fun fromUni(d: LemmyapiDatatypesGetModlog): X0DatatypesGetModlog = X0DatatypesGetModlog( + mod_person_id = d.mod_person_id, + community_id = d.community_id, + type_ = d.type_, + listing_type = d.listing_type, + other_person_id = d.other_person_id, + post_id = d.post_id, + comment_id = d.comment_id, + show_bulk = d.show_bulk, + bulk_action_parent_id = d.bulk_action_parent_id, + page_cursor = d.page_cursor, + limit = d.limit, + ) + + override fun fromUni(d: LemmyapiDatatypesGetMultiCommunity): X0DatatypesGetMultiCommunity = X0DatatypesGetMultiCommunity( + id = d.id, + name = d.name, + ) + + override fun fromUni(d: LemmyapiDatatypesGetPersonDetails): X0DatatypesGetPersonDetails = X0DatatypesGetPersonDetails( + person_id = d.person_id, + username = d.username, + ) + + override fun fromUni(d: LemmyapiDatatypesGetPost): X0DatatypesGetPost = X0DatatypesGetPost( + id = d.id, + comment_id = d.comment_id, + ) + + override fun fromUni(d: LemmyapiDatatypesGetPosts): X0DatatypesGetPosts = X0DatatypesGetPosts( + type_ = d.type_, + sort = d.sort, + time_range_seconds = d.time_range_seconds, + community_id = d.community_id, + community_name = d.community_name, + creator_id = d.creator_id, + creator_username = d.creator_username, + multi_community_id = d.multi_community_id, + multi_community_name = d.multi_community_name, + show_hidden = d.show_hidden, + show_read = d.show_read, + show_nsfw = d.show_nsfw, + hide_posts_with_media = d.hide_posts_with_media, + mark_as_read = d.mark_as_read, + no_comments_only = d.no_comments_only, + search_term = d.search_term, + search_title_only = d.search_title_only, + search_url_only = d.search_url_only, + tag_id = d.tag_id, + page_cursor = d.page_cursor, + limit = d.limit, + ) + + override fun fromUni(d: LemmyapiDatatypesGetRandomCommunity): X0DatatypesGetRandomCommunity = X0DatatypesGetRandomCommunity( + type_ = d.type_, + show_nsfw = d.show_nsfw, + ) + + override fun fromUni(d: LemmyapiDatatypesGetRegistrationApplication): X0DatatypesGetRegistrationApplication = X0DatatypesGetRegistrationApplication( + person_id = d.person_id, + ) + + override fun fromUni(d: LemmyapiDatatypesGetSiteMetadata): X0DatatypesGetSiteMetadata = X0DatatypesGetSiteMetadata( + url = d.url, + ) + + override fun fromUni(d: LemmyapiDatatypesHideCommunity): X0DatatypesHideCommunity = X0DatatypesHideCommunity( + community_id = d.community_id, + hidden = d.hidden, + reason = d.reason, + ) + + override fun fromUni(d: LemmyapiDatatypesHidePost): X0DatatypesHidePost = X0DatatypesHidePost( + post_id = d.post_id, + hide = d.hide, + ) + + override fun fromUni(d: LemmyapiDatatypesListCommentLikes): X0DatatypesListCommentLikes = X0DatatypesListCommentLikes( + comment_id = d.comment_id, + page_cursor = d.page_cursor, + limit = d.limit, + ) + + override fun fromUni(d: LemmyapiDatatypesListCommunities): X0DatatypesListCommunities = X0DatatypesListCommunities( + type_ = d.type_, + sort = d.sort, + time_range_seconds = d.time_range_seconds, + show_nsfw = d.show_nsfw, + multi_community_id = d.multi_community_id, + search_term = d.search_term, + search_title_only = d.search_title_only, + page_cursor = d.page_cursor, + limit = d.limit, + ) + + override fun fromUni(d: LemmyapiDatatypesListCommunityPendingFollows): X0DatatypesListCommunityPendingFollows = X0DatatypesListCommunityPendingFollows( + unread_only = d.unread_only, + all_communities = d.all_communities, + page_cursor = d.page_cursor, + limit = d.limit, + ) + + override fun fromUni(d: LemmyapiDatatypesListCustomEmojis): X0DatatypesListCustomEmojis = X0DatatypesListCustomEmojis( + category = d.category, + ) + + override fun fromUni(d: LemmyapiDatatypesListInvitations): X0DatatypesListInvitations = X0DatatypesListInvitations( + page_cursor = d.page_cursor, + limit = d.limit, + ) + + override fun fromUni(d: LemmyapiDatatypesListMedia): X0DatatypesListMedia = X0DatatypesListMedia( + page_cursor = d.page_cursor, + limit = d.limit, + ) + + override fun fromUni(d: LemmyapiDatatypesListMultiCommunities): X0DatatypesListMultiCommunities = X0DatatypesListMultiCommunities( + type_ = d.type_, + sort = d.sort, + creator_id = d.creator_id, + time_range_seconds = d.time_range_seconds, + search_term = d.search_term, + search_title_only = d.search_title_only, + page_cursor = d.page_cursor, + limit = d.limit, + ) + + override fun fromUni(d: LemmyapiDatatypesListNotifications): X0DatatypesListNotifications = X0DatatypesListNotifications( + type_ = d.type_, + unread_only = d.unread_only, + creator_id = d.creator_id, + page_cursor = d.page_cursor, + limit = d.limit, + ) + + override fun fromUni(d: LemmyapiDatatypesListPersonContent): X0DatatypesListPersonContent = X0DatatypesListPersonContent( + type_ = d.type_, + person_id = d.person_id, + username = d.username, + community_id = d.community_id, + community_name = d.community_name, + page_cursor = d.page_cursor, + limit = d.limit, + ) + + override fun fromUni(d: LemmyapiDatatypesListPersons): X0DatatypesListPersons = X0DatatypesListPersons( + type_ = d.type_, + sort = d.sort, + search_term = d.search_term, + search_title_only = d.search_title_only, + page_cursor = d.page_cursor, + limit = d.limit, + ) + + override fun fromUni(d: LemmyapiDatatypesListPersonHidden): X0DatatypesListPersonHidden = X0DatatypesListPersonHidden( + page_cursor = d.page_cursor, + limit = d.limit, + ) + + override fun fromUni(d: LemmyapiDatatypesListPersonLiked): X0DatatypesListPersonLiked = X0DatatypesListPersonLiked( + type_ = d.type_, + like_type = d.like_type, + page_cursor = d.page_cursor, + limit = d.limit, + ) + + override fun fromUni(d: LemmyapiDatatypesListPersonRead): X0DatatypesListPersonRead = X0DatatypesListPersonRead( + page_cursor = d.page_cursor, + limit = d.limit, + ) + + override fun fromUni(d: LemmyapiDatatypesListPersonSaved): X0DatatypesListPersonSaved = X0DatatypesListPersonSaved( + type_ = d.type_, + search_term = d.search_term, + page_cursor = d.page_cursor, + limit = d.limit, + ) + + override fun fromUni(d: LemmyapiDatatypesListPostLikes): X0DatatypesListPostLikes = X0DatatypesListPostLikes( + post_id = d.post_id, + page_cursor = d.page_cursor, + limit = d.limit, + ) + + override fun fromUni(d: LemmyapiDatatypesListRegistrationApplications): X0DatatypesListRegistrationApplications = X0DatatypesListRegistrationApplications( + unread_only = d.unread_only, + page_cursor = d.page_cursor, + limit = d.limit, + ) + + override fun fromUni(d: LemmyapiDatatypesListReports): X0DatatypesListReports = X0DatatypesListReports( + unresolved_only = d.unresolved_only, + type_ = d.type_, + post_id = d.post_id, + community_id = d.community_id, + sort = d.sort, + page_cursor = d.page_cursor, + limit = d.limit, + show_community_rule_violations = d.show_community_rule_violations, + my_reports_only = d.my_reports_only, + ) + + override fun fromUni(d: LemmyapiDatatypesListTaglines): X0DatatypesListTaglines = X0DatatypesListTaglines( + page_cursor = d.page_cursor, + limit = d.limit, + ) + + override fun fromUni(d: LemmyapiDatatypesLockComment): X0DatatypesLockComment = X0DatatypesLockComment( + comment_id = d.comment_id, + locked = d.locked, + reason = d.reason, + ) + + override fun fromUni(d: LemmyapiDatatypesLockPost): X0DatatypesLockPost = X0DatatypesLockPost( + post_id = d.post_id, + locked = d.locked, + reason = d.reason, + ) + + override fun fromUni(d: LemmyapiDatatypesLogin): X0DatatypesLogin = X0DatatypesLogin( + username_or_email = d.username_or_email, + password = d.password, + totp_2fa_token = d.totp_2fa_token, + stay_logged_in = d.stay_logged_in, + ) + + override fun fromUni(d: LemmyapiDatatypesMarkManyPostsAsRead): X0DatatypesMarkManyPostsAsRead = X0DatatypesMarkManyPostsAsRead( + post_ids = d.post_ids, + read = d.read, + ) + + override fun fromUni(d: LemmyapiDatatypesMarkNotificationAsRead): X0DatatypesMarkNotificationAsRead = X0DatatypesMarkNotificationAsRead( + notification_id = d.notification_id, + read = d.read, + ) + + override fun fromUni(d: LemmyapiDatatypesMarkPostAsRead): X0DatatypesMarkPostAsRead = X0DatatypesMarkPostAsRead( + post_id = d.post_id, + read = d.read, + ) + + override fun fromUni(d: LemmyapiDatatypesModEditPost): X0DatatypesModEditPost = X0DatatypesModEditPost( + post_id = d.post_id, + nsfw = d.nsfw, + tags = d.tags, + ) + + override fun fromUni(d: LemmyapiDatatypesNotePerson): X0DatatypesNotePerson = X0DatatypesNotePerson( + person_id = d.person_id, + note = d.note, + ) + + override fun fromUni(d: LemmyapiDatatypesPasswordChangeAfterReset): X0DatatypesPasswordChangeAfterReset = X0DatatypesPasswordChangeAfterReset( + token = d.token, + password = d.password, + password_verify = d.password_verify, + ) + + override fun fromUni(d: LemmyapiDatatypesPasswordReset): X0DatatypesPasswordReset = X0DatatypesPasswordReset( + email = d.email, + ) + + override fun fromUni(d: LemmyapiDatatypesPurgeComment): X0DatatypesPurgeComment = X0DatatypesPurgeComment( + comment_id = d.comment_id, + reason = d.reason, + ) + + override fun fromUni(d: LemmyapiDatatypesPurgeCommunity): X0DatatypesPurgeCommunity = X0DatatypesPurgeCommunity( + community_id = d.community_id, + reason = d.reason, + ) + + override fun fromUni(d: LemmyapiDatatypesPurgePerson): X0DatatypesPurgePerson = X0DatatypesPurgePerson( + person_id = d.person_id, + reason = d.reason, + ) + + override fun fromUni(d: LemmyapiDatatypesPurgePost): X0DatatypesPurgePost = X0DatatypesPurgePost( + post_id = d.post_id, + reason = d.reason, + ) + + override fun fromUni(d: LemmyapiDatatypesRegister): X0DatatypesRegister = X0DatatypesRegister( + username = d.username, + password = d.password, + password_verify = d.password_verify, + show_nsfw = d.show_nsfw, + email = d.email, + captcha_uuid = d.captcha_uuid, + captcha_answer = d.captcha_answer, + honeypot = d.honeypot, + answer = d.answer, + stay_logged_in = d.stay_logged_in, + token = d.token, + ) + + override fun fromUni(d: LemmyapiDatatypesRemoveComment): X0DatatypesRemoveComment = X0DatatypesRemoveComment( + comment_id = d.comment_id, + removed = d.removed, + reason = d.reason, + remove_children = d.remove_children, + ) + + override fun fromUni(d: LemmyapiDatatypesRemoveCommunity): X0DatatypesRemoveCommunity = X0DatatypesRemoveCommunity( + community_id = d.community_id, + removed = d.removed, + reason = d.reason, + ) + + override fun fromUni(d: LemmyapiDatatypesRemovePost): X0DatatypesRemovePost = X0DatatypesRemovePost( + post_id = d.post_id, + removed = d.removed, + reason = d.reason, + remove_children = d.remove_children, + ) + + override fun fromUni(d: LemmyapiDatatypesResendVerificationEmail): X0DatatypesResendVerificationEmail = X0DatatypesResendVerificationEmail( + email = d.email, + ) + + override fun fromUni(d: LemmyapiDatatypesResolveCommentReport): X0DatatypesResolveCommentReport = X0DatatypesResolveCommentReport( + report_id = d.report_id, + resolved = d.resolved, + ) + + override fun fromUni(d: LemmyapiDatatypesResolveCommunityReport): X0DatatypesResolveCommunityReport = X0DatatypesResolveCommunityReport( + report_id = d.report_id, + resolved = d.resolved, + ) + + override fun fromUni(d: LemmyapiDatatypesResolveObject): X0DatatypesResolveObject = X0DatatypesResolveObject( + q = d.q, + ) + + override fun fromUni(d: LemmyapiDatatypesResolvePostReport): X0DatatypesResolvePostReport = X0DatatypesResolvePostReport( + report_id = d.report_id, + resolved = d.resolved, + ) + + override fun fromUni(d: LemmyapiDatatypesResolvePrivateMessageReport): X0DatatypesResolvePrivateMessageReport = X0DatatypesResolvePrivateMessageReport( + report_id = d.report_id, + resolved = d.resolved, + ) + + override fun fromUni(d: LemmyapiDatatypesRevokeInvitation): X0DatatypesRevokeInvitation = X0DatatypesRevokeInvitation( + token = d.token, + ) + + override fun fromUni(d: LemmyapiDatatypesSaveComment): X0DatatypesSaveComment = X0DatatypesSaveComment( + comment_id = d.comment_id, + save = d.save, + ) + + override fun fromUni(d: LemmyapiDatatypesSavePost): X0DatatypesSavePost = X0DatatypesSavePost( + post_id = d.post_id, + save = d.save, + ) + + override fun fromUni(d: LemmyapiDatatypesSaveUserSettings): X0DatatypesSaveUserSettings = X0DatatypesSaveUserSettings( + show_nsfw = d.show_nsfw, + blur_nsfw = d.blur_nsfw, + theme = d.theme, + default_listing_type = d.default_listing_type, + post_listing_mode = d.post_listing_mode, + default_post_sort_type = d.default_post_sort_type, + default_post_time_range_seconds = d.default_post_time_range_seconds, + default_items_per_page = d.default_items_per_page, + default_comment_sort_type = d.default_comment_sort_type, + interface_language = d.interface_language, + display_name = d.display_name, + email = d.email, + bio = d.bio, + matrix_user_id = d.matrix_user_id, + show_avatars = d.show_avatars, + show_media = d.show_media, + send_notifications_to_email = d.send_notifications_to_email, + bot_account = d.bot_account, + show_bot_accounts = d.show_bot_accounts, + show_read_posts = d.show_read_posts, + discussion_languages = d.discussion_languages, + blocking_keywords = d.blocking_keywords, + open_links_in_new_tab = d.open_links_in_new_tab, + infinite_scroll_enabled = d.infinite_scroll_enabled, + animated_images_enabled = d.animated_images_enabled, + private_messages_enabled = d.private_messages_enabled, + collapse_bot_comments = d.collapse_bot_comments, + show_score = d.show_score, + show_upvotes = d.show_upvotes, + show_downvotes = d.show_downvotes, + show_upvote_percentage = d.show_upvote_percentage, + auto_mark_fetched_posts_as_read = d.auto_mark_fetched_posts_as_read, + hide_posts_with_media = d.hide_posts_with_media, + show_person_votes = d.show_person_votes, + ) + + override fun fromUni(d: LemmyapiDatatypesSearch): X0DatatypesSearch = X0DatatypesSearch( + search_term = d.search_term, + community_id = d.community_id, + community_name = d.community_name, + creator_id = d.creator_id, + creator_username = d.creator_username, + type_ = d.type_, + time_range_seconds = d.time_range_seconds, + listing_type = d.listing_type, + title_only = d.title_only, + post_url_only = d.post_url_only, + show_nsfw = d.show_nsfw, + page_cursor = d.page_cursor, + limit = d.limit, + ) + + override fun fromUni(d: LemmyapiDatatypesTransferCommunity): X0DatatypesTransferCommunity = X0DatatypesTransferCommunity( + community_id = d.community_id, + person_id = d.person_id, + ) + + override fun fromUni(d: LemmyapiDatatypesUserBlockInstanceCommunitiesParams): X0DatatypesUserBlockInstanceCommunitiesParams = X0DatatypesUserBlockInstanceCommunitiesParams( + instance_id = d.instance_id, + block = d.block, + ) + + override fun fromUni(d: LemmyapiDatatypesUserBlockInstancePersonsParams): X0DatatypesUserBlockInstancePersonsParams = X0DatatypesUserBlockInstancePersonsParams( + instance_id = d.instance_id, + block = d.block, + ) + + override fun fromUni(d: LemmyapiDatatypesVerifyEmail): X0DatatypesVerifyEmail = X0DatatypesVerifyEmail( + token = d.token, + ) +} diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ActivityId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ActivityId.kt new file mode 100644 index 00000000..a97fb349 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ActivityId.kt @@ -0,0 +1,3 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +internal typealias ActivityId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/AddAdmin.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/AddAdmin.kt new file mode 100644 index 00000000..c2c02db1 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/AddAdmin.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class AddAdmin( + val person_id: PersonId, + val added: Boolean, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/AddAdminResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/AddAdminResponse.kt new file mode 100644 index 00000000..f68224ee --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/AddAdminResponse.kt @@ -0,0 +1,8 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class AddAdminResponse( + val admins: List, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/AddModToCommunity.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/AddModToCommunity.kt new file mode 100644 index 00000000..97293073 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/AddModToCommunity.kt @@ -0,0 +1,10 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class AddModToCommunity( + val community_id: CommunityId, + val person_id: PersonId, + val added: Boolean, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/AddModToCommunityResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/AddModToCommunityResponse.kt new file mode 100644 index 00000000..c421c6ad --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/AddModToCommunityResponse.kt @@ -0,0 +1,8 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class AddModToCommunityResponse( + val moderators: List, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/AdminAllowInstanceParams.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/AdminAllowInstanceParams.kt new file mode 100644 index 00000000..8edc2de5 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/AdminAllowInstanceParams.kt @@ -0,0 +1,10 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class AdminAllowInstanceParams( + val instance: String, + val allow: Boolean, + val reason: String, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/AdminBlockInstanceParams.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/AdminBlockInstanceParams.kt new file mode 100644 index 00000000..3d45fa10 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/AdminBlockInstanceParams.kt @@ -0,0 +1,11 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class AdminBlockInstanceParams( + val instance: String, + val block: Boolean, + val reason: String, + val expires_at: Long? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/AdminListUsers.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/AdminListUsers.kt new file mode 100644 index 00000000..908e5a5f --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/AdminListUsers.kt @@ -0,0 +1,12 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import it.vercruysse.lemmyapi.enums.LocalUserSortType +import kotlinx.serialization.Serializable + +@Serializable +internal data class AdminListUsers( + val banned_only: Boolean? = null, + val page_cursor: PaginationCursor? = null, + val sort: LocalUserSortType? /* "new" | "old" */ = null, + val limit: Long? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/AdminOAuthProvider.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/AdminOAuthProvider.kt new file mode 100644 index 00000000..ece5654e --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/AdminOAuthProvider.kt @@ -0,0 +1,22 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class AdminOAuthProvider( + val id: OAuthProviderId, + val display_name: String, + val issuer: String, + val authorization_endpoint: String, + val token_endpoint: String, + val userinfo_endpoint: String, + val id_claim: String, + val client_id: String, + val scopes: String, + val auto_verify_email: Boolean, + val account_linking_enabled: Boolean, + val enabled: Boolean, + val published_at: String, + val updated_at: String? = null, + val use_pkce: Boolean, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ApproveCommunityPendingFollower.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ApproveCommunityPendingFollower.kt new file mode 100644 index 00000000..5d476163 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ApproveCommunityPendingFollower.kt @@ -0,0 +1,10 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class ApproveCommunityPendingFollower( + val community_id: CommunityId, + val follower_id: PersonId, + val approve: Boolean, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ApproveRegistrationApplication.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ApproveRegistrationApplication.kt new file mode 100644 index 00000000..b8a4ca72 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ApproveRegistrationApplication.kt @@ -0,0 +1,10 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class ApproveRegistrationApplication( + val id: RegistrationApplicationId, + val approve: Boolean, + val deny_reason: String? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/AuthenticateWithOauth.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/AuthenticateWithOauth.kt new file mode 100644 index 00000000..428c5bb6 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/AuthenticateWithOauth.kt @@ -0,0 +1,15 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class AuthenticateWithOauth( + val code: String, + val oauth_provider_id: OAuthProviderId, + val redirect_uri: String, + val show_nsfw: Boolean? = null, + val username: String? = null, + val answer: String? = null, + val pkce_code_verifier: String? = null, + val stay_logged_in: Boolean? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/BanFromCommunity.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/BanFromCommunity.kt new file mode 100644 index 00000000..d8cc9f0e --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/BanFromCommunity.kt @@ -0,0 +1,13 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class BanFromCommunity( + val community_id: CommunityId, + val person_id: PersonId, + val ban: Boolean, + val remove_or_restore_data: Boolean? = null, + val reason: String, + val expires_at: Long? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/BanPerson.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/BanPerson.kt new file mode 100644 index 00000000..fc06c85c --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/BanPerson.kt @@ -0,0 +1,12 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class BanPerson( + val person_id: PersonId, + val ban: Boolean, + val remove_or_restore_data: Boolean? = null, + val reason: String, + val expires_at: Long? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/BlockCommunity.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/BlockCommunity.kt new file mode 100644 index 00000000..2d069d19 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/BlockCommunity.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class BlockCommunity( + val community_id: CommunityId, + val block: Boolean, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/BlockPerson.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/BlockPerson.kt new file mode 100644 index 00000000..40e44e7e --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/BlockPerson.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class BlockPerson( + val person_id: PersonId, + val block: Boolean, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CaptchaResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CaptchaResponse.kt new file mode 100644 index 00000000..b18f588e --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CaptchaResponse.kt @@ -0,0 +1,10 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class CaptchaResponse( + val png: String, + val wav: String, + val uuid: String, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ChangePassword.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ChangePassword.kt new file mode 100644 index 00000000..918f8c93 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ChangePassword.kt @@ -0,0 +1,11 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class ChangePassword( + val new_password: SensitiveString, + val new_password_verify: SensitiveString, + val old_password: SensitiveString, + val stay_logged_in: Boolean? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ChangePasswordAfterReset.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ChangePasswordAfterReset.kt new file mode 100644 index 00000000..0f7a7087 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ChangePasswordAfterReset.kt @@ -0,0 +1,10 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class ChangePasswordAfterReset( + val token: SensitiveString, + val password: SensitiveString, + val password_verify: SensitiveString, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/Comment.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/Comment.kt new file mode 100644 index 00000000..622a06a9 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/Comment.kt @@ -0,0 +1,30 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +@SerialName("comment") +internal data class Comment( + val id: CommentId, + val creator_id: PersonId, + val post_id: PostId, + val content: String, + val removed: Boolean, + val published_at: String, + val updated_at: String? = null, + val deleted: Boolean, + val ap_id: DbUrl, + val local: Boolean, + val path: String, + val distinguished: Boolean, + val language_id: LanguageId, + val score: Long, + val upvotes: Long, + val downvotes: Long, + val child_count: Long, + val report_count: Long, + val unresolved_report_count: Long, + val federation_pending: Boolean, + val locked: Boolean, +) : PostOrCommentOrPrivateMessage diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommentActions.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommentActions.kt new file mode 100644 index 00000000..f2325bc3 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommentActions.kt @@ -0,0 +1,10 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class CommentActions( + val voted_at: String? = null, + val saved_at: String? = null, + val vote_is_upvote: Boolean? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommentId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommentId.kt new file mode 100644 index 00000000..f2e9da65 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommentId.kt @@ -0,0 +1,3 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +internal typealias CommentId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommentReport.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommentReport.kt new file mode 100644 index 00000000..78cd8172 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommentReport.kt @@ -0,0 +1,17 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class CommentReport( + val id: CommentReportId, + val creator_id: PersonId, + val comment_id: CommentId, + val original_comment_text: String, + val reason: String, + val resolved: Boolean, + val resolver_id: PersonId? = null, + val published_at: String, + val updated_at: String? = null, + val violates_instance_rules: Boolean, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommentReportId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommentReportId.kt new file mode 100644 index 00000000..5183842e --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommentReportId.kt @@ -0,0 +1,3 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +internal typealias CommentReportId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommentReportResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommentReportResponse.kt new file mode 100644 index 00000000..f4eae132 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommentReportResponse.kt @@ -0,0 +1,8 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class CommentReportResponse( + val comment_report_view: CommentReportView, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommentReportView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommentReportView.kt new file mode 100644 index 00000000..6ce93a45 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommentReportView.kt @@ -0,0 +1,26 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +@SerialName("comment") +internal data class CommentReportView( + val comment_report: CommentReport, + val comment: Comment, + val post: Post, + val community: Community, + val creator: Person, + val comment_creator: Person, + val comment_actions: CommentActions? = null, + val resolver: Person? = null, + val person_actions: PersonActions? = null, + val community_actions: CommunityActions? = null, + val creator_is_admin: Boolean, + val creator_is_moderator: Boolean, + val creator_banned: Boolean, + val creator_ban_expires_at: String? = null, + val creator_banned_from_community: Boolean, + val creator_community_ban_expires_at: String? = null, + val tags: CommunityTagsView, +) : ReportCombinedView diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommentResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommentResponse.kt new file mode 100644 index 00000000..28f06fd9 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommentResponse.kt @@ -0,0 +1,8 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class CommentResponse( + val comment_view: CommentView, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommentSlimView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommentSlimView.kt new file mode 100644 index 00000000..e5b05066 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommentSlimView.kt @@ -0,0 +1,16 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class CommentSlimView( + val comment: Comment, + val creator: Person, + val comment_actions: CommentActions? = null, + val person_actions: PersonActions? = null, + val creator_is_admin: Boolean, + val can_mod: Boolean, + val creator_banned: Boolean, + val creator_is_moderator: Boolean, + val creator_banned_from_community: Boolean, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommentView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommentView.kt new file mode 100644 index 00000000..4b165f2d --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommentView.kt @@ -0,0 +1,24 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +@SerialName("comment") +internal data class CommentView( + val comment: Comment, + val creator: Person, + val post: Post, + val community: Community, + val community_actions: CommunityActions? = null, + val comment_actions: CommentActions? = null, + val person_actions: PersonActions? = null, + val creator_is_admin: Boolean, + val tags: CommunityTagsView, + val can_mod: Boolean, + val creator_banned: Boolean, + val creator_ban_expires_at: String? = null, + val creator_is_moderator: Boolean, + val creator_banned_from_community: Boolean, + val creator_community_ban_expires_at: String? = null, +) : ResolveObjectView, NotificationData, PostCommentCombinedView diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/Community.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/Community.kt new file mode 100644 index 00000000..0a84f432 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/Community.kt @@ -0,0 +1,37 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import it.vercruysse.lemmyapi.enums.CommunityVisibility +import kotlinx.serialization.Serializable + +@Serializable +internal data class Community( + val id: CommunityId, + val name: String, + val title: String? = null, + val sidebar: String? = null, + val removed: Boolean, + val published_at: String, + val updated_at: String? = null, + val deleted: Boolean, + val nsfw: Boolean, + val ap_id: DbUrl, + val local: Boolean, + val last_refreshed_at: String, + val icon: DbUrl? = null, + val banner: DbUrl? = null, + val posting_restricted_to_mods: Boolean, + val instance_id: InstanceId, + val visibility: CommunityVisibility /* "public" | "unlisted" | "local_only_public" | "local_only_private" | "private" */, + val summary: String? = null, + val subscribers: Long, + val posts: Long, + val comments: Long, + val users_active_day: Long, + val users_active_week: Long, + val users_active_month: Long, + val users_active_half_year: Long, + val subscribers_local: Long, + val report_count: Long, + val unresolved_report_count: Long, + val local_removed: Boolean, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommunityActions.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommunityActions.kt new file mode 100644 index 00000000..9f4f7a45 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommunityActions.kt @@ -0,0 +1,16 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import it.vercruysse.lemmyapi.enums.CommunityFollowerState +import it.vercruysse.lemmyapi.enums.CommunityNotificationsMode +import kotlinx.serialization.Serializable + +@Serializable +internal data class CommunityActions( + val followed_at: String? = null, + val blocked_at: String? = null, + val became_moderator_at: String? = null, + val received_ban_at: String? = null, + val ban_expires_at: String? = null, + val follow_state: CommunityFollowerState? /* "accepted" | "pending" | "approval_required" | "denied" */ = null, + val notifications: CommunityNotificationsMode? /* "all_posts_and_comments" | "all_posts" | "replies_and_mentions" | "mute" */ = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommunityFollowerView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommunityFollowerView.kt new file mode 100644 index 00000000..0247a074 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommunityFollowerView.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class CommunityFollowerView( + val community: Community, + val follower: Person, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommunityId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommunityId.kt new file mode 100644 index 00000000..575a7685 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommunityId.kt @@ -0,0 +1,3 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +internal typealias CommunityId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommunityIdQuery.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommunityIdQuery.kt new file mode 100644 index 00000000..829551bd --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommunityIdQuery.kt @@ -0,0 +1,8 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class CommunityIdQuery( + val id: CommunityId, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommunityModeratorView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommunityModeratorView.kt new file mode 100644 index 00000000..20a174fa --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommunityModeratorView.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class CommunityModeratorView( + val community: Community, + val moderator: Person, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommunityReport.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommunityReport.kt new file mode 100644 index 00000000..7217e2ab --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommunityReport.kt @@ -0,0 +1,21 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class CommunityReport( + val id: CommunityReportId, + val creator_id: PersonId, + val community_id: CommunityId, + val original_community_name: String, + val original_community_title: String? = null, + val original_community_summary: String? = null, + val original_community_sidebar: String? = null, + val original_community_icon: String? = null, + val original_community_banner: String? = null, + val reason: String, + val resolved: Boolean, + val resolver_id: PersonId? = null, + val published_at: String, + val updated_at: String? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommunityReportId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommunityReportId.kt new file mode 100644 index 00000000..ad27ac90 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommunityReportId.kt @@ -0,0 +1,3 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +internal typealias CommunityReportId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommunityReportResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommunityReportResponse.kt new file mode 100644 index 00000000..377adb3f --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommunityReportResponse.kt @@ -0,0 +1,8 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class CommunityReportResponse( + val community_report_view: CommunityReportView, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommunityReportView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommunityReportView.kt new file mode 100644 index 00000000..6a306079 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommunityReportView.kt @@ -0,0 +1,19 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +@SerialName("community") +internal data class CommunityReportView( + val community_report: CommunityReport, + val community: Community, + val creator: Person, + val resolver: Person? = null, + val creator_is_admin: Boolean, + val creator_is_moderator: Boolean, + val creator_banned: Boolean, + val creator_ban_expires_at: String? = null, + val creator_banned_from_community: Boolean, + val creator_community_ban_expires_at: String? = null, +) : ReportCombinedView diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommunityResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommunityResponse.kt new file mode 100644 index 00000000..a37acd22 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommunityResponse.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class CommunityResponse( + val community_view: CommunityView, + val discussion_languages: List, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommunityTag.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommunityTag.kt new file mode 100644 index 00000000..691f856f --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommunityTag.kt @@ -0,0 +1,17 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class CommunityTag( + val id: CommunityTagId, + val ap_id: DbUrl, + val name: String, + val display_name: String? = null, + val summary: String? = null, + val community_id: CommunityId, + val published_at: String, + val updated_at: String? = null, + val deleted: Boolean, + val color: String /* "color01" | "color02" | "color03" | "color04" | "color05" | "color06" | "color07" | "color08" | "color09" | "color10" */, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommunityTagId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommunityTagId.kt new file mode 100644 index 00000000..45228c03 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommunityTagId.kt @@ -0,0 +1,3 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +internal typealias CommunityTagId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommunityTagsView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommunityTagsView.kt new file mode 100644 index 00000000..30fe198b --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommunityTagsView.kt @@ -0,0 +1,3 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +internal typealias CommunityTagsView = List diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommunityView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommunityView.kt new file mode 100644 index 00000000..6c39ae36 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CommunityView.kt @@ -0,0 +1,13 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +@SerialName("community") +internal data class CommunityView( + val community: Community, + val community_actions: CommunityActions? = null, + val can_mod: Boolean, + val tags: CommunityTagsView, +) : ResolveObjectView diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CreateComment.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CreateComment.kt new file mode 100644 index 00000000..0e07daa7 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CreateComment.kt @@ -0,0 +1,11 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class CreateComment( + val content: String, + val post_id: PostId, + val parent_id: CommentId? = null, + val language_id: LanguageId? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CreateCommentLike.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CreateCommentLike.kt new file mode 100644 index 00000000..720400a3 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CreateCommentLike.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class CreateCommentLike( + val comment_id: CommentId, + val is_upvote: Boolean? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CreateCommentReport.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CreateCommentReport.kt new file mode 100644 index 00000000..016877aa --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CreateCommentReport.kt @@ -0,0 +1,10 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class CreateCommentReport( + val comment_id: CommentId, + val reason: String, + val violates_instance_rules: Boolean? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CreateCommentWarning.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CreateCommentWarning.kt new file mode 100644 index 00000000..036318a2 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CreateCommentWarning.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class CreateCommentWarning( + val comment_id: CommentId, + val reason: String, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CreateCommunity.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CreateCommunity.kt new file mode 100644 index 00000000..bff17aa7 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CreateCommunity.kt @@ -0,0 +1,16 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import it.vercruysse.lemmyapi.enums.CommunityVisibility +import kotlinx.serialization.Serializable + +@Serializable +internal data class CreateCommunity( + val name: String, + val title: String? = null, + val sidebar: String? = null, + val summary: String? = null, + val nsfw: Boolean? = null, + val posting_restricted_to_mods: Boolean? = null, + val discussion_languages: List? = null, + val visibility: CommunityVisibility? /* "public" | "unlisted" | "local_only_public" | "local_only_private" | "private" */ = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CreateCommunityReport.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CreateCommunityReport.kt new file mode 100644 index 00000000..8528ea66 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CreateCommunityReport.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class CreateCommunityReport( + val community_id: CommunityId, + val reason: String, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CreateCommunityTag.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CreateCommunityTag.kt new file mode 100644 index 00000000..a8a20820 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CreateCommunityTag.kt @@ -0,0 +1,12 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class CreateCommunityTag( + val community_id: CommunityId, + val name: String, + val display_name: String? = null, + val summary: String? = null, + val color: String? /* "color01" | "color02" | "color03" | "color04" | "color05" | "color06" | "color07" | "color08" | "color09" | "color10" */ = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CreateCustomEmoji.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CreateCustomEmoji.kt new file mode 100644 index 00000000..72409189 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CreateCustomEmoji.kt @@ -0,0 +1,12 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class CreateCustomEmoji( + val category: String, + val shortcode: String, + val image_url: DbUrl, + val alt_text: String, + val keywords: List, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CreateInvitation.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CreateInvitation.kt new file mode 100644 index 00000000..85896fcf --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CreateInvitation.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class CreateInvitation( + val max_uses: Long? = null, + val expires_at: String? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CreateInvitationResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CreateInvitationResponse.kt new file mode 100644 index 00000000..8115aa0a --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CreateInvitationResponse.kt @@ -0,0 +1,8 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class CreateInvitationResponse( + val invite: LocalUserInvite, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CreateMultiCommunity.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CreateMultiCommunity.kt new file mode 100644 index 00000000..28210ed5 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CreateMultiCommunity.kt @@ -0,0 +1,11 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class CreateMultiCommunity( + val name: String, + val title: String? = null, + val summary: String? = null, + val sidebar: String? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CreateOAuthProvider.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CreateOAuthProvider.kt new file mode 100644 index 00000000..11598fc3 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CreateOAuthProvider.kt @@ -0,0 +1,20 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class CreateOAuthProvider( + val display_name: String, + val issuer: String, + val authorization_endpoint: String, + val token_endpoint: String, + val userinfo_endpoint: String, + val id_claim: String, + val client_id: String, + val client_secret: String, + val scopes: String, + val auto_verify_email: Boolean? = null, + val account_linking_enabled: Boolean? = null, + val use_pkce: Boolean? = null, + val enabled: Boolean? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CreateOrDeleteMultiCommunityEntry.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CreateOrDeleteMultiCommunityEntry.kt new file mode 100644 index 00000000..adec06cd --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CreateOrDeleteMultiCommunityEntry.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class CreateOrDeleteMultiCommunityEntry( + val id: MultiCommunityId, + val community_id: CommunityId, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CreatePost.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CreatePost.kt new file mode 100644 index 00000000..a97479ca --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CreatePost.kt @@ -0,0 +1,18 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class CreatePost( + val name: String, + val community_id: CommunityId, + val url: String? = null, + val body: String? = null, + val alt_text: String? = null, + val honeypot: String? = null, + val nsfw: Boolean? = null, + val language_id: LanguageId? = null, + val custom_thumbnail: String? = null, + val tags: List? = null, + val scheduled_publish_time_at: Long? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CreatePostLike.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CreatePostLike.kt new file mode 100644 index 00000000..7a084e4b --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CreatePostLike.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class CreatePostLike( + val post_id: PostId, + val is_upvote: Boolean? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CreatePostReport.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CreatePostReport.kt new file mode 100644 index 00000000..fca01d26 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CreatePostReport.kt @@ -0,0 +1,10 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class CreatePostReport( + val post_id: PostId, + val reason: String, + val violates_instance_rules: Boolean? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CreatePostWarning.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CreatePostWarning.kt new file mode 100644 index 00000000..ad41a802 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CreatePostWarning.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class CreatePostWarning( + val post_id: PostId, + val reason: String, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CreatePrivateMessage.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CreatePrivateMessage.kt new file mode 100644 index 00000000..7d9b0b19 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CreatePrivateMessage.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class CreatePrivateMessage( + val content: String, + val recipient_id: PersonId, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CreatePrivateMessageReport.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CreatePrivateMessageReport.kt new file mode 100644 index 00000000..7950d63d --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CreatePrivateMessageReport.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class CreatePrivateMessageReport( + val private_message_id: PrivateMessageId, + val reason: String, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CreateSite.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CreateSite.kt new file mode 100644 index 00000000..b996d9bd --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CreateSite.kt @@ -0,0 +1,69 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import it.vercruysse.lemmyapi.enums.CommentSortType +import it.vercruysse.lemmyapi.enums.FederationMode +import it.vercruysse.lemmyapi.enums.ImageMode +import it.vercruysse.lemmyapi.enums.ListingType +import it.vercruysse.lemmyapi.enums.PostListingMode +import it.vercruysse.lemmyapi.enums.RegistrationMode +import it.vercruysse.lemmyapi.enums.SortType +import kotlinx.serialization.Serializable + +@Serializable +internal data class CreateSite( + val name: String, + val sidebar: String? = null, + val summary: String? = null, + val community_creation_admin_only: Boolean? = null, + val email_verification_required: Boolean? = null, + val application_question: String? = null, + val private_instance: Boolean? = null, + val default_theme: String? = null, + val default_post_listing_type: ListingType? /* "all" | "local" | "subscribed" | "moderator_view" | "suggested" */ = null, + val default_post_listing_mode: PostListingMode? /* "list" | "card" | "small_card" */ = null, + val default_post_sort_type: SortType? /* "active" | "hot" | "new" | "old" | "top" | "most_comments" | "new_comments" | "controversial" | "scaled" */ = null, + val default_post_time_range_seconds: Long? = null, + val default_items_per_page: Long? = null, + val default_comment_sort_type: CommentSortType? /* "hot" | "top" | "new" | "old" | "controversial" */ = null, + val legal_information: String? = null, + val application_email_admins: Boolean? = null, + val discussion_languages: List? = null, + val slur_filter_regex: String? = null, + val rate_limit_message_max_requests: Long? = null, + val rate_limit_message_interval_seconds: Long? = null, + val rate_limit_post_max_requests: Long? = null, + val rate_limit_post_interval_seconds: Long? = null, + val rate_limit_register_max_requests: Long? = null, + val rate_limit_register_interval_seconds: Long? = null, + val rate_limit_image_max_requests: Long? = null, + val rate_limit_image_interval_seconds: Long? = null, + val rate_limit_comment_max_requests: Long? = null, + val rate_limit_comment_interval_seconds: Long? = null, + val rate_limit_search_max_requests: Long? = null, + val rate_limit_search_interval_seconds: Long? = null, + val rate_limit_import_user_settings_max_requests: Long? = null, + val rate_limit_import_user_settings_interval_seconds: Long? = null, + val federation_enabled: Boolean? = null, + val registration_mode: RegistrationMode? /* "closed" | "require_application" | "require_invitation" | "open" */ = null, + val oauth_registration: Boolean? = null, + val content_warning: String? = null, + val reports_email_admins: Boolean? = null, + val federation_signed_fetch: Boolean? = null, + val post_upvotes: FederationMode? /* "all" | "local" | "disable" */ = null, + val post_downvotes: FederationMode? /* "all" | "local" | "disable" */ = null, + val comment_upvotes: FederationMode? /* "all" | "local" | "disable" */ = null, + val comment_downvotes: FederationMode? /* "all" | "local" | "disable" */ = null, + val nsfw_content_disallowed: Boolean? = null, + val email_notifications_disabled: Boolean? = null, + val suggested_multi_community_id: MultiCommunityId? = null, + val image_mode: ImageMode? /* "none" | "store_link_previews" | "proxy_all_images" */ = null, + val image_proxy_bypass_domains: String? = null, + val image_upload_timeout_seconds: Long? = null, + val image_max_thumbnail_size: Long? = null, + val image_max_avatar_size: Long? = null, + val image_max_banner_size: Long? = null, + val image_max_upload_size: Long? = null, + val image_allow_video_uploads: Boolean? = null, + val image_upload_disabled: Boolean? = null, + val max_invites_per_user_allowed: Long? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CreateTagline.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CreateTagline.kt new file mode 100644 index 00000000..6922fb8f --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CreateTagline.kt @@ -0,0 +1,8 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class CreateTagline( + val content: String, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CustomEmoji.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CustomEmoji.kt new file mode 100644 index 00000000..0b69265b --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CustomEmoji.kt @@ -0,0 +1,14 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class CustomEmoji( + val id: CustomEmojiId, + val shortcode: String, + val image_url: DbUrl, + val alt_text: String, + val category: String, + val published_at: String, + val updated_at: String? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CustomEmojiId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CustomEmojiId.kt new file mode 100644 index 00000000..6b48e944 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CustomEmojiId.kt @@ -0,0 +1,3 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +internal typealias CustomEmojiId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CustomEmojiKeyword.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CustomEmojiKeyword.kt new file mode 100644 index 00000000..d727841b --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CustomEmojiKeyword.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class CustomEmojiKeyword( + val custom_emoji_id: CustomEmojiId, + val keyword: String, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CustomEmojiResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CustomEmojiResponse.kt new file mode 100644 index 00000000..daac001e --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CustomEmojiResponse.kt @@ -0,0 +1,8 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class CustomEmojiResponse( + val custom_emoji: CustomEmojiView, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CustomEmojiView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CustomEmojiView.kt new file mode 100644 index 00000000..5dbea9d1 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/CustomEmojiView.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class CustomEmojiView( + val custom_emoji: CustomEmoji, + val keywords: List, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/DbUrl.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/DbUrl.kt new file mode 100644 index 00000000..6a762cef --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/DbUrl.kt @@ -0,0 +1,3 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +internal typealias DbUrl = String diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/DeleteAccount.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/DeleteAccount.kt new file mode 100644 index 00000000..f1c4affb --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/DeleteAccount.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class DeleteAccount( + val password: SensitiveString, + val delete_content: Boolean, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/DeleteComment.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/DeleteComment.kt new file mode 100644 index 00000000..5b697ab4 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/DeleteComment.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class DeleteComment( + val comment_id: CommentId, + val deleted: Boolean, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/DeleteCommunity.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/DeleteCommunity.kt new file mode 100644 index 00000000..bba8ac4b --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/DeleteCommunity.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class DeleteCommunity( + val community_id: CommunityId, + val deleted: Boolean, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/DeleteCommunityTag.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/DeleteCommunityTag.kt new file mode 100644 index 00000000..83829d3c --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/DeleteCommunityTag.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class DeleteCommunityTag( + val tag_id: CommunityTagId, + val delete: Boolean, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/DeleteCustomEmoji.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/DeleteCustomEmoji.kt new file mode 100644 index 00000000..a965e02f --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/DeleteCustomEmoji.kt @@ -0,0 +1,8 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class DeleteCustomEmoji( + val id: CustomEmojiId, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/DeleteImageParams.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/DeleteImageParams.kt new file mode 100644 index 00000000..36961a1f --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/DeleteImageParams.kt @@ -0,0 +1,8 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class DeleteImageParams( + val filename: String, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/DeleteOAuthProvider.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/DeleteOAuthProvider.kt new file mode 100644 index 00000000..25cdc745 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/DeleteOAuthProvider.kt @@ -0,0 +1,8 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class DeleteOAuthProvider( + val id: OAuthProviderId, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/DeletePost.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/DeletePost.kt new file mode 100644 index 00000000..4c3ccdbd --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/DeletePost.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class DeletePost( + val post_id: PostId, + val deleted: Boolean, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/DeletePrivateMessage.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/DeletePrivateMessage.kt new file mode 100644 index 00000000..b4893db5 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/DeletePrivateMessage.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class DeletePrivateMessage( + val private_message_id: PrivateMessageId, + val deleted: Boolean, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/DeleteTagline.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/DeleteTagline.kt new file mode 100644 index 00000000..e25c91e1 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/DeleteTagline.kt @@ -0,0 +1,8 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class DeleteTagline( + val id: TaglineId, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/DistinguishComment.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/DistinguishComment.kt new file mode 100644 index 00000000..8cf3e1f4 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/DistinguishComment.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class DistinguishComment( + val comment_id: CommentId, + val distinguished: Boolean, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/EditComment.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/EditComment.kt new file mode 100644 index 00000000..9f49b4f5 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/EditComment.kt @@ -0,0 +1,10 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class EditComment( + val comment_id: CommentId, + val content: String? = null, + val language_id: LanguageId? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/EditCommunity.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/EditCommunity.kt new file mode 100644 index 00000000..a585f6cb --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/EditCommunity.kt @@ -0,0 +1,16 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import it.vercruysse.lemmyapi.enums.CommunityVisibility +import kotlinx.serialization.Serializable + +@Serializable +internal data class EditCommunity( + val community_id: CommunityId, + val title: String? = null, + val sidebar: String? = null, + val summary: String? = null, + val nsfw: Boolean? = null, + val posting_restricted_to_mods: Boolean? = null, + val discussion_languages: List? = null, + val visibility: CommunityVisibility? /* "public" | "unlisted" | "local_only_public" | "local_only_private" | "private" */ = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/EditCommunityNotifications.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/EditCommunityNotifications.kt new file mode 100644 index 00000000..302e4e33 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/EditCommunityNotifications.kt @@ -0,0 +1,10 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import it.vercruysse.lemmyapi.enums.CommunityNotificationsMode +import kotlinx.serialization.Serializable + +@Serializable +internal data class EditCommunityNotifications( + val community_id: CommunityId, + val mode: CommunityNotificationsMode /* "all_posts_and_comments" | "all_posts" | "replies_and_mentions" | "mute" */, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/EditCommunityTag.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/EditCommunityTag.kt new file mode 100644 index 00000000..4c9d18ff --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/EditCommunityTag.kt @@ -0,0 +1,11 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class EditCommunityTag( + val tag_id: CommunityTagId, + val display_name: String? = null, + val summary: String? = null, + val color: String? /* "color01" | "color02" | "color03" | "color04" | "color05" | "color06" | "color07" | "color08" | "color09" | "color10" */ = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/EditCustomEmoji.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/EditCustomEmoji.kt new file mode 100644 index 00000000..946e82bf --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/EditCustomEmoji.kt @@ -0,0 +1,13 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class EditCustomEmoji( + val id: CustomEmojiId, + val category: String? = null, + val shortcode: String? = null, + val image_url: DbUrl? = null, + val alt_text: String? = null, + val keywords: List? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/EditMultiCommunity.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/EditMultiCommunity.kt new file mode 100644 index 00000000..9b02daf3 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/EditMultiCommunity.kt @@ -0,0 +1,12 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class EditMultiCommunity( + val id: MultiCommunityId, + val title: String? = null, + val summary: String? = null, + val sidebar: String? = null, + val deleted: Boolean? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/EditOAuthProvider.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/EditOAuthProvider.kt new file mode 100644 index 00000000..504048dd --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/EditOAuthProvider.kt @@ -0,0 +1,19 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class EditOAuthProvider( + val id: OAuthProviderId, + val display_name: String? = null, + val authorization_endpoint: String? = null, + val token_endpoint: String? = null, + val userinfo_endpoint: String? = null, + val id_claim: String? = null, + val client_secret: String? = null, + val scopes: String? = null, + val auto_verify_email: Boolean? = null, + val account_linking_enabled: Boolean? = null, + val use_pkce: Boolean? = null, + val enabled: Boolean? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/EditPost.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/EditPost.kt new file mode 100644 index 00000000..f3a0a4a3 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/EditPost.kt @@ -0,0 +1,17 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class EditPost( + val post_id: PostId, + val name: String? = null, + val url: String? = null, + val body: String? = null, + val alt_text: String? = null, + val nsfw: Boolean? = null, + val language_id: LanguageId? = null, + val custom_thumbnail: String? = null, + val scheduled_publish_time_at: Long? = null, + val tags: List? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/EditPostNotifications.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/EditPostNotifications.kt new file mode 100644 index 00000000..077284bc --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/EditPostNotifications.kt @@ -0,0 +1,10 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import it.vercruysse.lemmyapi.enums.PostNotificationsMode +import kotlinx.serialization.Serializable + +@Serializable +internal data class EditPostNotifications( + val post_id: PostId, + val mode: PostNotificationsMode /* "all_comments" | "replies_and_mentions" | "mute" */, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/EditPrivateMessage.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/EditPrivateMessage.kt new file mode 100644 index 00000000..e6c5246a --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/EditPrivateMessage.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class EditPrivateMessage( + val private_message_id: PrivateMessageId, + val content: String, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/EditSite.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/EditSite.kt new file mode 100644 index 00000000..f5fcb414 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/EditSite.kt @@ -0,0 +1,70 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import it.vercruysse.lemmyapi.enums.CommentSortType +import it.vercruysse.lemmyapi.enums.FederationMode +import it.vercruysse.lemmyapi.enums.ImageMode +import it.vercruysse.lemmyapi.enums.ListingType +import it.vercruysse.lemmyapi.enums.PostListingMode +import it.vercruysse.lemmyapi.enums.RegistrationMode +import it.vercruysse.lemmyapi.enums.SortType +import kotlinx.serialization.Serializable + +@Serializable +internal data class EditSite( + val name: String? = null, + val sidebar: String? = null, + val summary: String? = null, + val community_creation_admin_only: Boolean? = null, + val email_verification_required: Boolean? = null, + val application_question: String? = null, + val private_instance: Boolean? = null, + val default_theme: String? = null, + val default_post_listing_type: ListingType? /* "all" | "local" | "subscribed" | "moderator_view" | "suggested" */ = null, + val default_post_listing_mode: PostListingMode? /* "list" | "card" | "small_card" */ = null, + val default_post_sort_type: SortType? /* "active" | "hot" | "new" | "old" | "top" | "most_comments" | "new_comments" | "controversial" | "scaled" */ = null, + val default_post_time_range_seconds: Long? = null, + val default_items_per_page: Long? = null, + val default_comment_sort_type: CommentSortType? /* "hot" | "top" | "new" | "old" | "controversial" */ = null, + val legal_information: String? = null, + val application_email_admins: Boolean? = null, + val federation_signed_fetch: Boolean? = null, + val discussion_languages: List? = null, + val slur_filter_regex: String? = null, + val rate_limit_message_max_requests: Long? = null, + val rate_limit_message_interval_seconds: Long? = null, + val rate_limit_post_max_requests: Long? = null, + val rate_limit_post_interval_seconds: Long? = null, + val rate_limit_register_max_requests: Long? = null, + val rate_limit_register_interval_seconds: Long? = null, + val rate_limit_image_max_requests: Long? = null, + val rate_limit_image_interval_seconds: Long? = null, + val rate_limit_comment_max_requests: Long? = null, + val rate_limit_comment_interval_seconds: Long? = null, + val rate_limit_search_max_requests: Long? = null, + val rate_limit_search_interval_seconds: Long? = null, + val rate_limit_import_user_settings_max_requests: Long? = null, + val rate_limit_import_user_settings_interval_seconds: Long? = null, + val federation_enabled: Boolean? = null, + val blocked_urls: List? = null, + val registration_mode: RegistrationMode? /* "closed" | "require_application" | "require_invitation" | "open" */ = null, + val reports_email_admins: Boolean? = null, + val content_warning: String? = null, + val oauth_registration: Boolean? = null, + val post_upvotes: FederationMode? /* "all" | "local" | "disable" */ = null, + val post_downvotes: FederationMode? /* "all" | "local" | "disable" */ = null, + val comment_upvotes: FederationMode? /* "all" | "local" | "disable" */ = null, + val comment_downvotes: FederationMode? /* "all" | "local" | "disable" */ = null, + val nsfw_content_disallowed: Boolean? = null, + val email_notifications_disabled: Boolean? = null, + val suggested_multi_community_id: MultiCommunityId? = null, + val image_mode: ImageMode? /* "none" | "store_link_previews" | "proxy_all_images" */ = null, + val image_proxy_bypass_domains: String? = null, + val image_upload_timeout_seconds: Long? = null, + val image_max_thumbnail_size: Long? = null, + val image_max_avatar_size: Long? = null, + val image_max_banner_size: Long? = null, + val image_max_upload_size: Long? = null, + val image_allow_video_uploads: Boolean? = null, + val image_upload_disabled: Boolean? = null, + val max_invites_per_user_allowed: Long? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/EditTagline.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/EditTagline.kt new file mode 100644 index 00000000..fea6d2b3 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/EditTagline.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class EditTagline( + val id: TaglineId, + val content: String, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/EditTotp.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/EditTotp.kt new file mode 100644 index 00000000..13e48495 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/EditTotp.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class EditTotp( + val totp_token: String, + val enabled: Boolean, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/EditTotpResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/EditTotpResponse.kt new file mode 100644 index 00000000..ff04e5d8 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/EditTotpResponse.kt @@ -0,0 +1,8 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class EditTotpResponse( + val enabled: Boolean, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ExportDataResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ExportDataResponse.kt new file mode 100644 index 00000000..9c92f50b --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ExportDataResponse.kt @@ -0,0 +1,13 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class ExportDataResponse( + val notifications: List, + val content: List, + val read_posts: List, + val liked: List, + val moderates: List, + val settings: UserSettingsBackup, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/FeaturePost.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/FeaturePost.kt new file mode 100644 index 00000000..da3af911 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/FeaturePost.kt @@ -0,0 +1,11 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import it.vercruysse.lemmyapi.enums.PostFeatureType +import kotlinx.serialization.Serializable + +@Serializable +internal data class FeaturePost( + val post_id: PostId, + val featured: Boolean, + val feature_type: PostFeatureType /* "local" | "community" */, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/FederatedInstanceView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/FederatedInstanceView.kt new file mode 100644 index 00000000..bd61f4ed --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/FederatedInstanceView.kt @@ -0,0 +1,12 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class FederatedInstanceView( + val instance: Instance, + val site: Site? = null, + val queue_state: FederationQueueState? = null, + val blocked: FederationBlockList? = null, + val allowed: FederationAllowList? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/FederationAllowList.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/FederationAllowList.kt new file mode 100644 index 00000000..99cc1c47 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/FederationAllowList.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class FederationAllowList( + val published_at: String, + val updated_at: String? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/FederationBlockList.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/FederationBlockList.kt new file mode 100644 index 00000000..34bcfab9 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/FederationBlockList.kt @@ -0,0 +1,10 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class FederationBlockList( + val published_at: String, + val updated_at: String? = null, + val expires_at: String? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/FederationQueueState.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/FederationQueueState.kt new file mode 100644 index 00000000..bbd1eef4 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/FederationQueueState.kt @@ -0,0 +1,12 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class FederationQueueState( + val instance_id: InstanceId, + val last_successful_id: ActivityId? = null, + val last_successful_published_time_at: String? = null, + val fail_count: Long, + val last_retry_at: String? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/FollowCommunity.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/FollowCommunity.kt new file mode 100644 index 00000000..080d0f72 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/FollowCommunity.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class FollowCommunity( + val community_id: CommunityId, + val follow: Boolean, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/FollowMultiCommunity.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/FollowMultiCommunity.kt new file mode 100644 index 00000000..69079e77 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/FollowMultiCommunity.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class FollowMultiCommunity( + val multi_community_id: MultiCommunityId, + val follow: Boolean, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/GenerateTotpSecretResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/GenerateTotpSecretResponse.kt new file mode 100644 index 00000000..3a6f8f06 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/GenerateTotpSecretResponse.kt @@ -0,0 +1,8 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class GenerateTotpSecretResponse( + val totp_secret_url: SensitiveString, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/GetCaptchaResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/GetCaptchaResponse.kt new file mode 100644 index 00000000..d787f0fa --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/GetCaptchaResponse.kt @@ -0,0 +1,8 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class GetCaptchaResponse( + val ok: CaptchaResponse? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/GetComment.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/GetComment.kt new file mode 100644 index 00000000..b19f2fcd --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/GetComment.kt @@ -0,0 +1,8 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class GetComment( + val id: CommentId, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/GetComments.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/GetComments.kt new file mode 100644 index 00000000..80ac90ab --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/GetComments.kt @@ -0,0 +1,22 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import it.vercruysse.lemmyapi.enums.CommentSortType +import it.vercruysse.lemmyapi.enums.ListingType +import kotlinx.serialization.Serializable + +@Serializable +internal data class GetComments( + val type_: ListingType? /* "all" | "local" | "subscribed" | "moderator_view" | "suggested" */ = null, + val sort: CommentSortType? /* "hot" | "top" | "new" | "old" | "controversial" */ = null, + val time_range_seconds: Long? = null, + val max_depth: Long? = null, + val page_cursor: PaginationCursor? = null, + val limit: Long? = null, + val community_id: CommunityId? = null, + val community_name: String? = null, + val creator_id: PersonId? = null, + val creator_username: String? = null, + val post_id: PostId? = null, + val parent_id: CommentId? = null, + val search_term: String? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/GetCommunity.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/GetCommunity.kt new file mode 100644 index 00000000..be6c9071 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/GetCommunity.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class GetCommunity( + val id: CommunityId? = null, + val name: String? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/GetCommunityResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/GetCommunityResponse.kt new file mode 100644 index 00000000..0a3e430a --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/GetCommunityResponse.kt @@ -0,0 +1,11 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class GetCommunityResponse( + val community_view: CommunityView, + val site: Site? = null, + val moderators: List, + val discussion_languages: List, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/GetFederatedInstances.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/GetFederatedInstances.kt new file mode 100644 index 00000000..b1c02175 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/GetFederatedInstances.kt @@ -0,0 +1,12 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import it.vercruysse.lemmyapi.enums.GetFederatedInstancesKind +import kotlinx.serialization.Serializable + +@Serializable +internal data class GetFederatedInstances( + val domain_filter: String? = null, + val kind: GetFederatedInstancesKind /* "all" | "linked" | "allowed" | "blocked" */, + val page_cursor: PaginationCursor? = null, + val limit: Long? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/GetModlog.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/GetModlog.kt new file mode 100644 index 00000000..dfcb68f3 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/GetModlog.kt @@ -0,0 +1,20 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import it.vercruysse.lemmyapi.enums.ListingType +import it.vercruysse.lemmyapi.enums.ModlogActionType +import kotlinx.serialization.Serializable + +@Serializable +internal data class GetModlog( + val mod_person_id: PersonId? = null, + val community_id: CommunityId? = null, + val type_: ModlogActionType? /* "all" | "admin_add" | "admin_ban" | "admin_allow_instance" | "admin_block_instance" | "admin_purge_comment" | "admin_purge_community" | "admin_purge_person" | "admin_purge_post" | "mod_add_to_community" | "mod_ban_from_community" | "admin_feature_post_site" | "mod_feature_post_community" | "mod_change_community_visibility" | "mod_lock_post" | "mod_remove_comment" | "admin_remove_community" | "mod_remove_post" | "mod_transfer_community" | "mod_lock_comment" | "mod_warn_comment" | "mod_warn_post" */ = null, + val listing_type: ListingType? /* "all" | "local" | "subscribed" | "moderator_view" | "suggested" */ = null, + val other_person_id: PersonId? = null, + val post_id: PostId? = null, + val comment_id: CommentId? = null, + val show_bulk: Boolean? = null, + val bulk_action_parent_id: ModlogId? = null, + val page_cursor: PaginationCursor? = null, + val limit: Long? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/GetMultiCommunity.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/GetMultiCommunity.kt new file mode 100644 index 00000000..07148734 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/GetMultiCommunity.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class GetMultiCommunity( + val id: MultiCommunityId? = null, + val name: String? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/GetMultiCommunityResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/GetMultiCommunityResponse.kt new file mode 100644 index 00000000..4079bdcb --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/GetMultiCommunityResponse.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class GetMultiCommunityResponse( + val multi_community_view: MultiCommunityView, + val communities: List, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/GetPersonDetails.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/GetPersonDetails.kt new file mode 100644 index 00000000..aa504e7f --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/GetPersonDetails.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class GetPersonDetails( + val person_id: PersonId? = null, + val username: String? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/GetPersonDetailsResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/GetPersonDetailsResponse.kt new file mode 100644 index 00000000..0a5f8d7e --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/GetPersonDetailsResponse.kt @@ -0,0 +1,11 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class GetPersonDetailsResponse( + val person_view: PersonView, + val site: Site? = null, + val moderates: List, + val multi_communities_created: List, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/GetPost.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/GetPost.kt new file mode 100644 index 00000000..6a0dca4f --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/GetPost.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class GetPost( + val id: PostId? = null, + val comment_id: CommentId? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/GetPostResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/GetPostResponse.kt new file mode 100644 index 00000000..7411701a --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/GetPostResponse.kt @@ -0,0 +1,11 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class GetPostResponse( + val post_view: PostView, + val community_view: CommunityView, + val cross_posts: List, + val moderators: List, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/GetPosts.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/GetPosts.kt new file mode 100644 index 00000000..fa609dbd --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/GetPosts.kt @@ -0,0 +1,30 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import it.vercruysse.lemmyapi.enums.ListingType +import it.vercruysse.lemmyapi.enums.SortType +import kotlinx.serialization.Serializable + +@Serializable +internal data class GetPosts( + val type_: ListingType? /* "all" | "local" | "subscribed" | "moderator_view" | "suggested" */ = null, + val sort: SortType? /* "active" | "hot" | "new" | "old" | "top" | "most_comments" | "new_comments" | "controversial" | "scaled" */ = null, + val time_range_seconds: Long? = null, + val community_id: CommunityId? = null, + val community_name: String? = null, + val creator_id: PersonId? = null, + val creator_username: String? = null, + val multi_community_id: MultiCommunityId? = null, + val multi_community_name: String? = null, + val show_hidden: Boolean? = null, + val show_read: Boolean? = null, + val show_nsfw: Boolean? = null, + val hide_posts_with_media: Boolean? = null, + val mark_as_read: Boolean? = null, + val no_comments_only: Boolean? = null, + val search_term: String? = null, + val search_title_only: Boolean? = null, + val search_url_only: Boolean? = null, + val tag_id: CommunityTagId? = null, + val page_cursor: PaginationCursor? = null, + val limit: Long? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/GetRandomCommunity.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/GetRandomCommunity.kt new file mode 100644 index 00000000..57a022ec --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/GetRandomCommunity.kt @@ -0,0 +1,10 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import it.vercruysse.lemmyapi.enums.ListingType +import kotlinx.serialization.Serializable + +@Serializable +internal data class GetRandomCommunity( + val type_: ListingType? /* "all" | "local" | "subscribed" | "moderator_view" | "suggested" */ = null, + val show_nsfw: Boolean? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/GetRegistrationApplication.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/GetRegistrationApplication.kt new file mode 100644 index 00000000..d0e0341d --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/GetRegistrationApplication.kt @@ -0,0 +1,8 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class GetRegistrationApplication( + val person_id: PersonId, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/GetSiteMetadata.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/GetSiteMetadata.kt new file mode 100644 index 00000000..04a1187e --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/GetSiteMetadata.kt @@ -0,0 +1,8 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class GetSiteMetadata( + val url: String, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/GetSiteMetadataResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/GetSiteMetadataResponse.kt new file mode 100644 index 00000000..13ca3e0e --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/GetSiteMetadataResponse.kt @@ -0,0 +1,8 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class GetSiteMetadataResponse( + val metadata: LinkMetadata, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/GetSiteResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/GetSiteResponse.kt new file mode 100644 index 00000000..d78b047f --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/GetSiteResponse.kt @@ -0,0 +1,19 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class GetSiteResponse( + val site_view: SiteView, + val admins: List, + val version: String, + val all_languages: List, + val discussion_languages: List, + val tagline: Tagline? = null, + val oauth_providers: List, + val admin_oauth_providers: List, + val blocked_urls: List, + val active_plugins: List, + val last_application_duration_seconds: Long? = null, + val captcha_enabled: Boolean, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/HideCommunity.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/HideCommunity.kt new file mode 100644 index 00000000..89a967c6 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/HideCommunity.kt @@ -0,0 +1,10 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class HideCommunity( + val community_id: CommunityId, + val hidden: Boolean, + val reason: String, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/HidePost.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/HidePost.kt new file mode 100644 index 00000000..da94312e --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/HidePost.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class HidePost( + val post_id: PostId, + val hide: Boolean, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ImageDetails.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ImageDetails.kt new file mode 100644 index 00000000..a88f69ef --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ImageDetails.kt @@ -0,0 +1,12 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class ImageDetails( + val link: DbUrl, + val width: Long, + val height: Long, + val content_type: String, + val blurhash: String? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ImageGetParams.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ImageGetParams.kt new file mode 100644 index 00000000..2600890d --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ImageGetParams.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class ImageGetParams( + val file_type: String? = null, + val max_size: Long? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ImageProxyParams.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ImageProxyParams.kt new file mode 100644 index 00000000..fdf62867 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ImageProxyParams.kt @@ -0,0 +1,10 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class ImageProxyParams( + val url: String, + val file_type: String? = null, + val max_size: Long? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/Instance.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/Instance.kt new file mode 100644 index 00000000..4ec66939 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/Instance.kt @@ -0,0 +1,13 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class Instance( + val id: InstanceId, + val domain: String, + val published_at: String, + val updated_at: String? = null, + val software: String? = null, + val version: String? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/InstanceActions.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/InstanceActions.kt new file mode 100644 index 00000000..3d2e2d47 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/InstanceActions.kt @@ -0,0 +1,11 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class InstanceActions( + val blocked_communities_at: String? = null, + val received_ban_at: String? = null, + val ban_expires_at: String? = null, + val blocked_persons_at: String? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/InstanceId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/InstanceId.kt new file mode 100644 index 00000000..b65639fa --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/InstanceId.kt @@ -0,0 +1,3 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +internal typealias InstanceId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/InvitationId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/InvitationId.kt new file mode 100644 index 00000000..334b39aa --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/InvitationId.kt @@ -0,0 +1,3 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +internal typealias InvitationId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/Language.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/Language.kt new file mode 100644 index 00000000..ec9a1731 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/Language.kt @@ -0,0 +1,10 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class Language( + val id: LanguageId, + val code: String, + val name: String, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/LanguageId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/LanguageId.kt new file mode 100644 index 00000000..3f3c3a4d --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/LanguageId.kt @@ -0,0 +1,3 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +internal typealias LanguageId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/LinkMetadata.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/LinkMetadata.kt new file mode 100644 index 00000000..480f561b --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/LinkMetadata.kt @@ -0,0 +1,16 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class LinkMetadata( + val content_type: String? = null, + val title: String? = null, + val description: String? = null, + val image: DbUrl? = null, + val image_width: Long? = null, + val image_height: Long? = null, + val embed_video_url: DbUrl? = null, + val video_width: Long? = null, + val video_height: Long? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ListCommentLikes.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ListCommentLikes.kt new file mode 100644 index 00000000..cf66d0a8 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ListCommentLikes.kt @@ -0,0 +1,10 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class ListCommentLikes( + val comment_id: CommentId, + val page_cursor: PaginationCursor? = null, + val limit: Long? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ListCommunities.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ListCommunities.kt new file mode 100644 index 00000000..99e524a8 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ListCommunities.kt @@ -0,0 +1,18 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import it.vercruysse.lemmyapi.enums.ListingType +import it.vercruysse.lemmyapi.enums.SortType +import kotlinx.serialization.Serializable + +@Serializable +internal data class ListCommunities( + val type_: ListingType? /* "all" | "local" | "subscribed" | "moderator_view" | "suggested" */ = null, + val sort: SortType? /* "active_six_months" | "active_monthly" | "active_weekly" | "active_daily" | "hot" | "new" | "old" | "name_asc" | "name_desc" | "comments" | "posts" | "subscribers" | "subscribers_local" */ = null, + val time_range_seconds: Long? = null, + val show_nsfw: Boolean? = null, + val multi_community_id: MultiCommunityId? = null, + val search_term: String? = null, + val search_title_only: Boolean? = null, + val page_cursor: PaginationCursor? = null, + val limit: Long? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ListCommunityPendingFollows.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ListCommunityPendingFollows.kt new file mode 100644 index 00000000..650cb445 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ListCommunityPendingFollows.kt @@ -0,0 +1,11 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class ListCommunityPendingFollows( + val unread_only: Boolean? = null, + val all_communities: Boolean? = null, + val page_cursor: PaginationCursor? = null, + val limit: Long? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ListCustomEmojis.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ListCustomEmojis.kt new file mode 100644 index 00000000..58947e78 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ListCustomEmojis.kt @@ -0,0 +1,8 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class ListCustomEmojis( + val category: String? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ListCustomEmojisResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ListCustomEmojisResponse.kt new file mode 100644 index 00000000..64f6048b --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ListCustomEmojisResponse.kt @@ -0,0 +1,8 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class ListCustomEmojisResponse( + val custom_emojis: List, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ListInvitations.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ListInvitations.kt new file mode 100644 index 00000000..4b87ef87 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ListInvitations.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class ListInvitations( + val page_cursor: PaginationCursor? = null, + val limit: Long? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ListLoginsResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ListLoginsResponse.kt new file mode 100644 index 00000000..e59a28ac --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ListLoginsResponse.kt @@ -0,0 +1,8 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class ListLoginsResponse( + val logins: List, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ListMedia.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ListMedia.kt new file mode 100644 index 00000000..9ab2ad02 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ListMedia.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class ListMedia( + val page_cursor: PaginationCursor? = null, + val limit: Long? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ListMultiCommunities.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ListMultiCommunities.kt new file mode 100644 index 00000000..a131cc0d --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ListMultiCommunities.kt @@ -0,0 +1,17 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import it.vercruysse.lemmyapi.enums.MultiCommunityListingType +import it.vercruysse.lemmyapi.enums.MultiCommunitySortType +import kotlinx.serialization.Serializable + +@Serializable +internal data class ListMultiCommunities( + val type_: MultiCommunityListingType? /* "all" | "local" | "subscribed" */ = null, + val sort: MultiCommunitySortType? /* "new" | "old" | "name_asc" | "name_desc" | "communities" | "subscribers" | "subscribers_local" */ = null, + val creator_id: PersonId? = null, + val time_range_seconds: Long? = null, + val search_term: String? = null, + val search_title_only: Boolean? = null, + val page_cursor: PaginationCursor? = null, + val limit: Long? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ListNotifications.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ListNotifications.kt new file mode 100644 index 00000000..b746b6dc --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ListNotifications.kt @@ -0,0 +1,13 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import it.vercruysse.lemmyapi.enums.NotificationDataType +import kotlinx.serialization.Serializable + +@Serializable +internal data class ListNotifications( + val type_: NotificationDataType? /* "all" | "mention" | "reply" | "subscribed" | "private_message" | "mod_action" */ = null, + val unread_only: Boolean? = null, + val creator_id: PersonId? = null, + val page_cursor: PaginationCursor? = null, + val limit: Long? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ListPersonContent.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ListPersonContent.kt new file mode 100644 index 00000000..fd0003f4 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ListPersonContent.kt @@ -0,0 +1,15 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import it.vercruysse.lemmyapi.enums.PersonContentType +import kotlinx.serialization.Serializable + +@Serializable +internal data class ListPersonContent( + val type_: PersonContentType? /* "all" | "comments" | "posts" */ = null, + val person_id: PersonId? = null, + val username: String? = null, + val community_id: CommunityId? = null, + val community_name: String? = null, + val page_cursor: PaginationCursor? = null, + val limit: Long? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ListPersonHidden.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ListPersonHidden.kt new file mode 100644 index 00000000..a56d8f7d --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ListPersonHidden.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class ListPersonHidden( + val page_cursor: PaginationCursor? = null, + val limit: Long? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ListPersonLiked.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ListPersonLiked.kt new file mode 100644 index 00000000..a13f5190 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ListPersonLiked.kt @@ -0,0 +1,12 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import it.vercruysse.lemmyapi.enums.PersonContentType +import kotlinx.serialization.Serializable + +@Serializable +internal data class ListPersonLiked( + val type_: PersonContentType? /* "all" | "comments" | "posts" */ = null, + val like_type: String? /* "all" | "liked_only" | "disliked_only" */ = null, + val page_cursor: PaginationCursor? = null, + val limit: Long? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ListPersonRead.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ListPersonRead.kt new file mode 100644 index 00000000..2e5156a7 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ListPersonRead.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class ListPersonRead( + val page_cursor: PaginationCursor? = null, + val limit: Long? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ListPersonSaved.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ListPersonSaved.kt new file mode 100644 index 00000000..bcbaff03 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ListPersonSaved.kt @@ -0,0 +1,12 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import it.vercruysse.lemmyapi.enums.PersonContentType +import kotlinx.serialization.Serializable + +@Serializable +internal data class ListPersonSaved( + val type_: PersonContentType? /* "all" | "comments" | "posts" */ = null, + val search_term: String? = null, + val page_cursor: PaginationCursor? = null, + val limit: Long? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ListPersons.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ListPersons.kt new file mode 100644 index 00000000..b2fe8bca --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ListPersons.kt @@ -0,0 +1,15 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import it.vercruysse.lemmyapi.enums.ListingType +import it.vercruysse.lemmyapi.enums.PersonSortType +import kotlinx.serialization.Serializable + +@Serializable +internal data class ListPersons( + val type_: ListingType? /* "all" | "local" */ = null, + val sort: PersonSortType? /* "new" | "old" | "post_score" | "comment_score" */ = null, + val search_term: String? = null, + val search_title_only: Boolean? = null, + val page_cursor: PaginationCursor? = null, + val limit: Long? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ListPostLikes.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ListPostLikes.kt new file mode 100644 index 00000000..e78917c8 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ListPostLikes.kt @@ -0,0 +1,10 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class ListPostLikes( + val post_id: PostId, + val page_cursor: PaginationCursor? = null, + val limit: Long? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ListRegistrationApplications.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ListRegistrationApplications.kt new file mode 100644 index 00000000..b2e31a83 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ListRegistrationApplications.kt @@ -0,0 +1,10 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class ListRegistrationApplications( + val unread_only: Boolean? = null, + val page_cursor: PaginationCursor? = null, + val limit: Long? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ListReports.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ListReports.kt new file mode 100644 index 00000000..8160bcac --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ListReports.kt @@ -0,0 +1,18 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import it.vercruysse.lemmyapi.enums.ReportSortType +import it.vercruysse.lemmyapi.enums.ReportType +import kotlinx.serialization.Serializable + +@Serializable +internal data class ListReports( + val unresolved_only: Boolean? = null, + val type_: ReportType? /* "all" | "posts" | "comments" | "private_messages" | "communities" */ = null, + val post_id: PostId? = null, + val community_id: CommunityId? = null, + val sort: ReportSortType? /* "default" | "new" | "old" */ = null, + val page_cursor: PaginationCursor? = null, + val limit: Long? = null, + val show_community_rule_violations: Boolean? = null, + val my_reports_only: Boolean? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ListTaglines.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ListTaglines.kt new file mode 100644 index 00000000..ab2374dc --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ListTaglines.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class ListTaglines( + val page_cursor: PaginationCursor? = null, + val limit: Long? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/LocalImage.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/LocalImage.kt new file mode 100644 index 00000000..5d0544fb --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/LocalImage.kt @@ -0,0 +1,11 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class LocalImage( + val pictrs_alias: String, + val published_at: String, + val person_id: PersonId? = null, + val thumbnail_for_post_id: PostId? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/LocalImageView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/LocalImageView.kt new file mode 100644 index 00000000..a8148e3a --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/LocalImageView.kt @@ -0,0 +1,10 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class LocalImageView( + val local_image: LocalImage, + val person: Person, + val post: Post? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/LocalSite.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/LocalSite.kt new file mode 100644 index 00000000..c78f7c76 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/LocalSite.kt @@ -0,0 +1,63 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import it.vercruysse.lemmyapi.enums.CommentSortType +import it.vercruysse.lemmyapi.enums.FederationMode +import it.vercruysse.lemmyapi.enums.ImageMode +import it.vercruysse.lemmyapi.enums.ListingType +import it.vercruysse.lemmyapi.enums.PostListingMode +import it.vercruysse.lemmyapi.enums.RegistrationMode +import it.vercruysse.lemmyapi.enums.SortType +import kotlinx.serialization.Serializable + +@Serializable +internal data class LocalSite( + val id: LocalSiteId, + val site_id: SiteId, + val site_setup: Boolean, + val community_creation_admin_only: Boolean, + val email_verification_required: Boolean, + val application_question: String? = null, + val private_instance: Boolean, + val default_theme: String, + val default_post_listing_type: ListingType /* "all" | "local" | "subscribed" | "moderator_view" | "suggested" */, + val legal_information: String? = null, + val application_email_admins: Boolean, + val slur_filter_regex: String? = null, + val federation_enabled: Boolean, + val published_at: String, + val updated_at: String? = null, + val registration_mode: RegistrationMode /* "closed" | "require_application" | "require_invitation" | "open" */, + val reports_email_admins: Boolean, + val federation_signed_fetch: Boolean, + val default_post_listing_mode: PostListingMode /* "list" | "card" | "small_card" */, + val default_post_sort_type: SortType /* "active" | "hot" | "new" | "old" | "top" | "most_comments" | "new_comments" | "controversial" | "scaled" */, + val default_comment_sort_type: CommentSortType /* "hot" | "top" | "new" | "old" | "controversial" */, + val oauth_registration: Boolean, + val post_upvotes: FederationMode /* "all" | "local" | "disable" */, + val post_downvotes: FederationMode /* "all" | "local" | "disable" */, + val comment_upvotes: FederationMode /* "all" | "local" | "disable" */, + val comment_downvotes: FederationMode /* "all" | "local" | "disable" */, + val default_post_time_range_seconds: Long? = null, + val nsfw_content_disallowed: Boolean, + val users: Long, + val posts: Long, + val comments: Long, + val communities: Long, + val users_active_day: Long, + val users_active_week: Long, + val users_active_month: Long, + val users_active_half_year: Long, + val email_notifications_disabled: Boolean, + val suggested_multi_community_id: MultiCommunityId? = null, + val default_items_per_page: Long, + val image_mode: ImageMode /* "none" | "store_link_previews" | "proxy_all_images" */, + val image_proxy_bypass_domains: String? = null, + val image_upload_timeout_seconds: Long, + val image_max_thumbnail_size: Long, + val image_max_avatar_size: Long, + val image_max_banner_size: Long, + val image_max_upload_size: Long, + val image_allow_video_uploads: Boolean, + val image_upload_disabled: Boolean, + val max_invites_per_user_allowed: Long, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/LocalSiteId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/LocalSiteId.kt new file mode 100644 index 00000000..1872b217 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/LocalSiteId.kt @@ -0,0 +1,3 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +internal typealias LocalSiteId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/LocalSiteRateLimit.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/LocalSiteRateLimit.kt new file mode 100644 index 00000000..c48776cd --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/LocalSiteRateLimit.kt @@ -0,0 +1,24 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class LocalSiteRateLimit( + val local_site_id: LocalSiteId, + val message_max_requests: Long, + val message_interval_seconds: Long, + val post_max_requests: Long, + val post_interval_seconds: Long, + val register_max_requests: Long, + val register_interval_seconds: Long, + val image_max_requests: Long, + val image_interval_seconds: Long, + val comment_max_requests: Long, + val comment_interval_seconds: Long, + val search_max_requests: Long, + val search_interval_seconds: Long, + val published_at: String, + val updated_at: String? = null, + val import_user_settings_max_requests: Long, + val import_user_settings_interval_seconds: Long, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/LocalSiteUrlBlocklist.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/LocalSiteUrlBlocklist.kt new file mode 100644 index 00000000..cafafaa0 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/LocalSiteUrlBlocklist.kt @@ -0,0 +1,11 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class LocalSiteUrlBlocklist( + val id: Long, + val url: String, + val published_at: String, + val updated_at: String? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/LocalUser.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/LocalUser.kt new file mode 100644 index 00000000..2c5db4e1 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/LocalUser.kt @@ -0,0 +1,48 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import it.vercruysse.lemmyapi.enums.CommentSortType +import it.vercruysse.lemmyapi.enums.ListingType +import it.vercruysse.lemmyapi.enums.PostListingMode +import it.vercruysse.lemmyapi.enums.SortType +import it.vercruysse.lemmyapi.enums.VoteShow +import kotlinx.serialization.Serializable + +@Serializable +internal data class LocalUser( + val id: LocalUserId, + val person_id: PersonId, + val email: SensitiveString? = null, + val show_nsfw: Boolean, + val theme: String, + val default_post_sort_type: SortType /* "active" | "hot" | "new" | "old" | "top" | "most_comments" | "new_comments" | "controversial" | "scaled" */, + val default_listing_type: ListingType /* "all" | "local" | "subscribed" | "moderator_view" | "suggested" */, + val interface_language: String, + val show_avatars: Boolean, + val send_notifications_to_email: Boolean, + val show_bot_accounts: Boolean, + val show_read_posts: Boolean, + val email_verified: Boolean, + val accepted_application: Boolean, + val open_links_in_new_tab: Boolean, + val blur_nsfw: Boolean, + val infinite_scroll_enabled: Boolean, + val admin: Boolean, + val post_listing_mode: PostListingMode /* "list" | "card" | "small_card" */, + val totp_2fa_enabled: Boolean, + val animated_images_enabled: Boolean, + val collapse_bot_comments: Boolean, + val last_donation_notification_at: String, + val private_messages_enabled: Boolean, + val default_comment_sort_type: CommentSortType /* "hot" | "top" | "new" | "old" | "controversial" */, + val auto_mark_fetched_posts_as_read: Boolean, + val hide_posts_with_media: Boolean, + val default_post_time_range_seconds: Long? = null, + val show_score: Boolean, + val show_upvotes: Boolean, + val show_downvotes: VoteShow /* "show" | "show_for_others" | "hide" */, + val show_upvote_percentage: Boolean, + val show_person_votes: Boolean, + val default_items_per_page: Long, + val invited_by_local_user_id: LocalUserId? = null, + val show_media: Boolean, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/LocalUserId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/LocalUserId.kt new file mode 100644 index 00000000..cde3571c --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/LocalUserId.kt @@ -0,0 +1,3 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +internal typealias LocalUserId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/LocalUserInvite.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/LocalUserInvite.kt new file mode 100644 index 00000000..1b8ed2cf --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/LocalUserInvite.kt @@ -0,0 +1,14 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class LocalUserInvite( + val id: InvitationId, + val token: String, + val local_user_id: LocalUserId, + val max_uses: Long? = null, + val uses_count: Long, + val expires_at: String? = null, + val published_at: String, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/LocalUserView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/LocalUserView.kt new file mode 100644 index 00000000..6fdaf67b --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/LocalUserView.kt @@ -0,0 +1,11 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class LocalUserView( + val local_user: LocalUser, + val person: Person, + val banned: Boolean, + val ban_expires_at: String? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/LockComment.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/LockComment.kt new file mode 100644 index 00000000..a7d5b093 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/LockComment.kt @@ -0,0 +1,10 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class LockComment( + val comment_id: CommentId, + val locked: Boolean, + val reason: String, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/LockPost.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/LockPost.kt new file mode 100644 index 00000000..9541efd4 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/LockPost.kt @@ -0,0 +1,10 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class LockPost( + val post_id: PostId, + val locked: Boolean, + val reason: String, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/Login.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/Login.kt new file mode 100644 index 00000000..cb815c1a --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/Login.kt @@ -0,0 +1,11 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class Login( + val username_or_email: SensitiveString, + val password: SensitiveString, + val totp_2fa_token: String? = null, + val stay_logged_in: Boolean? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/LoginResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/LoginResponse.kt new file mode 100644 index 00000000..8160ff0e --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/LoginResponse.kt @@ -0,0 +1,10 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class LoginResponse( + val jwt: SensitiveString? = null, + val registration_created: Boolean, + val verify_email_sent: Boolean, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/LoginToken.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/LoginToken.kt new file mode 100644 index 00000000..998caf4a --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/LoginToken.kt @@ -0,0 +1,11 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class LoginToken( + val user_id: LocalUserId, + val published_at: String, + val ip: String? = null, + val user_agent: String? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/MarkManyPostsAsRead.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/MarkManyPostsAsRead.kt new file mode 100644 index 00000000..ca127b27 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/MarkManyPostsAsRead.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class MarkManyPostsAsRead( + val post_ids: List, + val read: Boolean, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/MarkNotificationAsRead.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/MarkNotificationAsRead.kt new file mode 100644 index 00000000..f5e7925e --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/MarkNotificationAsRead.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class MarkNotificationAsRead( + val notification_id: NotificationId, + val read: Boolean, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/MarkPostAsRead.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/MarkPostAsRead.kt new file mode 100644 index 00000000..22424884 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/MarkPostAsRead.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class MarkPostAsRead( + val post_id: PostId, + val read: Boolean, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ModEditPost.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ModEditPost.kt new file mode 100644 index 00000000..36f5a6fb --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ModEditPost.kt @@ -0,0 +1,10 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class ModEditPost( + val post_id: PostId, + val nsfw: Boolean? = null, + val tags: List? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/Modlog.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/Modlog.kt new file mode 100644 index 00000000..6fea6c98 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/Modlog.kt @@ -0,0 +1,16 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import it.vercruysse.lemmyapi.enums.ModlogKind +import kotlinx.serialization.Serializable + +@Serializable +internal data class Modlog( + val id: ModlogId, + val kind: ModlogKind /* "admin_add" | "admin_ban" | "admin_allow_instance" | "admin_block_instance" | "admin_purge_comment" | "admin_purge_community" | "admin_purge_person" | "admin_purge_post" | "mod_add_to_community" | "mod_ban_from_community" | "admin_feature_post_site" | "mod_feature_post_community" | "mod_change_community_visibility" | "mod_lock_post" | "mod_remove_comment" | "admin_remove_community" | "mod_remove_post" | "mod_transfer_community" | "mod_lock_comment" | "mod_warn_comment" | "mod_warn_post" */, + val is_revert: Boolean, + val reason: String? = null, + val expires_at: String? = null, + val published_at: String, + val bulk_action_parent_id: ModlogId? = null, + val child_count: Long, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ModlogId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ModlogId.kt new file mode 100644 index 00000000..a618f6be --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ModlogId.kt @@ -0,0 +1,3 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +internal typealias ModlogId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ModlogView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ModlogView.kt new file mode 100644 index 00000000..55cbb394 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ModlogView.kt @@ -0,0 +1,16 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +@SerialName("mod_action") +internal data class ModlogView( + val modlog: Modlog, + val moderator: Person? = null, + val target_person: Person? = null, + val target_instance: Instance? = null, + val target_community: Community? = null, + val target_post: Post? = null, + val target_comment: Comment? = null, +) : NotificationData diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/MultiCommunity.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/MultiCommunity.kt new file mode 100644 index 00000000..2e60b501 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/MultiCommunity.kt @@ -0,0 +1,23 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class MultiCommunity( + val id: MultiCommunityId, + val creator_id: PersonId, + val instance_id: InstanceId, + val name: String, + val title: String? = null, + val summary: String? = null, + val local: Boolean, + val deleted: Boolean, + val ap_id: DbUrl, + val last_refreshed_at: String, + val published_at: String, + val updated_at: String? = null, + val subscribers: Long, + val subscribers_local: Long, + val communities: Long, + val sidebar: String? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/MultiCommunityEntry.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/MultiCommunityEntry.kt new file mode 100644 index 00000000..76751b2f --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/MultiCommunityEntry.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class MultiCommunityEntry( + val multi_community_id: MultiCommunityId, + val community_id: CommunityId, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/MultiCommunityFollow.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/MultiCommunityFollow.kt new file mode 100644 index 00000000..d1544499 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/MultiCommunityFollow.kt @@ -0,0 +1,11 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import it.vercruysse.lemmyapi.enums.CommunityFollowerState +import kotlinx.serialization.Serializable + +@Serializable +internal data class MultiCommunityFollow( + val multi_community_id: MultiCommunityId, + val person_id: PersonId, + val follow_state: CommunityFollowerState /* "accepted" | "pending" | "approval_required" | "denied" */, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/MultiCommunityId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/MultiCommunityId.kt new file mode 100644 index 00000000..d7165bb7 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/MultiCommunityId.kt @@ -0,0 +1,3 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +internal typealias MultiCommunityId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/MultiCommunityResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/MultiCommunityResponse.kt new file mode 100644 index 00000000..03971f12 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/MultiCommunityResponse.kt @@ -0,0 +1,8 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class MultiCommunityResponse( + val multi_community_view: MultiCommunityView, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/MultiCommunityView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/MultiCommunityView.kt new file mode 100644 index 00000000..2adcf928 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/MultiCommunityView.kt @@ -0,0 +1,13 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import it.vercruysse.lemmyapi.enums.CommunityFollowerState +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +@SerialName("multi_community") +internal data class MultiCommunityView( + val multi: MultiCommunity, + val follow_state: CommunityFollowerState? /* "accepted" | "pending" | "approval_required" | "denied" */ = null, + val owner: Person, +) : ResolveObjectView diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/MyUserInfo.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/MyUserInfo.kt new file mode 100644 index 00000000..0807f60f --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/MyUserInfo.kt @@ -0,0 +1,17 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class MyUserInfo( + val local_user_view: LocalUserView, + val follows: List, + val moderates: List, + val multi_community_follows: List, + val community_blocks: List, + val instance_communities_blocks: List, + val instance_persons_blocks: List, + val person_blocks: List, + val keyword_blocks: List, + val discussion_languages: List, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/NotePerson.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/NotePerson.kt new file mode 100644 index 00000000..c2875f3c --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/NotePerson.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class NotePerson( + val person_id: PersonId, + val note: String, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/Notification.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/Notification.kt new file mode 100644 index 00000000..8d870d8b --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/Notification.kt @@ -0,0 +1,18 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import it.vercruysse.lemmyapi.enums.NotificationType +import kotlinx.serialization.Serializable + +@Serializable +internal data class Notification( + val id: NotificationId, + val recipient_id: PersonId, + val comment_id: CommentId? = null, + val read: Boolean, + val published_at: String, + val kind: NotificationType /* "mention" | "reply" | "subscribed" | "private_message" | "mod_action" */, + val post_id: PostId? = null, + val private_message_id: PrivateMessageId? = null, + val modlog_id: ModlogId? = null, + val creator_id: PersonId, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/NotificationData.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/NotificationData.kt new file mode 100644 index 00000000..7da614c7 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/NotificationData.kt @@ -0,0 +1,8 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.ExperimentalSerializationApi +import kotlinx.serialization.json.JsonClassDiscriminator + +@OptIn(ExperimentalSerializationApi::class) +@JsonClassDiscriminator("type_") +internal sealed interface NotificationData diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/NotificationId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/NotificationId.kt new file mode 100644 index 00000000..14701b9a --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/NotificationId.kt @@ -0,0 +1,3 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +internal typealias NotificationId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/NotificationView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/NotificationView.kt new file mode 100644 index 00000000..03ead1b1 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/NotificationView.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class NotificationView( + val notification: Notification, + val data: NotificationData, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/OAuthAccount.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/OAuthAccount.kt new file mode 100644 index 00000000..db59d342 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/OAuthAccount.kt @@ -0,0 +1,12 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class OAuthAccount( + val local_user_id: LocalUserId, + val oauth_provider_id: OAuthProviderId, + val oauth_user_id: String, + val published_at: String, + val updated_at: String? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/OAuthProviderId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/OAuthProviderId.kt new file mode 100644 index 00000000..0fcea1cf --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/OAuthProviderId.kt @@ -0,0 +1,3 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +internal typealias OAuthProviderId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PagedResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PagedResponse.kt new file mode 100644 index 00000000..8cbc8df6 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PagedResponse.kt @@ -0,0 +1,10 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class PagedResponse( + val items: List, + val next_page: PaginationCursor? = null, + val prev_page: PaginationCursor? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PaginationCursor.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PaginationCursor.kt new file mode 100644 index 00000000..08d4f57e --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PaginationCursor.kt @@ -0,0 +1,3 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +internal typealias PaginationCursor = String diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PendingFollow.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PendingFollow.kt new file mode 100644 index 00000000..19de7d25 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PendingFollow.kt @@ -0,0 +1,12 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import it.vercruysse.lemmyapi.enums.CommunityFollowerState +import kotlinx.serialization.Serializable + +@Serializable +internal data class PendingFollow( + val person: Person, + val community: Community, + val is_new_instance: Boolean, + val follow_state: CommunityFollowerState? /* "accepted" | "pending" | "approval_required" | "denied" */ = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PendingFollowerView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PendingFollowerView.kt new file mode 100644 index 00000000..989228ab --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PendingFollowerView.kt @@ -0,0 +1,12 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import it.vercruysse.lemmyapi.enums.CommunityFollowerState +import kotlinx.serialization.Serializable + +@Serializable +internal data class PendingFollowerView( + val person: Person, + val community: Community, + val is_new_instance: Boolean, + val follow_state: CommunityFollowerState? /* "accepted" | "pending" | "approval_required" | "denied" */ = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/Person.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/Person.kt new file mode 100644 index 00000000..ddc0c8fc --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/Person.kt @@ -0,0 +1,24 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class Person( + val id: PersonId, + val name: String, + val display_name: String? = null, + val avatar: DbUrl? = null, + val published_at: String, + val updated_at: String? = null, + val ap_id: DbUrl, + val bio: String? = null, + val local: Boolean, + val last_refreshed_at: String, + val banner: DbUrl? = null, + val deleted: Boolean, + val matrix_user_id: String? = null, + val bot_account: Boolean, + val instance_id: InstanceId, + val post_count: Long, + val comment_count: Long, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PersonActions.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PersonActions.kt new file mode 100644 index 00000000..8f41142f --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PersonActions.kt @@ -0,0 +1,13 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class PersonActions( + val blocked_at: String? = null, + val noted_at: String? = null, + val note: String? = null, + val voted_at: String? = null, + val upvotes: Long? = null, + val downvotes: Long? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PersonId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PersonId.kt new file mode 100644 index 00000000..6a0f1f09 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PersonId.kt @@ -0,0 +1,3 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +internal typealias PersonId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PersonResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PersonResponse.kt new file mode 100644 index 00000000..094c4800 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PersonResponse.kt @@ -0,0 +1,8 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class PersonResponse( + val person_view: PersonView, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PersonView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PersonView.kt new file mode 100644 index 00000000..31177566 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PersonView.kt @@ -0,0 +1,14 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +@SerialName("person") +internal data class PersonView( + val person: Person, + val is_admin: Boolean, + val person_actions: PersonActions? = null, + val banned: Boolean, + val ban_expires_at: String? = null, +) : ResolveObjectView diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PluginMetadata.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PluginMetadata.kt new file mode 100644 index 00000000..37c64e48 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PluginMetadata.kt @@ -0,0 +1,10 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class PluginMetadata( + val name: String, + val url: String? = null, + val description: String? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/Post.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/Post.kt new file mode 100644 index 00000000..95028de6 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/Post.kt @@ -0,0 +1,43 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +@SerialName("post") +internal data class Post( + val id: PostId, + val name: String, + val url: DbUrl? = null, + val body: String? = null, + val creator_id: PersonId, + val community_id: CommunityId, + val removed: Boolean, + val locked: Boolean, + val published_at: String, + val updated_at: String? = null, + val deleted: Boolean, + val nsfw: Boolean, + val embed_title: String? = null, + val embed_description: String? = null, + val thumbnail_url: DbUrl? = null, + val ap_id: DbUrl, + val local: Boolean, + val embed_video_url: DbUrl? = null, + val language_id: LanguageId, + val featured_community: Boolean, + val featured_local: Boolean, + val url_content_type: String? = null, + val alt_text: String? = null, + val scheduled_publish_time_at: String? = null, + val newest_comment_time_at: String? = null, + val comments: Long, + val score: Long, + val upvotes: Long, + val downvotes: Long, + val report_count: Long, + val unresolved_report_count: Long, + val federation_pending: Boolean, + val embed_video_width: Long? = null, + val embed_video_height: Long? = null, +) : PostOrCommentOrPrivateMessage diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PostActions.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PostActions.kt new file mode 100644 index 00000000..d47cbef4 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PostActions.kt @@ -0,0 +1,16 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import it.vercruysse.lemmyapi.enums.PostNotificationsMode +import kotlinx.serialization.Serializable + +@Serializable +internal data class PostActions( + val read_at: String? = null, + val read_comments_at: String? = null, + val saved_at: String? = null, + val voted_at: String? = null, + val hidden_at: String? = null, + val read_comments_amount: Long? = null, + val vote_is_upvote: Boolean? = null, + val notifications: PostNotificationsMode? /* "all_comments" | "replies_and_mentions" | "mute" */ = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PostCommentCombinedView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PostCommentCombinedView.kt new file mode 100644 index 00000000..85b71485 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PostCommentCombinedView.kt @@ -0,0 +1,8 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.ExperimentalSerializationApi +import kotlinx.serialization.json.JsonClassDiscriminator + +@OptIn(ExperimentalSerializationApi::class) +@JsonClassDiscriminator("type_") +internal sealed interface PostCommentCombinedView diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PostId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PostId.kt new file mode 100644 index 00000000..ddaebe65 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PostId.kt @@ -0,0 +1,3 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +internal typealias PostId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PostOrCommentOrPrivateMessage.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PostOrCommentOrPrivateMessage.kt new file mode 100644 index 00000000..186dff67 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PostOrCommentOrPrivateMessage.kt @@ -0,0 +1,8 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.ExperimentalSerializationApi +import kotlinx.serialization.json.JsonClassDiscriminator + +@OptIn(ExperimentalSerializationApi::class) +@JsonClassDiscriminator("type_") +internal sealed interface PostOrCommentOrPrivateMessage diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PostReport.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PostReport.kt new file mode 100644 index 00000000..3a31b35e --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PostReport.kt @@ -0,0 +1,19 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class PostReport( + val id: PostReportId, + val creator_id: PersonId, + val post_id: PostId, + val original_post_name: String, + val original_post_url: DbUrl? = null, + val original_post_body: String? = null, + val reason: String, + val resolved: Boolean, + val resolver_id: PersonId? = null, + val published_at: String, + val updated_at: String? = null, + val violates_instance_rules: Boolean, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PostReportId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PostReportId.kt new file mode 100644 index 00000000..57a3c4d1 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PostReportId.kt @@ -0,0 +1,3 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +internal typealias PostReportId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PostReportResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PostReportResponse.kt new file mode 100644 index 00000000..7a6ea95e --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PostReportResponse.kt @@ -0,0 +1,8 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class PostReportResponse( + val post_report_view: PostReportView, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PostReportView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PostReportView.kt new file mode 100644 index 00000000..d46d5f58 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PostReportView.kt @@ -0,0 +1,25 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +@SerialName("post") +internal data class PostReportView( + val post_report: PostReport, + val post: Post, + val community: Community, + val creator: Person, + val post_creator: Person, + val community_actions: CommunityActions? = null, + val post_actions: PostActions? = null, + val person_actions: PersonActions? = null, + val resolver: Person? = null, + val creator_is_admin: Boolean, + val creator_is_moderator: Boolean, + val creator_banned: Boolean, + val creator_ban_expires_at: String? = null, + val creator_banned_from_community: Boolean, + val creator_community_ban_expires_at: String? = null, + val tags: CommunityTagsView, +) : ReportCombinedView diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PostResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PostResponse.kt new file mode 100644 index 00000000..3770226d --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PostResponse.kt @@ -0,0 +1,8 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class PostResponse( + val post_view: PostView, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PostView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PostView.kt new file mode 100644 index 00000000..4febbf2b --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PostView.kt @@ -0,0 +1,24 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +@SerialName("post") +internal data class PostView( + val post: Post, + val creator: Person, + val community: Community, + val image_details: ImageDetails? = null, + val community_actions: CommunityActions? = null, + val person_actions: PersonActions? = null, + val post_actions: PostActions? = null, + val creator_is_admin: Boolean, + val tags: CommunityTagsView, + val can_mod: Boolean, + val creator_banned: Boolean, + val creator_ban_expires_at: String? = null, + val creator_is_moderator: Boolean, + val creator_banned_from_community: Boolean, + val creator_community_ban_expires_at: String? = null, +) : ResolveObjectView, PostCommentCombinedView diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PrivateMessage.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PrivateMessage.kt new file mode 100644 index 00000000..6718c26a --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PrivateMessage.kt @@ -0,0 +1,20 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +@SerialName("private_message") +internal data class PrivateMessage( + val id: PrivateMessageId, + val creator_id: PersonId, + val recipient_id: PersonId, + val content: String, + val deleted: Boolean, + val published_at: String, + val updated_at: String? = null, + val ap_id: DbUrl, + val local: Boolean, + val removed: Boolean, + val deleted_by_recipient: Boolean, +) : PostOrCommentOrPrivateMessage diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PrivateMessageId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PrivateMessageId.kt new file mode 100644 index 00000000..e04d7f7c --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PrivateMessageId.kt @@ -0,0 +1,3 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +internal typealias PrivateMessageId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PrivateMessageReport.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PrivateMessageReport.kt new file mode 100644 index 00000000..44db2bfa --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PrivateMessageReport.kt @@ -0,0 +1,16 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class PrivateMessageReport( + val id: PrivateMessageReportId, + val creator_id: PersonId, + val private_message_id: PrivateMessageId, + val original_pm_text: String, + val reason: String, + val resolved: Boolean, + val resolver_id: PersonId? = null, + val published_at: String, + val updated_at: String? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PrivateMessageReportId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PrivateMessageReportId.kt new file mode 100644 index 00000000..74ba9156 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PrivateMessageReportId.kt @@ -0,0 +1,3 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +internal typealias PrivateMessageReportId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PrivateMessageReportResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PrivateMessageReportResponse.kt new file mode 100644 index 00000000..2c985b7c --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PrivateMessageReportResponse.kt @@ -0,0 +1,8 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class PrivateMessageReportResponse( + val private_message_report_view: PrivateMessageReportView, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PrivateMessageReportView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PrivateMessageReportView.kt new file mode 100644 index 00000000..dc4f5cb0 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PrivateMessageReportView.kt @@ -0,0 +1,17 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +@SerialName("private_message") +internal data class PrivateMessageReportView( + val private_message_report: PrivateMessageReport, + val private_message: PrivateMessage, + val creator: Person, + val private_message_creator: Person, + val resolver: Person? = null, + val creator_is_admin: Boolean, + val creator_banned: Boolean, + val creator_ban_expires_at: String? = null, +) : ReportCombinedView diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PrivateMessageResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PrivateMessageResponse.kt new file mode 100644 index 00000000..ff485764 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PrivateMessageResponse.kt @@ -0,0 +1,8 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class PrivateMessageResponse( + val private_message_view: PrivateMessageView, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PrivateMessageView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PrivateMessageView.kt new file mode 100644 index 00000000..9c3cd1fa --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PrivateMessageView.kt @@ -0,0 +1,12 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +@SerialName("private_message") +internal data class PrivateMessageView( + val private_message: PrivateMessage, + val creator: Person, + val recipient: Person, +) : NotificationData diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PublicOAuthProvider.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PublicOAuthProvider.kt new file mode 100644 index 00000000..20204115 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PublicOAuthProvider.kt @@ -0,0 +1,13 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class PublicOAuthProvider( + val id: OAuthProviderId, + val display_name: String, + val authorization_endpoint: String, + val client_id: String, + val scopes: String, + val use_pkce: Boolean, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PurgeComment.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PurgeComment.kt new file mode 100644 index 00000000..78241558 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PurgeComment.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class PurgeComment( + val comment_id: CommentId, + val reason: String, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PurgeCommunity.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PurgeCommunity.kt new file mode 100644 index 00000000..1fa7a69f --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PurgeCommunity.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class PurgeCommunity( + val community_id: CommunityId, + val reason: String, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PurgePerson.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PurgePerson.kt new file mode 100644 index 00000000..986e7794 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PurgePerson.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class PurgePerson( + val person_id: PersonId, + val reason: String, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PurgePost.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PurgePost.kt new file mode 100644 index 00000000..34839db9 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/PurgePost.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class PurgePost( + val post_id: PostId, + val reason: String, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/Register.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/Register.kt new file mode 100644 index 00000000..601d9e14 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/Register.kt @@ -0,0 +1,18 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class Register( + val username: String, + val password: SensitiveString, + val password_verify: SensitiveString, + val show_nsfw: Boolean? = null, + val email: SensitiveString? = null, + val captcha_uuid: String? = null, + val captcha_answer: String? = null, + val honeypot: String? = null, + val answer: String? = null, + val stay_logged_in: Boolean? = null, + val token: String? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/RegistrationApplication.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/RegistrationApplication.kt new file mode 100644 index 00000000..52c56acf --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/RegistrationApplication.kt @@ -0,0 +1,14 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class RegistrationApplication( + val id: RegistrationApplicationId, + val local_user_id: LocalUserId, + val answer: String, + val admin_id: PersonId? = null, + val deny_reason: String? = null, + val published_at: String, + val updated_at: String? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/RegistrationApplicationId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/RegistrationApplicationId.kt new file mode 100644 index 00000000..cfa34d45 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/RegistrationApplicationId.kt @@ -0,0 +1,3 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +internal typealias RegistrationApplicationId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/RegistrationApplicationResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/RegistrationApplicationResponse.kt new file mode 100644 index 00000000..39536b68 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/RegistrationApplicationResponse.kt @@ -0,0 +1,8 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class RegistrationApplicationResponse( + val registration_application: RegistrationApplicationView, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/RegistrationApplicationView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/RegistrationApplicationView.kt new file mode 100644 index 00000000..72577ca8 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/RegistrationApplicationView.kt @@ -0,0 +1,11 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class RegistrationApplicationView( + val registration_application: RegistrationApplication, + val creator_local_user: LocalUser, + val creator: Person, + val admin: Person? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/RemoveComment.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/RemoveComment.kt new file mode 100644 index 00000000..2b7239bc --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/RemoveComment.kt @@ -0,0 +1,11 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class RemoveComment( + val comment_id: CommentId, + val removed: Boolean, + val reason: String, + val remove_children: Boolean? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/RemoveCommunity.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/RemoveCommunity.kt new file mode 100644 index 00000000..84be64af --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/RemoveCommunity.kt @@ -0,0 +1,10 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class RemoveCommunity( + val community_id: CommunityId, + val removed: Boolean, + val reason: String, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/RemovePost.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/RemovePost.kt new file mode 100644 index 00000000..46e5adc6 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/RemovePost.kt @@ -0,0 +1,11 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class RemovePost( + val post_id: PostId, + val removed: Boolean, + val reason: String, + val remove_children: Boolean? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ReportCombinedView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ReportCombinedView.kt new file mode 100644 index 00000000..b8cf0584 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ReportCombinedView.kt @@ -0,0 +1,8 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.ExperimentalSerializationApi +import kotlinx.serialization.json.JsonClassDiscriminator + +@OptIn(ExperimentalSerializationApi::class) +@JsonClassDiscriminator("type_") +internal sealed interface ReportCombinedView diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ResendVerificationEmail.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ResendVerificationEmail.kt new file mode 100644 index 00000000..c8408822 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ResendVerificationEmail.kt @@ -0,0 +1,8 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class ResendVerificationEmail( + val email: SensitiveString, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ResetPassword.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ResetPassword.kt new file mode 100644 index 00000000..d68261d2 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ResetPassword.kt @@ -0,0 +1,8 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class ResetPassword( + val email: SensitiveString, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ResolveCommentReport.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ResolveCommentReport.kt new file mode 100644 index 00000000..5019bc05 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ResolveCommentReport.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class ResolveCommentReport( + val report_id: CommentReportId, + val resolved: Boolean, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ResolveCommunityReport.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ResolveCommunityReport.kt new file mode 100644 index 00000000..e84d8c3c --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ResolveCommunityReport.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class ResolveCommunityReport( + val report_id: CommunityReportId, + val resolved: Boolean, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ResolveObject.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ResolveObject.kt new file mode 100644 index 00000000..692b6b05 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ResolveObject.kt @@ -0,0 +1,8 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class ResolveObject( + val q: String, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ResolveObjectView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ResolveObjectView.kt new file mode 100644 index 00000000..dbb5abeb --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ResolveObjectView.kt @@ -0,0 +1,8 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.ExperimentalSerializationApi +import kotlinx.serialization.json.JsonClassDiscriminator + +@OptIn(ExperimentalSerializationApi::class) +@JsonClassDiscriminator("type_") +internal sealed interface ResolveObjectView diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ResolvePostReport.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ResolvePostReport.kt new file mode 100644 index 00000000..d7005693 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ResolvePostReport.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class ResolvePostReport( + val report_id: PostReportId, + val resolved: Boolean, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ResolvePrivateMessageReport.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ResolvePrivateMessageReport.kt new file mode 100644 index 00000000..23bbb3ef --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/ResolvePrivateMessageReport.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class ResolvePrivateMessageReport( + val report_id: PrivateMessageReportId, + val resolved: Boolean, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/RevokeInvitation.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/RevokeInvitation.kt new file mode 100644 index 00000000..10968de0 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/RevokeInvitation.kt @@ -0,0 +1,8 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class RevokeInvitation( + val token: String, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/SaveComment.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/SaveComment.kt new file mode 100644 index 00000000..bdea5882 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/SaveComment.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class SaveComment( + val comment_id: CommentId, + val save: Boolean, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/SavePost.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/SavePost.kt new file mode 100644 index 00000000..904f893e --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/SavePost.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class SavePost( + val post_id: PostId, + val save: Boolean, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/SaveUserSettings.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/SaveUserSettings.kt new file mode 100644 index 00000000..bc9fcf13 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/SaveUserSettings.kt @@ -0,0 +1,46 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import it.vercruysse.lemmyapi.enums.CommentSortType +import it.vercruysse.lemmyapi.enums.ListingType +import it.vercruysse.lemmyapi.enums.PostListingMode +import it.vercruysse.lemmyapi.enums.SortType +import it.vercruysse.lemmyapi.enums.VoteShow +import kotlinx.serialization.Serializable + +@Serializable +internal data class SaveUserSettings( + val show_nsfw: Boolean? = null, + val blur_nsfw: Boolean? = null, + val theme: String? = null, + val default_listing_type: ListingType? /* "all" | "local" | "subscribed" | "moderator_view" | "suggested" */ = null, + val post_listing_mode: PostListingMode? /* "list" | "card" | "small_card" */ = null, + val default_post_sort_type: SortType? /* "active" | "hot" | "new" | "old" | "top" | "most_comments" | "new_comments" | "controversial" | "scaled" */ = null, + val default_post_time_range_seconds: Long? = null, + val default_items_per_page: Long? = null, + val default_comment_sort_type: CommentSortType? /* "hot" | "top" | "new" | "old" | "controversial" */ = null, + val interface_language: String? = null, + val display_name: String? = null, + val email: SensitiveString? = null, + val bio: String? = null, + val matrix_user_id: String? = null, + val show_avatars: Boolean? = null, + val show_media: Boolean? = null, + val send_notifications_to_email: Boolean? = null, + val bot_account: Boolean? = null, + val show_bot_accounts: Boolean? = null, + val show_read_posts: Boolean? = null, + val discussion_languages: List? = null, + val blocking_keywords: List? = null, + val open_links_in_new_tab: Boolean? = null, + val infinite_scroll_enabled: Boolean? = null, + val animated_images_enabled: Boolean? = null, + val private_messages_enabled: Boolean? = null, + val collapse_bot_comments: Boolean? = null, + val show_score: Boolean? = null, + val show_upvotes: Boolean? = null, + val show_downvotes: VoteShow? /* "show" | "show_for_others" | "hide" */ = null, + val show_upvote_percentage: Boolean? = null, + val auto_mark_fetched_posts_as_read: Boolean? = null, + val hide_posts_with_media: Boolean? = null, + val show_person_votes: Boolean? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/Search.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/Search.kt new file mode 100644 index 00000000..70a36cbf --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/Search.kt @@ -0,0 +1,22 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import it.vercruysse.lemmyapi.enums.ListingType +import it.vercruysse.lemmyapi.enums.SearchType +import kotlinx.serialization.Serializable + +@Serializable +internal data class Search( + val search_term: String, + val community_id: CommunityId? = null, + val community_name: String? = null, + val creator_id: PersonId? = null, + val creator_username: String? = null, + val type_: SearchType? /* "all" | "comments" | "posts" | "communities" | "users" | "multi_communities" */ = null, + val time_range_seconds: Long? = null, + val listing_type: ListingType? /* "all" | "local" | "subscribed" | "moderator_view" | "suggested" */ = null, + val title_only: Boolean? = null, + val post_url_only: Boolean? = null, + val show_nsfw: Boolean? = null, + val page_cursor: PaginationCursor? = null, + val limit: Long? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/SearchResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/SearchResponse.kt new file mode 100644 index 00000000..02ecbe35 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/SearchResponse.kt @@ -0,0 +1,15 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class SearchResponse( + val resolve: ResolveObjectView? = null, + val comments: List, + val posts: List, + val communities: List, + val persons: List, + val multi_communities: List, + val prev_page: PaginationCursor? = null, + val next_page: PaginationCursor? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/SensitiveString.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/SensitiveString.kt new file mode 100644 index 00000000..3b494c4c --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/SensitiveString.kt @@ -0,0 +1,3 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +internal typealias SensitiveString = String diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/Site.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/Site.kt new file mode 100644 index 00000000..b1a9013d --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/Site.kt @@ -0,0 +1,20 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class Site( + val id: SiteId, + val name: String, + val sidebar: String? = null, + val published_at: String, + val updated_at: String? = null, + val icon: DbUrl? = null, + val banner: DbUrl? = null, + val summary: String? = null, + val ap_id: DbUrl, + val last_refreshed_at: String, + val inbox_url: DbUrl, + val instance_id: InstanceId, + val content_warning: String? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/SiteId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/SiteId.kt new file mode 100644 index 00000000..25b4f2a9 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/SiteId.kt @@ -0,0 +1,3 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +internal typealias SiteId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/SiteResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/SiteResponse.kt new file mode 100644 index 00000000..4138b49e --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/SiteResponse.kt @@ -0,0 +1,8 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class SiteResponse( + val site_view: SiteView, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/SiteView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/SiteView.kt new file mode 100644 index 00000000..2eeec6f7 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/SiteView.kt @@ -0,0 +1,11 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class SiteView( + val site: Site, + val local_site: LocalSite, + val local_site_rate_limit: LocalSiteRateLimit, + val instance: Instance, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/Tagline.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/Tagline.kt new file mode 100644 index 00000000..dbb967b4 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/Tagline.kt @@ -0,0 +1,11 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class Tagline( + val id: TaglineId, + val content: String, + val published_at: String, + val updated_at: String? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/TaglineId.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/TaglineId.kt new file mode 100644 index 00000000..345c2b4f --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/TaglineId.kt @@ -0,0 +1,3 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +internal typealias TaglineId = Long diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/TaglineResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/TaglineResponse.kt new file mode 100644 index 00000000..2dad3bee --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/TaglineResponse.kt @@ -0,0 +1,8 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class TaglineResponse( + val tagline: Tagline, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/TransferCommunity.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/TransferCommunity.kt new file mode 100644 index 00000000..352a11e5 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/TransferCommunity.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class TransferCommunity( + val community_id: CommunityId, + val person_id: PersonId, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/UnreadCountsResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/UnreadCountsResponse.kt new file mode 100644 index 00000000..cbc44624 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/UnreadCountsResponse.kt @@ -0,0 +1,11 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class UnreadCountsResponse( + val notification_count: Long, + val report_count: Long? = null, + val pending_follow_count: Long? = null, + val registration_application_count: Long? = null, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/UploadImageResponse.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/UploadImageResponse.kt new file mode 100644 index 00000000..99b733e1 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/UploadImageResponse.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class UploadImageResponse( + val image_url: String, + val filename: String, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/UserBlockInstanceCommunitiesParams.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/UserBlockInstanceCommunitiesParams.kt new file mode 100644 index 00000000..6ab283e8 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/UserBlockInstanceCommunitiesParams.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class UserBlockInstanceCommunitiesParams( + val instance_id: InstanceId, + val block: Boolean, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/UserBlockInstancePersonsParams.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/UserBlockInstancePersonsParams.kt new file mode 100644 index 00000000..07427d6a --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/UserBlockInstancePersonsParams.kt @@ -0,0 +1,9 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class UserBlockInstancePersonsParams( + val instance_id: InstanceId, + val block: Boolean, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/UserSettingsBackup.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/UserSettingsBackup.kt new file mode 100644 index 00000000..b99c8a9b --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/UserSettingsBackup.kt @@ -0,0 +1,23 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class UserSettingsBackup( + val display_name: String? = null, + val bio: String? = null, + val avatar: String? = null, + val banner: String? = null, + val matrix_id: String? = null, + val bot_account: Boolean? = null, + val settings: LocalUser? = null, + val followed_communities: List, + val saved_posts: List, + val saved_comments: List, + val blocked_communities: List, + val blocked_users: List, + val blocked_instances_communities: List, + val blocked_instances_persons: List, + val blocking_keywords: List, + val discussion_languages: List, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/VerifyEmail.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/VerifyEmail.kt new file mode 100644 index 00000000..a97b39ad --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/VerifyEmail.kt @@ -0,0 +1,8 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class VerifyEmail( + val token: String, +) diff --git a/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/VoteView.kt b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/VoteView.kt new file mode 100644 index 00000000..f83289f8 --- /dev/null +++ b/app/src/commonMain/kotlin/it/vercruysse/lemmyapi/v1/x0/x0/datatypes/VoteView.kt @@ -0,0 +1,11 @@ +package it.vercruysse.lemmyapi.v1.x0.x0.datatypes + +import kotlinx.serialization.Serializable + +@Serializable +internal data class VoteView( + val creator: Person, + val creator_banned: Boolean, + val creator_banned_from_community: Boolean, + val is_upvote: Boolean, +) diff --git a/app/src/commonTest/kotlin/TestStuff.kt b/app/src/commonTest/kotlin/TestStuff.kt deleted file mode 100644 index fa57ccc1..00000000 --- a/app/src/commonTest/kotlin/TestStuff.kt +++ /dev/null @@ -1,24 +0,0 @@ -import io.ktor.http.* -import it.vercruysse.lemmyapi.LemmyApi -import it.vercruysse.lemmyapi.datatypes.GetPosts -import kotlinx.coroutines.test.runTest -import kotlin.test.Ignore -import kotlin.test.Test - -@Ignore -class TestStuff { - @Test - fun test() { - val url = Url("lemmy.ml") - println(url.protocol) - } - - @Test - fun test2() = runTest { - val api = LemmyApi.getLemmyApi("lemmy.ml") - - println(api.version) - println(api.getSite()) - println(api.getPosts(GetPosts())) - } -} diff --git a/app/src/commonTest/kotlin/utils/UtilTest.kt b/app/src/commonTest/kotlin/utils/UtilTest.kt index 42f4d4af..5b16128c 100644 --- a/app/src/commonTest/kotlin/utils/UtilTest.kt +++ b/app/src/commonTest/kotlin/utils/UtilTest.kt @@ -1,7 +1,7 @@ package utils -import it.vercruysse.lemmyapi.dto.SortType import it.vercruysse.lemmyapi.dto.getSupportedEntries +import it.vercruysse.lemmyapi.enums.SortType import it.vercruysse.lemmyapi.utils.constructBaseUrl import it.vercruysse.lemmyapi.utils.isBetweenVersions import kotlin.test.Test diff --git a/app/src/jvmTest/kotlin/Controllers.kt b/app/src/jvmTest/kotlin/Controllers.kt index 093bb78e..cb91c12d 100644 --- a/app/src/jvmTest/kotlin/Controllers.kt +++ b/app/src/jvmTest/kotlin/Controllers.kt @@ -5,4 +5,5 @@ val controllerVersions = arrayOf( "0.19.4", "0.19.6", "0.19.11", + "1.0.0", ) diff --git a/app/src/jvmTest/kotlin/GetCorrectControllerTest.kt b/app/src/jvmTest/kotlin/GetCorrectControllerTest.kt index 3798beae..b0316faf 100644 --- a/app/src/jvmTest/kotlin/GetCorrectControllerTest.kt +++ b/app/src/jvmTest/kotlin/GetCorrectControllerTest.kt @@ -23,5 +23,8 @@ class GetCorrectControllerTest { val controller6 = LemmyApi.getLemmyApi(instance = "lemmy.world", version = "0.19.11") assertInstanceOf(it.vercruysse.lemmyapi.v0.x19.x11.LemmyApiUniWrapper::class.java, controller6) + + val controller7 = LemmyApi.getLemmyApi(instance = "infosec.pub", version = "0.19.11-n.1") + assertInstanceOf(it.vercruysse.lemmyapi.v0.x19.x11.LemmyApiUniWrapper::class.java, controller7) } } diff --git a/app/src/jvmTest/kotlin/JavaSerializableTest.kt b/app/src/jvmTest/kotlin/JavaSerializableTest.kt index 069ea2a2..8dc4f7e5 100644 --- a/app/src/jvmTest/kotlin/JavaSerializableTest.kt +++ b/app/src/jvmTest/kotlin/JavaSerializableTest.kt @@ -14,7 +14,7 @@ class JavaSerializableTest { community_id = 1, removed = false, locked = false, - published = "published", + published_at = "published", deleted = false, nsfw = false, ap_id = "ap_id", @@ -22,6 +22,17 @@ class JavaSerializableTest { language_id = 1, featured_community = false, featured_local = false, + url_content_type = null, + alt_text = null, + scheduled_publish_time_at = null, + comments = 0L, + score = 0L, + upvotes = 0L, + downvotes = 0, + newest_comment_time_at = "newest_comment_time", + report_count = 0, + unresolved_report_count = 0, + federation_pending = false, ) assertInstanceOf(Serializable::class.java, post) diff --git a/app/src/jvmTest/kotlin/PostsListPageParamTest.kt b/app/src/jvmTest/kotlin/PostsListPageParamTest.kt index 03818cfb..0b048f04 100644 --- a/app/src/jvmTest/kotlin/PostsListPageParamTest.kt +++ b/app/src/jvmTest/kotlin/PostsListPageParamTest.kt @@ -46,7 +46,7 @@ class PostsListPageParamTest { // page_cursor takes priority // never send pagination_guard // work with null and value - if (url.encodedPath != "/api/v3/post/list") { + if (url.encodedPath != "/api/v3/post/list" && url.encodedPath != "/api/v4/post/list") { success = false } else if (url.parameters.contains("page_cursor") && url.parameters.contains("page")) { success = false @@ -55,11 +55,19 @@ class PostsListPageParamTest { } if (success) { - respond( - content = ByteReadChannel("""{"posts": [], "next_page": null}"""), - status = HttpStatusCode.OK, - headers = headersOf(HttpHeaders.ContentType, "application/json"), - ) + if (url.encodedPath.startsWith("/api/v4")) { + respond( + content = ByteReadChannel("""{"items": [], "next_page": null}"""), + status = HttpStatusCode.OK, + headers = headersOf(HttpHeaders.ContentType, "application/json"), + ) + } else { + respond( + content = ByteReadChannel("""{"posts": [], "next_page": null}"""), + status = HttpStatusCode.OK, + headers = headersOf(HttpHeaders.ContentType, "application/json"), + ) + } } else { respond( content = ByteReadChannel("Failed validation"), @@ -93,7 +101,7 @@ class PostsListPageParamTest { controllerVersions.forEach { runBlocking { val api = LemmyApi.getLemmyApi("lemmy.ml", it) - var resp = api.getPosts(GetPosts()) + val resp = api.getPosts(GetPosts()) assertDoesNotThrow("Failed for $it") { resp.getOrThrow() } } } @@ -104,7 +112,7 @@ class PostsListPageParamTest { controllerVersions.forEach { runBlocking { val api = LemmyApi.getLemmyApi("lemmy.ml", it) - var resp = api.getPosts(GetPosts(page = 1)) + val resp = api.getPosts(GetPosts(page = 1)) assertDoesNotThrow("Failed for $it") { resp.getOrThrow() } } } @@ -115,7 +123,7 @@ class PostsListPageParamTest { controllerVersions.forEach { runBlocking { val api = LemmyApi.getLemmyApi("lemmy.ml", it) - var resp = api.getPosts(GetPosts(page_cursor = "cursor")) + val resp = api.getPosts(GetPosts(page_cursor = "cursor")) assertDoesNotThrow("Failed for $it") { resp.getOrThrow() } } } @@ -126,7 +134,7 @@ class PostsListPageParamTest { controllerVersions.forEach { runBlocking { val api = LemmyApi.getLemmyApi("lemmy.ml", it) - var resp = api.getPosts(GetPosts(page_cursor = null)) + val resp = api.getPosts(GetPosts(page_cursor = null)) assertDoesNotThrow("Failed for $it") { resp.getOrThrow() } } } @@ -137,7 +145,7 @@ class PostsListPageParamTest { controllerVersions.forEach { runBlocking { val api = LemmyApi.getLemmyApi("lemmy.ml", it) - var resp = api.getPosts(GetPosts(page = 1, page_cursor = "cursor")) + val resp = api.getPosts(GetPosts(page = 1, page_cursor = "cursor")) assertDoesNotThrow("Failed for $it") { resp.getOrThrow() } } } @@ -148,7 +156,7 @@ class PostsListPageParamTest { controllerVersions.forEach { runBlocking { val api = LemmyApi.getLemmyApi("lemmy.ml", it) - var resp = api.getPosts(GetPosts(page = 1, page_cursor = null)) + val resp = api.getPosts(GetPosts(page = 1, page_cursor = null)) assertDoesNotThrow("Failed for $it") { resp.getOrThrow() } } } diff --git a/app/src/jvmTest/kotlin/TestPictrs.kt b/app/src/jvmTest/kotlin/TestPictrs.kt deleted file mode 100644 index 623f7ed8..00000000 --- a/app/src/jvmTest/kotlin/TestPictrs.kt +++ /dev/null @@ -1,20 +0,0 @@ -import kotlin.test.Test - -class TestPictrs { - @Test - fun upload() { -// val api = PictrsService(getKtor("https://lemmy.one"), false) -// -// println( -// api.uploadImage( -// UploadImage( -// auth = "", -// images = listOf( -// File("temp", "test4.jpg").readBytes(), -// // File("temp", "test3.jpg").readBytes() -// ), -// ), -// ), -// ) - } -} diff --git a/gradle.properties b/gradle.properties index 7c991f8e..89da0067 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,7 @@ kotlin.code.style=official +android.useAndroidX=true +org.gradle.configuration-cache=true +org.gradle.jvmargs=-Xmx4G -XX:MaxMetaspaceSize=1G POM_NAME=Lemmy Backwards Compatible API POM_DESCRIPTION=Kotlin multiplatform Backward compatible Lemmy API client @@ -19,5 +22,5 @@ POM_DEVELOPER_URL=https://github.com/MV-GH POM_ARTIFACT_ID=lemmy-api GROUP=it.vercruysse.lemmyapi -VERSION_NAME=0.4.1 +VERSION_NAME=0.5.0-alpha.7 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index df97d72b..7a055038 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,7 +1,9 @@ +#Sun May 24 01:53:04 CEST 2026 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip -networkTimeout=10000 +distributionSha256Sum=bafc141b619ad6350fd975fc903156dd5c151998cc8b058e8c1044ab5f7b031f +distributionUrl=https\://services.gradle.org/distributions/gradle-9.5.1-bin.zip +networkTimeout=60000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/kotlin-js-store/yarn.lock b/kotlin-js-store/yarn.lock index ba293031..36ed7c26 100644 --- a/kotlin-js-store/yarn.lock +++ b/kotlin-js-store/yarn.lock @@ -2,16 +2,33 @@ # yarn lockfile v1 -ansi-colors@^4.1.3: - version "4.1.3" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" - integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== +"@isaacs/cliui@^8.0.2": + version "8.0.2" + resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" + integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== + dependencies: + string-width "^5.1.2" + string-width-cjs "npm:string-width@^4.2.0" + strip-ansi "^7.0.1" + strip-ansi-cjs "npm:strip-ansi@^6.0.1" + wrap-ansi "^8.1.0" + wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" + +"@pkgjs/parseargs@^0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" + integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== ansi-regex@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== +ansi-regex@^6.2.2: + version "6.2.2" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.2.2.tgz#60216eea464d864597ce2832000738a0589650c1" + integrity sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg== + ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" @@ -19,13 +36,10 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" -anymatch@~3.1.2: - version "3.1.3" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" - integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" +ansi-styles@^6.1.0: + version "6.2.3" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.3.tgz#c044d5dcc521a076413472597a1acb1f103c4041" + integrity sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg== argparse@^2.0.1: version "2.0.1" @@ -37,25 +51,13 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== -binary-extensions@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" - integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== - -brace-expansion@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" - integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== +brace-expansion@^2.0.2: + version "2.1.0" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.1.0.tgz#4f41a41190216ee36067ec381526fe9539c4f0ae" + integrity sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w== dependencies: balanced-match "^1.0.0" -braces@~3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" - integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== - dependencies: - fill-range "^7.1.1" - browser-stdout@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" @@ -79,28 +81,20 @@ chalk@^4.1.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chokidar@^3.5.3: - version "3.6.0" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" - integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== - dependencies: - anymatch "~3.1.2" - braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" - optionalDependencies: - fsevents "~2.3.2" +chokidar@^4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-4.0.3.tgz#7be37a4c03c9aee1ecfe862a4a23b2c70c205d30" + integrity sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA== + dependencies: + readdirp "^4.0.1" -cliui@^7.0.2: - version "7.0.4" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" - integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== dependencies: string-width "^4.2.0" - strip-ansi "^6.0.0" + strip-ansi "^6.0.1" wrap-ansi "^7.0.0" color-convert@^2.0.1: @@ -115,6 +109,15 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +cross-spawn@^7.0.6: + version "7.0.6" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" + integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + debug@^4.3.5: version "4.3.7" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.7.tgz#87945b4151a011d76d95a198d7111c865c360a52" @@ -127,16 +130,26 @@ decamelize@^4.0.0: resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== -diff@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-5.2.0.tgz#26ded047cd1179b78b9537d5ef725503ce1ae531" - integrity sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A== +diff@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-7.0.0.tgz#3fb34d387cd76d803f6eebea67b921dab0182a9a" + integrity sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw== + +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== emoji-regex@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + escalade@^3.1.1: version "3.1.2" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" @@ -147,13 +160,6 @@ escape-string-regexp@^4.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== -fill-range@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" - integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== - dependencies: - to-regex-range "^5.0.1" - find-up@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" @@ -167,43 +173,35 @@ flat@^5.0.2: resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== +foreground-child@^3.1.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.1.tgz#32e8e9ed1b68a3497befb9ac2b6adf92a638576f" + integrity sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw== + dependencies: + cross-spawn "^7.0.6" + signal-exit "^4.0.1" + format-util@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/format-util/-/format-util-1.0.5.tgz#1ffb450c8a03e7bccffe40643180918cc297d271" integrity sha512-varLbTj0e0yVyRpqQhuWV+8hlePAgaoFRhNFj50BNjEIrw1/DphHSObtqwskVCPWNgzwPoQrZAbfa/SBiicNeg== -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== - -fsevents@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" - integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== - get-caller-file@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -glob-parent@~5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" - integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== +glob@^10.4.5: + version "10.5.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.5.0.tgz#8ec0355919cd3338c28428a23d4f24ecc5fe738c" + integrity sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg== dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^5.0.1" - once "^1.3.0" + foreground-child "^3.1.0" + jackspeak "^3.1.2" + minimatch "^9.0.4" + minipass "^7.1.2" + package-json-from-dist "^1.0.0" + path-scurry "^1.11.1" has-flag@^4.0.0: version "4.0.0" @@ -215,47 +213,15 @@ he@^1.2.0: resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== - is-fullwidth-code-point@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== -is-glob@^4.0.1, is-glob@~4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== +is-path-inside@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== is-plain-obj@^2.1.0: version "2.1.0" @@ -267,6 +233,20 @@ is-unicode-supported@^0.1.0: resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +jackspeak@^3.1.2: + version "3.4.3" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a" + integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== + dependencies: + "@isaacs/cliui" "^8.0.2" + optionalDependencies: + "@pkgjs/parseargs" "^0.11.0" + js-yaml@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" @@ -274,10 +254,10 @@ js-yaml@^4.1.0: dependencies: argparse "^2.0.1" -kotlin-web-helpers@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/kotlin-web-helpers/-/kotlin-web-helpers-2.0.0.tgz#b112096b273c1e733e0b86560998235c09a19286" - integrity sha512-xkVGl60Ygn/zuLkDPx+oHj7jeLR7hCvoNF99nhwXMn8a3ApB4lLiC9pk4ol4NHPjyoCbvQctBqvzUcp8pkqyWw== +kotlin-web-helpers@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/kotlin-web-helpers/-/kotlin-web-helpers-3.0.0.tgz#3ed6b48f694f74bb60a737a9d7e2c0e3b29abdb9" + integrity sha512-kdQO4AJQkUPvpLh9aglkXDRyN+CfXO7pKq+GESEnxooBFkQpytLrqZis3ABvmFN1cGw/ZQ/K38u5sRGW+NfBnw== dependencies: format-util "^1.0.5" @@ -296,37 +276,48 @@ log-symbols@^4.1.0: chalk "^4.1.0" is-unicode-supported "^0.1.0" -minimatch@^5.0.1, minimatch@^5.1.6: - version "5.1.6" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" - integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== +lru-cache@^10.2.0: + version "10.4.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" + integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== + +minimatch@^9.0.4, minimatch@^9.0.5: + version "9.0.9" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.9.tgz#9b0cb9fcb78087f6fd7eababe2511c4d3d60574e" + integrity sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg== dependencies: - brace-expansion "^2.0.1" + brace-expansion "^2.0.2" + +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: + version "7.1.3" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.3.tgz#79389b4eb1bb2d003a9bba87d492f2bd37bdc65b" + integrity sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A== -mocha@10.7.3: - version "10.7.3" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.7.3.tgz#ae32003cabbd52b59aece17846056a68eb4b0752" - integrity sha512-uQWxAu44wwiACGqjbPYmjo7Lg8sFrS3dQe7PP2FQI+woptP4vZXSMcfMyFL/e1yFEeEpV4RtyTpZROOKmxis+A== +mocha@11.7.5: + version "11.7.5" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-11.7.5.tgz#58f5bbfa5e0211ce7e5ee6128107cefc2515a627" + integrity sha512-mTT6RgopEYABzXWFx+GcJ+ZQ32kp4fMf0xvpZIIfSq9Z8lC/++MtcCnQ9t5FP2veYEP95FIYSvW+U9fV4xrlig== dependencies: - ansi-colors "^4.1.3" browser-stdout "^1.3.1" - chokidar "^3.5.3" + chokidar "^4.0.1" debug "^4.3.5" - diff "^5.2.0" + diff "^7.0.0" escape-string-regexp "^4.0.0" find-up "^5.0.0" - glob "^8.1.0" + glob "^10.4.5" he "^1.2.0" + is-path-inside "^3.0.3" js-yaml "^4.1.0" log-symbols "^4.1.0" - minimatch "^5.1.6" + minimatch "^9.0.5" ms "^2.1.3" + picocolors "^1.1.1" serialize-javascript "^6.0.2" strip-json-comments "^3.1.1" supports-color "^8.1.1" - workerpool "^6.5.1" - yargs "^16.2.0" - yargs-parser "^20.2.9" + workerpool "^9.2.0" + yargs "^17.7.2" + yargs-parser "^21.1.1" yargs-unparser "^2.0.0" ms@^2.1.3: @@ -334,18 +325,6 @@ ms@^2.1.3: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -once@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== - dependencies: - wrappy "1" - p-limit@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" @@ -360,15 +339,33 @@ p-locate@^5.0.0: dependencies: p-limit "^3.0.2" +package-json-from-dist@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505" + integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== + path-exists@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== -picomatch@^2.0.4, picomatch@^2.2.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-scurry@^1.11.1: + version "1.11.1" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" + integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== + dependencies: + lru-cache "^10.2.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + +picocolors@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" + integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== randombytes@^2.1.0: version "2.1.0" @@ -377,12 +374,10 @@ randombytes@^2.1.0: dependencies: safe-buffer "^5.1.0" -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== - dependencies: - picomatch "^2.2.1" +readdirp@^4.0.1: + version "4.1.2" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-4.1.2.tgz#eb85801435fbf2a7ee58f19e0921b068fc69948d" + integrity sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg== require-directory@^2.1.1: version "2.1.1" @@ -401,6 +396,23 @@ serialize-javascript@^6.0.2: dependencies: randombytes "^2.1.0" +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +signal-exit@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== + source-map-support@0.5.21: version "0.5.21" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" @@ -414,7 +426,7 @@ source-map@^0.6.0: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -string-width@^4.1.0, string-width@^4.2.0: +"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -423,13 +435,29 @@ string-width@^4.1.0, string-width@^4.2.0: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -strip-ansi@^6.0.0, strip-ansi@^6.0.1: +string-width@^5.0.1, string-width@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" + +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: ansi-regex "^5.0.1" +strip-ansi@^7.0.1: + version "7.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.2.0.tgz#d22a269522836a627af8d04b5c3fd2c7fa3e32e3" + integrity sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w== + dependencies: + ansi-regex "^6.2.2" + strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" @@ -449,24 +477,19 @@ supports-color@^8.1.1: dependencies: has-flag "^4.0.0" -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: - is-number "^7.0.0" + isexe "^2.0.0" -typescript@5.5.4: - version "5.5.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.5.4.tgz#d9852d6c82bad2d2eda4fd74a5762a8f5909e9ba" - integrity sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q== +workerpool@^9.2.0: + version "9.3.4" + resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-9.3.4.tgz#f6c92395b2141afd78e2a889e80cb338fe9fca41" + integrity sha512-TmPRQYYSAnnDiEB0P/Ytip7bFGvqnSU6I2BcuSw7Hx+JSg/DsUi5ebYfc8GYaSdpuvOcEs6dXxPurOYpe9QFwg== -workerpool@^6.5.1: - version "6.5.1" - resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.5.1.tgz#060f73b39d0caf97c6db64da004cd01b4c099544" - integrity sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA== - -wrap-ansi@^7.0.0: +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== @@ -475,25 +498,29 @@ wrap-ansi@^7.0.0: string-width "^4.1.0" strip-ansi "^6.0.0" -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== +wrap-ansi@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" + integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== + dependencies: + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" -ws@8.18.0: - version "8.18.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.0.tgz#0d7505a6eafe2b0e712d232b42279f53bc289bbc" - integrity sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw== +ws@8.18.3: + version "8.18.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.3.tgz#b56b88abffde62791c639170400c93dcb0c95472" + integrity sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg== y18n@^5.0.5: version "5.0.8" resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== -yargs-parser@^20.2.2, yargs-parser@^20.2.9: - version "20.2.9" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" - integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== +yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== yargs-unparser@^2.0.0: version "2.0.0" @@ -505,18 +532,18 @@ yargs-unparser@^2.0.0: flat "^5.0.2" is-plain-obj "^2.1.0" -yargs@^16.2.0: - version "16.2.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" - integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== +yargs@^17.7.2: + version "17.7.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== dependencies: - cliui "^7.0.2" + cliui "^8.0.1" escalade "^3.1.1" get-caller-file "^2.0.5" require-directory "^2.1.1" - string-width "^4.2.0" + string-width "^4.2.3" y18n "^5.0.5" - yargs-parser "^20.2.2" + yargs-parser "^21.1.1" yocto-queue@^0.1.0: version "0.1.0" diff --git a/settings.gradle.kts b/settings.gradle.kts index a86988d5..ae292546 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -14,9 +14,9 @@ dependencyResolutionManagement { } plugins { - id("org.gradle.toolchains.foojay-resolver-convention") version "0.8.0" - kotlin("jvm") version "2.1.10" apply false - id("com.android.library") version "8.7.3" apply false + id("org.gradle.toolchains.foojay-resolver-convention") version "1.0.0" + kotlin("jvm") version "2.3.21" apply false + id("com.android.kotlin.multiplatform.library") version "9.2.1" apply false } rootProject.name = "LemmyBackwardsCompatibleAPI"