// Package gen provides primitives to interact with the openapi HTTP API. // // Code generated by github.com/oapi-codegen/oapi-codegen/v2 version v2.4.1 DO NOT EDIT. package gen import ( "bytes" "compress/gzip" "context" "encoding/base64" "encoding/json" "fmt" "io" "net/http" "net/url" "path" "strings" "time" "github.com/getkin/kin-openapi/openapi3" "github.com/go-chi/chi/v5" "github.com/oapi-codegen/runtime" strictnethttp "github.com/oapi-codegen/runtime/strictmiddleware/nethttp" openapi_types "github.com/oapi-codegen/runtime/types" ) const ( BearerAuthScopes = "bearerAuth.Scopes" ) // Defines values for ActivityVisibility. const ( Everyone ActivityVisibility = "everyone" Friends ActivityVisibility = "friends" Nobody ActivityVisibility = "nobody" ) // Defines values for AppClient. const ( AppClientAndroid AppClient = "android" AppClientLinux AppClient = "linux" AppClientMacos AppClient = "macos" AppClientWindows AppClient = "windows" ) // Defines values for AuthTokensTokenType. const ( Bearer AuthTokensTokenType = "Bearer" ) // Defines values for ClientType. const ( ClientTypeAndroid ClientType = "android" ClientTypeDesktop ClientType = "desktop" ClientTypeWeb ClientType = "web" ) // Defines values for DirectMessageAttachmentKind. const ( DirectMessageAttachmentKindNone DirectMessageAttachmentKind = "none" DirectMessageAttachmentKindPlaylist DirectMessageAttachmentKind = "playlist" DirectMessageAttachmentKindTrack DirectMessageAttachmentKind = "track" ) // Defines values for HealthStatusStatus. const ( HealthStatusStatusOk HealthStatusStatus = "ok" ) // Defines values for ListeningActionAction. const ( ListeningActionActionAccept ListeningActionAction = "accept" ListeningActionActionCancel ListeningActionAction = "cancel" ListeningActionActionDecline ListeningActionAction = "decline" ListeningActionActionEnd ListeningActionAction = "end" ListeningActionActionInvite ListeningActionAction = "invite" ListeningActionActionJoin ListeningActionAction = "join" ListeningActionActionLeave ListeningActionAction = "leave" ) // Defines values for ListeningActivityContext. const ( ListeningActivityContextOther ListeningActivityContext = "other" ListeningActivityContextPlaylist ListeningActivityContext = "playlist" ListeningActivityContextWave ListeningActivityContext = "wave" ) // Defines values for ListeningActivityInputContext. const ( ListeningActivityInputContextOther ListeningActivityInputContext = "other" ListeningActivityInputContextPlaylist ListeningActivityInputContext = "playlist" ListeningActivityInputContextWave ListeningActivityInputContext = "wave" ) // Defines values for ListeningRequestKind. const ( ListeningRequestKindInvite ListeningRequestKind = "invite" ListeningRequestKindJoin ListeningRequestKind = "join" ) // Defines values for OnboardingChoiceAgeGroup. const ( N1319 OnboardingChoiceAgeGroup = "13_19" N2029 OnboardingChoiceAgeGroup = "20_29" N3039 OnboardingChoiceAgeGroup = "30_39" N4049 OnboardingChoiceAgeGroup = "40_49" N5059 OnboardingChoiceAgeGroup = "50_59" N60Plus OnboardingChoiceAgeGroup = "60_plus" Under13 OnboardingChoiceAgeGroup = "under_13" ) // Defines values for OnboardingChoiceGender. const ( OnboardingChoiceGenderFemale OnboardingChoiceGender = "female" OnboardingChoiceGenderMale OnboardingChoiceGender = "male" OnboardingChoiceGenderOther OnboardingChoiceGender = "other" ) // Defines values for PlayEventContextType. const ( PlayEventContextTypeAlbum PlayEventContextType = "album" PlayEventContextTypeArtist PlayEventContextType = "artist" PlayEventContextTypeCollection PlayEventContextType = "collection" PlayEventContextTypeHistory PlayEventContextType = "history" PlayEventContextTypeQueue PlayEventContextType = "queue" PlayEventContextTypeSearch PlayEventContextType = "search" PlayEventContextTypeWave PlayEventContextType = "wave" ) // Defines values for PlayEventType. const ( PlayEventTypeDislike PlayEventType = "dislike" PlayEventTypeLike PlayEventType = "like" PlayEventTypePause PlayEventType = "pause" PlayEventTypePlayEnd PlayEventType = "play_end" PlayEventTypePlayStart PlayEventType = "play_start" PlayEventTypeResume PlayEventType = "resume" PlayEventTypeSeek PlayEventType = "seek" PlayEventTypeSkip PlayEventType = "skip" PlayEventTypeUndislike PlayEventType = "undislike" PlayEventTypeUnlike PlayEventType = "unlike" ) // Defines values for PlaybackStateRepeatMode. const ( PlaybackStateRepeatModeAll PlaybackStateRepeatMode = "all" PlaybackStateRepeatModeOff PlaybackStateRepeatMode = "off" PlaybackStateRepeatModeOne PlaybackStateRepeatMode = "one" ) // Defines values for PlaybackStateInputRepeatMode. const ( PlaybackStateInputRepeatModeAll PlaybackStateInputRepeatMode = "all" PlaybackStateInputRepeatModeOff PlaybackStateInputRepeatMode = "off" PlaybackStateInputRepeatModeOne PlaybackStateInputRepeatMode = "one" ) // Defines values for Reaction. const ( ReactionDislike Reaction = "dislike" ReactionLike Reaction = "like" ) // Defines values for ReadyStatusStatus. const ( ReadyStatusStatusDegraded ReadyStatusStatus = "degraded" ReadyStatusStatusOk ReadyStatusStatus = "ok" ) // Defines values for ReleaseCandidateMatchesMethod. const ( ReleaseCandidateMatchesMethodAcoustid ReleaseCandidateMatchesMethod = "acoustid" ReleaseCandidateMatchesMethodMetadata ReleaseCandidateMatchesMethod = "metadata" ) // Defines values for Role. const ( Admin Role = "admin" Moderator Role = "moderator" User Role = "user" ) // Defines values for ScanProgressPhase. const ( ScanProgressPhaseFinalizing ScanProgressPhase = "finalizing" ScanProgressPhasePreparing ScanProgressPhase = "preparing" ScanProgressPhaseProcessing ScanProgressPhase = "processing" ScanProgressPhaseWalking ScanProgressPhase = "walking" ) // Defines values for SendDirectMessageAttachmentKind. const ( SendDirectMessageAttachmentKindNone SendDirectMessageAttachmentKind = "none" SendDirectMessageAttachmentKindPlaylist SendDirectMessageAttachmentKind = "playlist" SendDirectMessageAttachmentKindTrack SendDirectMessageAttachmentKind = "track" ) // Defines values for ServerConfigEntrySource. const ( ServerConfigEntrySourceDefault ServerConfigEntrySource = "default" ServerConfigEntrySourceEnv ServerConfigEntrySource = "env" ServerConfigEntrySourceLocal ServerConfigEntrySource = "local" ) // Defines values for ServerJobKind. const ( Config ServerJobKind = "config" Update ServerJobKind = "update" ) // Defines values for ServerJobState. const ( Failed ServerJobState = "failed" Running ServerJobState = "running" Succeeded ServerJobState = "succeeded" ) // Defines values for ServerUpdateRequestChannel. const ( ServerUpdateRequestChannelLatest ServerUpdateRequestChannel = "latest" ServerUpdateRequestChannelMain ServerUpdateRequestChannel = "main" ServerUpdateRequestChannelVersion ServerUpdateRequestChannel = "version" ) // Defines values for ServerUpdatesUpdateState. const ( ServerUpdatesUpdateStateAhead ServerUpdatesUpdateState = "ahead" ServerUpdatesUpdateStateAvailable ServerUpdatesUpdateState = "available" ServerUpdatesUpdateStateCurrent ServerUpdatesUpdateState = "current" ServerUpdatesUpdateStateSelectVersion ServerUpdatesUpdateState = "select_version" ServerUpdatesUpdateStateUnavailable ServerUpdatesUpdateState = "unavailable" ServerUpdatesUpdateStateUnknown ServerUpdatesUpdateState = "unknown" ) // Defines values for SocialActionAction. const ( Accept SocialActionAction = "accept" Block SocialActionAction = "block" ReadChat SocialActionAction = "read_chat" ReadNotification SocialActionAction = "read_notification" Remove SocialActionAction = "remove" Request SocialActionAction = "request" Unblock SocialActionAction = "unblock" ) // Defines values for SocialMessagePreviewAttachmentKind. const ( SocialMessagePreviewAttachmentKindNone SocialMessagePreviewAttachmentKind = "none" SocialMessagePreviewAttachmentKindPlaylist SocialMessagePreviewAttachmentKind = "playlist" SocialMessagePreviewAttachmentKindTrack SocialMessagePreviewAttachmentKind = "track" ) // Defines values for SocialNotificationKind. const ( SocialNotificationKindFriendAccepted SocialNotificationKind = "friend_accepted" SocialNotificationKindFriendRequest SocialNotificationKind = "friend_request" SocialNotificationKindListeningAccepted SocialNotificationKind = "listening_accepted" SocialNotificationKindListeningInvite SocialNotificationKind = "listening_invite" SocialNotificationKindListeningRequest SocialNotificationKind = "listening_request" SocialNotificationKindMessage SocialNotificationKind = "message" SocialNotificationKindMusic SocialNotificationKind = "music" ) // Defines values for SocialPersonRelationship. const ( Blocked SocialPersonRelationship = "blocked" Friend SocialPersonRelationship = "friend" Incoming SocialPersonRelationship = "incoming" None SocialPersonRelationship = "none" Outgoing SocialPersonRelationship = "outgoing" ) // Defines values for SourceStatus. const ( SourceStatusDisabled SourceStatus = "disabled" SourceStatusError SourceStatus = "error" SourceStatusMounted SourceStatus = "mounted" SourceStatusPending SourceStatus = "pending" ) // Defines values for SourceType. const ( SourceTypeLocal SourceType = "local" SourceTypeNfs SourceType = "nfs" ) // Defines values for StreamQuality. const ( Auto StreamQuality = "auto" High StreamQuality = "high" Low StreamQuality = "low" Medium StreamQuality = "medium" Original StreamQuality = "original" ) // Defines values for TagPriority. const ( PathFirst TagPriority = "path_first" TagsFirst TagPriority = "tags_first" ) // Defines values for UiPrefsMobilePlayer. const ( UiPrefsMobilePlayerCover UiPrefsMobilePlayer = "cover" UiPrefsMobilePlayerWave UiPrefsMobilePlayer = "wave" ) // Defines values for UiPrefsSearchPosition. const ( Center UiPrefsSearchPosition = "center" Left UiPrefsSearchPosition = "left" Right UiPrefsSearchPosition = "right" ) // Defines values for UiPrefsTheme. const ( Dark UiPrefsTheme = "dark" Light UiPrefsTheme = "light" System UiPrefsTheme = "system" ) // Defines values for UiPrefsWaveVariant. const ( Liquid UiPrefsWaveVariant = "liquid" Orb UiPrefsWaveVariant = "orb" ) // Defines values for UiPrefsWebPlayer. const ( Bar UiPrefsWebPlayer = "bar" Island UiPrefsWebPlayer = "island" ) // Defines values for UploadFileDuplicateLevel. const ( UploadFileDuplicateLevelFingerprint UploadFileDuplicateLevel = "fingerprint" UploadFileDuplicateLevelLessThannil UploadFileDuplicateLevel = "" UploadFileDuplicateLevelMetadata UploadFileDuplicateLevel = "metadata" UploadFileDuplicateLevelSha256 UploadFileDuplicateLevel = "sha256" ) // Defines values for UploadPrecheckResultFilesResult. const ( Accepted UploadPrecheckResultFilesResult = "accepted" Duplicate UploadPrecheckResultFilesResult = "duplicate" TooLarge UploadPrecheckResultFilesResult = "too_large" ) // Defines values for UploadReleaseReportAudioResultsState. const ( UploadReleaseReportAudioResultsStateAmbiguous UploadReleaseReportAudioResultsState = "ambiguous" UploadReleaseReportAudioResultsStateMatched UploadReleaseReportAudioResultsState = "matched" UploadReleaseReportAudioResultsStateNotFound UploadReleaseReportAudioResultsState = "not_found" UploadReleaseReportAudioResultsStateUnavailable UploadReleaseReportAudioResultsState = "unavailable" ) // Defines values for UploadReleaseReportState. const ( UploadReleaseReportStateDisabled UploadReleaseReportState = "disabled" UploadReleaseReportStateError UploadReleaseReportState = "error" UploadReleaseReportStateNeedsInput UploadReleaseReportState = "needs_input" UploadReleaseReportStateNotFound UploadReleaseReportState = "not_found" UploadReleaseReportStateQueued UploadReleaseReportState = "queued" UploadReleaseReportStateReady UploadReleaseReportState = "ready" UploadReleaseReportStateSearching UploadReleaseReportState = "searching" ) // Defines values for UploadReviewRequestDecision. const ( Approve UploadReviewRequestDecision = "approve" Reject UploadReviewRequestDecision = "reject" ) // Defines values for UploadStatus. const ( UploadStatusApproved UploadStatus = "approved" UploadStatusDuplicate UploadStatus = "duplicate" UploadStatusExpired UploadStatus = "expired" UploadStatusImportFailed UploadStatus = "import_failed" UploadStatusImported UploadStatus = "imported" UploadStatusImporting UploadStatus = "importing" UploadStatusInvalid UploadStatus = "invalid" UploadStatusPendingReview UploadStatus = "pending_review" UploadStatusProcessing UploadStatus = "processing" UploadStatusRejected UploadStatus = "rejected" UploadStatusUploading UploadStatus = "uploading" UploadStatusWithdrawn UploadStatus = "withdrawn" ) // Defines values for UserArchiveVersion. const ( UserArchiveVersionN1 UserArchiveVersion = 1 ) // Defines values for WaveFeedbackOutcome. const ( Complete WaveFeedbackOutcome = "complete" Dislike WaveFeedbackOutcome = "dislike" Like WaveFeedbackOutcome = "like" Skip WaveFeedbackOutcome = "skip" SkipEarly WaveFeedbackOutcome = "skip_early" ) // Defines values for WaveStartSeedType. const ( WaveStartSeedTypeAlbum WaveStartSeedType = "album" WaveStartSeedTypeArtist WaveStartSeedType = "artist" WaveStartSeedTypeTrack WaveStartSeedType = "track" ) // Defines values for ControlGeniusJSONBodyAction. const ( Pause ControlGeniusJSONBodyAction = "pause" Retry ControlGeniusJSONBodyAction = "retry" Start ControlGeniusJSONBodyAction = "start" ) // Defines values for GetServerUpdatesParamsChannel. const ( GetServerUpdatesParamsChannelLatest GetServerUpdatesParamsChannel = "latest" GetServerUpdatesParamsChannelMain GetServerUpdatesParamsChannel = "main" GetServerUpdatesParamsChannelVersion GetServerUpdatesParamsChannel = "version" ) // Defines values for GetCoverParamsSize. const ( N1200 GetCoverParamsSize = 1200 N300 GetCoverParamsSize = 300 N64 GetCoverParamsSize = 64 ) // Defines values for UpdateChatMessageJSONBodyAction. const ( Delete UpdateChatMessageJSONBodyAction = "delete" Edit UpdateChatMessageJSONBodyAction = "edit" React UpdateChatMessageJSONBodyAction = "react" ) // Defines values for UpdateChatMessageJSONBodyEmoji. const ( UpdateChatMessageJSONBodyEmojiEmpty UpdateChatMessageJSONBodyEmoji = "❤️" UpdateChatMessageJSONBodyEmojiN1 UpdateChatMessageJSONBodyEmoji = "👍" UpdateChatMessageJSONBodyEmojiN2 UpdateChatMessageJSONBodyEmoji = "🔥" UpdateChatMessageJSONBodyEmojiN3 UpdateChatMessageJSONBodyEmoji = "😂" UpdateChatMessageJSONBodyEmojiN4 UpdateChatMessageJSONBodyEmoji = "🎵" UpdateChatMessageJSONBodyEmojiN5 UpdateChatMessageJSONBodyEmoji = "👏" ) // Defines values for SearchParamsType. const ( Albums SearchParamsType = "albums" All SearchParamsType = "all" Artists SearchParamsType = "artists" Tracks SearchParamsType = "tracks" ) // ActivityVisibility defines model for ActivityVisibility. type ActivityVisibility string // AdminUser defines model for AdminUser. type AdminUser struct { CreatedAt time.Time `json:"created_at"` DisplayName *string `json:"display_name"` Id openapi_types.UUID `json:"id"` IsBlocked bool `json:"is_blocked"` LastLoginAt *time.Time `json:"last_login_at"` Locale string `json:"locale"` // ManagesUpdates Управление обновлениями сервера. У admin всегда; другим выдаёт только admin ManagesUpdates *bool `json:"manages_updates,omitempty"` MustChangeCredentials bool `json:"must_change_credentials"` MustChangePassword bool `json:"must_change_password"` // ReviewsUploads Может рассматривать очередь на добавление. Не следует из роли и может быть у нескольких людей сразу ReviewsUploads bool `json:"reviews_uploads"` Role Role `json:"role"` Username string `json:"username"` } // AdminUserPage defines model for AdminUserPage. type AdminUserPage struct { Items []AdminUser `json:"items"` NextCursor *string `json:"next_cursor"` } // Album defines model for Album. type Album struct { Artist ArtistRef `json:"artist"` CoverColors []string `json:"cover_colors"` CoverUrl *string `json:"cover_url"` DurationMs int `json:"duration_ms"` Id openapi_types.UUID `json:"id"` Title string `json:"title"` Tracks []Track `json:"tracks"` Year *int `json:"year"` } // AlbumRef defines model for AlbumRef. type AlbumRef struct { CoverColors []string `json:"cover_colors"` CoverUrl *string `json:"cover_url"` Id openapi_types.UUID `json:"id"` Title string `json:"title"` Year *int `json:"year"` } // AlbumSummary defines model for AlbumSummary. type AlbumSummary struct { Artist ArtistRef `json:"artist"` CoverColors []string `json:"cover_colors"` CoverUrl *string `json:"cover_url"` Id openapi_types.UUID `json:"id"` Title string `json:"title"` TrackCount int `json:"track_count"` Year *int `json:"year"` } // AlbumSummaryList defines model for AlbumSummaryList. type AlbumSummaryList struct { Items []AlbumSummary `json:"items"` } // AnalysisError defines model for AnalysisError. type AnalysisError struct { Error string `json:"error"` // RelPath Path relative to the source root; primary file if available, otherwise a known file of this track. RelPath *string `json:"rel_path"` SourceId *openapi_types.UUID `json:"source_id"` SourceName *string `json:"source_name"` Title string `json:"title"` TrackId openapi_types.UUID `json:"track_id"` } // AnalysisErrorPage defines model for AnalysisErrorPage. type AnalysisErrorPage struct { Items []AnalysisError `json:"items"` NextCursor *string `json:"next_cursor"` } // AnalysisStatus defines model for AnalysisStatus. type AnalysisStatus struct { AnalyzerVer *string `json:"analyzer_ver"` Done int `json:"done"` Failed int `json:"failed"` Queued int `json:"queued"` Running int `json:"running"` // TopError Самая частая ошибка среди неудавшихся — подсказка, что чинить TopError *string `json:"top_error"` } // AndroidRelease defines model for AndroidRelease. type AndroidRelease struct { DownloadUrl string `json:"download_url"` // MinSupported Версии ниже обязаны обновиться MinSupported int `json:"min_supported"` // NotesMd Что нового (Markdown из релиза) NotesMd string `json:"notes_md"` Sha256 string `json:"sha256"` Size int64 `json:"size"` Version string `json:"version"` VersionCode int `json:"version_code"` } // AppClient defines model for AppClient. type AppClient string // AppClientBuild defines model for AppClientBuild. type AppClientBuild struct { DownloadUrl string `json:"download_url"` Filename string `json:"filename"` Sha256 *string `json:"sha256,omitempty"` Size int64 `json:"size"` Version string `json:"version"` } // AppClientFile defines model for AppClientFile. type AppClientFile struct { Client AppClient `json:"client"` DownloadUrl string `json:"download_url"` Filename string `json:"filename"` Older *[]AppClientBuild `json:"older,omitempty"` Sha256 *string `json:"sha256,omitempty"` Size int64 `json:"size"` Version *string `json:"version,omitempty"` } // AppClients defines model for AppClients. type AppClients struct { Clients []AppClientFile `json:"clients"` NotesMd string `json:"notes_md"` Version string `json:"version"` VersionCode int `json:"version_code"` } // Artist defines model for Artist. type Artist struct { AlbumCount int `json:"album_count"` Id openapi_types.UUID `json:"id"` ImageUrl *string `json:"image_url,omitempty"` Name string `json:"name"` TrackCount int `json:"track_count"` } // ArtistRef defines model for ArtistRef. type ArtistRef struct { Id openapi_types.UUID `json:"id"` Name string `json:"name"` } // AuditActor defines model for AuditActor. type AuditActor struct { Id openapi_types.UUID `json:"id"` Username string `json:"username"` } // AuditEntry defines model for AuditEntry. type AuditEntry struct { Action string `json:"action"` // Actor null — система или удалённый пользователь Actor *AuditActor `json:"actor"` CreatedAt time.Time `json:"created_at"` Id openapi_types.UUID `json:"id"` Payload *map[string]interface{} `json:"payload"` TargetId *openapi_types.UUID `json:"target_id"` TargetType *string `json:"target_type"` } // AuditPage defines model for AuditPage. type AuditPage struct { Items []AuditEntry `json:"items"` NextCursor *string `json:"next_cursor"` } // AuthTokens defines model for AuthTokens. type AuthTokens struct { AccessToken string `json:"access_token"` // ExpiresIn Срок жизни access-токена, секунды ExpiresIn int `json:"expires_in"` // RefreshToken Для `client_type: android` и `client_type: desktop` RefreshToken *string `json:"refresh_token,omitempty"` TokenType AuthTokensTokenType `json:"token_type"` User Me `json:"user"` } // AuthTokensTokenType defines model for AuthTokens.TokenType. type AuthTokensTokenType string // BootstrapCredentialsRequest defines model for BootstrapCredentialsRequest. type BootstrapCredentialsRequest struct { NewPassword string `json:"new_password"` NewUsername string `json:"new_username"` } // ChangePasswordRequest defines model for ChangePasswordRequest. type ChangePasswordRequest struct { CurrentPassword *string `json:"current_password,omitempty"` NewPassword string `json:"new_password"` } // ClientType defines model for ClientType. type ClientType string // CreateUserRequest defines model for CreateUserRequest. type CreateUserRequest struct { DisplayName *string `json:"display_name,omitempty"` // ManagesUpdates Управление обновлениями сервера. У admin всегда; другим выдаёт только admin ManagesUpdates *bool `json:"manages_updates,omitempty"` // ReviewsUploads Сразу выдать аудит загрузок. Может задать только админ ReviewsUploads *bool `json:"reviews_uploads,omitempty"` Role Role `json:"role"` Username string `json:"username"` } // CreatedUser defines model for CreatedUser. type CreatedUser struct { // TemporaryPassword Показывается один раз TemporaryPassword string `json:"temporary_password"` User AdminUser `json:"user"` } // DirectMessage defines model for DirectMessage. type DirectMessage struct { AttachmentId *openapi_types.UUID `json:"attachment_id,omitempty"` AttachmentKind DirectMessageAttachmentKind `json:"attachment_kind"` CreatedAt time.Time `json:"created_at"` Deleted *bool `json:"deleted,omitempty"` EditedAt *time.Time `json:"edited_at,omitempty"` Id openapi_types.UUID `json:"id"` Reactions *[]MessageReaction `json:"reactions,omitempty"` Read bool `json:"read"` ReplyPreview *string `json:"reply_preview,omitempty"` ReplyTo *openapi_types.UUID `json:"reply_to,omitempty"` SenderId openapi_types.UUID `json:"sender_id"` Seq int64 `json:"seq"` Text string `json:"text"` } // DirectMessageAttachmentKind defines model for DirectMessage.AttachmentKind. type DirectMessageAttachmentKind string // EventBatch defines model for EventBatch. type EventBatch struct { Events []PlayEvent `json:"events"` } // EventBatchResult defines model for EventBatchResult. type EventBatchResult struct { Accepted int `json:"accepted"` Duplicates int `json:"duplicates"` // Rejected Слишком старые (> 30 дней) или с неизвестным треком Rejected int `json:"rejected"` } // ExcludedDirs Literal folder paths relative to the storage root, including all descendants. Case sensitive; no glob matching. Empty list clears exclusions. Existing library records are retained, but their scan and analysis are skipped. Changes require no running scan. type ExcludedDirs = []string // FieldError defines model for FieldError. type FieldError struct { Code string `json:"code"` Field string `json:"field"` } // GeniusAnnotation defines model for GeniusAnnotation. type GeniusAnnotation struct { Authors string `json:"authors"` Fragment string `json:"fragment"` Text string `json:"text"` Url string `json:"url"` Verified bool `json:"verified"` } // GeniusContent defines model for GeniusContent. type GeniusContent struct { Annotations []GeniusAnnotation `json:"annotations"` ArtistImageUrl string `json:"artist_image_url"` Description string `json:"description"` Lyrics string `json:"lyrics"` SongImageUrl string `json:"song_image_url"` SourceUrl string `json:"source_url"` Status string `json:"status"` } // GeniusStats defines model for GeniusStats. type GeniusStats struct { Annotations int `json:"annotations"` Configured bool `json:"configured"` CooldownUntil time.Time `json:"cooldown_until"` Errors int `json:"errors"` Images int `json:"images"` LastError string `json:"last_error"` Lyrics int `json:"lyrics"` Matched int `json:"matched"` Paused bool `json:"paused"` Pending int `json:"pending"` Running bool `json:"running"` Total int `json:"total"` Unmatched int `json:"unmatched"` } // HealthStatus defines model for HealthStatus. type HealthStatus struct { Status HealthStatusStatus `json:"status"` } // HealthStatusStatus defines model for HealthStatus.Status. type HealthStatusStatus string // HistoryItem defines model for HistoryItem. type HistoryItem struct { Id openapi_types.UUID `json:"id"` PlayedAt time.Time `json:"played_at"` Track Track `json:"track"` } // HistoryPage defines model for HistoryPage. type HistoryPage struct { Items []HistoryItem `json:"items"` NextCursor *string `json:"next_cursor"` } // HostDirList defines model for HostDirList. type HostDirList struct { Dirs []string `json:"dirs"` Path string `json:"path"` } // LibraryError defines model for LibraryError. type LibraryError struct { Error string `json:"error"` FileId openapi_types.UUID `json:"file_id"` RelPath string `json:"rel_path"` SourceId openapi_types.UUID `json:"source_id"` } // LibraryErrorPage defines model for LibraryErrorPage. type LibraryErrorPage struct { Items []LibraryError `json:"items"` NextCursor *string `json:"next_cursor"` } // LibraryStatus defines model for LibraryStatus. type LibraryStatus struct { Albums int `json:"albums"` Analysis AnalysisStatus `json:"analysis"` Artists int `json:"artists"` FileErrors int `json:"file_errors"` Files int `json:"files"` MissingFiles int `json:"missing_files"` Sources []SourceStatusItem `json:"sources"` Tracks int `json:"tracks"` // Wave Метрики волны за 7 дней Wave WaveMetrics `json:"wave"` } // ListeningAction defines model for ListeningAction. type ListeningAction struct { Action ListeningActionAction `json:"action"` DeviceId *openapi_types.UUID `json:"device_id,omitempty"` Id openapi_types.UUID `json:"id"` Playing *bool `json:"playing,omitempty"` PositionMs *int `json:"position_ms,omitempty"` TargetId openapi_types.UUID `json:"target_id"` TrackId *openapi_types.UUID `json:"track_id,omitempty"` } // ListeningActionAction defines model for ListeningAction.Action. type ListeningActionAction string // ListeningActivity defines model for ListeningActivity. type ListeningActivity struct { Artist string `json:"artist"` Context ListeningActivityContext `json:"context"` PlaylistId *openapi_types.UUID `json:"playlist_id,omitempty"` PlaylistName *string `json:"playlist_name,omitempty"` TrackId openapi_types.UUID `json:"track_id"` TrackTitle string `json:"track_title"` } // ListeningActivityContext defines model for ListeningActivity.Context. type ListeningActivityContext string // ListeningActivityInput defines model for ListeningActivityInput. type ListeningActivityInput struct { Context ListeningActivityInputContext `json:"context"` DeviceId openapi_types.UUID `json:"device_id"` Playing bool `json:"playing"` PlaylistId *openapi_types.UUID `json:"playlist_id,omitempty"` PositionMs *int `json:"position_ms,omitempty"` Sequence int64 `json:"sequence"` TrackId *openapi_types.UUID `json:"track_id,omitempty"` } // ListeningActivityInputContext defines model for ListeningActivityInput.Context. type ListeningActivityInputContext string // ListeningPreferences defines model for ListeningPreferences. type ListeningPreferences struct { AutoAccept ActivityVisibility `json:"auto_accept"` Autoplay bool `json:"autoplay"` Requests ActivityVisibility `json:"requests"` } // ListeningRequest defines model for ListeningRequest. type ListeningRequest struct { ExpiresAt time.Time `json:"expires_at"` Id openapi_types.UUID `json:"id"` Kind ListeningRequestKind `json:"kind"` OwnerId openapi_types.UUID `json:"owner_id"` RecipientId openapi_types.UUID `json:"recipient_id"` SenderId openapi_types.UUID `json:"sender_id"` SenderName string `json:"sender_name"` } // ListeningRequestKind defines model for ListeningRequest.Kind. type ListeningRequestKind string // ListeningRoom defines model for ListeningRoom. type ListeningRoom struct { DeviceId openapi_types.UUID `json:"device_id"` Id openapi_types.UUID `json:"id"` OwnerId openapi_types.UUID `json:"owner_id"` OwnerName string `json:"owner_name"` Participants []struct { Id openapi_types.UUID `json:"id"` Name string `json:"name"` } `json:"participants"` Playing bool `json:"playing"` PositionMs int `json:"position_ms"` TrackId *openapi_types.UUID `json:"track_id"` UpdatedAt time.Time `json:"updated_at"` } // ListeningRoomInput defines model for ListeningRoomInput. type ListeningRoomInput struct { DeviceId openapi_types.UUID `json:"device_id"` Playing bool `json:"playing"` PositionMs int `json:"position_ms"` RoomId openapi_types.UUID `json:"room_id"` Sequence int64 `json:"sequence"` TrackId *openapi_types.UUID `json:"track_id,omitempty"` } // ListeningState defines model for ListeningState. type ListeningState struct { Preferences ListeningPreferences `json:"preferences"` Requests []ListeningRequest `json:"requests"` Room *ListeningRoom `json:"room"` ServerTime time.Time `json:"server_time"` } // LoginRequest defines model for LoginRequest. type LoginRequest struct { ClientType ClientType `json:"client_type"` // DeviceName Например «Chrome / Windows», «Pixel 8» DeviceName *string `json:"device_name,omitempty"` Password string `json:"password"` Username string `json:"username"` } // Me defines model for Me. type Me struct { CreatedAt time.Time `json:"created_at"` DisplayName *string `json:"display_name"` Id openapi_types.UUID `json:"id"` Locale string `json:"locale"` // ManagesUpdates Управление обновлениями сервера. У admin всегда; другим выдаёт только admin ManagesUpdates *bool `json:"manages_updates,omitempty"` MustChangeCredentials bool `json:"must_change_credentials"` MustChangePassword bool `json:"must_change_password"` // ReviewsUploads Может рассматривать очередь на добавление. Не следует из роли и может быть у нескольких людей сразу ReviewsUploads bool `json:"reviews_uploads"` Role Role `json:"role"` UiPrefs UiPrefs `json:"ui_prefs"` Username string `json:"username"` } // MessageReaction defines model for MessageReaction. type MessageReaction struct { Count int `json:"count"` Emoji string `json:"emoji"` Mine bool `json:"mine"` } // Onboarding defines model for Onboarding. type Onboarding struct { Artists []struct { CoverColors []string `json:"cover_colors"` // CoverUrl Обложка самого большого альбома исполнителя CoverUrl *string `json:"cover_url"` Id openapi_types.UUID `json:"id"` Name string `json:"name"` TrackCount int `json:"track_count"` } `json:"artists"` Choice *OnboardingChoice `json:"choice,omitempty"` Genres []struct { Name string `json:"name"` TrackCount int `json:"track_count"` } `json:"genres"` Required bool `json:"required"` } // OnboardingChoice defines model for OnboardingChoice. type OnboardingChoice struct { // AgeGroup Текущая приблизительная возрастная группа. Сервер хранит год выбора и учитывает прошедшие годы. AgeGroup *OnboardingChoiceAgeGroup `json:"age_group"` // AgeGroupYear Год последнего выбора возрастной группы. AgeGroupYear *int `json:"age_group_year,omitempty"` ArtistIds []openapi_types.UUID `json:"artist_ids"` Gender *OnboardingChoiceGender `json:"gender"` Genres []string `json:"genres"` } // OnboardingChoiceAgeGroup Текущая приблизительная возрастная группа. Сервер хранит год выбора и учитывает прошедшие годы. type OnboardingChoiceAgeGroup string // OnboardingChoiceGender defines model for OnboardingChoice.Gender. type OnboardingChoiceGender string // PathPattern defines model for PathPattern. type PathPattern struct { IsEnabled bool `json:"is_enabled"` Regex string `json:"regex"` } // PatternList defines model for PatternList. type PatternList struct { Patterns []PathPattern `json:"patterns"` } // PatternPreview defines model for PatternPreview. type PatternPreview struct { Items []PreviewItem `json:"items"` Unmatched int `json:"unmatched"` } // PatternPreviewRequest defines model for PatternPreviewRequest. type PatternPreviewRequest struct { Patterns []PathPattern `json:"patterns"` Sample *int `json:"sample,omitempty"` } // PlayEvent defines model for PlayEvent. type PlayEvent struct { ContextId *string `json:"context_id,omitempty"` ContextType *PlayEventContextType `json:"context_type,omitempty"` FromMs *int `json:"from_ms,omitempty"` // Id UUIDv7 от клиента — ключ идемпотентности Id openapi_types.UUID `json:"id"` OccurredAt time.Time `json:"occurred_at"` Offline *bool `json:"offline,omitempty"` PlayedMs *int `json:"played_ms,omitempty"` PositionMs *int `json:"position_ms,omitempty"` TrackId openapi_types.UUID `json:"track_id"` Type PlayEventType `json:"type"` WaveSessionId *openapi_types.UUID `json:"wave_session_id,omitempty"` } // PlayEventContextType defines model for PlayEvent.ContextType. type PlayEventContextType string // PlayEventType defines model for PlayEvent.Type. type PlayEventType string // PlaybackContext defines model for PlaybackContext. type PlaybackContext struct { Id *string `json:"id,omitempty"` Label *string `json:"label,omitempty"` Type *string `json:"type,omitempty"` WaveSessionId *openapi_types.UUID `json:"wave_session_id,omitempty"` } // PlaybackState defines model for PlaybackState. type PlaybackState struct { Context *PlaybackContext `json:"context"` DeviceId *string `json:"device_id"` PositionMs int `json:"position_ms"` Queue []openapi_types.UUID `json:"queue"` QueueIndex int `json:"queue_index"` RepeatMode PlaybackStateRepeatMode `json:"repeat_mode"` Shuffle bool `json:"shuffle"` TrackId *openapi_types.UUID `json:"track_id"` UpdatedAt *time.Time `json:"updated_at"` Volume float32 `json:"volume"` } // PlaybackStateRepeatMode defines model for PlaybackState.RepeatMode. type PlaybackStateRepeatMode string // PlaybackStateInput defines model for PlaybackStateInput. type PlaybackStateInput struct { Context *PlaybackContext `json:"context,omitempty"` DeviceId *string `json:"device_id,omitempty"` PositionMs int `json:"position_ms"` Queue []openapi_types.UUID `json:"queue"` QueueIndex int `json:"queue_index"` RepeatMode *PlaybackStateInputRepeatMode `json:"repeat_mode,omitempty"` Shuffle *bool `json:"shuffle,omitempty"` TrackId *openapi_types.UUID `json:"track_id"` Volume *float32 `json:"volume,omitempty"` } // PlaybackStateInputRepeatMode defines model for PlaybackStateInput.RepeatMode. type PlaybackStateInputRepeatMode string // Playlist defines model for Playlist. type Playlist struct { CreatedAt time.Time `json:"created_at"` Description string `json:"description"` DurationMs int64 `json:"duration_ms"` Id openapi_types.UUID `json:"id"` Name string `json:"name"` Revision int `json:"revision"` // ShareId Действующая ссылка; возвращается только владельцу через /me/playlists ShareId *openapi_types.UUID `json:"share_id"` TrackCount int `json:"track_count"` Tracks []Track `json:"tracks"` UpdatedAt time.Time `json:"updated_at"` } // PlaylistInput defines model for PlaylistInput. type PlaylistInput struct { Description string `json:"description"` Name string `json:"name"` TrackIds []openapi_types.UUID `json:"track_ids"` } // PlaylistList defines model for PlaylistList. type PlaylistList struct { Items []PlaylistSummary `json:"items"` } // PlaylistShare defines model for PlaylistShare. type PlaylistShare struct { ShareId openapi_types.UUID `json:"share_id"` } // PlaylistSummary defines model for PlaylistSummary. type PlaylistSummary struct { CreatedAt time.Time `json:"created_at"` Description string `json:"description"` DurationMs int64 `json:"duration_ms"` Id openapi_types.UUID `json:"id"` Name string `json:"name"` Revision int `json:"revision"` TrackCount int `json:"track_count"` UpdatedAt time.Time `json:"updated_at"` } // PlaylistUpdate defines model for PlaylistUpdate. type PlaylistUpdate struct { Description string `json:"description"` Name string `json:"name"` Revision int `json:"revision"` TrackIds []openapi_types.UUID `json:"track_ids"` } // PreviewItem defines model for PreviewItem. type PreviewItem struct { Error *string `json:"error"` PathFields map[string]string `json:"path_fields"` // PatternIndex Номер совпавшего шаблона, null — ни один PatternIndex *int `json:"pattern_index"` RelPath string `json:"rel_path"` Result TrackMeta `json:"result"` Skipped bool `json:"skipped"` Tags map[string]string `json:"tags"` } // Problem defines model for Problem. type Problem struct { // Code Машинный код ошибки для i18n, например `auth.invalid_credentials` Code string `json:"code"` // Detail Пояснение для логов (не для показа пользователю) Detail *string `json:"detail,omitempty"` // Errors Ошибки отдельных полей запроса Errors *[]FieldError `json:"errors,omitempty"` Params *map[string]interface{} `json:"params,omitempty"` Status int `json:"status"` Type *string `json:"type,omitempty"` } // ReactedTrack defines model for ReactedTrack. type ReactedTrack struct { CreatedAt time.Time `json:"created_at"` Track Track `json:"track"` } // ReactedTrackPage defines model for ReactedTrackPage. type ReactedTrackPage struct { Items []ReactedTrack `json:"items"` NextCursor *string `json:"next_cursor"` Total int `json:"total"` } // Reaction defines model for Reaction. type Reaction string // ReactionInput defines model for ReactionInput. type ReactionInput struct { Reaction Reaction `json:"reaction"` } // ReadyStatus defines model for ReadyStatus. type ReadyStatus struct { // Checks Результат проверки каждой зависимости Checks map[string]string `json:"checks"` Status ReadyStatusStatus `json:"status"` } // ReadyStatusStatus defines model for ReadyStatus.Status. type ReadyStatusStatus string // RefreshRequest defines model for RefreshRequest. type RefreshRequest struct { // RefreshToken Android и desktop; веб передаёт токен в cookie RefreshToken *string `json:"refresh_token,omitempty"` } // ReleaseCandidate defines model for ReleaseCandidate. type ReleaseCandidate struct { Complete bool `json:"complete"` Confidence string `json:"confidence"` // Existing Совпадения отсутствующих дорожек с библиотекой по метаданным и длительности; не подтверждают полную загруженную пачку Existing []ReleaseTrack `json:"existing"` Matched int `json:"matched"` Matches []struct { Confidence string `json:"confidence"` FileId openapi_types.UUID `json:"file_id"` Method *ReleaseCandidateMatchesMethod `json:"method,omitempty"` TrackIndex int `json:"track_index"` } `json:"matches"` Missing []ReleaseTrack `json:"missing"` Release ReleaseInfo `json:"release"` Total int `json:"total"` Unmatched []openapi_types.UUID `json:"unmatched"` } // ReleaseCandidateMatchesMethod defines model for ReleaseCandidate.Matches.Method. type ReleaseCandidateMatchesMethod string // ReleaseInfo defines model for ReleaseInfo. type ReleaseInfo struct { Artist string `json:"artist"` Comment string `json:"comment"` Country string `json:"country"` Date string `json:"date"` GroupId string `json:"group_id"` HasCover bool `json:"has_cover"` Id string `json:"id"` Title string `json:"title"` Tracks []ReleaseTrack `json:"tracks"` Type string `json:"type"` } // ReleaseTrack defines model for ReleaseTrack. type ReleaseTrack struct { Artist string `json:"artist"` Disc int `json:"disc"` DurationMs int `json:"duration_ms"` Position int `json:"position"` RecordingId string `json:"recording_id"` Title string `json:"title"` } // Role defines model for Role. type Role string // ScanProgress defines model for ScanProgress. type ScanProgress struct { Added int `json:"added"` // CurrentDir Current directory relative to the source root, using forward slashes. CurrentDir *string `json:"current_dir,omitempty"` Error *string `json:"error"` Errors int `json:"errors"` FinishedAt *time.Time `json:"finished_at"` Found int `json:"found"` Full bool `json:"full"` Missing int `json:"missing"` Moved int `json:"moved"` // Phase Current scan stage; progress percentage is available only during processing. Phase *ScanProgressPhase `json:"phase,omitempty"` Processed int `json:"processed"` Running bool `json:"running"` StartedAt time.Time `json:"started_at"` ToProcess int `json:"to_process"` Updated int `json:"updated"` // WalkedDirs Directories visited so far, including the source root. WalkedDirs *int `json:"walked_dirs,omitempty"` } // ScanProgressPhase Current scan stage; progress percentage is available only during processing. type ScanProgressPhase string // ScanRequest defines model for ScanRequest. type ScanRequest struct { // Full Перечитать все файлы, а не только новые и изменённые Full *bool `json:"full,omitempty"` } // SearchResults defines model for SearchResults. type SearchResults struct { Albums []AlbumSummary `json:"albums"` Artists []ArtistRef `json:"artists"` // CorrectedQuery Запрос в другой раскладке, если по исходному ничего не нашлось CorrectedQuery *string `json:"corrected_query"` NextCursor *string `json:"next_cursor"` // Totals Оценка общего числа совпадений Totals struct { Albums int `json:"albums"` Artists int `json:"artists"` Tracks int `json:"tracks"` } `json:"totals"` Tracks []Track `json:"tracks"` } // SendDirectMessage defines model for SendDirectMessage. type SendDirectMessage struct { AttachmentId *openapi_types.UUID `json:"attachment_id,omitempty"` AttachmentKind SendDirectMessageAttachmentKind `json:"attachment_kind"` Id openapi_types.UUID `json:"id"` ReplyTo *openapi_types.UUID `json:"reply_to,omitempty"` Text string `json:"text"` } // SendDirectMessageAttachmentKind defines model for SendDirectMessage.AttachmentKind. type SendDirectMessageAttachmentKind string // ServerConfig defines model for ServerConfig. type ServerConfig struct { Entries []ServerConfigEntry `json:"entries"` RestartRequired bool `json:"restart_required"` Revision string `json:"revision"` } // ServerConfigEntry defines model for ServerConfigEntry. type ServerConfigEntry struct { DefaultValue string `json:"default_value"` Effective string `json:"effective"` Env *string `json:"env"` Group string `json:"group"` Key string `json:"key"` Local *string `json:"local"` Readonly bool `json:"readonly"` Secret bool `json:"secret"` Source ServerConfigEntrySource `json:"source"` Type string `json:"type"` } // ServerConfigEntrySource defines model for ServerConfigEntry.Source. type ServerConfigEntrySource string // ServerConfigPatch defines model for ServerConfigPatch. type ServerConfigPatch struct { Revision string `json:"revision"` Values map[string]*string `json:"values"` } // ServerInfo defines model for ServerInfo. type ServerInfo struct { ApiVersion string `json:"api_version"` // BootstrapRequired Первый вход администратора ещё не завершён — клиент может показать подсказку BootstrapRequired bool `json:"bootstrap_required"` // MinAndroidVersionCode Минимальный versionCode Android-приложения, которое поддерживает сервер MinAndroidVersionCode int `json:"min_android_version_code"` Name string `json:"name"` SupportedLocales []string `json:"supported_locales"` // Version Версия сервера (SemVer) Version string `json:"version"` } // ServerJob defines model for ServerJob. type ServerJob struct { FinishedAt string `json:"finished_at"` Id string `json:"id"` Kind ServerJobKind `json:"kind"` Log string `json:"log"` StartedAt string `json:"started_at"` State ServerJobState `json:"state"` Target string `json:"target"` } // ServerJobKind defines model for ServerJob.Kind. type ServerJobKind string // ServerJobState defines model for ServerJob.State. type ServerJobState string // ServerSource defines model for ServerSource. type ServerSource struct { Id string `json:"id"` Name string `json:"name"` Url string `json:"url"` } // ServerSources defines model for ServerSources. type ServerSources struct { Sources []ServerSource `json:"sources"` } // ServerUpdateRequest defines model for ServerUpdateRequest. type ServerUpdateRequest struct { Channel ServerUpdateRequestChannel `json:"channel"` ExpectedCommit *string `json:"expected_commit,omitempty"` SourceId string `json:"source_id"` Version *string `json:"version,omitempty"` } // ServerUpdateRequestChannel defines model for ServerUpdateRequest.Channel. type ServerUpdateRequestChannel string // ServerUpdates defines model for ServerUpdates. type ServerUpdates struct { CurrentCommit string `json:"current_commit"` CurrentVersion string `json:"current_version"` Job *ServerJob `json:"job"` SourceError string `json:"source_error"` Sources []ServerSource `json:"sources"` TargetCommit string `json:"target_commit"` TargetVersion string `json:"target_version"` UpdateState ServerUpdatesUpdateState `json:"update_state"` Versions []string `json:"versions"` } // ServerUpdatesUpdateState defines model for ServerUpdates.UpdateState. type ServerUpdatesUpdateState string // Session defines model for Session. type Session struct { ClientType ClientType `json:"client_type"` // CreatedAt Время входа CreatedAt time.Time `json:"created_at"` // Current Сессия, из которой сделан запрос Current bool `json:"current"` DeviceName *string `json:"device_name"` Id openapi_types.UUID `json:"id"` LastUsedAt time.Time `json:"last_used_at"` } // SessionList defines model for SessionList. type SessionList struct { Items []Session `json:"items"` } // SocialAction defines model for SocialAction. type SocialAction struct { Action SocialActionAction `json:"action"` TargetId openapi_types.UUID `json:"target_id"` UpToSeq *int64 `json:"up_to_seq,omitempty"` } // SocialActionAction defines model for SocialAction.Action. type SocialActionAction string // SocialInbox defines model for SocialInbox. type SocialInbox struct { ActivityVisibility ActivityVisibility `json:"activity_visibility"` FriendsRecommendations bool `json:"friends_recommendations"` Notifications []SocialNotification `json:"notifications"` People []SocialPerson `json:"people"` Unread int `json:"unread"` } // SocialMessagePreview Latest message in a current friendship, without marking it read. Deleted content is never returned. type SocialMessagePreview struct { AttachmentKind SocialMessagePreviewAttachmentKind `json:"attachment_kind"` CreatedAt time.Time `json:"created_at"` Deleted bool `json:"deleted"` Id openapi_types.UUID `json:"id"` SenderId openapi_types.UUID `json:"sender_id"` Text string `json:"text"` } // SocialMessagePreviewAttachmentKind defines model for SocialMessagePreview.AttachmentKind. type SocialMessagePreviewAttachmentKind string // SocialNotification defines model for SocialNotification. type SocialNotification struct { ActorId openapi_types.UUID `json:"actor_id"` ActorName string `json:"actor_name"` CreatedAt time.Time `json:"created_at"` Id openapi_types.UUID `json:"id"` Kind SocialNotificationKind `json:"kind"` Read bool `json:"read"` } // SocialNotificationKind defines model for SocialNotification.Kind. type SocialNotificationKind string // SocialPerson defines model for SocialPerson. type SocialPerson struct { Activity *ListeningActivity `json:"activity,omitempty"` DisplayName string `json:"display_name"` Id openapi_types.UUID `json:"id"` // LastMessage Latest message in a current friendship, without marking it read. Deleted content is never returned. LastMessage *SocialMessagePreview `json:"last_message,omitempty"` // Online A current friend has an active client heartbeat within 45 seconds. Independent of music visibility; false for non-friends and blocked people. Online bool `json:"online"` Relationship SocialPersonRelationship `json:"relationship"` Unread int `json:"unread"` Username string `json:"username"` } // SocialPersonRelationship defines model for SocialPerson.Relationship. type SocialPersonRelationship string // Source defines model for Source. type Source struct { // AcceptsUploads Принимает импорт из очереди на добавление (NFS монтируется агентом ещё и на запись) AcceptsUploads bool `json:"accepts_uploads"` CreatedAt time.Time `json:"created_at"` // ExcludedDirs Literal folder paths relative to the storage root, including all descendants. Case sensitive; no glob matching. Empty list clears exclusions. Existing library records are retained, but their scan and analysis are skipped. Changes require no running scan. ExcludedDirs *ExcludedDirs `json:"excluded_dirs,omitempty"` Id openapi_types.UUID `json:"id"` LastScanAt *time.Time `json:"last_scan_at"` // LocalPath Подпапка относительно LIBRARY_HOST, пусто — весь каталог LocalPath *string `json:"local_path"` Name string `json:"name"` NfsExport *string `json:"nfs_export"` NfsOptions string `json:"nfs_options"` NfsServer *string `json:"nfs_server"` Scan *ScanProgress `json:"scan"` // ScanIntervalMinutes Автоматический скан, null — только вручную ScanIntervalMinutes *int `json:"scan_interval_minutes"` Status SourceStatus `json:"status"` StatusMessage *string `json:"status_message"` TagPriority TagPriority `json:"tag_priority"` Type SourceType `json:"type"` // WriteTemplate Шаблон пути новых файлов (docs/uploads.md#7), null — не задан WriteTemplate *string `json:"write_template"` } // SourceCoverStats defines model for SourceCoverStats. type SourceCoverStats struct { AlbumsPending int64 `json:"albums_pending"` FilesTotal int64 `json:"files_total"` // FilesWithCover Файлы, альбом которых имеет готовую локальную обложку (встроенную или из папки) FilesWithCover int64 `json:"files_with_cover"` } // SourceInput defines model for SourceInput. type SourceInput struct { AcceptsUploads *bool `json:"accepts_uploads,omitempty"` // ExcludedDirs Literal folder paths relative to the storage root, including all descendants. Case sensitive; no glob matching. Empty list clears exclusions. Existing library records are retained, but their scan and analysis are skipped. Changes require no running scan. ExcludedDirs *ExcludedDirs `json:"excluded_dirs,omitempty"` LocalPath *string `json:"local_path,omitempty"` Name string `json:"name"` NfsExport *string `json:"nfs_export,omitempty"` NfsOptions *string `json:"nfs_options,omitempty"` NfsServer *string `json:"nfs_server,omitempty"` ScanIntervalMinutes *int `json:"scan_interval_minutes"` TagPriority *TagPriority `json:"tag_priority,omitempty"` Type SourceType `json:"type"` WriteTemplate *string `json:"write_template,omitempty"` } // SourceList defines model for SourceList. type SourceList struct { Items []Source `json:"items"` } // SourcePatch defines model for SourcePatch. type SourcePatch struct { // AcceptsUploads Смена переподключает NFS-хранилище (rw-точка агента) AcceptsUploads *bool `json:"accepts_uploads,omitempty"` // Enabled false — отключить хранилище (треки становятся недоступны), true — подключить снова Enabled *bool `json:"enabled,omitempty"` // ExcludedDirs Literal folder paths relative to the storage root, including all descendants. Case sensitive; no glob matching. Empty list clears exclusions. Existing library records are retained, but their scan and analysis are skipped. Changes require no running scan. ExcludedDirs *ExcludedDirs `json:"excluded_dirs,omitempty"` LocalPath *string `json:"local_path,omitempty"` Name *string `json:"name,omitempty"` NfsExport *string `json:"nfs_export,omitempty"` NfsOptions *string `json:"nfs_options,omitempty"` NfsServer *string `json:"nfs_server,omitempty"` // ScanIntervalMinutes 0 — отключить автоматический скан ScanIntervalMinutes *int `json:"scan_interval_minutes,omitempty"` TagPriority *TagPriority `json:"tag_priority,omitempty"` // WriteTemplate Шаблон пути новых файлов; пусто — убрать. Неверный синтаксис — `422 validation.template_invalid` // с `params.reason`. Проверка обратимости не обязательна для сохранения — её показывает `write-template/check`. WriteTemplate *string `json:"write_template,omitempty"` } // SourceStatus defines model for SourceStatus. type SourceStatus string // SourceStatusItem defines model for SourceStatusItem. type SourceStatusItem struct { Id openapi_types.UUID `json:"id"` LastScanAt *time.Time `json:"last_scan_at"` Name string `json:"name"` Scan *ScanProgress `json:"scan"` Status SourceStatus `json:"status"` StatusMessage *string `json:"status_message"` } // SourceTestResult defines model for SourceTestResult. type SourceTestResult struct { // AudioFiles Сколько аудиофайлов найдено (проверка останавливается на 1000) AudioFiles int `json:"audio_files"` Message string `json:"message"` Ok bool `json:"ok"` WriteMessage *string `json:"write_message"` // WriteOk Удалось создать и удалить `.pipu-write-test` (только для accepts_uploads; иначе null) WriteOk *bool `json:"write_ok"` } // SourceType defines model for SourceType. type SourceType string // StreamQuality defines model for StreamQuality. type StreamQuality string // TagPriority defines model for TagPriority. type TagPriority string // TemporaryPassword defines model for TemporaryPassword. type TemporaryPassword struct { TemporaryPassword string `json:"temporary_password"` } // Track defines model for Track. type Track struct { Album AlbumRef `json:"album"` Artists []ArtistRef `json:"artists"` // Available Есть доступный файл (хранилище подключено, файл на месте) Available bool `json:"available"` DiscNo *int `json:"disc_no"` DurationMs int `json:"duration_ms"` // Features Аудиопризнаки (после анализа) — для анимации волны и выравнивания громкости Features *TrackFeatures `json:"features"` Genres []string `json:"genres"` Id openapi_types.UUID `json:"id"` Reaction *Reaction `json:"reaction"` // StreamUrl Подписанная ссылка на аудио (12 ч); null — трек недоступен StreamUrl *string `json:"stream_url"` Title string `json:"title"` TrackNo *int `json:"track_no"` } // TrackFeatures defines model for TrackFeatures. type TrackFeatures struct { Bpm *float32 `json:"bpm"` Energy *float32 `json:"energy"` LoudnessLufs *float32 `json:"loudness_lufs"` } // TrackIds defines model for TrackIds. type TrackIds struct { Ids []openapi_types.UUID `json:"ids"` } // TrackList defines model for TrackList. type TrackList struct { Items []Track `json:"items"` } // TrackMeta defines model for TrackMeta. type TrackMeta struct { Album string `json:"album"` AlbumArtist string `json:"album_artist"` Artist string `json:"artist"` Disc *int `json:"disc"` Genres []string `json:"genres"` Title string `json:"title"` Track *int `json:"track"` Year *int `json:"year"` } // UiPrefs defines model for UiPrefs. type UiPrefs struct { Ambient *bool `json:"ambient,omitempty"` CrossfadeS *int `json:"crossfade_s,omitempty"` // HomeActivities Показывать на главной веба выбор занятия (по умолчанию true) HomeActivities *bool `json:"home_activities,omitempty"` // HomeMoods Показывать на главной веба выбор настроения (по умолчанию true) HomeMoods *bool `json:"home_moods,omitempty"` MobilePlayer *UiPrefsMobilePlayer `json:"mobile_player,omitempty"` Normalize *bool `json:"normalize,omitempty"` // SearchCollapse Сворачивать поиск в кнопку с лупой без фокуса (по умолчанию false) SearchCollapse *bool `json:"search_collapse,omitempty"` // SearchPosition Где в топбаре веба поиск (по умолчанию center) SearchPosition *UiPrefsSearchPosition `json:"search_position,omitempty"` Theme *UiPrefsTheme `json:"theme,omitempty"` WaveVariant *UiPrefsWaveVariant `json:"wave_variant,omitempty"` WebPlayer *UiPrefsWebPlayer `json:"web_player,omitempty"` } // UiPrefsMobilePlayer defines model for UiPrefs.MobilePlayer. type UiPrefsMobilePlayer string // UiPrefsSearchPosition Где в топбаре веба поиск (по умолчанию center) type UiPrefsSearchPosition string // UiPrefsTheme defines model for UiPrefs.Theme. type UiPrefsTheme string // UiPrefsWaveVariant defines model for UiPrefs.WaveVariant. type UiPrefsWaveVariant string // UiPrefsWebPlayer defines model for UiPrefs.WebPlayer. type UiPrefsWebPlayer string // UpdateMeRequest defines model for UpdateMeRequest. type UpdateMeRequest struct { // DisplayName Пустая строка — сбросить имя DisplayName *string `json:"display_name,omitempty"` Locale *string `json:"locale,omitempty"` UiPrefs *UiPrefs `json:"ui_prefs,omitempty"` } // UpdateUserRequest defines model for UpdateUserRequest. type UpdateUserRequest struct { // DisplayName Пустая строка — сбросить имя DisplayName *string `json:"display_name,omitempty"` IsBlocked *bool `json:"is_blocked,omitempty"` // ManagesUpdates Управление обновлениями сервера. У admin всегда; другим выдаёт только admin ManagesUpdates *bool `json:"manages_updates,omitempty"` // ReviewsUploads Выдать или забрать аудит загрузок. Может менять только админ, в том числе у себя ReviewsUploads *bool `json:"reviews_uploads,omitempty"` Role *Role `json:"role,omitempty"` // Username Новый логин. Может менять только администратор, в том числе у себя Username *string `json:"username,omitempty"` } // UploadBatchCreated defines model for UploadBatchCreated. type UploadBatchCreated struct { BatchId openapi_types.UUID `json:"batch_id"` Files []struct { ClientId string `json:"client_id"` // Rejected Код отказа — uploads.queue_full, uploads.user_quota_full, uploads.too_large, uploads.duplicate, uploads.unsupported_format Rejected *string `json:"rejected"` TrackId *openapi_types.UUID `json:"track_id"` TusUrl *string `json:"tus_url"` UploadFileId *openapi_types.UUID `json:"upload_file_id"` } `json:"files"` } // UploadBatchPatch Пустые поля не меняют файлы. cover_base64 null снимает обложку пачки. type UploadBatchPatch struct { Album *string `json:"album,omitempty"` Artist *string `json:"artist,omitempty"` // CoverBase64 JPEG, PNG или WebP, не больше 8 МБ после декодирования CoverBase64 *string `json:"cover_base64"` Year *int `json:"year"` } // UploadBatchRequest defines model for UploadBatchRequest. type UploadBatchRequest struct { Comment *string `json:"comment,omitempty"` // CoverBase64 Обложка альбома JPEG, PNG или WebP, до 8 МБ после декодирования. Применяется ко всем файлам пачки. CoverBase64 *string `json:"cover_base64,omitempty"` Files []struct { ClientId string `json:"client_id"` Name string `json:"name"` // RelPath Относительный путь в перетащенной папке RelPath *string `json:"rel_path,omitempty"` Sha256 string `json:"sha256"` Size int64 `json:"size"` } `json:"files"` } // UploadFile defines model for UploadFile. type UploadFile struct { Author UserRef `json:"author"` BatchComment *string `json:"batch_comment"` // BatchHasCover У пачки есть общая обложка для записи в загружаемые треки BatchHasCover *bool `json:"batch_has_cover,omitempty"` BatchId openapi_types.UUID `json:"batch_id"` BitDepth *int `json:"bit_depth"` Bitrate *int `json:"bitrate"` ClientRelPath *string `json:"client_rel_path"` Codec *string `json:"codec"` CreatedAt time.Time `json:"created_at"` DuplicateLevel *UploadFileDuplicateLevel `json:"duplicate_level"` DuplicateOfTrackId *openapi_types.UUID `json:"duplicate_of_track_id"` DurationMs *int `json:"duration_ms"` Format *string `json:"format"` Id openapi_types.UUID `json:"id"` // MatchedAlbumId Найден в каталоге — «будет добавлено к существующему альбому» MatchedAlbumId *openapi_types.UUID `json:"matched_album_id"` // MatchedArtistId Найден в каталоге — файл добавится к существующему исполнителю MatchedArtistId *openapi_types.UUID `json:"matched_artist_id"` Metadata *UploadMeta `json:"metadata"` MetadataEdited bool `json:"metadata_edited"` OriginalName string `json:"original_name"` PossibleDuplicate bool `json:"possible_duplicate"` // QualityUpgrade Тот же трек, но лучшего качества — ждёт решения, если включён allow_quality_upgrade QualityUpgrade bool `json:"quality_upgrade"` ReceivedBytes int64 `json:"received_bytes"` ReviewedAt *time.Time `json:"reviewed_at"` SampleRate *int `json:"sample_rate"` SizeBytes int64 `json:"size_bytes"` Status UploadStatus `json:"status"` StatusReason *string `json:"status_reason"` // StreamUrl Подписанная ссылка прослушивания из staging; null, если файла уже нет StreamUrl *string `json:"stream_url"` Tags map[string]string `json:"tags"` // TargetRelPath Путь в хранилище по write_template (null — не построился, причина в status_reason) TargetRelPath *string `json:"target_rel_path"` TargetSourceId *openapi_types.UUID `json:"target_source_id"` // TargetSourceName Название целевого хранилища; null, если хранилище не выбрано или удалено TargetSourceName *string `json:"target_source_name"` // TargetStoragePath Полный путь назначения для админской очереди — локальный путь API или server:/export/path для NFS. Для ожидающих файлов рассчитывается по текущему шаблону. TargetStoragePath *string `json:"target_storage_path"` // TusUrl Только автору и пока файл в статусе uploading TusUrl *string `json:"tus_url"` UpdatedAt time.Time `json:"updated_at"` } // UploadFileDuplicateLevel defines model for UploadFile.DuplicateLevel. type UploadFileDuplicateLevel string // UploadFilePage defines model for UploadFilePage. type UploadFilePage struct { Items []UploadFile `json:"items"` NextCursor *string `json:"next_cursor"` } // UploadMeta defines model for UploadMeta. type UploadMeta struct { Album string `json:"album"` Albumartist string `json:"albumartist"` Artist string `json:"artist"` Disc *int `json:"disc"` Genre string `json:"genre"` Title string `json:"title"` Track *int `json:"track"` Year *int `json:"year"` } // UploadPatch defines model for UploadPatch. type UploadPatch struct { Metadata *UploadMeta `json:"metadata,omitempty"` TargetSourceId *openapi_types.UUID `json:"target_source_id,omitempty"` } // UploadPrecheckRequest defines model for UploadPrecheckRequest. type UploadPrecheckRequest struct { Files []struct { Album *string `json:"album,omitempty"` Artist *string `json:"artist,omitempty"` ClientId string `json:"client_id"` DurationMs *int `json:"duration_ms,omitempty"` Sha256 string `json:"sha256"` Size int64 `json:"size"` Title *string `json:"title,omitempty"` } `json:"files"` } // UploadPrecheckResult defines model for UploadPrecheckResult. type UploadPrecheckResult struct { Files []struct { ClientId string `json:"client_id"` // PossibleDuplicate Совпали только метаданные — файл примут, админ решит PossibleDuplicate bool `json:"possible_duplicate"` Result UploadPrecheckResultFilesResult `json:"result"` // TrackId С каким треком совпал (дубль или похожие метаданные) TrackId *openapi_types.UUID `json:"track_id"` } `json:"files"` } // UploadPrecheckResultFilesResult defines model for UploadPrecheckResult.Files.Result. type UploadPrecheckResultFilesResult string // UploadQuota defines model for UploadQuota. type UploadQuota struct { LimitBytes int64 `json:"limit_bytes"` MaxFileBytes int64 `json:"max_file_bytes"` PerUserLimitBytes *int64 `json:"per_user_limit_bytes"` UsedBytes int64 `json:"used_bytes"` UserUsedBytes int64 `json:"user_used_bytes"` } // UploadReleaseGroup defines model for UploadReleaseGroup. type UploadReleaseGroup struct { Album string `json:"album"` Artist string `json:"artist"` FileIds []openapi_types.UUID `json:"file_ids"` HasCover bool `json:"has_cover"` Id openapi_types.UUID `json:"id"` State string `json:"state"` } // UploadReleaseReport defines model for UploadReleaseReport. type UploadReleaseReport struct { AudioAvailable *bool `json:"audio_available,omitempty"` AudioResults *[]struct { FileId openapi_types.UUID `json:"file_id"` RecordingId *openapi_types.UUID `json:"recording_id,omitempty"` Score *float32 `json:"score,omitempty"` State UploadReleaseReportAudioResultsState `json:"state"` } `json:"audio_results,omitempty"` Candidates []ReleaseCandidate `json:"candidates"` GroupId *openapi_types.UUID `json:"group_id,omitempty"` Groups *[]UploadReleaseGroup `json:"groups,omitempty"` InputHash string `json:"input_hash"` SelectedRelease *string `json:"selected_release"` State UploadReleaseReportState `json:"state"` } // UploadReleaseReportAudioResultsState defines model for UploadReleaseReport.AudioResults.State. type UploadReleaseReportAudioResultsState string // UploadReleaseReportState defines model for UploadReleaseReport.State. type UploadReleaseReportState string // UploadReviewRequest defines model for UploadReviewRequest. type UploadReviewRequest struct { Decision UploadReviewRequestDecision `json:"decision"` FileIds []openapi_types.UUID `json:"file_ids"` // Reason Причина отклонения — её видит автор Reason *string `json:"reason,omitempty"` } // UploadReviewRequestDecision defines model for UploadReviewRequest.Decision. type UploadReviewRequestDecision string // UploadReviewResult defines model for UploadReviewResult. type UploadReviewResult struct { Items []struct { Error *Problem `json:"error"` Id openapi_types.UUID `json:"id"` Ok bool `json:"ok"` } `json:"items"` } // UploadSettings defines model for UploadSettings. type UploadSettings struct { // AllowQualityUpgrade Тот же трек в лучшем качестве идёт на рассмотрение, а не в дубли AllowQualityUpgrade bool `json:"allow_quality_upgrade"` DefaultSourceId *openapi_types.UUID `json:"default_source_id"` MaxFileBytes int64 `json:"max_file_bytes"` PerUserLimitBytes *int64 `json:"per_user_limit_bytes"` QueueLimitBytes int64 `json:"queue_limit_bytes"` } // UploadSettingsPatch Лимит на пользователя и хранилище по умолчанию передаются всегда (null — выключить / не задано). type UploadSettingsPatch struct { AllowQualityUpgrade *bool `json:"allow_quality_upgrade,omitempty"` // DefaultSourceId null — без хранилища по умолчанию DefaultSourceId *openapi_types.UUID `json:"default_source_id"` MaxFileBytes *int64 `json:"max_file_bytes,omitempty"` // PerUserLimitBytes null — выключить лимит на пользователя PerUserLimitBytes *int64 `json:"per_user_limit_bytes"` QueueLimitBytes *int64 `json:"queue_limit_bytes,omitempty"` } // UploadStatus defines model for UploadStatus. type UploadStatus string // UserArchive defines model for UserArchive. type UserArchive struct { Users []UserArchiveEntry `json:"users"` Version UserArchiveVersion `json:"version"` } // UserArchiveVersion defines model for UserArchive.Version. type UserArchiveVersion int // UserArchiveEntry defines model for UserArchiveEntry. type UserArchiveEntry struct { DisplayName *string `json:"display_name"` IsBlocked bool `json:"is_blocked"` ManagesUpdates bool `json:"manages_updates"` MustChangeCredentials bool `json:"must_change_credentials"` MustChangePassword bool `json:"must_change_password"` // PasswordHash Argon2id PHC. Секретные данные; файл нужно хранить в защищённом месте. PasswordHash string `json:"password_hash"` ReviewsUploads bool `json:"reviews_uploads"` Role Role `json:"role"` Username string `json:"username"` } // UserImportResult defines model for UserImportResult. type UserImportResult struct { Created int `json:"created"` Skipped []string `json:"skipped"` } // UserRef defines model for UserRef. type UserRef struct { Id openapi_types.UUID `json:"id"` Username string `json:"username"` } // WaveBatch defines model for WaveBatch. type WaveBatch struct { Activity *string `json:"activity"` // Fallback Рекомендатель недоступен — пачка собрана упрощённо (лайки, любимые исполнители) Fallback bool `json:"fallback"` Mood *string `json:"mood"` SessionId openapi_types.UUID `json:"session_id"` Tracks []Track `json:"tracks"` } // WaveContext defines model for WaveContext. type WaveContext struct { Activity *string `json:"activity"` Mood *string `json:"mood"` } // WaveFeedback defines model for WaveFeedback. type WaveFeedback struct { Outcome WaveFeedbackOutcome `json:"outcome"` TrackId openapi_types.UUID `json:"track_id"` } // WaveFeedbackOutcome defines model for WaveFeedback.Outcome. type WaveFeedbackOutcome string // WaveMetrics Метрики волны за 7 дней type WaveMetrics struct { // ByModel Те же метрики по версии модели показа (v1 / ALS / ранжировщик) — сравнение онлайн ByModel []WaveModelMetrics `json:"by_model"` EarlySkipRate *float32 `json:"early_skip_rate"` // LikeRate Лайков на 100 треков LikeRate *float32 `json:"like_rate"` ListenThroughRate *float32 `json:"listen_through_rate"` Served int `json:"served"` Sessions int `json:"sessions"` } // WaveModelMetrics defines model for WaveModelMetrics. type WaveModelMetrics struct { EarlySkipRate *float32 `json:"early_skip_rate"` LikeRate *float32 `json:"like_rate"` ListenThroughRate *float32 `json:"listen_through_rate"` ModelVer string `json:"model_ver"` Served int `json:"served"` } // WaveNext defines model for WaveNext. type WaveNext struct { Feedback *[]WaveFeedback `json:"feedback,omitempty"` } // WaveOption defines model for WaveOption. type WaveOption struct { // Icon Имя иконки Material Symbols Icon string `json:"icon"` Key string `json:"key"` } // WaveOptions defines model for WaveOptions. type WaveOptions struct { Activities []WaveOption `json:"activities"` Moods []WaveOption `json:"moods"` } // WaveStart defines model for WaveStart. type WaveStart struct { Activity *string `json:"activity"` Mood *string `json:"mood"` Seed *struct { Id openapi_types.UUID `json:"id"` Type WaveStartSeedType `json:"type"` } `json:"seed,omitempty"` } // WaveStartSeedType defines model for WaveStart.Seed.Type. type WaveStartSeedType string // WriteTemplateCheck defines model for WriteTemplateCheck. type WriteTemplateCheck struct { Mismatches []WriteTemplateMismatch `json:"mismatches"` // Ok Все пути разобраны обратно без изменений и ≥ 90% совпали с реальными Ok bool `json:"ok"` RoundTrip int `json:"round_trip"` SamePath int `json:"same_path"` Total int `json:"total"` } // WriteTemplateCheckRequest defines model for WriteTemplateCheckRequest. type WriteTemplateCheckRequest struct { Template string `json:"template"` } // WriteTemplateMismatch defines model for WriteTemplateMismatch. type WriteTemplateMismatch struct { Error *string `json:"error"` // Fields Поля, которые регэкспы хранилища распознали не так; `pattern` — не совпало ни одно выражение Fields []string `json:"fields"` // RelPath Реальный путь файла RelPath string `json:"rel_path"` // Rendered Путь по шаблону, null — не построился Rendered *string `json:"rendered"` } // WriteTemplateSuggestion defines model for WriteTemplateSuggestion. type WriteTemplateSuggestion struct { // Examples До трёх существующих путей, совпавших с шаблоном Examples *[]string `json:"examples,omitempty"` // Matched Число путей выборки, совпавших с предложенным шаблоном Matched *int `json:"matched,omitempty"` Template string `json:"template"` // Total Число исследованных файлов хранилища Total *int `json:"total,omitempty"` } // Cursor defines model for Cursor. type Cursor = string // EntityId defines model for EntityId. type EntityId = openapi_types.UUID // Limit defines model for Limit. type Limit = int // SourceId defines model for SourceId. type SourceId = openapi_types.UUID // UploadStatusFilter defines model for UploadStatusFilter. type UploadStatusFilter = []UploadStatus // UserId defines model for UserId. type UserId = openapi_types.UUID // ListAuditParams defines parameters for ListAudit. type ListAuditParams struct { Limit *Limit `form:"limit,omitempty" json:"limit,omitempty"` // Cursor Непрозрачный курсор из `next_cursor` предыдущей страницы Cursor *Cursor `form:"cursor,omitempty" json:"cursor,omitempty"` } // ControlGeniusJSONBody defines parameters for ControlGenius. type ControlGeniusJSONBody struct { Action ControlGeniusJSONBodyAction `json:"action"` } // ControlGeniusJSONBodyAction defines parameters for ControlGenius. type ControlGeniusJSONBodyAction string // ListAnalysisErrorsParams defines parameters for ListAnalysisErrors. type ListAnalysisErrorsParams struct { Limit *Limit `form:"limit,omitempty" json:"limit,omitempty"` // Cursor Непрозрачный курсор из `next_cursor` предыдущей страницы Cursor *Cursor `form:"cursor,omitempty" json:"cursor,omitempty"` } // ListLibraryErrorsParams defines parameters for ListLibraryErrors. type ListLibraryErrorsParams struct { Limit *Limit `form:"limit,omitempty" json:"limit,omitempty"` // Cursor Непрозрачный курсор из `next_cursor` предыдущей страницы Cursor *Cursor `form:"cursor,omitempty" json:"cursor,omitempty"` } // ListHostDirsParams defines parameters for ListHostDirs. type ListHostDirsParams struct { // Path Путь относительно корня, пусто — корень Path *string `form:"path,omitempty" json:"path,omitempty"` } // GetServerUpdatesParams defines parameters for GetServerUpdates. type GetServerUpdatesParams struct { SourceId *string `form:"source_id,omitempty" json:"source_id,omitempty"` Channel *GetServerUpdatesParamsChannel `form:"channel,omitempty" json:"channel,omitempty"` Version *string `form:"version,omitempty" json:"version,omitempty"` Fresh *bool `form:"fresh,omitempty" json:"fresh,omitempty"` } // GetServerUpdatesParamsChannel defines parameters for GetServerUpdates. type GetServerUpdatesParamsChannel string // ListUploadsParams defines parameters for ListUploads. type ListUploadsParams struct { // Status Статусы через запятую Status *UploadStatusFilter `form:"status,omitempty" json:"status,omitempty"` Author *openapi_types.UUID `form:"author,omitempty" json:"author,omitempty"` Batch *openapi_types.UUID `form:"batch,omitempty" json:"batch,omitempty"` PossibleDuplicate *bool `form:"possible_duplicate,omitempty" json:"possible_duplicate,omitempty"` Limit *Limit `form:"limit,omitempty" json:"limit,omitempty"` // Cursor Непрозрачный курсор из `next_cursor` предыдущей страницы Cursor *Cursor `form:"cursor,omitempty" json:"cursor,omitempty"` } // ApplyUploadReleaseJSONBody defines parameters for ApplyUploadRelease. type ApplyUploadReleaseJSONBody struct { ApplyCover bool `json:"apply_cover"` ApplyMetadata bool `json:"apply_metadata"` GroupId *openapi_types.UUID `json:"group_id,omitempty"` ReleaseId openapi_types.UUID `json:"release_id"` } // GetUploadReleasesParams defines parameters for GetUploadReleases. type GetUploadReleasesParams struct { GroupId *openapi_types.UUID `form:"group_id,omitempty" json:"group_id,omitempty"` } // SearchUploadReleasesJSONBody defines parameters for SearchUploadReleases. type SearchUploadReleasesJSONBody struct { Album *string `json:"album,omitempty"` Artist *string `json:"artist,omitempty"` // Audio Явно распознать до 50 редактируемых треков через AcoustID; теги и аудио не отправляются. Требуется ключ приложения на сервере. Audio *bool `json:"audio,omitempty"` GroupId *openapi_types.UUID `json:"group_id,omitempty"` ReleaseId *openapi_types.UUID `json:"release_id,omitempty"` } // GetUploadReleaseCoverParams defines parameters for GetUploadReleaseCover. type GetUploadReleaseCoverParams struct { GroupId *openapi_types.UUID `form:"group_id,omitempty" json:"group_id,omitempty"` } // StreamUploadParams defines parameters for StreamUpload. type StreamUploadParams struct { Exp int64 `form:"exp" json:"exp"` Sig string `form:"sig" json:"sig"` } // ListUsersParams defines parameters for ListUsers. type ListUsersParams struct { Q *string `form:"q,omitempty" json:"q,omitempty"` Role *Role `form:"role,omitempty" json:"role,omitempty"` Limit *Limit `form:"limit,omitempty" json:"limit,omitempty"` // Cursor Непрозрачный курсор из `next_cursor` предыдущей страницы Cursor *Cursor `form:"cursor,omitempty" json:"cursor,omitempty"` } // ListArtistTopTracksParams defines parameters for ListArtistTopTracks. type ListArtistTopTracksParams struct { Limit *int `form:"limit,omitempty" json:"limit,omitempty"` } // RefreshTokensParams defines parameters for RefreshTokens. type RefreshTokensParams struct { PipuRt *string `form:"pipu_rt,omitempty" json:"pipu_rt,omitempty"` } // GetCoverParams defines parameters for GetCover. type GetCoverParams struct { V string `form:"v" json:"v"` Sig string `form:"sig" json:"sig"` Size *GetCoverParamsSize `form:"size,omitempty" json:"size,omitempty"` } // GetCoverParamsSize defines parameters for GetCover. type GetCoverParamsSize int // GetDislikesParams defines parameters for GetDislikes. type GetDislikesParams struct { Limit *Limit `form:"limit,omitempty" json:"limit,omitempty"` // Cursor Непрозрачный курсор из `next_cursor` предыдущей страницы Cursor *Cursor `form:"cursor,omitempty" json:"cursor,omitempty"` } // GetHistoryParams defines parameters for GetHistory. type GetHistoryParams struct { Limit *Limit `form:"limit,omitempty" json:"limit,omitempty"` // Cursor Непрозрачный курсор из `next_cursor` предыдущей страницы Cursor *Cursor `form:"cursor,omitempty" json:"cursor,omitempty"` } // GetLikesParams defines parameters for GetLikes. type GetLikesParams struct { Limit *Limit `form:"limit,omitempty" json:"limit,omitempty"` // Cursor Непрозрачный курсор из `next_cursor` предыдущей страницы Cursor *Cursor `form:"cursor,omitempty" json:"cursor,omitempty"` } // SetActivityVisibilityJSONBody defines parameters for SetActivityVisibility. type SetActivityVisibilityJSONBody struct { Visibility ActivityVisibility `json:"visibility"` } // GetDirectMessagesParams defines parameters for GetDirectMessages. type GetDirectMessagesParams struct { Before *int64 `form:"before,omitempty" json:"before,omitempty"` Q *string `form:"q,omitempty" json:"q,omitempty"` // Music Only non-deleted track and playlist attachments, with the same history pagination. Music *bool `form:"music,omitempty" json:"music,omitempty"` } // UpdateChatMessageJSONBody defines parameters for UpdateChatMessage. type UpdateChatMessageJSONBody struct { Action UpdateChatMessageJSONBodyAction `json:"action"` Emoji *UpdateChatMessageJSONBodyEmoji `json:"emoji,omitempty"` Text *string `json:"text,omitempty"` } // UpdateChatMessageJSONBodyAction defines parameters for UpdateChatMessage. type UpdateChatMessageJSONBodyAction string // UpdateChatMessageJSONBodyEmoji defines parameters for UpdateChatMessage. type UpdateChatMessageJSONBodyEmoji string // SetChatTypingJSONBody defines parameters for SetChatTyping. type SetChatTypingJSONBody struct { Typing bool `json:"typing"` } // SearchPeopleParams defines parameters for SearchPeople. type SearchPeopleParams struct { Q string `form:"q" json:"q"` } // SetFriendsRecommendationsJSONBody defines parameters for SetFriendsRecommendations. type SetFriendsRecommendationsJSONBody struct { Enabled bool `json:"enabled"` } // SearchParams defines parameters for Search. type SearchParams struct { Q string `form:"q" json:"q"` Type *SearchParamsType `form:"type,omitempty" json:"type,omitempty"` Limit *Limit `form:"limit,omitempty" json:"limit,omitempty"` // Cursor Непрозрачный курсор из `next_cursor` предыдущей страницы Cursor *Cursor `form:"cursor,omitempty" json:"cursor,omitempty"` } // SearchParamsType defines parameters for Search. type SearchParamsType string // SearchSuggestParams defines parameters for SearchSuggest. type SearchSuggestParams struct { Q string `form:"q" json:"q"` } // StreamTrackParams defines parameters for StreamTrack. type StreamTrackParams struct { U openapi_types.UUID `form:"u" json:"u"` Exp int64 `form:"exp" json:"exp"` Sig string `form:"sig" json:"sig"` Q *StreamQuality `form:"q,omitempty" json:"q,omitempty"` } // ListMyUploadsParams defines parameters for ListMyUploads. type ListMyUploadsParams struct { // Batch Только файлы указанной собственной пачки Batch *openapi_types.UUID `form:"batch,omitempty" json:"batch,omitempty"` // Status Статусы через запятую Status *UploadStatusFilter `form:"status,omitempty" json:"status,omitempty"` Limit *Limit `form:"limit,omitempty" json:"limit,omitempty"` // Cursor Непрозрачный курсор из `next_cursor` предыдущей страницы Cursor *Cursor `form:"cursor,omitempty" json:"cursor,omitempty"` } // ControlGeniusJSONRequestBody defines body for ControlGenius for application/json ContentType. type ControlGeniusJSONRequestBody ControlGeniusJSONBody // SaveServerConfigJSONRequestBody defines body for SaveServerConfig for application/json ContentType. type SaveServerConfigJSONRequestBody = ServerConfigPatch // SaveServerUpdateSourcesJSONRequestBody defines body for SaveServerUpdateSources for application/json ContentType. type SaveServerUpdateSourcesJSONRequestBody = ServerSources // StartServerUpdateJSONRequestBody defines body for StartServerUpdate for application/json ContentType. type StartServerUpdateJSONRequestBody = ServerUpdateRequest // UpdateUploadSettingsJSONRequestBody defines body for UpdateUploadSettings for application/json ContentType. type UpdateUploadSettingsJSONRequestBody = UploadSettingsPatch // CreateSourceJSONRequestBody defines body for CreateSource for application/json ContentType. type CreateSourceJSONRequestBody = SourceInput // UpdateSourceJSONRequestBody defines body for UpdateSource for application/json ContentType. type UpdateSourceJSONRequestBody = SourcePatch // PutSourcePatternsJSONRequestBody defines body for PutSourcePatterns for application/json ContentType. type PutSourcePatternsJSONRequestBody = PatternList // PreviewSourcePatternsJSONRequestBody defines body for PreviewSourcePatterns for application/json ContentType. type PreviewSourcePatternsJSONRequestBody = PatternPreviewRequest // ScanSourceJSONRequestBody defines body for ScanSource for application/json ContentType. type ScanSourceJSONRequestBody = ScanRequest // CheckWriteTemplateJSONRequestBody defines body for CheckWriteTemplate for application/json ContentType. type CheckWriteTemplateJSONRequestBody = WriteTemplateCheckRequest // UpdateUploadBatchJSONRequestBody defines body for UpdateUploadBatch for application/json ContentType. type UpdateUploadBatchJSONRequestBody = UploadBatchPatch // ApplyUploadReleaseJSONRequestBody defines body for ApplyUploadRelease for application/json ContentType. type ApplyUploadReleaseJSONRequestBody ApplyUploadReleaseJSONBody // SearchUploadReleasesJSONRequestBody defines body for SearchUploadReleases for application/json ContentType. type SearchUploadReleasesJSONRequestBody SearchUploadReleasesJSONBody // UpdateUploadJSONRequestBody defines body for UpdateUpload for application/json ContentType. type UpdateUploadJSONRequestBody = UploadPatch // ReviewUploadsJSONRequestBody defines body for ReviewUploads for application/json ContentType. type ReviewUploadsJSONRequestBody = UploadReviewRequest // CreateUserJSONRequestBody defines body for CreateUser for application/json ContentType. type CreateUserJSONRequestBody = CreateUserRequest // ImportUsersJSONRequestBody defines body for ImportUsers for application/json ContentType. type ImportUsersJSONRequestBody = UserArchive // UpdateUserJSONRequestBody defines body for UpdateUser for application/json ContentType. type UpdateUserJSONRequestBody = UpdateUserRequest // LoginJSONRequestBody defines body for Login for application/json ContentType. type LoginJSONRequestBody = LoginRequest // RefreshTokensJSONRequestBody defines body for RefreshTokens for application/json ContentType. type RefreshTokensJSONRequestBody = RefreshRequest // PostEventsJSONRequestBody defines body for PostEvents for application/json ContentType. type PostEventsJSONRequestBody = EventBatch // UpdateMeJSONRequestBody defines body for UpdateMe for application/json ContentType. type UpdateMeJSONRequestBody = UpdateMeRequest // SetBootstrapCredentialsJSONRequestBody defines body for SetBootstrapCredentials for application/json ContentType. type SetBootstrapCredentialsJSONRequestBody = BootstrapCredentialsRequest // SaveOnboardingJSONRequestBody defines body for SaveOnboarding for application/json ContentType. type SaveOnboardingJSONRequestBody = OnboardingChoice // ChangePasswordJSONRequestBody defines body for ChangePassword for application/json ContentType. type ChangePasswordJSONRequestBody = ChangePasswordRequest // PutPlaybackStateJSONRequestBody defines body for PutPlaybackState for application/json ContentType. type PutPlaybackStateJSONRequestBody = PlaybackStateInput // CreatePlaylistJSONRequestBody defines body for CreatePlaylist for application/json ContentType. type CreatePlaylistJSONRequestBody = PlaylistInput // UpdatePlaylistJSONRequestBody defines body for UpdatePlaylist for application/json ContentType. type UpdatePlaylistJSONRequestBody = PlaylistUpdate // SetTrackReactionJSONRequestBody defines body for SetTrackReaction for application/json ContentType. type SetTrackReactionJSONRequestBody = ReactionInput // SocialActionJSONRequestBody defines body for SocialAction for application/json ContentType. type SocialActionJSONRequestBody = SocialAction // PublishListeningActivityJSONRequestBody defines body for PublishListeningActivity for application/json ContentType. type PublishListeningActivityJSONRequestBody = ListeningActivityInput // SetActivityVisibilityJSONRequestBody defines body for SetActivityVisibility for application/json ContentType. type SetActivityVisibilityJSONRequestBody SetActivityVisibilityJSONBody // SendDirectMessageJSONRequestBody defines body for SendDirectMessage for application/json ContentType. type SendDirectMessageJSONRequestBody = SendDirectMessage // UpdateChatMessageJSONRequestBody defines body for UpdateChatMessage for application/json ContentType. type UpdateChatMessageJSONRequestBody UpdateChatMessageJSONBody // SetChatTypingJSONRequestBody defines body for SetChatTyping for application/json ContentType. type SetChatTypingJSONRequestBody SetChatTypingJSONBody // ListeningActionJSONRequestBody defines body for ListeningAction for application/json ContentType. type ListeningActionJSONRequestBody = ListeningAction // SetListeningPreferencesJSONRequestBody defines body for SetListeningPreferences for application/json ContentType. type SetListeningPreferencesJSONRequestBody = ListeningPreferences // PublishListeningStateJSONRequestBody defines body for PublishListeningState for application/json ContentType. type PublishListeningStateJSONRequestBody = ListeningRoomInput // SetFriendsRecommendationsJSONRequestBody defines body for SetFriendsRecommendations for application/json ContentType. type SetFriendsRecommendationsJSONRequestBody SetFriendsRecommendationsJSONBody // GetTracksBatchJSONRequestBody defines body for GetTracksBatch for application/json ContentType. type GetTracksBatchJSONRequestBody = TrackIds // CreateUploadBatchJSONRequestBody defines body for CreateUploadBatch for application/json ContentType. type CreateUploadBatchJSONRequestBody = UploadBatchRequest // PrecheckUploadsJSONRequestBody defines body for PrecheckUploads for application/json ContentType. type PrecheckUploadsJSONRequestBody = UploadPrecheckRequest // StartWaveJSONRequestBody defines body for StartWave for application/json ContentType. type StartWaveJSONRequestBody = WaveStart // UpdateWaveJSONRequestBody defines body for UpdateWave for application/json ContentType. type UpdateWaveJSONRequestBody = WaveContext // NextWaveJSONRequestBody defines body for NextWave for application/json ContentType. type NextWaveJSONRequestBody = WaveNext // ServerInterface represents all server handlers. type ServerInterface interface { // Журнал действий (admin), новые сверху // (GET /api/v1/admin/audit) ListAudit(w http.ResponseWriter, r *http.Request, params ListAuditParams) // (GET /api/v1/admin/genius) GetGeniusStats(w http.ResponseWriter, r *http.Request) // (POST /api/v1/admin/genius) ControlGenius(w http.ResponseWriter, r *http.Request) // Неудавшиеся задачи аудиоанализа с путями файлов (admin) // (GET /api/v1/admin/library/analysis/errors) ListAnalysisErrors(w http.ResponseWriter, r *http.Request, params ListAnalysisErrorsParams) // Вернуть в очередь треки, которые не удалось проанализировать (admin) // (POST /api/v1/admin/library/analysis/retry) RetryAnalysis(w http.ResponseWriter, r *http.Request) // Файлы, которые не удалось прочитать (admin) // (GET /api/v1/admin/library/errors) ListLibraryErrors(w http.ResponseWriter, r *http.Request, params ListLibraryErrorsParams) // Подпапки каталога LIBRARY_HOST — выбор папки для local-хранилища (admin) // (GET /api/v1/admin/library/host-dirs) ListHostDirs(w http.ResponseWriter, r *http.Request, params ListHostDirsParams) // Состояние библиотеки (admin, moderator) // (GET /api/v1/admin/library/status) GetLibraryStatus(w http.ResponseWriter, r *http.Request) // Пересобрать поисковые индексы (admin) // (POST /api/v1/admin/search/reindex) ReindexSearch(w http.ResponseWriter, r *http.Request) // (GET /api/v1/admin/server/config) GetServerConfig(w http.ResponseWriter, r *http.Request) // (PATCH /api/v1/admin/server/config) SaveServerConfig(w http.ResponseWriter, r *http.Request) // (POST /api/v1/admin/server/config/apply) ApplyServerConfig(w http.ResponseWriter, r *http.Request) // (PUT /api/v1/admin/server/update-sources) SaveServerUpdateSources(w http.ResponseWriter, r *http.Request) // (GET /api/v1/admin/server/updates) GetServerUpdates(w http.ResponseWriter, r *http.Request, params GetServerUpdatesParams) // (POST /api/v1/admin/server/updates) StartServerUpdate(w http.ResponseWriter, r *http.Request) // Настройки очереди (admin) // (GET /api/v1/admin/settings/uploads) GetUploadSettings(w http.ResponseWriter, r *http.Request) // Изменить настройки очереди (admin) // (PATCH /api/v1/admin/settings/uploads) UpdateUploadSettings(w http.ResponseWriter, r *http.Request) // Хранилища (admin) // (GET /api/v1/admin/sources) ListSources(w http.ResponseWriter, r *http.Request) // Подключить хранилище (admin) // (POST /api/v1/admin/sources) CreateSource(w http.ResponseWriter, r *http.Request) // Отключить и удалить хранилище (admin) // (DELETE /api/v1/admin/sources/{id}) DeleteSource(w http.ResponseWriter, r *http.Request, id SourceId) // Хранилище (admin) // (GET /api/v1/admin/sources/{id}) GetSource(w http.ResponseWriter, r *http.Request, id SourceId) // Изменить хранилище (admin) // (PATCH /api/v1/admin/sources/{id}) UpdateSource(w http.ResponseWriter, r *http.Request, id SourceId) // Покрытие аудиофайлов локальными обложками (admin) // (GET /api/v1/admin/sources/{id}/cover-stats) GetSourceCoverStats(w http.ResponseWriter, r *http.Request, id SourceId) // Шаблоны путей (admin) // (GET /api/v1/admin/sources/{id}/patterns) GetSourcePatterns(w http.ResponseWriter, r *http.Request, id SourceId) // Заменить шаблоны путей (admin) // (PUT /api/v1/admin/sources/{id}/patterns) PutSourcePatterns(w http.ResponseWriter, r *http.Request, id SourceId) // Предпросмотр разбора путей без сохранения (admin) // (POST /api/v1/admin/sources/{id}/patterns/preview) PreviewSourcePatterns(w http.ResponseWriter, r *http.Request, id SourceId) // Запустить скан (admin) // (POST /api/v1/admin/sources/{id}/scan) ScanSource(w http.ResponseWriter, r *http.Request, id SourceId) // Проверить подключение (admin) // (POST /api/v1/admin/sources/{id}/test) TestSource(w http.ResponseWriter, r *http.Request, id SourceId) // Проверить шаблон на обратимость (admin) // (POST /api/v1/admin/sources/{id}/write-template/check) CheckWriteTemplate(w http.ResponseWriter, r *http.Request, id SourceId) // Подобрать шаблон пути по существующей структуре (admin) // (POST /api/v1/admin/sources/{id}/write-template/suggest) SuggestWriteTemplate(w http.ResponseWriter, r *http.Request, id SourceId) // Очередь на добавление (admin) // (GET /api/v1/admin/uploads) ListUploads(w http.ResponseWriter, r *http.Request, params ListUploadsParams) // Правка метаданных и обложки на всю пачку (admin) // (PATCH /api/v1/admin/uploads/batches/{id}) UpdateUploadBatch(w http.ResponseWriter, r *http.Request, id EntityId) // Явно применить метаданные и/или обложку выбранного издания // (POST /api/v1/admin/uploads/batches/{id}/release) ApplyUploadRelease(w http.ResponseWriter, r *http.Request, id EntityId) // Состояние фонового сопоставления пачки с изданиями MusicBrainz // (GET /api/v1/admin/uploads/batches/{id}/releases) GetUploadReleases(w http.ResponseWriter, r *http.Request, id EntityId, params GetUploadReleasesParams) // Повторить поиск релиза, при необходимости с уточнённым запросом // (POST /api/v1/admin/uploads/batches/{id}/releases) SearchUploadReleases(w http.ResponseWriter, r *http.Request, id EntityId) // Предпросмотр обложки выбранного кандидата из Cover Art Archive // (GET /api/v1/admin/uploads/batches/{id}/releases/{release_id}/cover) GetUploadReleaseCover(w http.ResponseWriter, r *http.Request, id EntityId, releaseId openapi_types.UUID, params GetUploadReleaseCoverParams) // Править метаданные и хранилище (admin) // (PATCH /api/v1/admin/uploads/files/{id}) UpdateUpload(w http.ResponseWriter, r *http.Request, id EntityId) // Повторить импорт после import_failed (admin) // (POST /api/v1/admin/uploads/files/{id}/retry) RetryUploadImport(w http.ResponseWriter, r *http.Request, id EntityId) // Прослушать файл из staging (подпись, как у стрима трека) // (GET /api/v1/admin/uploads/files/{id}/stream) StreamUpload(w http.ResponseWriter, r *http.Request, id EntityId, params StreamUploadParams) // Одобрить / отклонить файлы (admin) // (POST /api/v1/admin/uploads/review) ReviewUploads(w http.ResponseWriter, r *http.Request) // Пользователи (admin, moderator) // (GET /api/v1/admin/users) ListUsers(w http.ResponseWriter, r *http.Request, params ListUsersParams) // Создать пользователя // (POST /api/v1/admin/users) CreateUser(w http.ResponseWriter, r *http.Request) // Экспорт учётных записей с ролями и хэшами паролей (admin) // (GET /api/v1/admin/users/export) ExportUsers(w http.ResponseWriter, r *http.Request) // Импорт учётных записей с сохранением паролей (admin) // (POST /api/v1/admin/users/import) ImportUsers(w http.ResponseWriter, r *http.Request) // Удалить пользователя (admin) // (DELETE /api/v1/admin/users/{id}) DeleteUser(w http.ResponseWriter, r *http.Request, id UserId) // Изменить имя, роль, блокировку // (PATCH /api/v1/admin/users/{id}) UpdateUser(w http.ResponseWriter, r *http.Request, id UserId) // Сбросить пароль // (POST /api/v1/admin/users/{id}/reset-password) ResetUserPassword(w http.ResponseWriter, r *http.Request, id UserId) // Сбросить рекомендации // (POST /api/v1/admin/users/{id}/reset-recommendations) ResetUserRecommendations(w http.ResponseWriter, r *http.Request, id UserId) // Альбом с треками // (GET /api/v1/albums/{id}) GetAlbum(w http.ResponseWriter, r *http.Request, id EntityId) // APK версии (кэшируется на сервере, поддерживает Range для докачки) // (GET /api/v1/app/android/download/{version}) DownloadAndroidApk(w http.ResponseWriter, r *http.Request, version string) // Последняя версия Android-приложения (из релизов Gitea через сервер) // (GET /api/v1/app/android/latest) GetAndroidLatest(w http.ResponseWriter, r *http.Request) // Клиенты последних релизов (Android и десктоп) // (GET /api/v1/app/clients) GetAppClients(w http.ResponseWriter, r *http.Request) // Файл клиента (кэшируется на сервере, поддерживает Range) // (GET /api/v1/app/download/{client}/{version}) DownloadAppClient(w http.ResponseWriter, r *http.Request, client AppClient, version string) // Исполнитель // (GET /api/v1/artists/{id}) GetArtist(w http.ResponseWriter, r *http.Request, id EntityId) // Альбомы исполнителя (свои и сборники с его треками) // (GET /api/v1/artists/{id}/albums) ListArtistAlbums(w http.ResponseWriter, r *http.Request, id EntityId) // Популярные треки исполнителя (по прослушиваниям всех пользователей) // (GET /api/v1/artists/{id}/top-tracks) ListArtistTopTracks(w http.ResponseWriter, r *http.Request, id EntityId, params ListArtistTopTracksParams) // Вход по логину и паролю // (POST /api/v1/auth/login) Login(w http.ResponseWriter, r *http.Request) // Выход — отзыв текущей сессии // (POST /api/v1/auth/logout) Logout(w http.ResponseWriter, r *http.Request) // Выход на всех устройствах // (POST /api/v1/auth/logout-all) LogoutAll(w http.ResponseWriter, r *http.Request) // Ротация refresh-токена // (POST /api/v1/auth/refresh) RefreshTokens(w http.ResponseWriter, r *http.Request, params RefreshTokensParams) // Обложка альбома (WebP) // (GET /api/v1/covers/{id}) GetCover(w http.ResponseWriter, r *http.Request, id EntityId, params GetCoverParams) // Пачка событий прослушивания (до 500) // (POST /api/v1/events) PostEvents(w http.ResponseWriter, r *http.Request) // Текущий пользователь // (GET /api/v1/me) GetMe(w http.ResponseWriter, r *http.Request) // Изменить имя, язык, настройки интерфейса // (PATCH /api/v1/me) UpdateMe(w http.ResponseWriter, r *http.Request) // Первый запуск — новые логин и пароль администратора // (POST /api/v1/me/bootstrap-credentials) SetBootstrapCredentials(w http.ResponseWriter, r *http.Request) // Дизлайки, новые сверху // (GET /api/v1/me/dislikes) GetDislikes(w http.ResponseWriter, r *http.Request, params GetDislikesParams) // Очистить историю (события остаются для статистики) // (DELETE /api/v1/me/history) ClearHistory(w http.ResponseWriter, r *http.Request) // История прослушиваний, новые сверху // (GET /api/v1/me/history) GetHistory(w http.ResponseWriter, r *http.Request, params GetHistoryParams) // Лайки, новые сверху // (GET /api/v1/me/likes) GetLikes(w http.ResponseWriter, r *http.Request, params GetLikesParams) // Сохранить выбор онбординга (или пропуск — пустые списки) // (PUT /api/v1/me/onboarding) SaveOnboarding(w http.ResponseWriter, r *http.Request) // Сменить пароль // (POST /api/v1/me/password) ChangePassword(w http.ResponseWriter, r *http.Request) // Последнее состояние плеера (трек, позиция, очередь) // (GET /api/v1/me/playback-state) GetPlaybackState(w http.ResponseWriter, r *http.Request) // Сохранить состояние плеера (last-write-wins) // (PUT /api/v1/me/playback-state) PutPlaybackState(w http.ResponseWriter, r *http.Request) // (GET /api/v1/me/playlists) ListPlaylists(w http.ResponseWriter, r *http.Request) // (POST /api/v1/me/playlists) CreatePlaylist(w http.ResponseWriter, r *http.Request) // (DELETE /api/v1/me/playlists/{id}) DeletePlaylist(w http.ResponseWriter, r *http.Request, id openapi_types.UUID) // (GET /api/v1/me/playlists/{id}) GetPlaylist(w http.ResponseWriter, r *http.Request, id openapi_types.UUID) // (PUT /api/v1/me/playlists/{id}) UpdatePlaylist(w http.ResponseWriter, r *http.Request, id openapi_types.UUID) // Отозвать ссылку (только владелец); повторная публикация создаёт новую ссылку // (DELETE /api/v1/me/playlists/{id}/share) RevokePlaylistShare(w http.ResponseWriter, r *http.Request, id openapi_types.UUID) // Создать или вернуть ссылку только для чтения (только владелец) // (POST /api/v1/me/playlists/{id}/share) SharePlaylist(w http.ResponseWriter, r *http.Request, id openapi_types.UUID) // Снять реакцию // (DELETE /api/v1/me/reactions/tracks/{id}) ClearTrackReaction(w http.ResponseWriter, r *http.Request, id EntityId) // Лайк или дизлайк трека // (PUT /api/v1/me/reactions/tracks/{id}) SetTrackReaction(w http.ResponseWriter, r *http.Request, id EntityId) // Активные сессии (устройства) // (GET /api/v1/me/sessions) ListMySessions(w http.ResponseWriter, r *http.Request) // Завершить сессию на устройстве // (DELETE /api/v1/me/sessions/{id}) RevokeMySession(w http.ResponseWriter, r *http.Request, id openapi_types.UUID) // (GET /api/v1/me/social) GetSocial(w http.ResponseWriter, r *http.Request) // (POST /api/v1/me/social/actions) SocialAction(w http.ResponseWriter, r *http.Request) // (PUT /api/v1/me/social/activity) PublishListeningActivity(w http.ResponseWriter, r *http.Request) // (PUT /api/v1/me/social/activity/visibility) SetActivityVisibility(w http.ResponseWriter, r *http.Request) // (GET /api/v1/me/social/chats/{peerId}) GetDirectMessages(w http.ResponseWriter, r *http.Request, peerId openapi_types.UUID, params GetDirectMessagesParams) // (POST /api/v1/me/social/chats/{peerId}) SendDirectMessage(w http.ResponseWriter, r *http.Request, peerId openapi_types.UUID) // (PATCH /api/v1/me/social/chats/{peerId}/messages/{messageId}) UpdateChatMessage(w http.ResponseWriter, r *http.Request, peerId openapi_types.UUID, messageId openapi_types.UUID) // (GET /api/v1/me/social/chats/{peerId}/meta) GetChatMeta(w http.ResponseWriter, r *http.Request, peerId openapi_types.UUID) // (PUT /api/v1/me/social/chats/{peerId}/meta) SetChatTyping(w http.ResponseWriter, r *http.Request, peerId openapi_types.UUID) // (GET /api/v1/me/social/listening) GetListeningState(w http.ResponseWriter, r *http.Request) // (POST /api/v1/me/social/listening/actions) ListeningAction(w http.ResponseWriter, r *http.Request) // (PUT /api/v1/me/social/listening/preferences) SetListeningPreferences(w http.ResponseWriter, r *http.Request) // (PUT /api/v1/me/social/listening/state) PublishListeningState(w http.ResponseWriter, r *http.Request) // (GET /api/v1/me/social/people) SearchPeople(w http.ResponseWriter, r *http.Request, params SearchPeopleParams) // (PUT /api/v1/me/social/recommendations) SetFriendsRecommendations(w http.ResponseWriter, r *http.Request) // Анкета рекомендаций — варианты, сохранённые ответы и необходимость заполнения // (GET /api/v1/onboarding) GetOnboarding(w http.ResponseWriter, r *http.Request) // Страница поиска // (GET /api/v1/search) Search(w http.ResponseWriter, r *http.Request, params SearchParams) // Выпадающий список поиска — до 3 исполнителей, 3 альбомов, 5 треков // (GET /api/v1/search/suggest) SearchSuggest(w http.ResponseWriter, r *http.Request, params SearchSuggestParams) // Сведения о сервере для клиентов // (GET /api/v1/server-info) GetServerInfo(w http.ResponseWriter, r *http.Request) // Прочитать плейлист по действующей ссылке (требуется вход) // (GET /api/v1/shared/playlists/{shareId}) GetSharedPlaylist(w http.ResponseWriter, r *http.Request, shareId openapi_types.UUID) // (GET /api/v1/social/activity/{userId}/playlist) GetActivityPlaylist(w http.ResponseWriter, r *http.Request, userId openapi_types.UUID) // Аудио трека (поддерживает Range) // (GET /api/v1/stream/{id}) StreamTrack(w http.ResponseWriter, r *http.Request, id EntityId, params StreamTrackParams) // Треки по списку id (восстановление очереди) // (POST /api/v1/tracks/batch) GetTracksBatch(w http.ResponseWriter, r *http.Request) // Трек // (GET /api/v1/tracks/{id}) GetTrack(w http.ResponseWriter, r *http.Request, id EntityId) // (GET /api/v1/tracks/{id}/genius) GetTrackGenius(w http.ResponseWriter, r *http.Request, id EntityId) // Создать пачку и зарезервировать место (moderator, admin) // (POST /api/v1/uploads) CreateUploadBatch(w http.ResponseWriter, r *http.Request) // Отозвать своё предложение до решения // (DELETE /api/v1/uploads/files/{id}) WithdrawUpload(w http.ResponseWriter, r *http.Request, id EntityId) // Мои предложения (moderator, admin) // (GET /api/v1/uploads/mine) ListMyUploads(w http.ResponseWriter, r *http.Request, params ListMyUploadsParams) // Предпроверка дублей до загрузки (moderator, admin) // (POST /api/v1/uploads/precheck) PrecheckUploads(w http.ResponseWriter, r *http.Request) // Квота очереди на добавление (moderator, admin) // (GET /api/v1/uploads/quota) GetUploadQuota(w http.ResponseWriter, r *http.Request) // Отметить свои предложения просмотренными // (POST /api/v1/uploads/seen) MarkUploadsSeen(w http.ResponseWriter, r *http.Request) // Сколько решений по своим предложениям с прошлого визита (moderator, admin) // (GET /api/v1/uploads/unseen) UnseenUploadDecisions(w http.ResponseWriter, r *http.Request) // Занятия и настроения (ключи для i18n и иконки) // (GET /api/v1/wave/options) GetWaveOptions(w http.ResponseWriter, r *http.Request) // Начать «Мою волну» // (POST /api/v1/wave/sessions) StartWave(w http.ResponseWriter, r *http.Request) // Завершить сессию волны // (DELETE /api/v1/wave/sessions/{id}) EndWave(w http.ResponseWriter, r *http.Request, id EntityId) // Сменить занятие / настроение на лету — пачка пересобирается // (PATCH /api/v1/wave/sessions/{id}) UpdateWave(w http.ResponseWriter, r *http.Request, id EntityId) // Следующая пачка с учётом реакций на выданные треки // (POST /api/v1/wave/sessions/{id}/next) NextWave(w http.ResponseWriter, r *http.Request, id EntityId) // Живость процесса // (GET /healthz) GetHealthz(w http.ResponseWriter, r *http.Request) // Готовность обслуживать запросы (зависимости доступны) // (GET /readyz) GetReadyz(w http.ResponseWriter, r *http.Request) } // Unimplemented server implementation that returns http.StatusNotImplemented for each endpoint. type Unimplemented struct{} // Журнал действий (admin), новые сверху // (GET /api/v1/admin/audit) func (_ Unimplemented) ListAudit(w http.ResponseWriter, r *http.Request, params ListAuditParams) { w.WriteHeader(http.StatusNotImplemented) } // (GET /api/v1/admin/genius) func (_ Unimplemented) GetGeniusStats(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // (POST /api/v1/admin/genius) func (_ Unimplemented) ControlGenius(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Неудавшиеся задачи аудиоанализа с путями файлов (admin) // (GET /api/v1/admin/library/analysis/errors) func (_ Unimplemented) ListAnalysisErrors(w http.ResponseWriter, r *http.Request, params ListAnalysisErrorsParams) { w.WriteHeader(http.StatusNotImplemented) } // Вернуть в очередь треки, которые не удалось проанализировать (admin) // (POST /api/v1/admin/library/analysis/retry) func (_ Unimplemented) RetryAnalysis(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Файлы, которые не удалось прочитать (admin) // (GET /api/v1/admin/library/errors) func (_ Unimplemented) ListLibraryErrors(w http.ResponseWriter, r *http.Request, params ListLibraryErrorsParams) { w.WriteHeader(http.StatusNotImplemented) } // Подпапки каталога LIBRARY_HOST — выбор папки для local-хранилища (admin) // (GET /api/v1/admin/library/host-dirs) func (_ Unimplemented) ListHostDirs(w http.ResponseWriter, r *http.Request, params ListHostDirsParams) { w.WriteHeader(http.StatusNotImplemented) } // Состояние библиотеки (admin, moderator) // (GET /api/v1/admin/library/status) func (_ Unimplemented) GetLibraryStatus(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Пересобрать поисковые индексы (admin) // (POST /api/v1/admin/search/reindex) func (_ Unimplemented) ReindexSearch(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // (GET /api/v1/admin/server/config) func (_ Unimplemented) GetServerConfig(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // (PATCH /api/v1/admin/server/config) func (_ Unimplemented) SaveServerConfig(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // (POST /api/v1/admin/server/config/apply) func (_ Unimplemented) ApplyServerConfig(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // (PUT /api/v1/admin/server/update-sources) func (_ Unimplemented) SaveServerUpdateSources(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // (GET /api/v1/admin/server/updates) func (_ Unimplemented) GetServerUpdates(w http.ResponseWriter, r *http.Request, params GetServerUpdatesParams) { w.WriteHeader(http.StatusNotImplemented) } // (POST /api/v1/admin/server/updates) func (_ Unimplemented) StartServerUpdate(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Настройки очереди (admin) // (GET /api/v1/admin/settings/uploads) func (_ Unimplemented) GetUploadSettings(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Изменить настройки очереди (admin) // (PATCH /api/v1/admin/settings/uploads) func (_ Unimplemented) UpdateUploadSettings(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Хранилища (admin) // (GET /api/v1/admin/sources) func (_ Unimplemented) ListSources(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Подключить хранилище (admin) // (POST /api/v1/admin/sources) func (_ Unimplemented) CreateSource(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Отключить и удалить хранилище (admin) // (DELETE /api/v1/admin/sources/{id}) func (_ Unimplemented) DeleteSource(w http.ResponseWriter, r *http.Request, id SourceId) { w.WriteHeader(http.StatusNotImplemented) } // Хранилище (admin) // (GET /api/v1/admin/sources/{id}) func (_ Unimplemented) GetSource(w http.ResponseWriter, r *http.Request, id SourceId) { w.WriteHeader(http.StatusNotImplemented) } // Изменить хранилище (admin) // (PATCH /api/v1/admin/sources/{id}) func (_ Unimplemented) UpdateSource(w http.ResponseWriter, r *http.Request, id SourceId) { w.WriteHeader(http.StatusNotImplemented) } // Покрытие аудиофайлов локальными обложками (admin) // (GET /api/v1/admin/sources/{id}/cover-stats) func (_ Unimplemented) GetSourceCoverStats(w http.ResponseWriter, r *http.Request, id SourceId) { w.WriteHeader(http.StatusNotImplemented) } // Шаблоны путей (admin) // (GET /api/v1/admin/sources/{id}/patterns) func (_ Unimplemented) GetSourcePatterns(w http.ResponseWriter, r *http.Request, id SourceId) { w.WriteHeader(http.StatusNotImplemented) } // Заменить шаблоны путей (admin) // (PUT /api/v1/admin/sources/{id}/patterns) func (_ Unimplemented) PutSourcePatterns(w http.ResponseWriter, r *http.Request, id SourceId) { w.WriteHeader(http.StatusNotImplemented) } // Предпросмотр разбора путей без сохранения (admin) // (POST /api/v1/admin/sources/{id}/patterns/preview) func (_ Unimplemented) PreviewSourcePatterns(w http.ResponseWriter, r *http.Request, id SourceId) { w.WriteHeader(http.StatusNotImplemented) } // Запустить скан (admin) // (POST /api/v1/admin/sources/{id}/scan) func (_ Unimplemented) ScanSource(w http.ResponseWriter, r *http.Request, id SourceId) { w.WriteHeader(http.StatusNotImplemented) } // Проверить подключение (admin) // (POST /api/v1/admin/sources/{id}/test) func (_ Unimplemented) TestSource(w http.ResponseWriter, r *http.Request, id SourceId) { w.WriteHeader(http.StatusNotImplemented) } // Проверить шаблон на обратимость (admin) // (POST /api/v1/admin/sources/{id}/write-template/check) func (_ Unimplemented) CheckWriteTemplate(w http.ResponseWriter, r *http.Request, id SourceId) { w.WriteHeader(http.StatusNotImplemented) } // Подобрать шаблон пути по существующей структуре (admin) // (POST /api/v1/admin/sources/{id}/write-template/suggest) func (_ Unimplemented) SuggestWriteTemplate(w http.ResponseWriter, r *http.Request, id SourceId) { w.WriteHeader(http.StatusNotImplemented) } // Очередь на добавление (admin) // (GET /api/v1/admin/uploads) func (_ Unimplemented) ListUploads(w http.ResponseWriter, r *http.Request, params ListUploadsParams) { w.WriteHeader(http.StatusNotImplemented) } // Правка метаданных и обложки на всю пачку (admin) // (PATCH /api/v1/admin/uploads/batches/{id}) func (_ Unimplemented) UpdateUploadBatch(w http.ResponseWriter, r *http.Request, id EntityId) { w.WriteHeader(http.StatusNotImplemented) } // Явно применить метаданные и/или обложку выбранного издания // (POST /api/v1/admin/uploads/batches/{id}/release) func (_ Unimplemented) ApplyUploadRelease(w http.ResponseWriter, r *http.Request, id EntityId) { w.WriteHeader(http.StatusNotImplemented) } // Состояние фонового сопоставления пачки с изданиями MusicBrainz // (GET /api/v1/admin/uploads/batches/{id}/releases) func (_ Unimplemented) GetUploadReleases(w http.ResponseWriter, r *http.Request, id EntityId, params GetUploadReleasesParams) { w.WriteHeader(http.StatusNotImplemented) } // Повторить поиск релиза, при необходимости с уточнённым запросом // (POST /api/v1/admin/uploads/batches/{id}/releases) func (_ Unimplemented) SearchUploadReleases(w http.ResponseWriter, r *http.Request, id EntityId) { w.WriteHeader(http.StatusNotImplemented) } // Предпросмотр обложки выбранного кандидата из Cover Art Archive // (GET /api/v1/admin/uploads/batches/{id}/releases/{release_id}/cover) func (_ Unimplemented) GetUploadReleaseCover(w http.ResponseWriter, r *http.Request, id EntityId, releaseId openapi_types.UUID, params GetUploadReleaseCoverParams) { w.WriteHeader(http.StatusNotImplemented) } // Править метаданные и хранилище (admin) // (PATCH /api/v1/admin/uploads/files/{id}) func (_ Unimplemented) UpdateUpload(w http.ResponseWriter, r *http.Request, id EntityId) { w.WriteHeader(http.StatusNotImplemented) } // Повторить импорт после import_failed (admin) // (POST /api/v1/admin/uploads/files/{id}/retry) func (_ Unimplemented) RetryUploadImport(w http.ResponseWriter, r *http.Request, id EntityId) { w.WriteHeader(http.StatusNotImplemented) } // Прослушать файл из staging (подпись, как у стрима трека) // (GET /api/v1/admin/uploads/files/{id}/stream) func (_ Unimplemented) StreamUpload(w http.ResponseWriter, r *http.Request, id EntityId, params StreamUploadParams) { w.WriteHeader(http.StatusNotImplemented) } // Одобрить / отклонить файлы (admin) // (POST /api/v1/admin/uploads/review) func (_ Unimplemented) ReviewUploads(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Пользователи (admin, moderator) // (GET /api/v1/admin/users) func (_ Unimplemented) ListUsers(w http.ResponseWriter, r *http.Request, params ListUsersParams) { w.WriteHeader(http.StatusNotImplemented) } // Создать пользователя // (POST /api/v1/admin/users) func (_ Unimplemented) CreateUser(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Экспорт учётных записей с ролями и хэшами паролей (admin) // (GET /api/v1/admin/users/export) func (_ Unimplemented) ExportUsers(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Импорт учётных записей с сохранением паролей (admin) // (POST /api/v1/admin/users/import) func (_ Unimplemented) ImportUsers(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Удалить пользователя (admin) // (DELETE /api/v1/admin/users/{id}) func (_ Unimplemented) DeleteUser(w http.ResponseWriter, r *http.Request, id UserId) { w.WriteHeader(http.StatusNotImplemented) } // Изменить имя, роль, блокировку // (PATCH /api/v1/admin/users/{id}) func (_ Unimplemented) UpdateUser(w http.ResponseWriter, r *http.Request, id UserId) { w.WriteHeader(http.StatusNotImplemented) } // Сбросить пароль // (POST /api/v1/admin/users/{id}/reset-password) func (_ Unimplemented) ResetUserPassword(w http.ResponseWriter, r *http.Request, id UserId) { w.WriteHeader(http.StatusNotImplemented) } // Сбросить рекомендации // (POST /api/v1/admin/users/{id}/reset-recommendations) func (_ Unimplemented) ResetUserRecommendations(w http.ResponseWriter, r *http.Request, id UserId) { w.WriteHeader(http.StatusNotImplemented) } // Альбом с треками // (GET /api/v1/albums/{id}) func (_ Unimplemented) GetAlbum(w http.ResponseWriter, r *http.Request, id EntityId) { w.WriteHeader(http.StatusNotImplemented) } // APK версии (кэшируется на сервере, поддерживает Range для докачки) // (GET /api/v1/app/android/download/{version}) func (_ Unimplemented) DownloadAndroidApk(w http.ResponseWriter, r *http.Request, version string) { w.WriteHeader(http.StatusNotImplemented) } // Последняя версия Android-приложения (из релизов Gitea через сервер) // (GET /api/v1/app/android/latest) func (_ Unimplemented) GetAndroidLatest(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Клиенты последних релизов (Android и десктоп) // (GET /api/v1/app/clients) func (_ Unimplemented) GetAppClients(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Файл клиента (кэшируется на сервере, поддерживает Range) // (GET /api/v1/app/download/{client}/{version}) func (_ Unimplemented) DownloadAppClient(w http.ResponseWriter, r *http.Request, client AppClient, version string) { w.WriteHeader(http.StatusNotImplemented) } // Исполнитель // (GET /api/v1/artists/{id}) func (_ Unimplemented) GetArtist(w http.ResponseWriter, r *http.Request, id EntityId) { w.WriteHeader(http.StatusNotImplemented) } // Альбомы исполнителя (свои и сборники с его треками) // (GET /api/v1/artists/{id}/albums) func (_ Unimplemented) ListArtistAlbums(w http.ResponseWriter, r *http.Request, id EntityId) { w.WriteHeader(http.StatusNotImplemented) } // Популярные треки исполнителя (по прослушиваниям всех пользователей) // (GET /api/v1/artists/{id}/top-tracks) func (_ Unimplemented) ListArtistTopTracks(w http.ResponseWriter, r *http.Request, id EntityId, params ListArtistTopTracksParams) { w.WriteHeader(http.StatusNotImplemented) } // Вход по логину и паролю // (POST /api/v1/auth/login) func (_ Unimplemented) Login(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Выход — отзыв текущей сессии // (POST /api/v1/auth/logout) func (_ Unimplemented) Logout(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Выход на всех устройствах // (POST /api/v1/auth/logout-all) func (_ Unimplemented) LogoutAll(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Ротация refresh-токена // (POST /api/v1/auth/refresh) func (_ Unimplemented) RefreshTokens(w http.ResponseWriter, r *http.Request, params RefreshTokensParams) { w.WriteHeader(http.StatusNotImplemented) } // Обложка альбома (WebP) // (GET /api/v1/covers/{id}) func (_ Unimplemented) GetCover(w http.ResponseWriter, r *http.Request, id EntityId, params GetCoverParams) { w.WriteHeader(http.StatusNotImplemented) } // Пачка событий прослушивания (до 500) // (POST /api/v1/events) func (_ Unimplemented) PostEvents(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Текущий пользователь // (GET /api/v1/me) func (_ Unimplemented) GetMe(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Изменить имя, язык, настройки интерфейса // (PATCH /api/v1/me) func (_ Unimplemented) UpdateMe(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Первый запуск — новые логин и пароль администратора // (POST /api/v1/me/bootstrap-credentials) func (_ Unimplemented) SetBootstrapCredentials(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Дизлайки, новые сверху // (GET /api/v1/me/dislikes) func (_ Unimplemented) GetDislikes(w http.ResponseWriter, r *http.Request, params GetDislikesParams) { w.WriteHeader(http.StatusNotImplemented) } // Очистить историю (события остаются для статистики) // (DELETE /api/v1/me/history) func (_ Unimplemented) ClearHistory(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // История прослушиваний, новые сверху // (GET /api/v1/me/history) func (_ Unimplemented) GetHistory(w http.ResponseWriter, r *http.Request, params GetHistoryParams) { w.WriteHeader(http.StatusNotImplemented) } // Лайки, новые сверху // (GET /api/v1/me/likes) func (_ Unimplemented) GetLikes(w http.ResponseWriter, r *http.Request, params GetLikesParams) { w.WriteHeader(http.StatusNotImplemented) } // Сохранить выбор онбординга (или пропуск — пустые списки) // (PUT /api/v1/me/onboarding) func (_ Unimplemented) SaveOnboarding(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Сменить пароль // (POST /api/v1/me/password) func (_ Unimplemented) ChangePassword(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Последнее состояние плеера (трек, позиция, очередь) // (GET /api/v1/me/playback-state) func (_ Unimplemented) GetPlaybackState(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Сохранить состояние плеера (last-write-wins) // (PUT /api/v1/me/playback-state) func (_ Unimplemented) PutPlaybackState(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // (GET /api/v1/me/playlists) func (_ Unimplemented) ListPlaylists(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // (POST /api/v1/me/playlists) func (_ Unimplemented) CreatePlaylist(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // (DELETE /api/v1/me/playlists/{id}) func (_ Unimplemented) DeletePlaylist(w http.ResponseWriter, r *http.Request, id openapi_types.UUID) { w.WriteHeader(http.StatusNotImplemented) } // (GET /api/v1/me/playlists/{id}) func (_ Unimplemented) GetPlaylist(w http.ResponseWriter, r *http.Request, id openapi_types.UUID) { w.WriteHeader(http.StatusNotImplemented) } // (PUT /api/v1/me/playlists/{id}) func (_ Unimplemented) UpdatePlaylist(w http.ResponseWriter, r *http.Request, id openapi_types.UUID) { w.WriteHeader(http.StatusNotImplemented) } // Отозвать ссылку (только владелец); повторная публикация создаёт новую ссылку // (DELETE /api/v1/me/playlists/{id}/share) func (_ Unimplemented) RevokePlaylistShare(w http.ResponseWriter, r *http.Request, id openapi_types.UUID) { w.WriteHeader(http.StatusNotImplemented) } // Создать или вернуть ссылку только для чтения (только владелец) // (POST /api/v1/me/playlists/{id}/share) func (_ Unimplemented) SharePlaylist(w http.ResponseWriter, r *http.Request, id openapi_types.UUID) { w.WriteHeader(http.StatusNotImplemented) } // Снять реакцию // (DELETE /api/v1/me/reactions/tracks/{id}) func (_ Unimplemented) ClearTrackReaction(w http.ResponseWriter, r *http.Request, id EntityId) { w.WriteHeader(http.StatusNotImplemented) } // Лайк или дизлайк трека // (PUT /api/v1/me/reactions/tracks/{id}) func (_ Unimplemented) SetTrackReaction(w http.ResponseWriter, r *http.Request, id EntityId) { w.WriteHeader(http.StatusNotImplemented) } // Активные сессии (устройства) // (GET /api/v1/me/sessions) func (_ Unimplemented) ListMySessions(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Завершить сессию на устройстве // (DELETE /api/v1/me/sessions/{id}) func (_ Unimplemented) RevokeMySession(w http.ResponseWriter, r *http.Request, id openapi_types.UUID) { w.WriteHeader(http.StatusNotImplemented) } // (GET /api/v1/me/social) func (_ Unimplemented) GetSocial(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // (POST /api/v1/me/social/actions) func (_ Unimplemented) SocialAction(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // (PUT /api/v1/me/social/activity) func (_ Unimplemented) PublishListeningActivity(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // (PUT /api/v1/me/social/activity/visibility) func (_ Unimplemented) SetActivityVisibility(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // (GET /api/v1/me/social/chats/{peerId}) func (_ Unimplemented) GetDirectMessages(w http.ResponseWriter, r *http.Request, peerId openapi_types.UUID, params GetDirectMessagesParams) { w.WriteHeader(http.StatusNotImplemented) } // (POST /api/v1/me/social/chats/{peerId}) func (_ Unimplemented) SendDirectMessage(w http.ResponseWriter, r *http.Request, peerId openapi_types.UUID) { w.WriteHeader(http.StatusNotImplemented) } // (PATCH /api/v1/me/social/chats/{peerId}/messages/{messageId}) func (_ Unimplemented) UpdateChatMessage(w http.ResponseWriter, r *http.Request, peerId openapi_types.UUID, messageId openapi_types.UUID) { w.WriteHeader(http.StatusNotImplemented) } // (GET /api/v1/me/social/chats/{peerId}/meta) func (_ Unimplemented) GetChatMeta(w http.ResponseWriter, r *http.Request, peerId openapi_types.UUID) { w.WriteHeader(http.StatusNotImplemented) } // (PUT /api/v1/me/social/chats/{peerId}/meta) func (_ Unimplemented) SetChatTyping(w http.ResponseWriter, r *http.Request, peerId openapi_types.UUID) { w.WriteHeader(http.StatusNotImplemented) } // (GET /api/v1/me/social/listening) func (_ Unimplemented) GetListeningState(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // (POST /api/v1/me/social/listening/actions) func (_ Unimplemented) ListeningAction(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // (PUT /api/v1/me/social/listening/preferences) func (_ Unimplemented) SetListeningPreferences(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // (PUT /api/v1/me/social/listening/state) func (_ Unimplemented) PublishListeningState(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // (GET /api/v1/me/social/people) func (_ Unimplemented) SearchPeople(w http.ResponseWriter, r *http.Request, params SearchPeopleParams) { w.WriteHeader(http.StatusNotImplemented) } // (PUT /api/v1/me/social/recommendations) func (_ Unimplemented) SetFriendsRecommendations(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Анкета рекомендаций — варианты, сохранённые ответы и необходимость заполнения // (GET /api/v1/onboarding) func (_ Unimplemented) GetOnboarding(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Страница поиска // (GET /api/v1/search) func (_ Unimplemented) Search(w http.ResponseWriter, r *http.Request, params SearchParams) { w.WriteHeader(http.StatusNotImplemented) } // Выпадающий список поиска — до 3 исполнителей, 3 альбомов, 5 треков // (GET /api/v1/search/suggest) func (_ Unimplemented) SearchSuggest(w http.ResponseWriter, r *http.Request, params SearchSuggestParams) { w.WriteHeader(http.StatusNotImplemented) } // Сведения о сервере для клиентов // (GET /api/v1/server-info) func (_ Unimplemented) GetServerInfo(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Прочитать плейлист по действующей ссылке (требуется вход) // (GET /api/v1/shared/playlists/{shareId}) func (_ Unimplemented) GetSharedPlaylist(w http.ResponseWriter, r *http.Request, shareId openapi_types.UUID) { w.WriteHeader(http.StatusNotImplemented) } // (GET /api/v1/social/activity/{userId}/playlist) func (_ Unimplemented) GetActivityPlaylist(w http.ResponseWriter, r *http.Request, userId openapi_types.UUID) { w.WriteHeader(http.StatusNotImplemented) } // Аудио трека (поддерживает Range) // (GET /api/v1/stream/{id}) func (_ Unimplemented) StreamTrack(w http.ResponseWriter, r *http.Request, id EntityId, params StreamTrackParams) { w.WriteHeader(http.StatusNotImplemented) } // Треки по списку id (восстановление очереди) // (POST /api/v1/tracks/batch) func (_ Unimplemented) GetTracksBatch(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Трек // (GET /api/v1/tracks/{id}) func (_ Unimplemented) GetTrack(w http.ResponseWriter, r *http.Request, id EntityId) { w.WriteHeader(http.StatusNotImplemented) } // (GET /api/v1/tracks/{id}/genius) func (_ Unimplemented) GetTrackGenius(w http.ResponseWriter, r *http.Request, id EntityId) { w.WriteHeader(http.StatusNotImplemented) } // Создать пачку и зарезервировать место (moderator, admin) // (POST /api/v1/uploads) func (_ Unimplemented) CreateUploadBatch(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Отозвать своё предложение до решения // (DELETE /api/v1/uploads/files/{id}) func (_ Unimplemented) WithdrawUpload(w http.ResponseWriter, r *http.Request, id EntityId) { w.WriteHeader(http.StatusNotImplemented) } // Мои предложения (moderator, admin) // (GET /api/v1/uploads/mine) func (_ Unimplemented) ListMyUploads(w http.ResponseWriter, r *http.Request, params ListMyUploadsParams) { w.WriteHeader(http.StatusNotImplemented) } // Предпроверка дублей до загрузки (moderator, admin) // (POST /api/v1/uploads/precheck) func (_ Unimplemented) PrecheckUploads(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Квота очереди на добавление (moderator, admin) // (GET /api/v1/uploads/quota) func (_ Unimplemented) GetUploadQuota(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Отметить свои предложения просмотренными // (POST /api/v1/uploads/seen) func (_ Unimplemented) MarkUploadsSeen(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Сколько решений по своим предложениям с прошлого визита (moderator, admin) // (GET /api/v1/uploads/unseen) func (_ Unimplemented) UnseenUploadDecisions(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Занятия и настроения (ключи для i18n и иконки) // (GET /api/v1/wave/options) func (_ Unimplemented) GetWaveOptions(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Начать «Мою волну» // (POST /api/v1/wave/sessions) func (_ Unimplemented) StartWave(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Завершить сессию волны // (DELETE /api/v1/wave/sessions/{id}) func (_ Unimplemented) EndWave(w http.ResponseWriter, r *http.Request, id EntityId) { w.WriteHeader(http.StatusNotImplemented) } // Сменить занятие / настроение на лету — пачка пересобирается // (PATCH /api/v1/wave/sessions/{id}) func (_ Unimplemented) UpdateWave(w http.ResponseWriter, r *http.Request, id EntityId) { w.WriteHeader(http.StatusNotImplemented) } // Следующая пачка с учётом реакций на выданные треки // (POST /api/v1/wave/sessions/{id}/next) func (_ Unimplemented) NextWave(w http.ResponseWriter, r *http.Request, id EntityId) { w.WriteHeader(http.StatusNotImplemented) } // Живость процесса // (GET /healthz) func (_ Unimplemented) GetHealthz(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // Готовность обслуживать запросы (зависимости доступны) // (GET /readyz) func (_ Unimplemented) GetReadyz(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotImplemented) } // ServerInterfaceWrapper converts contexts to parameters. type ServerInterfaceWrapper struct { Handler ServerInterface HandlerMiddlewares []MiddlewareFunc ErrorHandlerFunc func(w http.ResponseWriter, r *http.Request, err error) } type MiddlewareFunc func(http.Handler) http.Handler // ListAudit operation middleware func (siw *ServerInterfaceWrapper) ListAudit(w http.ResponseWriter, r *http.Request) { var err error ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) // Parameter object where we will unmarshal all parameters from the context var params ListAuditParams // ------------- Optional query parameter "limit" ------------- err = runtime.BindQueryParameter("form", true, false, "limit", r.URL.Query(), ¶ms.Limit) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "limit", Err: err}) return } // ------------- Optional query parameter "cursor" ------------- err = runtime.BindQueryParameter("form", true, false, "cursor", r.URL.Query(), ¶ms.Cursor) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "cursor", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.ListAudit(w, r, params) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // GetGeniusStats operation middleware func (siw *ServerInterfaceWrapper) GetGeniusStats(w http.ResponseWriter, r *http.Request) { ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetGeniusStats(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // ControlGenius operation middleware func (siw *ServerInterfaceWrapper) ControlGenius(w http.ResponseWriter, r *http.Request) { ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.ControlGenius(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // ListAnalysisErrors operation middleware func (siw *ServerInterfaceWrapper) ListAnalysisErrors(w http.ResponseWriter, r *http.Request) { var err error ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) // Parameter object where we will unmarshal all parameters from the context var params ListAnalysisErrorsParams // ------------- Optional query parameter "limit" ------------- err = runtime.BindQueryParameter("form", true, false, "limit", r.URL.Query(), ¶ms.Limit) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "limit", Err: err}) return } // ------------- Optional query parameter "cursor" ------------- err = runtime.BindQueryParameter("form", true, false, "cursor", r.URL.Query(), ¶ms.Cursor) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "cursor", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.ListAnalysisErrors(w, r, params) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // RetryAnalysis operation middleware func (siw *ServerInterfaceWrapper) RetryAnalysis(w http.ResponseWriter, r *http.Request) { ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.RetryAnalysis(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // ListLibraryErrors operation middleware func (siw *ServerInterfaceWrapper) ListLibraryErrors(w http.ResponseWriter, r *http.Request) { var err error ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) // Parameter object where we will unmarshal all parameters from the context var params ListLibraryErrorsParams // ------------- Optional query parameter "limit" ------------- err = runtime.BindQueryParameter("form", true, false, "limit", r.URL.Query(), ¶ms.Limit) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "limit", Err: err}) return } // ------------- Optional query parameter "cursor" ------------- err = runtime.BindQueryParameter("form", true, false, "cursor", r.URL.Query(), ¶ms.Cursor) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "cursor", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.ListLibraryErrors(w, r, params) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // ListHostDirs operation middleware func (siw *ServerInterfaceWrapper) ListHostDirs(w http.ResponseWriter, r *http.Request) { var err error ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) // Parameter object where we will unmarshal all parameters from the context var params ListHostDirsParams // ------------- Optional query parameter "path" ------------- err = runtime.BindQueryParameter("form", true, false, "path", r.URL.Query(), ¶ms.Path) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "path", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.ListHostDirs(w, r, params) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // GetLibraryStatus operation middleware func (siw *ServerInterfaceWrapper) GetLibraryStatus(w http.ResponseWriter, r *http.Request) { ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetLibraryStatus(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // ReindexSearch operation middleware func (siw *ServerInterfaceWrapper) ReindexSearch(w http.ResponseWriter, r *http.Request) { ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.ReindexSearch(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // GetServerConfig operation middleware func (siw *ServerInterfaceWrapper) GetServerConfig(w http.ResponseWriter, r *http.Request) { ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetServerConfig(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // SaveServerConfig operation middleware func (siw *ServerInterfaceWrapper) SaveServerConfig(w http.ResponseWriter, r *http.Request) { ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.SaveServerConfig(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // ApplyServerConfig operation middleware func (siw *ServerInterfaceWrapper) ApplyServerConfig(w http.ResponseWriter, r *http.Request) { ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.ApplyServerConfig(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // SaveServerUpdateSources operation middleware func (siw *ServerInterfaceWrapper) SaveServerUpdateSources(w http.ResponseWriter, r *http.Request) { ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.SaveServerUpdateSources(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // GetServerUpdates operation middleware func (siw *ServerInterfaceWrapper) GetServerUpdates(w http.ResponseWriter, r *http.Request) { var err error ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) // Parameter object where we will unmarshal all parameters from the context var params GetServerUpdatesParams // ------------- Optional query parameter "source_id" ------------- err = runtime.BindQueryParameter("form", true, false, "source_id", r.URL.Query(), ¶ms.SourceId) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "source_id", Err: err}) return } // ------------- Optional query parameter "channel" ------------- err = runtime.BindQueryParameter("form", true, false, "channel", r.URL.Query(), ¶ms.Channel) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "channel", Err: err}) return } // ------------- Optional query parameter "version" ------------- err = runtime.BindQueryParameter("form", true, false, "version", r.URL.Query(), ¶ms.Version) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "version", Err: err}) return } // ------------- Optional query parameter "fresh" ------------- err = runtime.BindQueryParameter("form", true, false, "fresh", r.URL.Query(), ¶ms.Fresh) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "fresh", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetServerUpdates(w, r, params) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // StartServerUpdate operation middleware func (siw *ServerInterfaceWrapper) StartServerUpdate(w http.ResponseWriter, r *http.Request) { ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.StartServerUpdate(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // GetUploadSettings operation middleware func (siw *ServerInterfaceWrapper) GetUploadSettings(w http.ResponseWriter, r *http.Request) { ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetUploadSettings(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // UpdateUploadSettings operation middleware func (siw *ServerInterfaceWrapper) UpdateUploadSettings(w http.ResponseWriter, r *http.Request) { ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.UpdateUploadSettings(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // ListSources operation middleware func (siw *ServerInterfaceWrapper) ListSources(w http.ResponseWriter, r *http.Request) { ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.ListSources(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // CreateSource operation middleware func (siw *ServerInterfaceWrapper) CreateSource(w http.ResponseWriter, r *http.Request) { ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.CreateSource(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // DeleteSource operation middleware func (siw *ServerInterfaceWrapper) DeleteSource(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "id" ------------- var id SourceId err = runtime.BindStyledParameterWithOptions("simple", "id", chi.URLParam(r, "id"), &id, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "id", Err: err}) return } ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.DeleteSource(w, r, id) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // GetSource operation middleware func (siw *ServerInterfaceWrapper) GetSource(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "id" ------------- var id SourceId err = runtime.BindStyledParameterWithOptions("simple", "id", chi.URLParam(r, "id"), &id, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "id", Err: err}) return } ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetSource(w, r, id) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // UpdateSource operation middleware func (siw *ServerInterfaceWrapper) UpdateSource(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "id" ------------- var id SourceId err = runtime.BindStyledParameterWithOptions("simple", "id", chi.URLParam(r, "id"), &id, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "id", Err: err}) return } ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.UpdateSource(w, r, id) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // GetSourceCoverStats operation middleware func (siw *ServerInterfaceWrapper) GetSourceCoverStats(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "id" ------------- var id SourceId err = runtime.BindStyledParameterWithOptions("simple", "id", chi.URLParam(r, "id"), &id, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "id", Err: err}) return } ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetSourceCoverStats(w, r, id) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // GetSourcePatterns operation middleware func (siw *ServerInterfaceWrapper) GetSourcePatterns(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "id" ------------- var id SourceId err = runtime.BindStyledParameterWithOptions("simple", "id", chi.URLParam(r, "id"), &id, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "id", Err: err}) return } ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetSourcePatterns(w, r, id) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // PutSourcePatterns operation middleware func (siw *ServerInterfaceWrapper) PutSourcePatterns(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "id" ------------- var id SourceId err = runtime.BindStyledParameterWithOptions("simple", "id", chi.URLParam(r, "id"), &id, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "id", Err: err}) return } ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.PutSourcePatterns(w, r, id) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // PreviewSourcePatterns operation middleware func (siw *ServerInterfaceWrapper) PreviewSourcePatterns(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "id" ------------- var id SourceId err = runtime.BindStyledParameterWithOptions("simple", "id", chi.URLParam(r, "id"), &id, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "id", Err: err}) return } ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.PreviewSourcePatterns(w, r, id) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // ScanSource operation middleware func (siw *ServerInterfaceWrapper) ScanSource(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "id" ------------- var id SourceId err = runtime.BindStyledParameterWithOptions("simple", "id", chi.URLParam(r, "id"), &id, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "id", Err: err}) return } ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.ScanSource(w, r, id) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // TestSource operation middleware func (siw *ServerInterfaceWrapper) TestSource(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "id" ------------- var id SourceId err = runtime.BindStyledParameterWithOptions("simple", "id", chi.URLParam(r, "id"), &id, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "id", Err: err}) return } ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.TestSource(w, r, id) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // CheckWriteTemplate operation middleware func (siw *ServerInterfaceWrapper) CheckWriteTemplate(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "id" ------------- var id SourceId err = runtime.BindStyledParameterWithOptions("simple", "id", chi.URLParam(r, "id"), &id, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "id", Err: err}) return } ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.CheckWriteTemplate(w, r, id) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // SuggestWriteTemplate operation middleware func (siw *ServerInterfaceWrapper) SuggestWriteTemplate(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "id" ------------- var id SourceId err = runtime.BindStyledParameterWithOptions("simple", "id", chi.URLParam(r, "id"), &id, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "id", Err: err}) return } ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.SuggestWriteTemplate(w, r, id) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // ListUploads operation middleware func (siw *ServerInterfaceWrapper) ListUploads(w http.ResponseWriter, r *http.Request) { var err error ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) // Parameter object where we will unmarshal all parameters from the context var params ListUploadsParams // ------------- Optional query parameter "status" ------------- err = runtime.BindQueryParameter("form", false, false, "status", r.URL.Query(), ¶ms.Status) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "status", Err: err}) return } // ------------- Optional query parameter "author" ------------- err = runtime.BindQueryParameter("form", true, false, "author", r.URL.Query(), ¶ms.Author) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "author", Err: err}) return } // ------------- Optional query parameter "batch" ------------- err = runtime.BindQueryParameter("form", true, false, "batch", r.URL.Query(), ¶ms.Batch) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "batch", Err: err}) return } // ------------- Optional query parameter "possible_duplicate" ------------- err = runtime.BindQueryParameter("form", true, false, "possible_duplicate", r.URL.Query(), ¶ms.PossibleDuplicate) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "possible_duplicate", Err: err}) return } // ------------- Optional query parameter "limit" ------------- err = runtime.BindQueryParameter("form", true, false, "limit", r.URL.Query(), ¶ms.Limit) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "limit", Err: err}) return } // ------------- Optional query parameter "cursor" ------------- err = runtime.BindQueryParameter("form", true, false, "cursor", r.URL.Query(), ¶ms.Cursor) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "cursor", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.ListUploads(w, r, params) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // UpdateUploadBatch operation middleware func (siw *ServerInterfaceWrapper) UpdateUploadBatch(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "id" ------------- var id EntityId err = runtime.BindStyledParameterWithOptions("simple", "id", chi.URLParam(r, "id"), &id, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "id", Err: err}) return } ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.UpdateUploadBatch(w, r, id) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // ApplyUploadRelease operation middleware func (siw *ServerInterfaceWrapper) ApplyUploadRelease(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "id" ------------- var id EntityId err = runtime.BindStyledParameterWithOptions("simple", "id", chi.URLParam(r, "id"), &id, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "id", Err: err}) return } ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.ApplyUploadRelease(w, r, id) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // GetUploadReleases operation middleware func (siw *ServerInterfaceWrapper) GetUploadReleases(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "id" ------------- var id EntityId err = runtime.BindStyledParameterWithOptions("simple", "id", chi.URLParam(r, "id"), &id, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "id", Err: err}) return } ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) // Parameter object where we will unmarshal all parameters from the context var params GetUploadReleasesParams // ------------- Optional query parameter "group_id" ------------- err = runtime.BindQueryParameter("form", true, false, "group_id", r.URL.Query(), ¶ms.GroupId) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "group_id", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetUploadReleases(w, r, id, params) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // SearchUploadReleases operation middleware func (siw *ServerInterfaceWrapper) SearchUploadReleases(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "id" ------------- var id EntityId err = runtime.BindStyledParameterWithOptions("simple", "id", chi.URLParam(r, "id"), &id, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "id", Err: err}) return } ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.SearchUploadReleases(w, r, id) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // GetUploadReleaseCover operation middleware func (siw *ServerInterfaceWrapper) GetUploadReleaseCover(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "id" ------------- var id EntityId err = runtime.BindStyledParameterWithOptions("simple", "id", chi.URLParam(r, "id"), &id, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "id", Err: err}) return } // ------------- Path parameter "release_id" ------------- var releaseId openapi_types.UUID err = runtime.BindStyledParameterWithOptions("simple", "release_id", chi.URLParam(r, "release_id"), &releaseId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "release_id", Err: err}) return } ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) // Parameter object where we will unmarshal all parameters from the context var params GetUploadReleaseCoverParams // ------------- Optional query parameter "group_id" ------------- err = runtime.BindQueryParameter("form", true, false, "group_id", r.URL.Query(), ¶ms.GroupId) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "group_id", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetUploadReleaseCover(w, r, id, releaseId, params) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // UpdateUpload operation middleware func (siw *ServerInterfaceWrapper) UpdateUpload(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "id" ------------- var id EntityId err = runtime.BindStyledParameterWithOptions("simple", "id", chi.URLParam(r, "id"), &id, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "id", Err: err}) return } ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.UpdateUpload(w, r, id) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // RetryUploadImport operation middleware func (siw *ServerInterfaceWrapper) RetryUploadImport(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "id" ------------- var id EntityId err = runtime.BindStyledParameterWithOptions("simple", "id", chi.URLParam(r, "id"), &id, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "id", Err: err}) return } ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.RetryUploadImport(w, r, id) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // StreamUpload operation middleware func (siw *ServerInterfaceWrapper) StreamUpload(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "id" ------------- var id EntityId err = runtime.BindStyledParameterWithOptions("simple", "id", chi.URLParam(r, "id"), &id, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "id", Err: err}) return } // Parameter object where we will unmarshal all parameters from the context var params StreamUploadParams // ------------- Required query parameter "exp" ------------- if paramValue := r.URL.Query().Get("exp"); paramValue != "" { } else { siw.ErrorHandlerFunc(w, r, &RequiredParamError{ParamName: "exp"}) return } err = runtime.BindQueryParameter("form", true, true, "exp", r.URL.Query(), ¶ms.Exp) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "exp", Err: err}) return } // ------------- Required query parameter "sig" ------------- if paramValue := r.URL.Query().Get("sig"); paramValue != "" { } else { siw.ErrorHandlerFunc(w, r, &RequiredParamError{ParamName: "sig"}) return } err = runtime.BindQueryParameter("form", true, true, "sig", r.URL.Query(), ¶ms.Sig) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "sig", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.StreamUpload(w, r, id, params) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // ReviewUploads operation middleware func (siw *ServerInterfaceWrapper) ReviewUploads(w http.ResponseWriter, r *http.Request) { ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.ReviewUploads(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // ListUsers operation middleware func (siw *ServerInterfaceWrapper) ListUsers(w http.ResponseWriter, r *http.Request) { var err error ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) // Parameter object where we will unmarshal all parameters from the context var params ListUsersParams // ------------- Optional query parameter "q" ------------- err = runtime.BindQueryParameter("form", true, false, "q", r.URL.Query(), ¶ms.Q) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "q", Err: err}) return } // ------------- Optional query parameter "role" ------------- err = runtime.BindQueryParameter("form", true, false, "role", r.URL.Query(), ¶ms.Role) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "role", Err: err}) return } // ------------- Optional query parameter "limit" ------------- err = runtime.BindQueryParameter("form", true, false, "limit", r.URL.Query(), ¶ms.Limit) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "limit", Err: err}) return } // ------------- Optional query parameter "cursor" ------------- err = runtime.BindQueryParameter("form", true, false, "cursor", r.URL.Query(), ¶ms.Cursor) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "cursor", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.ListUsers(w, r, params) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // CreateUser operation middleware func (siw *ServerInterfaceWrapper) CreateUser(w http.ResponseWriter, r *http.Request) { ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.CreateUser(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // ExportUsers operation middleware func (siw *ServerInterfaceWrapper) ExportUsers(w http.ResponseWriter, r *http.Request) { ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.ExportUsers(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // ImportUsers operation middleware func (siw *ServerInterfaceWrapper) ImportUsers(w http.ResponseWriter, r *http.Request) { ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.ImportUsers(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // DeleteUser operation middleware func (siw *ServerInterfaceWrapper) DeleteUser(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "id" ------------- var id UserId err = runtime.BindStyledParameterWithOptions("simple", "id", chi.URLParam(r, "id"), &id, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "id", Err: err}) return } ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.DeleteUser(w, r, id) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // UpdateUser operation middleware func (siw *ServerInterfaceWrapper) UpdateUser(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "id" ------------- var id UserId err = runtime.BindStyledParameterWithOptions("simple", "id", chi.URLParam(r, "id"), &id, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "id", Err: err}) return } ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.UpdateUser(w, r, id) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // ResetUserPassword operation middleware func (siw *ServerInterfaceWrapper) ResetUserPassword(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "id" ------------- var id UserId err = runtime.BindStyledParameterWithOptions("simple", "id", chi.URLParam(r, "id"), &id, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "id", Err: err}) return } ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.ResetUserPassword(w, r, id) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // ResetUserRecommendations operation middleware func (siw *ServerInterfaceWrapper) ResetUserRecommendations(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "id" ------------- var id UserId err = runtime.BindStyledParameterWithOptions("simple", "id", chi.URLParam(r, "id"), &id, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "id", Err: err}) return } ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.ResetUserRecommendations(w, r, id) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // GetAlbum operation middleware func (siw *ServerInterfaceWrapper) GetAlbum(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "id" ------------- var id EntityId err = runtime.BindStyledParameterWithOptions("simple", "id", chi.URLParam(r, "id"), &id, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "id", Err: err}) return } ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetAlbum(w, r, id) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // DownloadAndroidApk operation middleware func (siw *ServerInterfaceWrapper) DownloadAndroidApk(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "version" ------------- var version string err = runtime.BindStyledParameterWithOptions("simple", "version", chi.URLParam(r, "version"), &version, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "version", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.DownloadAndroidApk(w, r, version) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // GetAndroidLatest operation middleware func (siw *ServerInterfaceWrapper) GetAndroidLatest(w http.ResponseWriter, r *http.Request) { handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetAndroidLatest(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // GetAppClients operation middleware func (siw *ServerInterfaceWrapper) GetAppClients(w http.ResponseWriter, r *http.Request) { handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetAppClients(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // DownloadAppClient operation middleware func (siw *ServerInterfaceWrapper) DownloadAppClient(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "client" ------------- var client AppClient err = runtime.BindStyledParameterWithOptions("simple", "client", chi.URLParam(r, "client"), &client, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "client", Err: err}) return } // ------------- Path parameter "version" ------------- var version string err = runtime.BindStyledParameterWithOptions("simple", "version", chi.URLParam(r, "version"), &version, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "version", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.DownloadAppClient(w, r, client, version) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // GetArtist operation middleware func (siw *ServerInterfaceWrapper) GetArtist(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "id" ------------- var id EntityId err = runtime.BindStyledParameterWithOptions("simple", "id", chi.URLParam(r, "id"), &id, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "id", Err: err}) return } ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetArtist(w, r, id) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // ListArtistAlbums operation middleware func (siw *ServerInterfaceWrapper) ListArtistAlbums(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "id" ------------- var id EntityId err = runtime.BindStyledParameterWithOptions("simple", "id", chi.URLParam(r, "id"), &id, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "id", Err: err}) return } ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.ListArtistAlbums(w, r, id) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // ListArtistTopTracks operation middleware func (siw *ServerInterfaceWrapper) ListArtistTopTracks(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "id" ------------- var id EntityId err = runtime.BindStyledParameterWithOptions("simple", "id", chi.URLParam(r, "id"), &id, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "id", Err: err}) return } ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) // Parameter object where we will unmarshal all parameters from the context var params ListArtistTopTracksParams // ------------- Optional query parameter "limit" ------------- err = runtime.BindQueryParameter("form", true, false, "limit", r.URL.Query(), ¶ms.Limit) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "limit", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.ListArtistTopTracks(w, r, id, params) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // Login operation middleware func (siw *ServerInterfaceWrapper) Login(w http.ResponseWriter, r *http.Request) { handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.Login(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // Logout operation middleware func (siw *ServerInterfaceWrapper) Logout(w http.ResponseWriter, r *http.Request) { ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.Logout(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // LogoutAll operation middleware func (siw *ServerInterfaceWrapper) LogoutAll(w http.ResponseWriter, r *http.Request) { ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.LogoutAll(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // RefreshTokens operation middleware func (siw *ServerInterfaceWrapper) RefreshTokens(w http.ResponseWriter, r *http.Request) { var err error // Parameter object where we will unmarshal all parameters from the context var params RefreshTokensParams { var cookie *http.Cookie if cookie, err = r.Cookie("pipu_rt"); err == nil { var value string err = runtime.BindStyledParameterWithOptions("simple", "pipu_rt", cookie.Value, &value, runtime.BindStyledParameterOptions{Explode: true, Required: false}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "pipu_rt", Err: err}) return } params.PipuRt = &value } } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.RefreshTokens(w, r, params) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // GetCover operation middleware func (siw *ServerInterfaceWrapper) GetCover(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "id" ------------- var id EntityId err = runtime.BindStyledParameterWithOptions("simple", "id", chi.URLParam(r, "id"), &id, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "id", Err: err}) return } // Parameter object where we will unmarshal all parameters from the context var params GetCoverParams // ------------- Required query parameter "v" ------------- if paramValue := r.URL.Query().Get("v"); paramValue != "" { } else { siw.ErrorHandlerFunc(w, r, &RequiredParamError{ParamName: "v"}) return } err = runtime.BindQueryParameter("form", true, true, "v", r.URL.Query(), ¶ms.V) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "v", Err: err}) return } // ------------- Required query parameter "sig" ------------- if paramValue := r.URL.Query().Get("sig"); paramValue != "" { } else { siw.ErrorHandlerFunc(w, r, &RequiredParamError{ParamName: "sig"}) return } err = runtime.BindQueryParameter("form", true, true, "sig", r.URL.Query(), ¶ms.Sig) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "sig", Err: err}) return } // ------------- Optional query parameter "size" ------------- err = runtime.BindQueryParameter("form", true, false, "size", r.URL.Query(), ¶ms.Size) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "size", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetCover(w, r, id, params) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // PostEvents operation middleware func (siw *ServerInterfaceWrapper) PostEvents(w http.ResponseWriter, r *http.Request) { ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.PostEvents(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // GetMe operation middleware func (siw *ServerInterfaceWrapper) GetMe(w http.ResponseWriter, r *http.Request) { ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetMe(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // UpdateMe operation middleware func (siw *ServerInterfaceWrapper) UpdateMe(w http.ResponseWriter, r *http.Request) { ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.UpdateMe(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // SetBootstrapCredentials operation middleware func (siw *ServerInterfaceWrapper) SetBootstrapCredentials(w http.ResponseWriter, r *http.Request) { ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.SetBootstrapCredentials(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // GetDislikes operation middleware func (siw *ServerInterfaceWrapper) GetDislikes(w http.ResponseWriter, r *http.Request) { var err error ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) // Parameter object where we will unmarshal all parameters from the context var params GetDislikesParams // ------------- Optional query parameter "limit" ------------- err = runtime.BindQueryParameter("form", true, false, "limit", r.URL.Query(), ¶ms.Limit) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "limit", Err: err}) return } // ------------- Optional query parameter "cursor" ------------- err = runtime.BindQueryParameter("form", true, false, "cursor", r.URL.Query(), ¶ms.Cursor) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "cursor", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetDislikes(w, r, params) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // ClearHistory operation middleware func (siw *ServerInterfaceWrapper) ClearHistory(w http.ResponseWriter, r *http.Request) { ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.ClearHistory(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // GetHistory operation middleware func (siw *ServerInterfaceWrapper) GetHistory(w http.ResponseWriter, r *http.Request) { var err error ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) // Parameter object where we will unmarshal all parameters from the context var params GetHistoryParams // ------------- Optional query parameter "limit" ------------- err = runtime.BindQueryParameter("form", true, false, "limit", r.URL.Query(), ¶ms.Limit) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "limit", Err: err}) return } // ------------- Optional query parameter "cursor" ------------- err = runtime.BindQueryParameter("form", true, false, "cursor", r.URL.Query(), ¶ms.Cursor) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "cursor", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetHistory(w, r, params) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // GetLikes operation middleware func (siw *ServerInterfaceWrapper) GetLikes(w http.ResponseWriter, r *http.Request) { var err error ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) // Parameter object where we will unmarshal all parameters from the context var params GetLikesParams // ------------- Optional query parameter "limit" ------------- err = runtime.BindQueryParameter("form", true, false, "limit", r.URL.Query(), ¶ms.Limit) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "limit", Err: err}) return } // ------------- Optional query parameter "cursor" ------------- err = runtime.BindQueryParameter("form", true, false, "cursor", r.URL.Query(), ¶ms.Cursor) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "cursor", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetLikes(w, r, params) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // SaveOnboarding operation middleware func (siw *ServerInterfaceWrapper) SaveOnboarding(w http.ResponseWriter, r *http.Request) { ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.SaveOnboarding(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // ChangePassword operation middleware func (siw *ServerInterfaceWrapper) ChangePassword(w http.ResponseWriter, r *http.Request) { ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.ChangePassword(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // GetPlaybackState operation middleware func (siw *ServerInterfaceWrapper) GetPlaybackState(w http.ResponseWriter, r *http.Request) { ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetPlaybackState(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // PutPlaybackState operation middleware func (siw *ServerInterfaceWrapper) PutPlaybackState(w http.ResponseWriter, r *http.Request) { ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.PutPlaybackState(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // ListPlaylists operation middleware func (siw *ServerInterfaceWrapper) ListPlaylists(w http.ResponseWriter, r *http.Request) { ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.ListPlaylists(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // CreatePlaylist operation middleware func (siw *ServerInterfaceWrapper) CreatePlaylist(w http.ResponseWriter, r *http.Request) { ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.CreatePlaylist(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // DeletePlaylist operation middleware func (siw *ServerInterfaceWrapper) DeletePlaylist(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "id" ------------- var id openapi_types.UUID err = runtime.BindStyledParameterWithOptions("simple", "id", chi.URLParam(r, "id"), &id, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "id", Err: err}) return } ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.DeletePlaylist(w, r, id) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // GetPlaylist operation middleware func (siw *ServerInterfaceWrapper) GetPlaylist(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "id" ------------- var id openapi_types.UUID err = runtime.BindStyledParameterWithOptions("simple", "id", chi.URLParam(r, "id"), &id, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "id", Err: err}) return } ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetPlaylist(w, r, id) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // UpdatePlaylist operation middleware func (siw *ServerInterfaceWrapper) UpdatePlaylist(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "id" ------------- var id openapi_types.UUID err = runtime.BindStyledParameterWithOptions("simple", "id", chi.URLParam(r, "id"), &id, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "id", Err: err}) return } ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.UpdatePlaylist(w, r, id) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // RevokePlaylistShare operation middleware func (siw *ServerInterfaceWrapper) RevokePlaylistShare(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "id" ------------- var id openapi_types.UUID err = runtime.BindStyledParameterWithOptions("simple", "id", chi.URLParam(r, "id"), &id, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "id", Err: err}) return } ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.RevokePlaylistShare(w, r, id) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // SharePlaylist operation middleware func (siw *ServerInterfaceWrapper) SharePlaylist(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "id" ------------- var id openapi_types.UUID err = runtime.BindStyledParameterWithOptions("simple", "id", chi.URLParam(r, "id"), &id, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "id", Err: err}) return } ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.SharePlaylist(w, r, id) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // ClearTrackReaction operation middleware func (siw *ServerInterfaceWrapper) ClearTrackReaction(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "id" ------------- var id EntityId err = runtime.BindStyledParameterWithOptions("simple", "id", chi.URLParam(r, "id"), &id, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "id", Err: err}) return } ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.ClearTrackReaction(w, r, id) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // SetTrackReaction operation middleware func (siw *ServerInterfaceWrapper) SetTrackReaction(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "id" ------------- var id EntityId err = runtime.BindStyledParameterWithOptions("simple", "id", chi.URLParam(r, "id"), &id, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "id", Err: err}) return } ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.SetTrackReaction(w, r, id) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // ListMySessions operation middleware func (siw *ServerInterfaceWrapper) ListMySessions(w http.ResponseWriter, r *http.Request) { ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.ListMySessions(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // RevokeMySession operation middleware func (siw *ServerInterfaceWrapper) RevokeMySession(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "id" ------------- var id openapi_types.UUID err = runtime.BindStyledParameterWithOptions("simple", "id", chi.URLParam(r, "id"), &id, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "id", Err: err}) return } ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.RevokeMySession(w, r, id) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // GetSocial operation middleware func (siw *ServerInterfaceWrapper) GetSocial(w http.ResponseWriter, r *http.Request) { ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetSocial(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // SocialAction operation middleware func (siw *ServerInterfaceWrapper) SocialAction(w http.ResponseWriter, r *http.Request) { ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.SocialAction(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // PublishListeningActivity operation middleware func (siw *ServerInterfaceWrapper) PublishListeningActivity(w http.ResponseWriter, r *http.Request) { ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.PublishListeningActivity(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // SetActivityVisibility operation middleware func (siw *ServerInterfaceWrapper) SetActivityVisibility(w http.ResponseWriter, r *http.Request) { ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.SetActivityVisibility(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // GetDirectMessages operation middleware func (siw *ServerInterfaceWrapper) GetDirectMessages(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "peerId" ------------- var peerId openapi_types.UUID err = runtime.BindStyledParameterWithOptions("simple", "peerId", chi.URLParam(r, "peerId"), &peerId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "peerId", Err: err}) return } ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) // Parameter object where we will unmarshal all parameters from the context var params GetDirectMessagesParams // ------------- Optional query parameter "before" ------------- err = runtime.BindQueryParameter("form", true, false, "before", r.URL.Query(), ¶ms.Before) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "before", Err: err}) return } // ------------- Optional query parameter "q" ------------- err = runtime.BindQueryParameter("form", true, false, "q", r.URL.Query(), ¶ms.Q) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "q", Err: err}) return } // ------------- Optional query parameter "music" ------------- err = runtime.BindQueryParameter("form", true, false, "music", r.URL.Query(), ¶ms.Music) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "music", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetDirectMessages(w, r, peerId, params) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // SendDirectMessage operation middleware func (siw *ServerInterfaceWrapper) SendDirectMessage(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "peerId" ------------- var peerId openapi_types.UUID err = runtime.BindStyledParameterWithOptions("simple", "peerId", chi.URLParam(r, "peerId"), &peerId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "peerId", Err: err}) return } ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.SendDirectMessage(w, r, peerId) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // UpdateChatMessage operation middleware func (siw *ServerInterfaceWrapper) UpdateChatMessage(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "peerId" ------------- var peerId openapi_types.UUID err = runtime.BindStyledParameterWithOptions("simple", "peerId", chi.URLParam(r, "peerId"), &peerId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "peerId", Err: err}) return } // ------------- Path parameter "messageId" ------------- var messageId openapi_types.UUID err = runtime.BindStyledParameterWithOptions("simple", "messageId", chi.URLParam(r, "messageId"), &messageId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "messageId", Err: err}) return } ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.UpdateChatMessage(w, r, peerId, messageId) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // GetChatMeta operation middleware func (siw *ServerInterfaceWrapper) GetChatMeta(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "peerId" ------------- var peerId openapi_types.UUID err = runtime.BindStyledParameterWithOptions("simple", "peerId", chi.URLParam(r, "peerId"), &peerId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "peerId", Err: err}) return } ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetChatMeta(w, r, peerId) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // SetChatTyping operation middleware func (siw *ServerInterfaceWrapper) SetChatTyping(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "peerId" ------------- var peerId openapi_types.UUID err = runtime.BindStyledParameterWithOptions("simple", "peerId", chi.URLParam(r, "peerId"), &peerId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "peerId", Err: err}) return } ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.SetChatTyping(w, r, peerId) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // GetListeningState operation middleware func (siw *ServerInterfaceWrapper) GetListeningState(w http.ResponseWriter, r *http.Request) { ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetListeningState(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // ListeningAction operation middleware func (siw *ServerInterfaceWrapper) ListeningAction(w http.ResponseWriter, r *http.Request) { ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.ListeningAction(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // SetListeningPreferences operation middleware func (siw *ServerInterfaceWrapper) SetListeningPreferences(w http.ResponseWriter, r *http.Request) { ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.SetListeningPreferences(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // PublishListeningState operation middleware func (siw *ServerInterfaceWrapper) PublishListeningState(w http.ResponseWriter, r *http.Request) { ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.PublishListeningState(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // SearchPeople operation middleware func (siw *ServerInterfaceWrapper) SearchPeople(w http.ResponseWriter, r *http.Request) { var err error ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) // Parameter object where we will unmarshal all parameters from the context var params SearchPeopleParams // ------------- Required query parameter "q" ------------- if paramValue := r.URL.Query().Get("q"); paramValue != "" { } else { siw.ErrorHandlerFunc(w, r, &RequiredParamError{ParamName: "q"}) return } err = runtime.BindQueryParameter("form", true, true, "q", r.URL.Query(), ¶ms.Q) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "q", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.SearchPeople(w, r, params) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // SetFriendsRecommendations operation middleware func (siw *ServerInterfaceWrapper) SetFriendsRecommendations(w http.ResponseWriter, r *http.Request) { ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.SetFriendsRecommendations(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // GetOnboarding operation middleware func (siw *ServerInterfaceWrapper) GetOnboarding(w http.ResponseWriter, r *http.Request) { ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetOnboarding(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // Search operation middleware func (siw *ServerInterfaceWrapper) Search(w http.ResponseWriter, r *http.Request) { var err error ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) // Parameter object where we will unmarshal all parameters from the context var params SearchParams // ------------- Required query parameter "q" ------------- if paramValue := r.URL.Query().Get("q"); paramValue != "" { } else { siw.ErrorHandlerFunc(w, r, &RequiredParamError{ParamName: "q"}) return } err = runtime.BindQueryParameter("form", true, true, "q", r.URL.Query(), ¶ms.Q) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "q", Err: err}) return } // ------------- Optional query parameter "type" ------------- err = runtime.BindQueryParameter("form", true, false, "type", r.URL.Query(), ¶ms.Type) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "type", Err: err}) return } // ------------- Optional query parameter "limit" ------------- err = runtime.BindQueryParameter("form", true, false, "limit", r.URL.Query(), ¶ms.Limit) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "limit", Err: err}) return } // ------------- Optional query parameter "cursor" ------------- err = runtime.BindQueryParameter("form", true, false, "cursor", r.URL.Query(), ¶ms.Cursor) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "cursor", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.Search(w, r, params) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // SearchSuggest operation middleware func (siw *ServerInterfaceWrapper) SearchSuggest(w http.ResponseWriter, r *http.Request) { var err error ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) // Parameter object where we will unmarshal all parameters from the context var params SearchSuggestParams // ------------- Required query parameter "q" ------------- if paramValue := r.URL.Query().Get("q"); paramValue != "" { } else { siw.ErrorHandlerFunc(w, r, &RequiredParamError{ParamName: "q"}) return } err = runtime.BindQueryParameter("form", true, true, "q", r.URL.Query(), ¶ms.Q) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "q", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.SearchSuggest(w, r, params) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // GetServerInfo operation middleware func (siw *ServerInterfaceWrapper) GetServerInfo(w http.ResponseWriter, r *http.Request) { handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetServerInfo(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // GetSharedPlaylist operation middleware func (siw *ServerInterfaceWrapper) GetSharedPlaylist(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "shareId" ------------- var shareId openapi_types.UUID err = runtime.BindStyledParameterWithOptions("simple", "shareId", chi.URLParam(r, "shareId"), &shareId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "shareId", Err: err}) return } ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetSharedPlaylist(w, r, shareId) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // GetActivityPlaylist operation middleware func (siw *ServerInterfaceWrapper) GetActivityPlaylist(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "userId" ------------- var userId openapi_types.UUID err = runtime.BindStyledParameterWithOptions("simple", "userId", chi.URLParam(r, "userId"), &userId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "userId", Err: err}) return } ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetActivityPlaylist(w, r, userId) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // StreamTrack operation middleware func (siw *ServerInterfaceWrapper) StreamTrack(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "id" ------------- var id EntityId err = runtime.BindStyledParameterWithOptions("simple", "id", chi.URLParam(r, "id"), &id, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "id", Err: err}) return } // Parameter object where we will unmarshal all parameters from the context var params StreamTrackParams // ------------- Required query parameter "u" ------------- if paramValue := r.URL.Query().Get("u"); paramValue != "" { } else { siw.ErrorHandlerFunc(w, r, &RequiredParamError{ParamName: "u"}) return } err = runtime.BindQueryParameter("form", true, true, "u", r.URL.Query(), ¶ms.U) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "u", Err: err}) return } // ------------- Required query parameter "exp" ------------- if paramValue := r.URL.Query().Get("exp"); paramValue != "" { } else { siw.ErrorHandlerFunc(w, r, &RequiredParamError{ParamName: "exp"}) return } err = runtime.BindQueryParameter("form", true, true, "exp", r.URL.Query(), ¶ms.Exp) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "exp", Err: err}) return } // ------------- Required query parameter "sig" ------------- if paramValue := r.URL.Query().Get("sig"); paramValue != "" { } else { siw.ErrorHandlerFunc(w, r, &RequiredParamError{ParamName: "sig"}) return } err = runtime.BindQueryParameter("form", true, true, "sig", r.URL.Query(), ¶ms.Sig) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "sig", Err: err}) return } // ------------- Optional query parameter "q" ------------- err = runtime.BindQueryParameter("form", true, false, "q", r.URL.Query(), ¶ms.Q) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "q", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.StreamTrack(w, r, id, params) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // GetTracksBatch operation middleware func (siw *ServerInterfaceWrapper) GetTracksBatch(w http.ResponseWriter, r *http.Request) { ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetTracksBatch(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // GetTrack operation middleware func (siw *ServerInterfaceWrapper) GetTrack(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "id" ------------- var id EntityId err = runtime.BindStyledParameterWithOptions("simple", "id", chi.URLParam(r, "id"), &id, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "id", Err: err}) return } ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetTrack(w, r, id) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // GetTrackGenius operation middleware func (siw *ServerInterfaceWrapper) GetTrackGenius(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "id" ------------- var id EntityId err = runtime.BindStyledParameterWithOptions("simple", "id", chi.URLParam(r, "id"), &id, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "id", Err: err}) return } ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetTrackGenius(w, r, id) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // CreateUploadBatch operation middleware func (siw *ServerInterfaceWrapper) CreateUploadBatch(w http.ResponseWriter, r *http.Request) { ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.CreateUploadBatch(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // WithdrawUpload operation middleware func (siw *ServerInterfaceWrapper) WithdrawUpload(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "id" ------------- var id EntityId err = runtime.BindStyledParameterWithOptions("simple", "id", chi.URLParam(r, "id"), &id, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "id", Err: err}) return } ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.WithdrawUpload(w, r, id) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // ListMyUploads operation middleware func (siw *ServerInterfaceWrapper) ListMyUploads(w http.ResponseWriter, r *http.Request) { var err error ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) // Parameter object where we will unmarshal all parameters from the context var params ListMyUploadsParams // ------------- Optional query parameter "batch" ------------- err = runtime.BindQueryParameter("form", true, false, "batch", r.URL.Query(), ¶ms.Batch) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "batch", Err: err}) return } // ------------- Optional query parameter "status" ------------- err = runtime.BindQueryParameter("form", false, false, "status", r.URL.Query(), ¶ms.Status) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "status", Err: err}) return } // ------------- Optional query parameter "limit" ------------- err = runtime.BindQueryParameter("form", true, false, "limit", r.URL.Query(), ¶ms.Limit) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "limit", Err: err}) return } // ------------- Optional query parameter "cursor" ------------- err = runtime.BindQueryParameter("form", true, false, "cursor", r.URL.Query(), ¶ms.Cursor) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "cursor", Err: err}) return } handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.ListMyUploads(w, r, params) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // PrecheckUploads operation middleware func (siw *ServerInterfaceWrapper) PrecheckUploads(w http.ResponseWriter, r *http.Request) { ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.PrecheckUploads(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // GetUploadQuota operation middleware func (siw *ServerInterfaceWrapper) GetUploadQuota(w http.ResponseWriter, r *http.Request) { ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetUploadQuota(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // MarkUploadsSeen operation middleware func (siw *ServerInterfaceWrapper) MarkUploadsSeen(w http.ResponseWriter, r *http.Request) { ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.MarkUploadsSeen(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // UnseenUploadDecisions operation middleware func (siw *ServerInterfaceWrapper) UnseenUploadDecisions(w http.ResponseWriter, r *http.Request) { ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.UnseenUploadDecisions(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // GetWaveOptions operation middleware func (siw *ServerInterfaceWrapper) GetWaveOptions(w http.ResponseWriter, r *http.Request) { ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetWaveOptions(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // StartWave operation middleware func (siw *ServerInterfaceWrapper) StartWave(w http.ResponseWriter, r *http.Request) { ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.StartWave(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // EndWave operation middleware func (siw *ServerInterfaceWrapper) EndWave(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "id" ------------- var id EntityId err = runtime.BindStyledParameterWithOptions("simple", "id", chi.URLParam(r, "id"), &id, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "id", Err: err}) return } ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.EndWave(w, r, id) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // UpdateWave operation middleware func (siw *ServerInterfaceWrapper) UpdateWave(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "id" ------------- var id EntityId err = runtime.BindStyledParameterWithOptions("simple", "id", chi.URLParam(r, "id"), &id, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "id", Err: err}) return } ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.UpdateWave(w, r, id) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // NextWave operation middleware func (siw *ServerInterfaceWrapper) NextWave(w http.ResponseWriter, r *http.Request) { var err error // ------------- Path parameter "id" ------------- var id EntityId err = runtime.BindStyledParameterWithOptions("simple", "id", chi.URLParam(r, "id"), &id, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true}) if err != nil { siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "id", Err: err}) return } ctx := r.Context() ctx = context.WithValue(ctx, BearerAuthScopes, []string{}) r = r.WithContext(ctx) handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.NextWave(w, r, id) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // GetHealthz operation middleware func (siw *ServerInterfaceWrapper) GetHealthz(w http.ResponseWriter, r *http.Request) { handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetHealthz(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } // GetReadyz operation middleware func (siw *ServerInterfaceWrapper) GetReadyz(w http.ResponseWriter, r *http.Request) { handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { siw.Handler.GetReadyz(w, r) })) for _, middleware := range siw.HandlerMiddlewares { handler = middleware(handler) } handler.ServeHTTP(w, r) } type UnescapedCookieParamError struct { ParamName string Err error } func (e *UnescapedCookieParamError) Error() string { return fmt.Sprintf("error unescaping cookie parameter '%s'", e.ParamName) } func (e *UnescapedCookieParamError) Unwrap() error { return e.Err } type UnmarshalingParamError struct { ParamName string Err error } func (e *UnmarshalingParamError) Error() string { return fmt.Sprintf("Error unmarshaling parameter %s as JSON: %s", e.ParamName, e.Err.Error()) } func (e *UnmarshalingParamError) Unwrap() error { return e.Err } type RequiredParamError struct { ParamName string } func (e *RequiredParamError) Error() string { return fmt.Sprintf("Query argument %s is required, but not found", e.ParamName) } type RequiredHeaderError struct { ParamName string Err error } func (e *RequiredHeaderError) Error() string { return fmt.Sprintf("Header parameter %s is required, but not found", e.ParamName) } func (e *RequiredHeaderError) Unwrap() error { return e.Err } type InvalidParamFormatError struct { ParamName string Err error } func (e *InvalidParamFormatError) Error() string { return fmt.Sprintf("Invalid format for parameter %s: %s", e.ParamName, e.Err.Error()) } func (e *InvalidParamFormatError) Unwrap() error { return e.Err } type TooManyValuesForParamError struct { ParamName string Count int } func (e *TooManyValuesForParamError) Error() string { return fmt.Sprintf("Expected one value for %s, got %d", e.ParamName, e.Count) } // Handler creates http.Handler with routing matching OpenAPI spec. func Handler(si ServerInterface) http.Handler { return HandlerWithOptions(si, ChiServerOptions{}) } type ChiServerOptions struct { BaseURL string BaseRouter chi.Router Middlewares []MiddlewareFunc ErrorHandlerFunc func(w http.ResponseWriter, r *http.Request, err error) } // HandlerFromMux creates http.Handler with routing matching OpenAPI spec based on the provided mux. func HandlerFromMux(si ServerInterface, r chi.Router) http.Handler { return HandlerWithOptions(si, ChiServerOptions{ BaseRouter: r, }) } func HandlerFromMuxWithBaseURL(si ServerInterface, r chi.Router, baseURL string) http.Handler { return HandlerWithOptions(si, ChiServerOptions{ BaseURL: baseURL, BaseRouter: r, }) } // HandlerWithOptions creates http.Handler with additional options func HandlerWithOptions(si ServerInterface, options ChiServerOptions) http.Handler { r := options.BaseRouter if r == nil { r = chi.NewRouter() } if options.ErrorHandlerFunc == nil { options.ErrorHandlerFunc = func(w http.ResponseWriter, r *http.Request, err error) { http.Error(w, err.Error(), http.StatusBadRequest) } } wrapper := ServerInterfaceWrapper{ Handler: si, HandlerMiddlewares: options.Middlewares, ErrorHandlerFunc: options.ErrorHandlerFunc, } r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/api/v1/admin/audit", wrapper.ListAudit) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/api/v1/admin/genius", wrapper.GetGeniusStats) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/api/v1/admin/genius", wrapper.ControlGenius) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/api/v1/admin/library/analysis/errors", wrapper.ListAnalysisErrors) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/api/v1/admin/library/analysis/retry", wrapper.RetryAnalysis) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/api/v1/admin/library/errors", wrapper.ListLibraryErrors) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/api/v1/admin/library/host-dirs", wrapper.ListHostDirs) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/api/v1/admin/library/status", wrapper.GetLibraryStatus) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/api/v1/admin/search/reindex", wrapper.ReindexSearch) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/api/v1/admin/server/config", wrapper.GetServerConfig) }) r.Group(func(r chi.Router) { r.Patch(options.BaseURL+"/api/v1/admin/server/config", wrapper.SaveServerConfig) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/api/v1/admin/server/config/apply", wrapper.ApplyServerConfig) }) r.Group(func(r chi.Router) { r.Put(options.BaseURL+"/api/v1/admin/server/update-sources", wrapper.SaveServerUpdateSources) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/api/v1/admin/server/updates", wrapper.GetServerUpdates) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/api/v1/admin/server/updates", wrapper.StartServerUpdate) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/api/v1/admin/settings/uploads", wrapper.GetUploadSettings) }) r.Group(func(r chi.Router) { r.Patch(options.BaseURL+"/api/v1/admin/settings/uploads", wrapper.UpdateUploadSettings) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/api/v1/admin/sources", wrapper.ListSources) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/api/v1/admin/sources", wrapper.CreateSource) }) r.Group(func(r chi.Router) { r.Delete(options.BaseURL+"/api/v1/admin/sources/{id}", wrapper.DeleteSource) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/api/v1/admin/sources/{id}", wrapper.GetSource) }) r.Group(func(r chi.Router) { r.Patch(options.BaseURL+"/api/v1/admin/sources/{id}", wrapper.UpdateSource) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/api/v1/admin/sources/{id}/cover-stats", wrapper.GetSourceCoverStats) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/api/v1/admin/sources/{id}/patterns", wrapper.GetSourcePatterns) }) r.Group(func(r chi.Router) { r.Put(options.BaseURL+"/api/v1/admin/sources/{id}/patterns", wrapper.PutSourcePatterns) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/api/v1/admin/sources/{id}/patterns/preview", wrapper.PreviewSourcePatterns) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/api/v1/admin/sources/{id}/scan", wrapper.ScanSource) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/api/v1/admin/sources/{id}/test", wrapper.TestSource) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/api/v1/admin/sources/{id}/write-template/check", wrapper.CheckWriteTemplate) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/api/v1/admin/sources/{id}/write-template/suggest", wrapper.SuggestWriteTemplate) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/api/v1/admin/uploads", wrapper.ListUploads) }) r.Group(func(r chi.Router) { r.Patch(options.BaseURL+"/api/v1/admin/uploads/batches/{id}", wrapper.UpdateUploadBatch) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/api/v1/admin/uploads/batches/{id}/release", wrapper.ApplyUploadRelease) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/api/v1/admin/uploads/batches/{id}/releases", wrapper.GetUploadReleases) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/api/v1/admin/uploads/batches/{id}/releases", wrapper.SearchUploadReleases) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/api/v1/admin/uploads/batches/{id}/releases/{release_id}/cover", wrapper.GetUploadReleaseCover) }) r.Group(func(r chi.Router) { r.Patch(options.BaseURL+"/api/v1/admin/uploads/files/{id}", wrapper.UpdateUpload) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/api/v1/admin/uploads/files/{id}/retry", wrapper.RetryUploadImport) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/api/v1/admin/uploads/files/{id}/stream", wrapper.StreamUpload) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/api/v1/admin/uploads/review", wrapper.ReviewUploads) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/api/v1/admin/users", wrapper.ListUsers) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/api/v1/admin/users", wrapper.CreateUser) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/api/v1/admin/users/export", wrapper.ExportUsers) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/api/v1/admin/users/import", wrapper.ImportUsers) }) r.Group(func(r chi.Router) { r.Delete(options.BaseURL+"/api/v1/admin/users/{id}", wrapper.DeleteUser) }) r.Group(func(r chi.Router) { r.Patch(options.BaseURL+"/api/v1/admin/users/{id}", wrapper.UpdateUser) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/api/v1/admin/users/{id}/reset-password", wrapper.ResetUserPassword) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/api/v1/admin/users/{id}/reset-recommendations", wrapper.ResetUserRecommendations) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/api/v1/albums/{id}", wrapper.GetAlbum) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/api/v1/app/android/download/{version}", wrapper.DownloadAndroidApk) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/api/v1/app/android/latest", wrapper.GetAndroidLatest) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/api/v1/app/clients", wrapper.GetAppClients) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/api/v1/app/download/{client}/{version}", wrapper.DownloadAppClient) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/api/v1/artists/{id}", wrapper.GetArtist) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/api/v1/artists/{id}/albums", wrapper.ListArtistAlbums) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/api/v1/artists/{id}/top-tracks", wrapper.ListArtistTopTracks) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/api/v1/auth/login", wrapper.Login) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/api/v1/auth/logout", wrapper.Logout) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/api/v1/auth/logout-all", wrapper.LogoutAll) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/api/v1/auth/refresh", wrapper.RefreshTokens) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/api/v1/covers/{id}", wrapper.GetCover) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/api/v1/events", wrapper.PostEvents) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/api/v1/me", wrapper.GetMe) }) r.Group(func(r chi.Router) { r.Patch(options.BaseURL+"/api/v1/me", wrapper.UpdateMe) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/api/v1/me/bootstrap-credentials", wrapper.SetBootstrapCredentials) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/api/v1/me/dislikes", wrapper.GetDislikes) }) r.Group(func(r chi.Router) { r.Delete(options.BaseURL+"/api/v1/me/history", wrapper.ClearHistory) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/api/v1/me/history", wrapper.GetHistory) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/api/v1/me/likes", wrapper.GetLikes) }) r.Group(func(r chi.Router) { r.Put(options.BaseURL+"/api/v1/me/onboarding", wrapper.SaveOnboarding) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/api/v1/me/password", wrapper.ChangePassword) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/api/v1/me/playback-state", wrapper.GetPlaybackState) }) r.Group(func(r chi.Router) { r.Put(options.BaseURL+"/api/v1/me/playback-state", wrapper.PutPlaybackState) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/api/v1/me/playlists", wrapper.ListPlaylists) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/api/v1/me/playlists", wrapper.CreatePlaylist) }) r.Group(func(r chi.Router) { r.Delete(options.BaseURL+"/api/v1/me/playlists/{id}", wrapper.DeletePlaylist) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/api/v1/me/playlists/{id}", wrapper.GetPlaylist) }) r.Group(func(r chi.Router) { r.Put(options.BaseURL+"/api/v1/me/playlists/{id}", wrapper.UpdatePlaylist) }) r.Group(func(r chi.Router) { r.Delete(options.BaseURL+"/api/v1/me/playlists/{id}/share", wrapper.RevokePlaylistShare) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/api/v1/me/playlists/{id}/share", wrapper.SharePlaylist) }) r.Group(func(r chi.Router) { r.Delete(options.BaseURL+"/api/v1/me/reactions/tracks/{id}", wrapper.ClearTrackReaction) }) r.Group(func(r chi.Router) { r.Put(options.BaseURL+"/api/v1/me/reactions/tracks/{id}", wrapper.SetTrackReaction) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/api/v1/me/sessions", wrapper.ListMySessions) }) r.Group(func(r chi.Router) { r.Delete(options.BaseURL+"/api/v1/me/sessions/{id}", wrapper.RevokeMySession) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/api/v1/me/social", wrapper.GetSocial) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/api/v1/me/social/actions", wrapper.SocialAction) }) r.Group(func(r chi.Router) { r.Put(options.BaseURL+"/api/v1/me/social/activity", wrapper.PublishListeningActivity) }) r.Group(func(r chi.Router) { r.Put(options.BaseURL+"/api/v1/me/social/activity/visibility", wrapper.SetActivityVisibility) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/api/v1/me/social/chats/{peerId}", wrapper.GetDirectMessages) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/api/v1/me/social/chats/{peerId}", wrapper.SendDirectMessage) }) r.Group(func(r chi.Router) { r.Patch(options.BaseURL+"/api/v1/me/social/chats/{peerId}/messages/{messageId}", wrapper.UpdateChatMessage) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/api/v1/me/social/chats/{peerId}/meta", wrapper.GetChatMeta) }) r.Group(func(r chi.Router) { r.Put(options.BaseURL+"/api/v1/me/social/chats/{peerId}/meta", wrapper.SetChatTyping) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/api/v1/me/social/listening", wrapper.GetListeningState) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/api/v1/me/social/listening/actions", wrapper.ListeningAction) }) r.Group(func(r chi.Router) { r.Put(options.BaseURL+"/api/v1/me/social/listening/preferences", wrapper.SetListeningPreferences) }) r.Group(func(r chi.Router) { r.Put(options.BaseURL+"/api/v1/me/social/listening/state", wrapper.PublishListeningState) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/api/v1/me/social/people", wrapper.SearchPeople) }) r.Group(func(r chi.Router) { r.Put(options.BaseURL+"/api/v1/me/social/recommendations", wrapper.SetFriendsRecommendations) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/api/v1/onboarding", wrapper.GetOnboarding) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/api/v1/search", wrapper.Search) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/api/v1/search/suggest", wrapper.SearchSuggest) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/api/v1/server-info", wrapper.GetServerInfo) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/api/v1/shared/playlists/{shareId}", wrapper.GetSharedPlaylist) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/api/v1/social/activity/{userId}/playlist", wrapper.GetActivityPlaylist) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/api/v1/stream/{id}", wrapper.StreamTrack) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/api/v1/tracks/batch", wrapper.GetTracksBatch) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/api/v1/tracks/{id}", wrapper.GetTrack) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/api/v1/tracks/{id}/genius", wrapper.GetTrackGenius) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/api/v1/uploads", wrapper.CreateUploadBatch) }) r.Group(func(r chi.Router) { r.Delete(options.BaseURL+"/api/v1/uploads/files/{id}", wrapper.WithdrawUpload) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/api/v1/uploads/mine", wrapper.ListMyUploads) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/api/v1/uploads/precheck", wrapper.PrecheckUploads) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/api/v1/uploads/quota", wrapper.GetUploadQuota) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/api/v1/uploads/seen", wrapper.MarkUploadsSeen) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/api/v1/uploads/unseen", wrapper.UnseenUploadDecisions) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/api/v1/wave/options", wrapper.GetWaveOptions) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/api/v1/wave/sessions", wrapper.StartWave) }) r.Group(func(r chi.Router) { r.Delete(options.BaseURL+"/api/v1/wave/sessions/{id}", wrapper.EndWave) }) r.Group(func(r chi.Router) { r.Patch(options.BaseURL+"/api/v1/wave/sessions/{id}", wrapper.UpdateWave) }) r.Group(func(r chi.Router) { r.Post(options.BaseURL+"/api/v1/wave/sessions/{id}/next", wrapper.NextWave) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/healthz", wrapper.GetHealthz) }) r.Group(func(r chi.Router) { r.Get(options.BaseURL+"/readyz", wrapper.GetReadyz) }) return r } type ProblemApplicationProblemPlusJSONResponse Problem type ListAuditRequestObject struct { Params ListAuditParams } type ListAuditResponseObject interface { VisitListAuditResponse(w http.ResponseWriter) error } type ListAudit200JSONResponse AuditPage func (response ListAudit200JSONResponse) VisitListAuditResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type ListAuditdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response ListAuditdefaultApplicationProblemPlusJSONResponse) VisitListAuditResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type GetGeniusStatsRequestObject struct { } type GetGeniusStatsResponseObject interface { VisitGetGeniusStatsResponse(w http.ResponseWriter) error } type GetGeniusStats200JSONResponse GeniusStats func (response GetGeniusStats200JSONResponse) VisitGetGeniusStatsResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type ControlGeniusRequestObject struct { Body *ControlGeniusJSONRequestBody } type ControlGeniusResponseObject interface { VisitControlGeniusResponse(w http.ResponseWriter) error } type ControlGenius200JSONResponse GeniusStats func (response ControlGenius200JSONResponse) VisitControlGeniusResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type ListAnalysisErrorsRequestObject struct { Params ListAnalysisErrorsParams } type ListAnalysisErrorsResponseObject interface { VisitListAnalysisErrorsResponse(w http.ResponseWriter) error } type ListAnalysisErrors200JSONResponse AnalysisErrorPage func (response ListAnalysisErrors200JSONResponse) VisitListAnalysisErrorsResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type ListAnalysisErrorsdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response ListAnalysisErrorsdefaultApplicationProblemPlusJSONResponse) VisitListAnalysisErrorsResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type RetryAnalysisRequestObject struct { } type RetryAnalysisResponseObject interface { VisitRetryAnalysisResponse(w http.ResponseWriter) error } type RetryAnalysis200JSONResponse struct { Requeued int `json:"requeued"` } func (response RetryAnalysis200JSONResponse) VisitRetryAnalysisResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type RetryAnalysisdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response RetryAnalysisdefaultApplicationProblemPlusJSONResponse) VisitRetryAnalysisResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type ListLibraryErrorsRequestObject struct { Params ListLibraryErrorsParams } type ListLibraryErrorsResponseObject interface { VisitListLibraryErrorsResponse(w http.ResponseWriter) error } type ListLibraryErrors200JSONResponse LibraryErrorPage func (response ListLibraryErrors200JSONResponse) VisitListLibraryErrorsResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type ListLibraryErrorsdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response ListLibraryErrorsdefaultApplicationProblemPlusJSONResponse) VisitListLibraryErrorsResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type ListHostDirsRequestObject struct { Params ListHostDirsParams } type ListHostDirsResponseObject interface { VisitListHostDirsResponse(w http.ResponseWriter) error } type ListHostDirs200JSONResponse HostDirList func (response ListHostDirs200JSONResponse) VisitListHostDirsResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type ListHostDirsdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response ListHostDirsdefaultApplicationProblemPlusJSONResponse) VisitListHostDirsResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type GetLibraryStatusRequestObject struct { } type GetLibraryStatusResponseObject interface { VisitGetLibraryStatusResponse(w http.ResponseWriter) error } type GetLibraryStatus200JSONResponse LibraryStatus func (response GetLibraryStatus200JSONResponse) VisitGetLibraryStatusResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type GetLibraryStatusdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response GetLibraryStatusdefaultApplicationProblemPlusJSONResponse) VisitGetLibraryStatusResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type ReindexSearchRequestObject struct { } type ReindexSearchResponseObject interface { VisitReindexSearchResponse(w http.ResponseWriter) error } type ReindexSearch202Response struct { } func (response ReindexSearch202Response) VisitReindexSearchResponse(w http.ResponseWriter) error { w.WriteHeader(202) return nil } type ReindexSearchdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response ReindexSearchdefaultApplicationProblemPlusJSONResponse) VisitReindexSearchResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type GetServerConfigRequestObject struct { } type GetServerConfigResponseObject interface { VisitGetServerConfigResponse(w http.ResponseWriter) error } type GetServerConfig200JSONResponse ServerConfig func (response GetServerConfig200JSONResponse) VisitGetServerConfigResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type GetServerConfigdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response GetServerConfigdefaultApplicationProblemPlusJSONResponse) VisitGetServerConfigResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type SaveServerConfigRequestObject struct { Body *SaveServerConfigJSONRequestBody } type SaveServerConfigResponseObject interface { VisitSaveServerConfigResponse(w http.ResponseWriter) error } type SaveServerConfig200JSONResponse ServerConfig func (response SaveServerConfig200JSONResponse) VisitSaveServerConfigResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type SaveServerConfigdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response SaveServerConfigdefaultApplicationProblemPlusJSONResponse) VisitSaveServerConfigResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type ApplyServerConfigRequestObject struct { } type ApplyServerConfigResponseObject interface { VisitApplyServerConfigResponse(w http.ResponseWriter) error } type ApplyServerConfig202JSONResponse ServerJob func (response ApplyServerConfig202JSONResponse) VisitApplyServerConfigResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(202) return json.NewEncoder(w).Encode(response) } type ApplyServerConfigdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response ApplyServerConfigdefaultApplicationProblemPlusJSONResponse) VisitApplyServerConfigResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type SaveServerUpdateSourcesRequestObject struct { Body *SaveServerUpdateSourcesJSONRequestBody } type SaveServerUpdateSourcesResponseObject interface { VisitSaveServerUpdateSourcesResponse(w http.ResponseWriter) error } type SaveServerUpdateSources200JSONResponse ServerSources func (response SaveServerUpdateSources200JSONResponse) VisitSaveServerUpdateSourcesResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type SaveServerUpdateSourcesdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response SaveServerUpdateSourcesdefaultApplicationProblemPlusJSONResponse) VisitSaveServerUpdateSourcesResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type GetServerUpdatesRequestObject struct { Params GetServerUpdatesParams } type GetServerUpdatesResponseObject interface { VisitGetServerUpdatesResponse(w http.ResponseWriter) error } type GetServerUpdates200JSONResponse ServerUpdates func (response GetServerUpdates200JSONResponse) VisitGetServerUpdatesResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type GetServerUpdatesdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response GetServerUpdatesdefaultApplicationProblemPlusJSONResponse) VisitGetServerUpdatesResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type StartServerUpdateRequestObject struct { Body *StartServerUpdateJSONRequestBody } type StartServerUpdateResponseObject interface { VisitStartServerUpdateResponse(w http.ResponseWriter) error } type StartServerUpdate202JSONResponse ServerJob func (response StartServerUpdate202JSONResponse) VisitStartServerUpdateResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(202) return json.NewEncoder(w).Encode(response) } type StartServerUpdatedefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response StartServerUpdatedefaultApplicationProblemPlusJSONResponse) VisitStartServerUpdateResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type GetUploadSettingsRequestObject struct { } type GetUploadSettingsResponseObject interface { VisitGetUploadSettingsResponse(w http.ResponseWriter) error } type GetUploadSettings200JSONResponse UploadSettings func (response GetUploadSettings200JSONResponse) VisitGetUploadSettingsResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type GetUploadSettingsdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response GetUploadSettingsdefaultApplicationProblemPlusJSONResponse) VisitGetUploadSettingsResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type UpdateUploadSettingsRequestObject struct { Body *UpdateUploadSettingsJSONRequestBody } type UpdateUploadSettingsResponseObject interface { VisitUpdateUploadSettingsResponse(w http.ResponseWriter) error } type UpdateUploadSettings200JSONResponse UploadSettings func (response UpdateUploadSettings200JSONResponse) VisitUpdateUploadSettingsResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type UpdateUploadSettingsdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response UpdateUploadSettingsdefaultApplicationProblemPlusJSONResponse) VisitUpdateUploadSettingsResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type ListSourcesRequestObject struct { } type ListSourcesResponseObject interface { VisitListSourcesResponse(w http.ResponseWriter) error } type ListSources200JSONResponse SourceList func (response ListSources200JSONResponse) VisitListSourcesResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type ListSourcesdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response ListSourcesdefaultApplicationProblemPlusJSONResponse) VisitListSourcesResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type CreateSourceRequestObject struct { Body *CreateSourceJSONRequestBody } type CreateSourceResponseObject interface { VisitCreateSourceResponse(w http.ResponseWriter) error } type CreateSource201JSONResponse Source func (response CreateSource201JSONResponse) VisitCreateSourceResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(201) return json.NewEncoder(w).Encode(response) } type CreateSourcedefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response CreateSourcedefaultApplicationProblemPlusJSONResponse) VisitCreateSourceResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type DeleteSourceRequestObject struct { Id SourceId `json:"id"` } type DeleteSourceResponseObject interface { VisitDeleteSourceResponse(w http.ResponseWriter) error } type DeleteSource204Response struct { } func (response DeleteSource204Response) VisitDeleteSourceResponse(w http.ResponseWriter) error { w.WriteHeader(204) return nil } type DeleteSourcedefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response DeleteSourcedefaultApplicationProblemPlusJSONResponse) VisitDeleteSourceResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type GetSourceRequestObject struct { Id SourceId `json:"id"` } type GetSourceResponseObject interface { VisitGetSourceResponse(w http.ResponseWriter) error } type GetSource200JSONResponse Source func (response GetSource200JSONResponse) VisitGetSourceResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type GetSourcedefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response GetSourcedefaultApplicationProblemPlusJSONResponse) VisitGetSourceResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type UpdateSourceRequestObject struct { Id SourceId `json:"id"` Body *UpdateSourceJSONRequestBody } type UpdateSourceResponseObject interface { VisitUpdateSourceResponse(w http.ResponseWriter) error } type UpdateSource200JSONResponse Source func (response UpdateSource200JSONResponse) VisitUpdateSourceResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type UpdateSourcedefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response UpdateSourcedefaultApplicationProblemPlusJSONResponse) VisitUpdateSourceResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type GetSourceCoverStatsRequestObject struct { Id SourceId `json:"id"` } type GetSourceCoverStatsResponseObject interface { VisitGetSourceCoverStatsResponse(w http.ResponseWriter) error } type GetSourceCoverStats200JSONResponse SourceCoverStats func (response GetSourceCoverStats200JSONResponse) VisitGetSourceCoverStatsResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type GetSourceCoverStatsdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response GetSourceCoverStatsdefaultApplicationProblemPlusJSONResponse) VisitGetSourceCoverStatsResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type GetSourcePatternsRequestObject struct { Id SourceId `json:"id"` } type GetSourcePatternsResponseObject interface { VisitGetSourcePatternsResponse(w http.ResponseWriter) error } type GetSourcePatterns200JSONResponse PatternList func (response GetSourcePatterns200JSONResponse) VisitGetSourcePatternsResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type GetSourcePatternsdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response GetSourcePatternsdefaultApplicationProblemPlusJSONResponse) VisitGetSourcePatternsResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type PutSourcePatternsRequestObject struct { Id SourceId `json:"id"` Body *PutSourcePatternsJSONRequestBody } type PutSourcePatternsResponseObject interface { VisitPutSourcePatternsResponse(w http.ResponseWriter) error } type PutSourcePatterns200JSONResponse PatternList func (response PutSourcePatterns200JSONResponse) VisitPutSourcePatternsResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type PutSourcePatternsdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response PutSourcePatternsdefaultApplicationProblemPlusJSONResponse) VisitPutSourcePatternsResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type PreviewSourcePatternsRequestObject struct { Id SourceId `json:"id"` Body *PreviewSourcePatternsJSONRequestBody } type PreviewSourcePatternsResponseObject interface { VisitPreviewSourcePatternsResponse(w http.ResponseWriter) error } type PreviewSourcePatterns200JSONResponse PatternPreview func (response PreviewSourcePatterns200JSONResponse) VisitPreviewSourcePatternsResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type PreviewSourcePatternsdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response PreviewSourcePatternsdefaultApplicationProblemPlusJSONResponse) VisitPreviewSourcePatternsResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type ScanSourceRequestObject struct { Id SourceId `json:"id"` Body *ScanSourceJSONRequestBody } type ScanSourceResponseObject interface { VisitScanSourceResponse(w http.ResponseWriter) error } type ScanSource202JSONResponse ScanProgress func (response ScanSource202JSONResponse) VisitScanSourceResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(202) return json.NewEncoder(w).Encode(response) } type ScanSourcedefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response ScanSourcedefaultApplicationProblemPlusJSONResponse) VisitScanSourceResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type TestSourceRequestObject struct { Id SourceId `json:"id"` } type TestSourceResponseObject interface { VisitTestSourceResponse(w http.ResponseWriter) error } type TestSource200JSONResponse SourceTestResult func (response TestSource200JSONResponse) VisitTestSourceResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type TestSourcedefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response TestSourcedefaultApplicationProblemPlusJSONResponse) VisitTestSourceResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type CheckWriteTemplateRequestObject struct { Id SourceId `json:"id"` Body *CheckWriteTemplateJSONRequestBody } type CheckWriteTemplateResponseObject interface { VisitCheckWriteTemplateResponse(w http.ResponseWriter) error } type CheckWriteTemplate200JSONResponse WriteTemplateCheck func (response CheckWriteTemplate200JSONResponse) VisitCheckWriteTemplateResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type CheckWriteTemplatedefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response CheckWriteTemplatedefaultApplicationProblemPlusJSONResponse) VisitCheckWriteTemplateResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type SuggestWriteTemplateRequestObject struct { Id SourceId `json:"id"` } type SuggestWriteTemplateResponseObject interface { VisitSuggestWriteTemplateResponse(w http.ResponseWriter) error } type SuggestWriteTemplate200JSONResponse WriteTemplateSuggestion func (response SuggestWriteTemplate200JSONResponse) VisitSuggestWriteTemplateResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type SuggestWriteTemplatedefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response SuggestWriteTemplatedefaultApplicationProblemPlusJSONResponse) VisitSuggestWriteTemplateResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type ListUploadsRequestObject struct { Params ListUploadsParams } type ListUploadsResponseObject interface { VisitListUploadsResponse(w http.ResponseWriter) error } type ListUploads200JSONResponse UploadFilePage func (response ListUploads200JSONResponse) VisitListUploadsResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type ListUploadsdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response ListUploadsdefaultApplicationProblemPlusJSONResponse) VisitListUploadsResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type UpdateUploadBatchRequestObject struct { Id EntityId `json:"id"` Body *UpdateUploadBatchJSONRequestBody } type UpdateUploadBatchResponseObject interface { VisitUpdateUploadBatchResponse(w http.ResponseWriter) error } type UpdateUploadBatch200JSONResponse struct { Items []UploadFile `json:"items"` } func (response UpdateUploadBatch200JSONResponse) VisitUpdateUploadBatchResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type UpdateUploadBatchdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response UpdateUploadBatchdefaultApplicationProblemPlusJSONResponse) VisitUpdateUploadBatchResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type ApplyUploadReleaseRequestObject struct { Id EntityId `json:"id"` Body *ApplyUploadReleaseJSONRequestBody } type ApplyUploadReleaseResponseObject interface { VisitApplyUploadReleaseResponse(w http.ResponseWriter) error } type ApplyUploadRelease200JSONResponse UploadReleaseReport func (response ApplyUploadRelease200JSONResponse) VisitApplyUploadReleaseResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type ApplyUploadReleasedefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response ApplyUploadReleasedefaultApplicationProblemPlusJSONResponse) VisitApplyUploadReleaseResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type GetUploadReleasesRequestObject struct { Id EntityId `json:"id"` Params GetUploadReleasesParams } type GetUploadReleasesResponseObject interface { VisitGetUploadReleasesResponse(w http.ResponseWriter) error } type GetUploadReleases200JSONResponse UploadReleaseReport func (response GetUploadReleases200JSONResponse) VisitGetUploadReleasesResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type GetUploadReleasesdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response GetUploadReleasesdefaultApplicationProblemPlusJSONResponse) VisitGetUploadReleasesResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type SearchUploadReleasesRequestObject struct { Id EntityId `json:"id"` Body *SearchUploadReleasesJSONRequestBody } type SearchUploadReleasesResponseObject interface { VisitSearchUploadReleasesResponse(w http.ResponseWriter) error } type SearchUploadReleases202JSONResponse UploadReleaseReport func (response SearchUploadReleases202JSONResponse) VisitSearchUploadReleasesResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(202) return json.NewEncoder(w).Encode(response) } type SearchUploadReleasesdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response SearchUploadReleasesdefaultApplicationProblemPlusJSONResponse) VisitSearchUploadReleasesResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type GetUploadReleaseCoverRequestObject struct { Id EntityId `json:"id"` ReleaseId openapi_types.UUID `json:"release_id"` Params GetUploadReleaseCoverParams } type GetUploadReleaseCoverResponseObject interface { VisitGetUploadReleaseCoverResponse(w http.ResponseWriter) error } type GetUploadReleaseCover200JSONResponse struct { ExactRelease bool `json:"exact_release"` ImageBase64 string `json:"image_base64"` MimeType string `json:"mime_type"` SourceUrl string `json:"source_url"` } func (response GetUploadReleaseCover200JSONResponse) VisitGetUploadReleaseCoverResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type GetUploadReleaseCoverdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response GetUploadReleaseCoverdefaultApplicationProblemPlusJSONResponse) VisitGetUploadReleaseCoverResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type UpdateUploadRequestObject struct { Id EntityId `json:"id"` Body *UpdateUploadJSONRequestBody } type UpdateUploadResponseObject interface { VisitUpdateUploadResponse(w http.ResponseWriter) error } type UpdateUpload200JSONResponse UploadFile func (response UpdateUpload200JSONResponse) VisitUpdateUploadResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type UpdateUploaddefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response UpdateUploaddefaultApplicationProblemPlusJSONResponse) VisitUpdateUploadResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type RetryUploadImportRequestObject struct { Id EntityId `json:"id"` } type RetryUploadImportResponseObject interface { VisitRetryUploadImportResponse(w http.ResponseWriter) error } type RetryUploadImport200JSONResponse UploadFile func (response RetryUploadImport200JSONResponse) VisitRetryUploadImportResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type RetryUploadImportdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response RetryUploadImportdefaultApplicationProblemPlusJSONResponse) VisitRetryUploadImportResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type StreamUploadRequestObject struct { Id EntityId `json:"id"` Params StreamUploadParams } type StreamUploadResponseObject interface { VisitStreamUploadResponse(w http.ResponseWriter) error } type StreamUpload200AudioResponse struct { Body io.Reader ContentType string ContentLength int64 } func (response StreamUpload200AudioResponse) VisitStreamUploadResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", response.ContentType) if response.ContentLength != 0 { w.Header().Set("Content-Length", fmt.Sprint(response.ContentLength)) } w.WriteHeader(200) if closer, ok := response.Body.(io.ReadCloser); ok { defer closer.Close() } _, err := io.Copy(w, response.Body) return err } type StreamUploaddefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response StreamUploaddefaultApplicationProblemPlusJSONResponse) VisitStreamUploadResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type ReviewUploadsRequestObject struct { Body *ReviewUploadsJSONRequestBody } type ReviewUploadsResponseObject interface { VisitReviewUploadsResponse(w http.ResponseWriter) error } type ReviewUploads200JSONResponse UploadReviewResult func (response ReviewUploads200JSONResponse) VisitReviewUploadsResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type ReviewUploadsdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response ReviewUploadsdefaultApplicationProblemPlusJSONResponse) VisitReviewUploadsResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type ListUsersRequestObject struct { Params ListUsersParams } type ListUsersResponseObject interface { VisitListUsersResponse(w http.ResponseWriter) error } type ListUsers200JSONResponse AdminUserPage func (response ListUsers200JSONResponse) VisitListUsersResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type ListUsersdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response ListUsersdefaultApplicationProblemPlusJSONResponse) VisitListUsersResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type CreateUserRequestObject struct { Body *CreateUserJSONRequestBody } type CreateUserResponseObject interface { VisitCreateUserResponse(w http.ResponseWriter) error } type CreateUser201JSONResponse CreatedUser func (response CreateUser201JSONResponse) VisitCreateUserResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(201) return json.NewEncoder(w).Encode(response) } type CreateUserdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response CreateUserdefaultApplicationProblemPlusJSONResponse) VisitCreateUserResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type ExportUsersRequestObject struct { } type ExportUsersResponseObject interface { VisitExportUsersResponse(w http.ResponseWriter) error } type ExportUsers200JSONResponse UserArchive func (response ExportUsers200JSONResponse) VisitExportUsersResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type ExportUsersdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response ExportUsersdefaultApplicationProblemPlusJSONResponse) VisitExportUsersResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type ImportUsersRequestObject struct { Body *ImportUsersJSONRequestBody } type ImportUsersResponseObject interface { VisitImportUsersResponse(w http.ResponseWriter) error } type ImportUsers200JSONResponse UserImportResult func (response ImportUsers200JSONResponse) VisitImportUsersResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type ImportUsersdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response ImportUsersdefaultApplicationProblemPlusJSONResponse) VisitImportUsersResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type DeleteUserRequestObject struct { Id UserId `json:"id"` } type DeleteUserResponseObject interface { VisitDeleteUserResponse(w http.ResponseWriter) error } type DeleteUser204Response struct { } func (response DeleteUser204Response) VisitDeleteUserResponse(w http.ResponseWriter) error { w.WriteHeader(204) return nil } type DeleteUserdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response DeleteUserdefaultApplicationProblemPlusJSONResponse) VisitDeleteUserResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type UpdateUserRequestObject struct { Id UserId `json:"id"` Body *UpdateUserJSONRequestBody } type UpdateUserResponseObject interface { VisitUpdateUserResponse(w http.ResponseWriter) error } type UpdateUser200JSONResponse AdminUser func (response UpdateUser200JSONResponse) VisitUpdateUserResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type UpdateUserdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response UpdateUserdefaultApplicationProblemPlusJSONResponse) VisitUpdateUserResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type ResetUserPasswordRequestObject struct { Id UserId `json:"id"` } type ResetUserPasswordResponseObject interface { VisitResetUserPasswordResponse(w http.ResponseWriter) error } type ResetUserPassword200JSONResponse TemporaryPassword func (response ResetUserPassword200JSONResponse) VisitResetUserPasswordResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type ResetUserPassworddefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response ResetUserPassworddefaultApplicationProblemPlusJSONResponse) VisitResetUserPasswordResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type ResetUserRecommendationsRequestObject struct { Id UserId `json:"id"` } type ResetUserRecommendationsResponseObject interface { VisitResetUserRecommendationsResponse(w http.ResponseWriter) error } type ResetUserRecommendations204Response struct { } func (response ResetUserRecommendations204Response) VisitResetUserRecommendationsResponse(w http.ResponseWriter) error { w.WriteHeader(204) return nil } type ResetUserRecommendationsdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response ResetUserRecommendationsdefaultApplicationProblemPlusJSONResponse) VisitResetUserRecommendationsResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type GetAlbumRequestObject struct { Id EntityId `json:"id"` } type GetAlbumResponseObject interface { VisitGetAlbumResponse(w http.ResponseWriter) error } type GetAlbum200JSONResponse Album func (response GetAlbum200JSONResponse) VisitGetAlbumResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type GetAlbumdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response GetAlbumdefaultApplicationProblemPlusJSONResponse) VisitGetAlbumResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type DownloadAndroidApkRequestObject struct { Version string `json:"version"` } type DownloadAndroidApkResponseObject interface { VisitDownloadAndroidApkResponse(w http.ResponseWriter) error } type DownloadAndroidApk200ApplicationvndAndroidPackageArchiveResponse struct { Body io.Reader ContentLength int64 } func (response DownloadAndroidApk200ApplicationvndAndroidPackageArchiveResponse) VisitDownloadAndroidApkResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/vnd.android.package-archive") if response.ContentLength != 0 { w.Header().Set("Content-Length", fmt.Sprint(response.ContentLength)) } w.WriteHeader(200) if closer, ok := response.Body.(io.ReadCloser); ok { defer closer.Close() } _, err := io.Copy(w, response.Body) return err } type DownloadAndroidApkdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response DownloadAndroidApkdefaultApplicationProblemPlusJSONResponse) VisitDownloadAndroidApkResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type GetAndroidLatestRequestObject struct { } type GetAndroidLatestResponseObject interface { VisitGetAndroidLatestResponse(w http.ResponseWriter) error } type GetAndroidLatest200JSONResponse AndroidRelease func (response GetAndroidLatest200JSONResponse) VisitGetAndroidLatestResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type GetAndroidLatestdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response GetAndroidLatestdefaultApplicationProblemPlusJSONResponse) VisitGetAndroidLatestResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type GetAppClientsRequestObject struct { } type GetAppClientsResponseObject interface { VisitGetAppClientsResponse(w http.ResponseWriter) error } type GetAppClients200JSONResponse AppClients func (response GetAppClients200JSONResponse) VisitGetAppClientsResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type GetAppClientsdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response GetAppClientsdefaultApplicationProblemPlusJSONResponse) VisitGetAppClientsResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type DownloadAppClientRequestObject struct { Client AppClient `json:"client"` Version string `json:"version"` } type DownloadAppClientResponseObject interface { VisitDownloadAppClientResponse(w http.ResponseWriter) error } type DownloadAppClient200ApplicationoctetStreamResponse struct { Body io.Reader ContentLength int64 } func (response DownloadAppClient200ApplicationoctetStreamResponse) VisitDownloadAppClientResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/octet-stream") if response.ContentLength != 0 { w.Header().Set("Content-Length", fmt.Sprint(response.ContentLength)) } w.WriteHeader(200) if closer, ok := response.Body.(io.ReadCloser); ok { defer closer.Close() } _, err := io.Copy(w, response.Body) return err } type DownloadAppClientdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response DownloadAppClientdefaultApplicationProblemPlusJSONResponse) VisitDownloadAppClientResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type GetArtistRequestObject struct { Id EntityId `json:"id"` } type GetArtistResponseObject interface { VisitGetArtistResponse(w http.ResponseWriter) error } type GetArtist200JSONResponse Artist func (response GetArtist200JSONResponse) VisitGetArtistResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type GetArtistdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response GetArtistdefaultApplicationProblemPlusJSONResponse) VisitGetArtistResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type ListArtistAlbumsRequestObject struct { Id EntityId `json:"id"` } type ListArtistAlbumsResponseObject interface { VisitListArtistAlbumsResponse(w http.ResponseWriter) error } type ListArtistAlbums200JSONResponse AlbumSummaryList func (response ListArtistAlbums200JSONResponse) VisitListArtistAlbumsResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type ListArtistAlbumsdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response ListArtistAlbumsdefaultApplicationProblemPlusJSONResponse) VisitListArtistAlbumsResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type ListArtistTopTracksRequestObject struct { Id EntityId `json:"id"` Params ListArtistTopTracksParams } type ListArtistTopTracksResponseObject interface { VisitListArtistTopTracksResponse(w http.ResponseWriter) error } type ListArtistTopTracks200JSONResponse TrackList func (response ListArtistTopTracks200JSONResponse) VisitListArtistTopTracksResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type ListArtistTopTracksdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response ListArtistTopTracksdefaultApplicationProblemPlusJSONResponse) VisitListArtistTopTracksResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type LoginRequestObject struct { Body *LoginJSONRequestBody } type LoginResponseObject interface { VisitLoginResponse(w http.ResponseWriter) error } type Login200JSONResponse AuthTokens func (response Login200JSONResponse) VisitLoginResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type LogindefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response LogindefaultApplicationProblemPlusJSONResponse) VisitLoginResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type LogoutRequestObject struct { } type LogoutResponseObject interface { VisitLogoutResponse(w http.ResponseWriter) error } type Logout204Response struct { } func (response Logout204Response) VisitLogoutResponse(w http.ResponseWriter) error { w.WriteHeader(204) return nil } type LogoutdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response LogoutdefaultApplicationProblemPlusJSONResponse) VisitLogoutResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type LogoutAllRequestObject struct { } type LogoutAllResponseObject interface { VisitLogoutAllResponse(w http.ResponseWriter) error } type LogoutAll204Response struct { } func (response LogoutAll204Response) VisitLogoutAllResponse(w http.ResponseWriter) error { w.WriteHeader(204) return nil } type LogoutAlldefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response LogoutAlldefaultApplicationProblemPlusJSONResponse) VisitLogoutAllResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type RefreshTokensRequestObject struct { Params RefreshTokensParams Body *RefreshTokensJSONRequestBody } type RefreshTokensResponseObject interface { VisitRefreshTokensResponse(w http.ResponseWriter) error } type RefreshTokens200JSONResponse AuthTokens func (response RefreshTokens200JSONResponse) VisitRefreshTokensResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type RefreshTokensdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response RefreshTokensdefaultApplicationProblemPlusJSONResponse) VisitRefreshTokensResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type GetCoverRequestObject struct { Id EntityId `json:"id"` Params GetCoverParams } type GetCoverResponseObject interface { VisitGetCoverResponse(w http.ResponseWriter) error } type GetCover200ImagewebpResponse struct { Body io.Reader ContentLength int64 } func (response GetCover200ImagewebpResponse) VisitGetCoverResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "image/webp") if response.ContentLength != 0 { w.Header().Set("Content-Length", fmt.Sprint(response.ContentLength)) } w.WriteHeader(200) if closer, ok := response.Body.(io.ReadCloser); ok { defer closer.Close() } _, err := io.Copy(w, response.Body) return err } type GetCoverdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response GetCoverdefaultApplicationProblemPlusJSONResponse) VisitGetCoverResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type PostEventsRequestObject struct { Body *PostEventsJSONRequestBody } type PostEventsResponseObject interface { VisitPostEventsResponse(w http.ResponseWriter) error } type PostEvents200JSONResponse EventBatchResult func (response PostEvents200JSONResponse) VisitPostEventsResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type PostEventsdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response PostEventsdefaultApplicationProblemPlusJSONResponse) VisitPostEventsResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type GetMeRequestObject struct { } type GetMeResponseObject interface { VisitGetMeResponse(w http.ResponseWriter) error } type GetMe200JSONResponse Me func (response GetMe200JSONResponse) VisitGetMeResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type GetMedefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response GetMedefaultApplicationProblemPlusJSONResponse) VisitGetMeResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type UpdateMeRequestObject struct { Body *UpdateMeJSONRequestBody } type UpdateMeResponseObject interface { VisitUpdateMeResponse(w http.ResponseWriter) error } type UpdateMe200JSONResponse Me func (response UpdateMe200JSONResponse) VisitUpdateMeResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type UpdateMedefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response UpdateMedefaultApplicationProblemPlusJSONResponse) VisitUpdateMeResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type SetBootstrapCredentialsRequestObject struct { Body *SetBootstrapCredentialsJSONRequestBody } type SetBootstrapCredentialsResponseObject interface { VisitSetBootstrapCredentialsResponse(w http.ResponseWriter) error } type SetBootstrapCredentials200JSONResponse AuthTokens func (response SetBootstrapCredentials200JSONResponse) VisitSetBootstrapCredentialsResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type SetBootstrapCredentialsdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response SetBootstrapCredentialsdefaultApplicationProblemPlusJSONResponse) VisitSetBootstrapCredentialsResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type GetDislikesRequestObject struct { Params GetDislikesParams } type GetDislikesResponseObject interface { VisitGetDislikesResponse(w http.ResponseWriter) error } type GetDislikes200JSONResponse ReactedTrackPage func (response GetDislikes200JSONResponse) VisitGetDislikesResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type GetDislikesdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response GetDislikesdefaultApplicationProblemPlusJSONResponse) VisitGetDislikesResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type ClearHistoryRequestObject struct { } type ClearHistoryResponseObject interface { VisitClearHistoryResponse(w http.ResponseWriter) error } type ClearHistory204Response struct { } func (response ClearHistory204Response) VisitClearHistoryResponse(w http.ResponseWriter) error { w.WriteHeader(204) return nil } type ClearHistorydefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response ClearHistorydefaultApplicationProblemPlusJSONResponse) VisitClearHistoryResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type GetHistoryRequestObject struct { Params GetHistoryParams } type GetHistoryResponseObject interface { VisitGetHistoryResponse(w http.ResponseWriter) error } type GetHistory200JSONResponse HistoryPage func (response GetHistory200JSONResponse) VisitGetHistoryResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type GetHistorydefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response GetHistorydefaultApplicationProblemPlusJSONResponse) VisitGetHistoryResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type GetLikesRequestObject struct { Params GetLikesParams } type GetLikesResponseObject interface { VisitGetLikesResponse(w http.ResponseWriter) error } type GetLikes200JSONResponse ReactedTrackPage func (response GetLikes200JSONResponse) VisitGetLikesResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type GetLikesdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response GetLikesdefaultApplicationProblemPlusJSONResponse) VisitGetLikesResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type SaveOnboardingRequestObject struct { Body *SaveOnboardingJSONRequestBody } type SaveOnboardingResponseObject interface { VisitSaveOnboardingResponse(w http.ResponseWriter) error } type SaveOnboarding204Response struct { } func (response SaveOnboarding204Response) VisitSaveOnboardingResponse(w http.ResponseWriter) error { w.WriteHeader(204) return nil } type SaveOnboardingdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response SaveOnboardingdefaultApplicationProblemPlusJSONResponse) VisitSaveOnboardingResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type ChangePasswordRequestObject struct { Body *ChangePasswordJSONRequestBody } type ChangePasswordResponseObject interface { VisitChangePasswordResponse(w http.ResponseWriter) error } type ChangePassword200JSONResponse AuthTokens func (response ChangePassword200JSONResponse) VisitChangePasswordResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type ChangePassworddefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response ChangePassworddefaultApplicationProblemPlusJSONResponse) VisitChangePasswordResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type GetPlaybackStateRequestObject struct { } type GetPlaybackStateResponseObject interface { VisitGetPlaybackStateResponse(w http.ResponseWriter) error } type GetPlaybackState200JSONResponse PlaybackState func (response GetPlaybackState200JSONResponse) VisitGetPlaybackStateResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type GetPlaybackStatedefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response GetPlaybackStatedefaultApplicationProblemPlusJSONResponse) VisitGetPlaybackStateResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type PutPlaybackStateRequestObject struct { Body *PutPlaybackStateJSONRequestBody } type PutPlaybackStateResponseObject interface { VisitPutPlaybackStateResponse(w http.ResponseWriter) error } type PutPlaybackState200JSONResponse PlaybackState func (response PutPlaybackState200JSONResponse) VisitPutPlaybackStateResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type PutPlaybackStatedefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response PutPlaybackStatedefaultApplicationProblemPlusJSONResponse) VisitPutPlaybackStateResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type ListPlaylistsRequestObject struct { } type ListPlaylistsResponseObject interface { VisitListPlaylistsResponse(w http.ResponseWriter) error } type ListPlaylists200JSONResponse PlaylistList func (response ListPlaylists200JSONResponse) VisitListPlaylistsResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type ListPlaylistsdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response ListPlaylistsdefaultApplicationProblemPlusJSONResponse) VisitListPlaylistsResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type CreatePlaylistRequestObject struct { Body *CreatePlaylistJSONRequestBody } type CreatePlaylistResponseObject interface { VisitCreatePlaylistResponse(w http.ResponseWriter) error } type CreatePlaylist201JSONResponse Playlist func (response CreatePlaylist201JSONResponse) VisitCreatePlaylistResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(201) return json.NewEncoder(w).Encode(response) } type CreatePlaylistdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response CreatePlaylistdefaultApplicationProblemPlusJSONResponse) VisitCreatePlaylistResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type DeletePlaylistRequestObject struct { Id openapi_types.UUID `json:"id"` } type DeletePlaylistResponseObject interface { VisitDeletePlaylistResponse(w http.ResponseWriter) error } type DeletePlaylist204Response struct { } func (response DeletePlaylist204Response) VisitDeletePlaylistResponse(w http.ResponseWriter) error { w.WriteHeader(204) return nil } type DeletePlaylistdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response DeletePlaylistdefaultApplicationProblemPlusJSONResponse) VisitDeletePlaylistResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type GetPlaylistRequestObject struct { Id openapi_types.UUID `json:"id"` } type GetPlaylistResponseObject interface { VisitGetPlaylistResponse(w http.ResponseWriter) error } type GetPlaylist200JSONResponse Playlist func (response GetPlaylist200JSONResponse) VisitGetPlaylistResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type GetPlaylistdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response GetPlaylistdefaultApplicationProblemPlusJSONResponse) VisitGetPlaylistResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type UpdatePlaylistRequestObject struct { Id openapi_types.UUID `json:"id"` Body *UpdatePlaylistJSONRequestBody } type UpdatePlaylistResponseObject interface { VisitUpdatePlaylistResponse(w http.ResponseWriter) error } type UpdatePlaylist200JSONResponse Playlist func (response UpdatePlaylist200JSONResponse) VisitUpdatePlaylistResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type UpdatePlaylistdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response UpdatePlaylistdefaultApplicationProblemPlusJSONResponse) VisitUpdatePlaylistResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type RevokePlaylistShareRequestObject struct { Id openapi_types.UUID `json:"id"` } type RevokePlaylistShareResponseObject interface { VisitRevokePlaylistShareResponse(w http.ResponseWriter) error } type RevokePlaylistShare204Response struct { } func (response RevokePlaylistShare204Response) VisitRevokePlaylistShareResponse(w http.ResponseWriter) error { w.WriteHeader(204) return nil } type RevokePlaylistSharedefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response RevokePlaylistSharedefaultApplicationProblemPlusJSONResponse) VisitRevokePlaylistShareResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type SharePlaylistRequestObject struct { Id openapi_types.UUID `json:"id"` } type SharePlaylistResponseObject interface { VisitSharePlaylistResponse(w http.ResponseWriter) error } type SharePlaylist200JSONResponse PlaylistShare func (response SharePlaylist200JSONResponse) VisitSharePlaylistResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type SharePlaylistdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response SharePlaylistdefaultApplicationProblemPlusJSONResponse) VisitSharePlaylistResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type ClearTrackReactionRequestObject struct { Id EntityId `json:"id"` } type ClearTrackReactionResponseObject interface { VisitClearTrackReactionResponse(w http.ResponseWriter) error } type ClearTrackReaction204Response struct { } func (response ClearTrackReaction204Response) VisitClearTrackReactionResponse(w http.ResponseWriter) error { w.WriteHeader(204) return nil } type ClearTrackReactiondefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response ClearTrackReactiondefaultApplicationProblemPlusJSONResponse) VisitClearTrackReactionResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type SetTrackReactionRequestObject struct { Id EntityId `json:"id"` Body *SetTrackReactionJSONRequestBody } type SetTrackReactionResponseObject interface { VisitSetTrackReactionResponse(w http.ResponseWriter) error } type SetTrackReaction204Response struct { } func (response SetTrackReaction204Response) VisitSetTrackReactionResponse(w http.ResponseWriter) error { w.WriteHeader(204) return nil } type SetTrackReactiondefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response SetTrackReactiondefaultApplicationProblemPlusJSONResponse) VisitSetTrackReactionResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type ListMySessionsRequestObject struct { } type ListMySessionsResponseObject interface { VisitListMySessionsResponse(w http.ResponseWriter) error } type ListMySessions200JSONResponse SessionList func (response ListMySessions200JSONResponse) VisitListMySessionsResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type ListMySessionsdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response ListMySessionsdefaultApplicationProblemPlusJSONResponse) VisitListMySessionsResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type RevokeMySessionRequestObject struct { Id openapi_types.UUID `json:"id"` } type RevokeMySessionResponseObject interface { VisitRevokeMySessionResponse(w http.ResponseWriter) error } type RevokeMySession204Response struct { } func (response RevokeMySession204Response) VisitRevokeMySessionResponse(w http.ResponseWriter) error { w.WriteHeader(204) return nil } type RevokeMySessiondefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response RevokeMySessiondefaultApplicationProblemPlusJSONResponse) VisitRevokeMySessionResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type GetSocialRequestObject struct { } type GetSocialResponseObject interface { VisitGetSocialResponse(w http.ResponseWriter) error } type GetSocial200JSONResponse SocialInbox func (response GetSocial200JSONResponse) VisitGetSocialResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type GetSocialdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response GetSocialdefaultApplicationProblemPlusJSONResponse) VisitGetSocialResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type SocialActionRequestObject struct { Body *SocialActionJSONRequestBody } type SocialActionResponseObject interface { VisitSocialActionResponse(w http.ResponseWriter) error } type SocialAction204Response struct { } func (response SocialAction204Response) VisitSocialActionResponse(w http.ResponseWriter) error { w.WriteHeader(204) return nil } type SocialActiondefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response SocialActiondefaultApplicationProblemPlusJSONResponse) VisitSocialActionResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type PublishListeningActivityRequestObject struct { Body *PublishListeningActivityJSONRequestBody } type PublishListeningActivityResponseObject interface { VisitPublishListeningActivityResponse(w http.ResponseWriter) error } type PublishListeningActivity204Response struct { } func (response PublishListeningActivity204Response) VisitPublishListeningActivityResponse(w http.ResponseWriter) error { w.WriteHeader(204) return nil } type PublishListeningActivitydefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response PublishListeningActivitydefaultApplicationProblemPlusJSONResponse) VisitPublishListeningActivityResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type SetActivityVisibilityRequestObject struct { Body *SetActivityVisibilityJSONRequestBody } type SetActivityVisibilityResponseObject interface { VisitSetActivityVisibilityResponse(w http.ResponseWriter) error } type SetActivityVisibility204Response struct { } func (response SetActivityVisibility204Response) VisitSetActivityVisibilityResponse(w http.ResponseWriter) error { w.WriteHeader(204) return nil } type SetActivityVisibilitydefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response SetActivityVisibilitydefaultApplicationProblemPlusJSONResponse) VisitSetActivityVisibilityResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type GetDirectMessagesRequestObject struct { PeerId openapi_types.UUID `json:"peerId"` Params GetDirectMessagesParams } type GetDirectMessagesResponseObject interface { VisitGetDirectMessagesResponse(w http.ResponseWriter) error } type GetDirectMessages200JSONResponse []DirectMessage func (response GetDirectMessages200JSONResponse) VisitGetDirectMessagesResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type GetDirectMessagesdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response GetDirectMessagesdefaultApplicationProblemPlusJSONResponse) VisitGetDirectMessagesResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type SendDirectMessageRequestObject struct { PeerId openapi_types.UUID `json:"peerId"` Body *SendDirectMessageJSONRequestBody } type SendDirectMessageResponseObject interface { VisitSendDirectMessageResponse(w http.ResponseWriter) error } type SendDirectMessage200JSONResponse DirectMessage func (response SendDirectMessage200JSONResponse) VisitSendDirectMessageResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type SendDirectMessagedefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response SendDirectMessagedefaultApplicationProblemPlusJSONResponse) VisitSendDirectMessageResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type UpdateChatMessageRequestObject struct { PeerId openapi_types.UUID `json:"peerId"` MessageId openapi_types.UUID `json:"messageId"` Body *UpdateChatMessageJSONRequestBody } type UpdateChatMessageResponseObject interface { VisitUpdateChatMessageResponse(w http.ResponseWriter) error } type UpdateChatMessage204Response struct { } func (response UpdateChatMessage204Response) VisitUpdateChatMessageResponse(w http.ResponseWriter) error { w.WriteHeader(204) return nil } type UpdateChatMessagedefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response UpdateChatMessagedefaultApplicationProblemPlusJSONResponse) VisitUpdateChatMessageResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type GetChatMetaRequestObject struct { PeerId openapi_types.UUID `json:"peerId"` } type GetChatMetaResponseObject interface { VisitGetChatMetaResponse(w http.ResponseWriter) error } type GetChatMeta200JSONResponse struct { Typing bool `json:"typing"` } func (response GetChatMeta200JSONResponse) VisitGetChatMetaResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type GetChatMetadefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response GetChatMetadefaultApplicationProblemPlusJSONResponse) VisitGetChatMetaResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type SetChatTypingRequestObject struct { PeerId openapi_types.UUID `json:"peerId"` Body *SetChatTypingJSONRequestBody } type SetChatTypingResponseObject interface { VisitSetChatTypingResponse(w http.ResponseWriter) error } type SetChatTyping204Response struct { } func (response SetChatTyping204Response) VisitSetChatTypingResponse(w http.ResponseWriter) error { w.WriteHeader(204) return nil } type SetChatTypingdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response SetChatTypingdefaultApplicationProblemPlusJSONResponse) VisitSetChatTypingResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type GetListeningStateRequestObject struct { } type GetListeningStateResponseObject interface { VisitGetListeningStateResponse(w http.ResponseWriter) error } type GetListeningState200JSONResponse ListeningState func (response GetListeningState200JSONResponse) VisitGetListeningStateResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type GetListeningStatedefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response GetListeningStatedefaultApplicationProblemPlusJSONResponse) VisitGetListeningStateResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type ListeningActionRequestObject struct { Body *ListeningActionJSONRequestBody } type ListeningActionResponseObject interface { VisitListeningActionResponse(w http.ResponseWriter) error } type ListeningAction204Response struct { } func (response ListeningAction204Response) VisitListeningActionResponse(w http.ResponseWriter) error { w.WriteHeader(204) return nil } type ListeningActiondefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response ListeningActiondefaultApplicationProblemPlusJSONResponse) VisitListeningActionResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type SetListeningPreferencesRequestObject struct { Body *SetListeningPreferencesJSONRequestBody } type SetListeningPreferencesResponseObject interface { VisitSetListeningPreferencesResponse(w http.ResponseWriter) error } type SetListeningPreferences204Response struct { } func (response SetListeningPreferences204Response) VisitSetListeningPreferencesResponse(w http.ResponseWriter) error { w.WriteHeader(204) return nil } type SetListeningPreferencesdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response SetListeningPreferencesdefaultApplicationProblemPlusJSONResponse) VisitSetListeningPreferencesResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type PublishListeningStateRequestObject struct { Body *PublishListeningStateJSONRequestBody } type PublishListeningStateResponseObject interface { VisitPublishListeningStateResponse(w http.ResponseWriter) error } type PublishListeningState204Response struct { } func (response PublishListeningState204Response) VisitPublishListeningStateResponse(w http.ResponseWriter) error { w.WriteHeader(204) return nil } type PublishListeningStatedefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response PublishListeningStatedefaultApplicationProblemPlusJSONResponse) VisitPublishListeningStateResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type SearchPeopleRequestObject struct { Params SearchPeopleParams } type SearchPeopleResponseObject interface { VisitSearchPeopleResponse(w http.ResponseWriter) error } type SearchPeople200JSONResponse []SocialPerson func (response SearchPeople200JSONResponse) VisitSearchPeopleResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type SearchPeopledefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response SearchPeopledefaultApplicationProblemPlusJSONResponse) VisitSearchPeopleResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type SetFriendsRecommendationsRequestObject struct { Body *SetFriendsRecommendationsJSONRequestBody } type SetFriendsRecommendationsResponseObject interface { VisitSetFriendsRecommendationsResponse(w http.ResponseWriter) error } type SetFriendsRecommendations204Response struct { } func (response SetFriendsRecommendations204Response) VisitSetFriendsRecommendationsResponse(w http.ResponseWriter) error { w.WriteHeader(204) return nil } type SetFriendsRecommendationsdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response SetFriendsRecommendationsdefaultApplicationProblemPlusJSONResponse) VisitSetFriendsRecommendationsResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type GetOnboardingRequestObject struct { } type GetOnboardingResponseObject interface { VisitGetOnboardingResponse(w http.ResponseWriter) error } type GetOnboarding200JSONResponse Onboarding func (response GetOnboarding200JSONResponse) VisitGetOnboardingResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type GetOnboardingdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response GetOnboardingdefaultApplicationProblemPlusJSONResponse) VisitGetOnboardingResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type SearchRequestObject struct { Params SearchParams } type SearchResponseObject interface { VisitSearchResponse(w http.ResponseWriter) error } type Search200JSONResponse SearchResults func (response Search200JSONResponse) VisitSearchResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type SearchdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response SearchdefaultApplicationProblemPlusJSONResponse) VisitSearchResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type SearchSuggestRequestObject struct { Params SearchSuggestParams } type SearchSuggestResponseObject interface { VisitSearchSuggestResponse(w http.ResponseWriter) error } type SearchSuggest200JSONResponse SearchResults func (response SearchSuggest200JSONResponse) VisitSearchSuggestResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type SearchSuggestdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response SearchSuggestdefaultApplicationProblemPlusJSONResponse) VisitSearchSuggestResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type GetServerInfoRequestObject struct { } type GetServerInfoResponseObject interface { VisitGetServerInfoResponse(w http.ResponseWriter) error } type GetServerInfo200JSONResponse ServerInfo func (response GetServerInfo200JSONResponse) VisitGetServerInfoResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type GetServerInfodefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response GetServerInfodefaultApplicationProblemPlusJSONResponse) VisitGetServerInfoResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type GetSharedPlaylistRequestObject struct { ShareId openapi_types.UUID `json:"shareId"` } type GetSharedPlaylistResponseObject interface { VisitGetSharedPlaylistResponse(w http.ResponseWriter) error } type GetSharedPlaylist200JSONResponse Playlist func (response GetSharedPlaylist200JSONResponse) VisitGetSharedPlaylistResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type GetSharedPlaylistdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response GetSharedPlaylistdefaultApplicationProblemPlusJSONResponse) VisitGetSharedPlaylistResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type GetActivityPlaylistRequestObject struct { UserId openapi_types.UUID `json:"userId"` } type GetActivityPlaylistResponseObject interface { VisitGetActivityPlaylistResponse(w http.ResponseWriter) error } type GetActivityPlaylist200JSONResponse Playlist func (response GetActivityPlaylist200JSONResponse) VisitGetActivityPlaylistResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type GetActivityPlaylistdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response GetActivityPlaylistdefaultApplicationProblemPlusJSONResponse) VisitGetActivityPlaylistResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type StreamTrackRequestObject struct { Id EntityId `json:"id"` Params StreamTrackParams } type StreamTrackResponseObject interface { VisitStreamTrackResponse(w http.ResponseWriter) error } type StreamTrack200AudioResponse struct { Body io.Reader ContentType string ContentLength int64 } func (response StreamTrack200AudioResponse) VisitStreamTrackResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", response.ContentType) if response.ContentLength != 0 { w.Header().Set("Content-Length", fmt.Sprint(response.ContentLength)) } w.WriteHeader(200) if closer, ok := response.Body.(io.ReadCloser); ok { defer closer.Close() } _, err := io.Copy(w, response.Body) return err } type StreamTrackdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response StreamTrackdefaultApplicationProblemPlusJSONResponse) VisitStreamTrackResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type GetTracksBatchRequestObject struct { Body *GetTracksBatchJSONRequestBody } type GetTracksBatchResponseObject interface { VisitGetTracksBatchResponse(w http.ResponseWriter) error } type GetTracksBatch200JSONResponse TrackList func (response GetTracksBatch200JSONResponse) VisitGetTracksBatchResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type GetTracksBatchdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response GetTracksBatchdefaultApplicationProblemPlusJSONResponse) VisitGetTracksBatchResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type GetTrackRequestObject struct { Id EntityId `json:"id"` } type GetTrackResponseObject interface { VisitGetTrackResponse(w http.ResponseWriter) error } type GetTrack200JSONResponse Track func (response GetTrack200JSONResponse) VisitGetTrackResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type GetTrackdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response GetTrackdefaultApplicationProblemPlusJSONResponse) VisitGetTrackResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type GetTrackGeniusRequestObject struct { Id EntityId `json:"id"` } type GetTrackGeniusResponseObject interface { VisitGetTrackGeniusResponse(w http.ResponseWriter) error } type GetTrackGenius200JSONResponse GeniusContent func (response GetTrackGenius200JSONResponse) VisitGetTrackGeniusResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type CreateUploadBatchRequestObject struct { Body *CreateUploadBatchJSONRequestBody } type CreateUploadBatchResponseObject interface { VisitCreateUploadBatchResponse(w http.ResponseWriter) error } type CreateUploadBatch201JSONResponse UploadBatchCreated func (response CreateUploadBatch201JSONResponse) VisitCreateUploadBatchResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(201) return json.NewEncoder(w).Encode(response) } type CreateUploadBatchdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response CreateUploadBatchdefaultApplicationProblemPlusJSONResponse) VisitCreateUploadBatchResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type WithdrawUploadRequestObject struct { Id EntityId `json:"id"` } type WithdrawUploadResponseObject interface { VisitWithdrawUploadResponse(w http.ResponseWriter) error } type WithdrawUpload204Response struct { } func (response WithdrawUpload204Response) VisitWithdrawUploadResponse(w http.ResponseWriter) error { w.WriteHeader(204) return nil } type WithdrawUploaddefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response WithdrawUploaddefaultApplicationProblemPlusJSONResponse) VisitWithdrawUploadResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type ListMyUploadsRequestObject struct { Params ListMyUploadsParams } type ListMyUploadsResponseObject interface { VisitListMyUploadsResponse(w http.ResponseWriter) error } type ListMyUploads200JSONResponse UploadFilePage func (response ListMyUploads200JSONResponse) VisitListMyUploadsResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type ListMyUploadsdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response ListMyUploadsdefaultApplicationProblemPlusJSONResponse) VisitListMyUploadsResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type PrecheckUploadsRequestObject struct { Body *PrecheckUploadsJSONRequestBody } type PrecheckUploadsResponseObject interface { VisitPrecheckUploadsResponse(w http.ResponseWriter) error } type PrecheckUploads200JSONResponse UploadPrecheckResult func (response PrecheckUploads200JSONResponse) VisitPrecheckUploadsResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type PrecheckUploadsdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response PrecheckUploadsdefaultApplicationProblemPlusJSONResponse) VisitPrecheckUploadsResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type GetUploadQuotaRequestObject struct { } type GetUploadQuotaResponseObject interface { VisitGetUploadQuotaResponse(w http.ResponseWriter) error } type GetUploadQuota200JSONResponse UploadQuota func (response GetUploadQuota200JSONResponse) VisitGetUploadQuotaResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type GetUploadQuotadefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response GetUploadQuotadefaultApplicationProblemPlusJSONResponse) VisitGetUploadQuotaResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type MarkUploadsSeenRequestObject struct { } type MarkUploadsSeenResponseObject interface { VisitMarkUploadsSeenResponse(w http.ResponseWriter) error } type MarkUploadsSeen204Response struct { } func (response MarkUploadsSeen204Response) VisitMarkUploadsSeenResponse(w http.ResponseWriter) error { w.WriteHeader(204) return nil } type MarkUploadsSeendefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response MarkUploadsSeendefaultApplicationProblemPlusJSONResponse) VisitMarkUploadsSeenResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type UnseenUploadDecisionsRequestObject struct { } type UnseenUploadDecisionsResponseObject interface { VisitUnseenUploadDecisionsResponse(w http.ResponseWriter) error } type UnseenUploadDecisions200JSONResponse struct { Count int `json:"count"` } func (response UnseenUploadDecisions200JSONResponse) VisitUnseenUploadDecisionsResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type UnseenUploadDecisionsdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response UnseenUploadDecisionsdefaultApplicationProblemPlusJSONResponse) VisitUnseenUploadDecisionsResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type GetWaveOptionsRequestObject struct { } type GetWaveOptionsResponseObject interface { VisitGetWaveOptionsResponse(w http.ResponseWriter) error } type GetWaveOptions200JSONResponse WaveOptions func (response GetWaveOptions200JSONResponse) VisitGetWaveOptionsResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type GetWaveOptionsdefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response GetWaveOptionsdefaultApplicationProblemPlusJSONResponse) VisitGetWaveOptionsResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type StartWaveRequestObject struct { Body *StartWaveJSONRequestBody } type StartWaveResponseObject interface { VisitStartWaveResponse(w http.ResponseWriter) error } type StartWave201JSONResponse WaveBatch func (response StartWave201JSONResponse) VisitStartWaveResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(201) return json.NewEncoder(w).Encode(response) } type StartWavedefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response StartWavedefaultApplicationProblemPlusJSONResponse) VisitStartWaveResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type EndWaveRequestObject struct { Id EntityId `json:"id"` } type EndWaveResponseObject interface { VisitEndWaveResponse(w http.ResponseWriter) error } type EndWave204Response struct { } func (response EndWave204Response) VisitEndWaveResponse(w http.ResponseWriter) error { w.WriteHeader(204) return nil } type EndWavedefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response EndWavedefaultApplicationProblemPlusJSONResponse) VisitEndWaveResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type UpdateWaveRequestObject struct { Id EntityId `json:"id"` Body *UpdateWaveJSONRequestBody } type UpdateWaveResponseObject interface { VisitUpdateWaveResponse(w http.ResponseWriter) error } type UpdateWave200JSONResponse WaveBatch func (response UpdateWave200JSONResponse) VisitUpdateWaveResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type UpdateWavedefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response UpdateWavedefaultApplicationProblemPlusJSONResponse) VisitUpdateWaveResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type NextWaveRequestObject struct { Id EntityId `json:"id"` Body *NextWaveJSONRequestBody } type NextWaveResponseObject interface { VisitNextWaveResponse(w http.ResponseWriter) error } type NextWave200JSONResponse WaveBatch func (response NextWave200JSONResponse) VisitNextWaveResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type NextWavedefaultApplicationProblemPlusJSONResponse struct { Body Problem StatusCode int } func (response NextWavedefaultApplicationProblemPlusJSONResponse) VisitNextWaveResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/problem+json") w.WriteHeader(response.StatusCode) return json.NewEncoder(w).Encode(response.Body) } type GetHealthzRequestObject struct { } type GetHealthzResponseObject interface { VisitGetHealthzResponse(w http.ResponseWriter) error } type GetHealthz200JSONResponse HealthStatus func (response GetHealthz200JSONResponse) VisitGetHealthzResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type GetReadyzRequestObject struct { } type GetReadyzResponseObject interface { VisitGetReadyzResponse(w http.ResponseWriter) error } type GetReadyz200JSONResponse ReadyStatus func (response GetReadyz200JSONResponse) VisitGetReadyzResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } type GetReadyz503JSONResponse ReadyStatus func (response GetReadyz503JSONResponse) VisitGetReadyzResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(503) return json.NewEncoder(w).Encode(response) } // StrictServerInterface represents all server handlers. type StrictServerInterface interface { // Журнал действий (admin), новые сверху // (GET /api/v1/admin/audit) ListAudit(ctx context.Context, request ListAuditRequestObject) (ListAuditResponseObject, error) // (GET /api/v1/admin/genius) GetGeniusStats(ctx context.Context, request GetGeniusStatsRequestObject) (GetGeniusStatsResponseObject, error) // (POST /api/v1/admin/genius) ControlGenius(ctx context.Context, request ControlGeniusRequestObject) (ControlGeniusResponseObject, error) // Неудавшиеся задачи аудиоанализа с путями файлов (admin) // (GET /api/v1/admin/library/analysis/errors) ListAnalysisErrors(ctx context.Context, request ListAnalysisErrorsRequestObject) (ListAnalysisErrorsResponseObject, error) // Вернуть в очередь треки, которые не удалось проанализировать (admin) // (POST /api/v1/admin/library/analysis/retry) RetryAnalysis(ctx context.Context, request RetryAnalysisRequestObject) (RetryAnalysisResponseObject, error) // Файлы, которые не удалось прочитать (admin) // (GET /api/v1/admin/library/errors) ListLibraryErrors(ctx context.Context, request ListLibraryErrorsRequestObject) (ListLibraryErrorsResponseObject, error) // Подпапки каталога LIBRARY_HOST — выбор папки для local-хранилища (admin) // (GET /api/v1/admin/library/host-dirs) ListHostDirs(ctx context.Context, request ListHostDirsRequestObject) (ListHostDirsResponseObject, error) // Состояние библиотеки (admin, moderator) // (GET /api/v1/admin/library/status) GetLibraryStatus(ctx context.Context, request GetLibraryStatusRequestObject) (GetLibraryStatusResponseObject, error) // Пересобрать поисковые индексы (admin) // (POST /api/v1/admin/search/reindex) ReindexSearch(ctx context.Context, request ReindexSearchRequestObject) (ReindexSearchResponseObject, error) // (GET /api/v1/admin/server/config) GetServerConfig(ctx context.Context, request GetServerConfigRequestObject) (GetServerConfigResponseObject, error) // (PATCH /api/v1/admin/server/config) SaveServerConfig(ctx context.Context, request SaveServerConfigRequestObject) (SaveServerConfigResponseObject, error) // (POST /api/v1/admin/server/config/apply) ApplyServerConfig(ctx context.Context, request ApplyServerConfigRequestObject) (ApplyServerConfigResponseObject, error) // (PUT /api/v1/admin/server/update-sources) SaveServerUpdateSources(ctx context.Context, request SaveServerUpdateSourcesRequestObject) (SaveServerUpdateSourcesResponseObject, error) // (GET /api/v1/admin/server/updates) GetServerUpdates(ctx context.Context, request GetServerUpdatesRequestObject) (GetServerUpdatesResponseObject, error) // (POST /api/v1/admin/server/updates) StartServerUpdate(ctx context.Context, request StartServerUpdateRequestObject) (StartServerUpdateResponseObject, error) // Настройки очереди (admin) // (GET /api/v1/admin/settings/uploads) GetUploadSettings(ctx context.Context, request GetUploadSettingsRequestObject) (GetUploadSettingsResponseObject, error) // Изменить настройки очереди (admin) // (PATCH /api/v1/admin/settings/uploads) UpdateUploadSettings(ctx context.Context, request UpdateUploadSettingsRequestObject) (UpdateUploadSettingsResponseObject, error) // Хранилища (admin) // (GET /api/v1/admin/sources) ListSources(ctx context.Context, request ListSourcesRequestObject) (ListSourcesResponseObject, error) // Подключить хранилище (admin) // (POST /api/v1/admin/sources) CreateSource(ctx context.Context, request CreateSourceRequestObject) (CreateSourceResponseObject, error) // Отключить и удалить хранилище (admin) // (DELETE /api/v1/admin/sources/{id}) DeleteSource(ctx context.Context, request DeleteSourceRequestObject) (DeleteSourceResponseObject, error) // Хранилище (admin) // (GET /api/v1/admin/sources/{id}) GetSource(ctx context.Context, request GetSourceRequestObject) (GetSourceResponseObject, error) // Изменить хранилище (admin) // (PATCH /api/v1/admin/sources/{id}) UpdateSource(ctx context.Context, request UpdateSourceRequestObject) (UpdateSourceResponseObject, error) // Покрытие аудиофайлов локальными обложками (admin) // (GET /api/v1/admin/sources/{id}/cover-stats) GetSourceCoverStats(ctx context.Context, request GetSourceCoverStatsRequestObject) (GetSourceCoverStatsResponseObject, error) // Шаблоны путей (admin) // (GET /api/v1/admin/sources/{id}/patterns) GetSourcePatterns(ctx context.Context, request GetSourcePatternsRequestObject) (GetSourcePatternsResponseObject, error) // Заменить шаблоны путей (admin) // (PUT /api/v1/admin/sources/{id}/patterns) PutSourcePatterns(ctx context.Context, request PutSourcePatternsRequestObject) (PutSourcePatternsResponseObject, error) // Предпросмотр разбора путей без сохранения (admin) // (POST /api/v1/admin/sources/{id}/patterns/preview) PreviewSourcePatterns(ctx context.Context, request PreviewSourcePatternsRequestObject) (PreviewSourcePatternsResponseObject, error) // Запустить скан (admin) // (POST /api/v1/admin/sources/{id}/scan) ScanSource(ctx context.Context, request ScanSourceRequestObject) (ScanSourceResponseObject, error) // Проверить подключение (admin) // (POST /api/v1/admin/sources/{id}/test) TestSource(ctx context.Context, request TestSourceRequestObject) (TestSourceResponseObject, error) // Проверить шаблон на обратимость (admin) // (POST /api/v1/admin/sources/{id}/write-template/check) CheckWriteTemplate(ctx context.Context, request CheckWriteTemplateRequestObject) (CheckWriteTemplateResponseObject, error) // Подобрать шаблон пути по существующей структуре (admin) // (POST /api/v1/admin/sources/{id}/write-template/suggest) SuggestWriteTemplate(ctx context.Context, request SuggestWriteTemplateRequestObject) (SuggestWriteTemplateResponseObject, error) // Очередь на добавление (admin) // (GET /api/v1/admin/uploads) ListUploads(ctx context.Context, request ListUploadsRequestObject) (ListUploadsResponseObject, error) // Правка метаданных и обложки на всю пачку (admin) // (PATCH /api/v1/admin/uploads/batches/{id}) UpdateUploadBatch(ctx context.Context, request UpdateUploadBatchRequestObject) (UpdateUploadBatchResponseObject, error) // Явно применить метаданные и/или обложку выбранного издания // (POST /api/v1/admin/uploads/batches/{id}/release) ApplyUploadRelease(ctx context.Context, request ApplyUploadReleaseRequestObject) (ApplyUploadReleaseResponseObject, error) // Состояние фонового сопоставления пачки с изданиями MusicBrainz // (GET /api/v1/admin/uploads/batches/{id}/releases) GetUploadReleases(ctx context.Context, request GetUploadReleasesRequestObject) (GetUploadReleasesResponseObject, error) // Повторить поиск релиза, при необходимости с уточнённым запросом // (POST /api/v1/admin/uploads/batches/{id}/releases) SearchUploadReleases(ctx context.Context, request SearchUploadReleasesRequestObject) (SearchUploadReleasesResponseObject, error) // Предпросмотр обложки выбранного кандидата из Cover Art Archive // (GET /api/v1/admin/uploads/batches/{id}/releases/{release_id}/cover) GetUploadReleaseCover(ctx context.Context, request GetUploadReleaseCoverRequestObject) (GetUploadReleaseCoverResponseObject, error) // Править метаданные и хранилище (admin) // (PATCH /api/v1/admin/uploads/files/{id}) UpdateUpload(ctx context.Context, request UpdateUploadRequestObject) (UpdateUploadResponseObject, error) // Повторить импорт после import_failed (admin) // (POST /api/v1/admin/uploads/files/{id}/retry) RetryUploadImport(ctx context.Context, request RetryUploadImportRequestObject) (RetryUploadImportResponseObject, error) // Прослушать файл из staging (подпись, как у стрима трека) // (GET /api/v1/admin/uploads/files/{id}/stream) StreamUpload(ctx context.Context, request StreamUploadRequestObject) (StreamUploadResponseObject, error) // Одобрить / отклонить файлы (admin) // (POST /api/v1/admin/uploads/review) ReviewUploads(ctx context.Context, request ReviewUploadsRequestObject) (ReviewUploadsResponseObject, error) // Пользователи (admin, moderator) // (GET /api/v1/admin/users) ListUsers(ctx context.Context, request ListUsersRequestObject) (ListUsersResponseObject, error) // Создать пользователя // (POST /api/v1/admin/users) CreateUser(ctx context.Context, request CreateUserRequestObject) (CreateUserResponseObject, error) // Экспорт учётных записей с ролями и хэшами паролей (admin) // (GET /api/v1/admin/users/export) ExportUsers(ctx context.Context, request ExportUsersRequestObject) (ExportUsersResponseObject, error) // Импорт учётных записей с сохранением паролей (admin) // (POST /api/v1/admin/users/import) ImportUsers(ctx context.Context, request ImportUsersRequestObject) (ImportUsersResponseObject, error) // Удалить пользователя (admin) // (DELETE /api/v1/admin/users/{id}) DeleteUser(ctx context.Context, request DeleteUserRequestObject) (DeleteUserResponseObject, error) // Изменить имя, роль, блокировку // (PATCH /api/v1/admin/users/{id}) UpdateUser(ctx context.Context, request UpdateUserRequestObject) (UpdateUserResponseObject, error) // Сбросить пароль // (POST /api/v1/admin/users/{id}/reset-password) ResetUserPassword(ctx context.Context, request ResetUserPasswordRequestObject) (ResetUserPasswordResponseObject, error) // Сбросить рекомендации // (POST /api/v1/admin/users/{id}/reset-recommendations) ResetUserRecommendations(ctx context.Context, request ResetUserRecommendationsRequestObject) (ResetUserRecommendationsResponseObject, error) // Альбом с треками // (GET /api/v1/albums/{id}) GetAlbum(ctx context.Context, request GetAlbumRequestObject) (GetAlbumResponseObject, error) // APK версии (кэшируется на сервере, поддерживает Range для докачки) // (GET /api/v1/app/android/download/{version}) DownloadAndroidApk(ctx context.Context, request DownloadAndroidApkRequestObject) (DownloadAndroidApkResponseObject, error) // Последняя версия Android-приложения (из релизов Gitea через сервер) // (GET /api/v1/app/android/latest) GetAndroidLatest(ctx context.Context, request GetAndroidLatestRequestObject) (GetAndroidLatestResponseObject, error) // Клиенты последних релизов (Android и десктоп) // (GET /api/v1/app/clients) GetAppClients(ctx context.Context, request GetAppClientsRequestObject) (GetAppClientsResponseObject, error) // Файл клиента (кэшируется на сервере, поддерживает Range) // (GET /api/v1/app/download/{client}/{version}) DownloadAppClient(ctx context.Context, request DownloadAppClientRequestObject) (DownloadAppClientResponseObject, error) // Исполнитель // (GET /api/v1/artists/{id}) GetArtist(ctx context.Context, request GetArtistRequestObject) (GetArtistResponseObject, error) // Альбомы исполнителя (свои и сборники с его треками) // (GET /api/v1/artists/{id}/albums) ListArtistAlbums(ctx context.Context, request ListArtistAlbumsRequestObject) (ListArtistAlbumsResponseObject, error) // Популярные треки исполнителя (по прослушиваниям всех пользователей) // (GET /api/v1/artists/{id}/top-tracks) ListArtistTopTracks(ctx context.Context, request ListArtistTopTracksRequestObject) (ListArtistTopTracksResponseObject, error) // Вход по логину и паролю // (POST /api/v1/auth/login) Login(ctx context.Context, request LoginRequestObject) (LoginResponseObject, error) // Выход — отзыв текущей сессии // (POST /api/v1/auth/logout) Logout(ctx context.Context, request LogoutRequestObject) (LogoutResponseObject, error) // Выход на всех устройствах // (POST /api/v1/auth/logout-all) LogoutAll(ctx context.Context, request LogoutAllRequestObject) (LogoutAllResponseObject, error) // Ротация refresh-токена // (POST /api/v1/auth/refresh) RefreshTokens(ctx context.Context, request RefreshTokensRequestObject) (RefreshTokensResponseObject, error) // Обложка альбома (WebP) // (GET /api/v1/covers/{id}) GetCover(ctx context.Context, request GetCoverRequestObject) (GetCoverResponseObject, error) // Пачка событий прослушивания (до 500) // (POST /api/v1/events) PostEvents(ctx context.Context, request PostEventsRequestObject) (PostEventsResponseObject, error) // Текущий пользователь // (GET /api/v1/me) GetMe(ctx context.Context, request GetMeRequestObject) (GetMeResponseObject, error) // Изменить имя, язык, настройки интерфейса // (PATCH /api/v1/me) UpdateMe(ctx context.Context, request UpdateMeRequestObject) (UpdateMeResponseObject, error) // Первый запуск — новые логин и пароль администратора // (POST /api/v1/me/bootstrap-credentials) SetBootstrapCredentials(ctx context.Context, request SetBootstrapCredentialsRequestObject) (SetBootstrapCredentialsResponseObject, error) // Дизлайки, новые сверху // (GET /api/v1/me/dislikes) GetDislikes(ctx context.Context, request GetDislikesRequestObject) (GetDislikesResponseObject, error) // Очистить историю (события остаются для статистики) // (DELETE /api/v1/me/history) ClearHistory(ctx context.Context, request ClearHistoryRequestObject) (ClearHistoryResponseObject, error) // История прослушиваний, новые сверху // (GET /api/v1/me/history) GetHistory(ctx context.Context, request GetHistoryRequestObject) (GetHistoryResponseObject, error) // Лайки, новые сверху // (GET /api/v1/me/likes) GetLikes(ctx context.Context, request GetLikesRequestObject) (GetLikesResponseObject, error) // Сохранить выбор онбординга (или пропуск — пустые списки) // (PUT /api/v1/me/onboarding) SaveOnboarding(ctx context.Context, request SaveOnboardingRequestObject) (SaveOnboardingResponseObject, error) // Сменить пароль // (POST /api/v1/me/password) ChangePassword(ctx context.Context, request ChangePasswordRequestObject) (ChangePasswordResponseObject, error) // Последнее состояние плеера (трек, позиция, очередь) // (GET /api/v1/me/playback-state) GetPlaybackState(ctx context.Context, request GetPlaybackStateRequestObject) (GetPlaybackStateResponseObject, error) // Сохранить состояние плеера (last-write-wins) // (PUT /api/v1/me/playback-state) PutPlaybackState(ctx context.Context, request PutPlaybackStateRequestObject) (PutPlaybackStateResponseObject, error) // (GET /api/v1/me/playlists) ListPlaylists(ctx context.Context, request ListPlaylistsRequestObject) (ListPlaylistsResponseObject, error) // (POST /api/v1/me/playlists) CreatePlaylist(ctx context.Context, request CreatePlaylistRequestObject) (CreatePlaylistResponseObject, error) // (DELETE /api/v1/me/playlists/{id}) DeletePlaylist(ctx context.Context, request DeletePlaylistRequestObject) (DeletePlaylistResponseObject, error) // (GET /api/v1/me/playlists/{id}) GetPlaylist(ctx context.Context, request GetPlaylistRequestObject) (GetPlaylistResponseObject, error) // (PUT /api/v1/me/playlists/{id}) UpdatePlaylist(ctx context.Context, request UpdatePlaylistRequestObject) (UpdatePlaylistResponseObject, error) // Отозвать ссылку (только владелец); повторная публикация создаёт новую ссылку // (DELETE /api/v1/me/playlists/{id}/share) RevokePlaylistShare(ctx context.Context, request RevokePlaylistShareRequestObject) (RevokePlaylistShareResponseObject, error) // Создать или вернуть ссылку только для чтения (только владелец) // (POST /api/v1/me/playlists/{id}/share) SharePlaylist(ctx context.Context, request SharePlaylistRequestObject) (SharePlaylistResponseObject, error) // Снять реакцию // (DELETE /api/v1/me/reactions/tracks/{id}) ClearTrackReaction(ctx context.Context, request ClearTrackReactionRequestObject) (ClearTrackReactionResponseObject, error) // Лайк или дизлайк трека // (PUT /api/v1/me/reactions/tracks/{id}) SetTrackReaction(ctx context.Context, request SetTrackReactionRequestObject) (SetTrackReactionResponseObject, error) // Активные сессии (устройства) // (GET /api/v1/me/sessions) ListMySessions(ctx context.Context, request ListMySessionsRequestObject) (ListMySessionsResponseObject, error) // Завершить сессию на устройстве // (DELETE /api/v1/me/sessions/{id}) RevokeMySession(ctx context.Context, request RevokeMySessionRequestObject) (RevokeMySessionResponseObject, error) // (GET /api/v1/me/social) GetSocial(ctx context.Context, request GetSocialRequestObject) (GetSocialResponseObject, error) // (POST /api/v1/me/social/actions) SocialAction(ctx context.Context, request SocialActionRequestObject) (SocialActionResponseObject, error) // (PUT /api/v1/me/social/activity) PublishListeningActivity(ctx context.Context, request PublishListeningActivityRequestObject) (PublishListeningActivityResponseObject, error) // (PUT /api/v1/me/social/activity/visibility) SetActivityVisibility(ctx context.Context, request SetActivityVisibilityRequestObject) (SetActivityVisibilityResponseObject, error) // (GET /api/v1/me/social/chats/{peerId}) GetDirectMessages(ctx context.Context, request GetDirectMessagesRequestObject) (GetDirectMessagesResponseObject, error) // (POST /api/v1/me/social/chats/{peerId}) SendDirectMessage(ctx context.Context, request SendDirectMessageRequestObject) (SendDirectMessageResponseObject, error) // (PATCH /api/v1/me/social/chats/{peerId}/messages/{messageId}) UpdateChatMessage(ctx context.Context, request UpdateChatMessageRequestObject) (UpdateChatMessageResponseObject, error) // (GET /api/v1/me/social/chats/{peerId}/meta) GetChatMeta(ctx context.Context, request GetChatMetaRequestObject) (GetChatMetaResponseObject, error) // (PUT /api/v1/me/social/chats/{peerId}/meta) SetChatTyping(ctx context.Context, request SetChatTypingRequestObject) (SetChatTypingResponseObject, error) // (GET /api/v1/me/social/listening) GetListeningState(ctx context.Context, request GetListeningStateRequestObject) (GetListeningStateResponseObject, error) // (POST /api/v1/me/social/listening/actions) ListeningAction(ctx context.Context, request ListeningActionRequestObject) (ListeningActionResponseObject, error) // (PUT /api/v1/me/social/listening/preferences) SetListeningPreferences(ctx context.Context, request SetListeningPreferencesRequestObject) (SetListeningPreferencesResponseObject, error) // (PUT /api/v1/me/social/listening/state) PublishListeningState(ctx context.Context, request PublishListeningStateRequestObject) (PublishListeningStateResponseObject, error) // (GET /api/v1/me/social/people) SearchPeople(ctx context.Context, request SearchPeopleRequestObject) (SearchPeopleResponseObject, error) // (PUT /api/v1/me/social/recommendations) SetFriendsRecommendations(ctx context.Context, request SetFriendsRecommendationsRequestObject) (SetFriendsRecommendationsResponseObject, error) // Анкета рекомендаций — варианты, сохранённые ответы и необходимость заполнения // (GET /api/v1/onboarding) GetOnboarding(ctx context.Context, request GetOnboardingRequestObject) (GetOnboardingResponseObject, error) // Страница поиска // (GET /api/v1/search) Search(ctx context.Context, request SearchRequestObject) (SearchResponseObject, error) // Выпадающий список поиска — до 3 исполнителей, 3 альбомов, 5 треков // (GET /api/v1/search/suggest) SearchSuggest(ctx context.Context, request SearchSuggestRequestObject) (SearchSuggestResponseObject, error) // Сведения о сервере для клиентов // (GET /api/v1/server-info) GetServerInfo(ctx context.Context, request GetServerInfoRequestObject) (GetServerInfoResponseObject, error) // Прочитать плейлист по действующей ссылке (требуется вход) // (GET /api/v1/shared/playlists/{shareId}) GetSharedPlaylist(ctx context.Context, request GetSharedPlaylistRequestObject) (GetSharedPlaylistResponseObject, error) // (GET /api/v1/social/activity/{userId}/playlist) GetActivityPlaylist(ctx context.Context, request GetActivityPlaylistRequestObject) (GetActivityPlaylistResponseObject, error) // Аудио трека (поддерживает Range) // (GET /api/v1/stream/{id}) StreamTrack(ctx context.Context, request StreamTrackRequestObject) (StreamTrackResponseObject, error) // Треки по списку id (восстановление очереди) // (POST /api/v1/tracks/batch) GetTracksBatch(ctx context.Context, request GetTracksBatchRequestObject) (GetTracksBatchResponseObject, error) // Трек // (GET /api/v1/tracks/{id}) GetTrack(ctx context.Context, request GetTrackRequestObject) (GetTrackResponseObject, error) // (GET /api/v1/tracks/{id}/genius) GetTrackGenius(ctx context.Context, request GetTrackGeniusRequestObject) (GetTrackGeniusResponseObject, error) // Создать пачку и зарезервировать место (moderator, admin) // (POST /api/v1/uploads) CreateUploadBatch(ctx context.Context, request CreateUploadBatchRequestObject) (CreateUploadBatchResponseObject, error) // Отозвать своё предложение до решения // (DELETE /api/v1/uploads/files/{id}) WithdrawUpload(ctx context.Context, request WithdrawUploadRequestObject) (WithdrawUploadResponseObject, error) // Мои предложения (moderator, admin) // (GET /api/v1/uploads/mine) ListMyUploads(ctx context.Context, request ListMyUploadsRequestObject) (ListMyUploadsResponseObject, error) // Предпроверка дублей до загрузки (moderator, admin) // (POST /api/v1/uploads/precheck) PrecheckUploads(ctx context.Context, request PrecheckUploadsRequestObject) (PrecheckUploadsResponseObject, error) // Квота очереди на добавление (moderator, admin) // (GET /api/v1/uploads/quota) GetUploadQuota(ctx context.Context, request GetUploadQuotaRequestObject) (GetUploadQuotaResponseObject, error) // Отметить свои предложения просмотренными // (POST /api/v1/uploads/seen) MarkUploadsSeen(ctx context.Context, request MarkUploadsSeenRequestObject) (MarkUploadsSeenResponseObject, error) // Сколько решений по своим предложениям с прошлого визита (moderator, admin) // (GET /api/v1/uploads/unseen) UnseenUploadDecisions(ctx context.Context, request UnseenUploadDecisionsRequestObject) (UnseenUploadDecisionsResponseObject, error) // Занятия и настроения (ключи для i18n и иконки) // (GET /api/v1/wave/options) GetWaveOptions(ctx context.Context, request GetWaveOptionsRequestObject) (GetWaveOptionsResponseObject, error) // Начать «Мою волну» // (POST /api/v1/wave/sessions) StartWave(ctx context.Context, request StartWaveRequestObject) (StartWaveResponseObject, error) // Завершить сессию волны // (DELETE /api/v1/wave/sessions/{id}) EndWave(ctx context.Context, request EndWaveRequestObject) (EndWaveResponseObject, error) // Сменить занятие / настроение на лету — пачка пересобирается // (PATCH /api/v1/wave/sessions/{id}) UpdateWave(ctx context.Context, request UpdateWaveRequestObject) (UpdateWaveResponseObject, error) // Следующая пачка с учётом реакций на выданные треки // (POST /api/v1/wave/sessions/{id}/next) NextWave(ctx context.Context, request NextWaveRequestObject) (NextWaveResponseObject, error) // Живость процесса // (GET /healthz) GetHealthz(ctx context.Context, request GetHealthzRequestObject) (GetHealthzResponseObject, error) // Готовность обслуживать запросы (зависимости доступны) // (GET /readyz) GetReadyz(ctx context.Context, request GetReadyzRequestObject) (GetReadyzResponseObject, error) } type StrictHandlerFunc = strictnethttp.StrictHTTPHandlerFunc type StrictMiddlewareFunc = strictnethttp.StrictHTTPMiddlewareFunc type StrictHTTPServerOptions struct { RequestErrorHandlerFunc func(w http.ResponseWriter, r *http.Request, err error) ResponseErrorHandlerFunc func(w http.ResponseWriter, r *http.Request, err error) } func NewStrictHandler(ssi StrictServerInterface, middlewares []StrictMiddlewareFunc) ServerInterface { return &strictHandler{ssi: ssi, middlewares: middlewares, options: StrictHTTPServerOptions{ RequestErrorHandlerFunc: func(w http.ResponseWriter, r *http.Request, err error) { http.Error(w, err.Error(), http.StatusBadRequest) }, ResponseErrorHandlerFunc: func(w http.ResponseWriter, r *http.Request, err error) { http.Error(w, err.Error(), http.StatusInternalServerError) }, }} } func NewStrictHandlerWithOptions(ssi StrictServerInterface, middlewares []StrictMiddlewareFunc, options StrictHTTPServerOptions) ServerInterface { return &strictHandler{ssi: ssi, middlewares: middlewares, options: options} } type strictHandler struct { ssi StrictServerInterface middlewares []StrictMiddlewareFunc options StrictHTTPServerOptions } // ListAudit operation middleware func (sh *strictHandler) ListAudit(w http.ResponseWriter, r *http.Request, params ListAuditParams) { var request ListAuditRequestObject request.Params = params handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.ListAudit(ctx, request.(ListAuditRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "ListAudit") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(ListAuditResponseObject); ok { if err := validResponse.VisitListAuditResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // GetGeniusStats operation middleware func (sh *strictHandler) GetGeniusStats(w http.ResponseWriter, r *http.Request) { var request GetGeniusStatsRequestObject handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.GetGeniusStats(ctx, request.(GetGeniusStatsRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "GetGeniusStats") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(GetGeniusStatsResponseObject); ok { if err := validResponse.VisitGetGeniusStatsResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // ControlGenius operation middleware func (sh *strictHandler) ControlGenius(w http.ResponseWriter, r *http.Request) { var request ControlGeniusRequestObject var body ControlGeniusJSONRequestBody if err := json.NewDecoder(r.Body).Decode(&body); err != nil { sh.options.RequestErrorHandlerFunc(w, r, fmt.Errorf("can't decode JSON body: %w", err)) return } request.Body = &body handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.ControlGenius(ctx, request.(ControlGeniusRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "ControlGenius") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(ControlGeniusResponseObject); ok { if err := validResponse.VisitControlGeniusResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // ListAnalysisErrors operation middleware func (sh *strictHandler) ListAnalysisErrors(w http.ResponseWriter, r *http.Request, params ListAnalysisErrorsParams) { var request ListAnalysisErrorsRequestObject request.Params = params handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.ListAnalysisErrors(ctx, request.(ListAnalysisErrorsRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "ListAnalysisErrors") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(ListAnalysisErrorsResponseObject); ok { if err := validResponse.VisitListAnalysisErrorsResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // RetryAnalysis operation middleware func (sh *strictHandler) RetryAnalysis(w http.ResponseWriter, r *http.Request) { var request RetryAnalysisRequestObject handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.RetryAnalysis(ctx, request.(RetryAnalysisRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "RetryAnalysis") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(RetryAnalysisResponseObject); ok { if err := validResponse.VisitRetryAnalysisResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // ListLibraryErrors operation middleware func (sh *strictHandler) ListLibraryErrors(w http.ResponseWriter, r *http.Request, params ListLibraryErrorsParams) { var request ListLibraryErrorsRequestObject request.Params = params handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.ListLibraryErrors(ctx, request.(ListLibraryErrorsRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "ListLibraryErrors") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(ListLibraryErrorsResponseObject); ok { if err := validResponse.VisitListLibraryErrorsResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // ListHostDirs operation middleware func (sh *strictHandler) ListHostDirs(w http.ResponseWriter, r *http.Request, params ListHostDirsParams) { var request ListHostDirsRequestObject request.Params = params handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.ListHostDirs(ctx, request.(ListHostDirsRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "ListHostDirs") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(ListHostDirsResponseObject); ok { if err := validResponse.VisitListHostDirsResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // GetLibraryStatus operation middleware func (sh *strictHandler) GetLibraryStatus(w http.ResponseWriter, r *http.Request) { var request GetLibraryStatusRequestObject handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.GetLibraryStatus(ctx, request.(GetLibraryStatusRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "GetLibraryStatus") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(GetLibraryStatusResponseObject); ok { if err := validResponse.VisitGetLibraryStatusResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // ReindexSearch operation middleware func (sh *strictHandler) ReindexSearch(w http.ResponseWriter, r *http.Request) { var request ReindexSearchRequestObject handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.ReindexSearch(ctx, request.(ReindexSearchRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "ReindexSearch") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(ReindexSearchResponseObject); ok { if err := validResponse.VisitReindexSearchResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // GetServerConfig operation middleware func (sh *strictHandler) GetServerConfig(w http.ResponseWriter, r *http.Request) { var request GetServerConfigRequestObject handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.GetServerConfig(ctx, request.(GetServerConfigRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "GetServerConfig") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(GetServerConfigResponseObject); ok { if err := validResponse.VisitGetServerConfigResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // SaveServerConfig operation middleware func (sh *strictHandler) SaveServerConfig(w http.ResponseWriter, r *http.Request) { var request SaveServerConfigRequestObject var body SaveServerConfigJSONRequestBody if err := json.NewDecoder(r.Body).Decode(&body); err != nil { sh.options.RequestErrorHandlerFunc(w, r, fmt.Errorf("can't decode JSON body: %w", err)) return } request.Body = &body handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.SaveServerConfig(ctx, request.(SaveServerConfigRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "SaveServerConfig") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(SaveServerConfigResponseObject); ok { if err := validResponse.VisitSaveServerConfigResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // ApplyServerConfig operation middleware func (sh *strictHandler) ApplyServerConfig(w http.ResponseWriter, r *http.Request) { var request ApplyServerConfigRequestObject handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.ApplyServerConfig(ctx, request.(ApplyServerConfigRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "ApplyServerConfig") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(ApplyServerConfigResponseObject); ok { if err := validResponse.VisitApplyServerConfigResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // SaveServerUpdateSources operation middleware func (sh *strictHandler) SaveServerUpdateSources(w http.ResponseWriter, r *http.Request) { var request SaveServerUpdateSourcesRequestObject var body SaveServerUpdateSourcesJSONRequestBody if err := json.NewDecoder(r.Body).Decode(&body); err != nil { sh.options.RequestErrorHandlerFunc(w, r, fmt.Errorf("can't decode JSON body: %w", err)) return } request.Body = &body handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.SaveServerUpdateSources(ctx, request.(SaveServerUpdateSourcesRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "SaveServerUpdateSources") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(SaveServerUpdateSourcesResponseObject); ok { if err := validResponse.VisitSaveServerUpdateSourcesResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // GetServerUpdates operation middleware func (sh *strictHandler) GetServerUpdates(w http.ResponseWriter, r *http.Request, params GetServerUpdatesParams) { var request GetServerUpdatesRequestObject request.Params = params handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.GetServerUpdates(ctx, request.(GetServerUpdatesRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "GetServerUpdates") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(GetServerUpdatesResponseObject); ok { if err := validResponse.VisitGetServerUpdatesResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // StartServerUpdate operation middleware func (sh *strictHandler) StartServerUpdate(w http.ResponseWriter, r *http.Request) { var request StartServerUpdateRequestObject var body StartServerUpdateJSONRequestBody if err := json.NewDecoder(r.Body).Decode(&body); err != nil { sh.options.RequestErrorHandlerFunc(w, r, fmt.Errorf("can't decode JSON body: %w", err)) return } request.Body = &body handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.StartServerUpdate(ctx, request.(StartServerUpdateRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "StartServerUpdate") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(StartServerUpdateResponseObject); ok { if err := validResponse.VisitStartServerUpdateResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // GetUploadSettings operation middleware func (sh *strictHandler) GetUploadSettings(w http.ResponseWriter, r *http.Request) { var request GetUploadSettingsRequestObject handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.GetUploadSettings(ctx, request.(GetUploadSettingsRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "GetUploadSettings") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(GetUploadSettingsResponseObject); ok { if err := validResponse.VisitGetUploadSettingsResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // UpdateUploadSettings operation middleware func (sh *strictHandler) UpdateUploadSettings(w http.ResponseWriter, r *http.Request) { var request UpdateUploadSettingsRequestObject var body UpdateUploadSettingsJSONRequestBody if err := json.NewDecoder(r.Body).Decode(&body); err != nil { sh.options.RequestErrorHandlerFunc(w, r, fmt.Errorf("can't decode JSON body: %w", err)) return } request.Body = &body handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.UpdateUploadSettings(ctx, request.(UpdateUploadSettingsRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "UpdateUploadSettings") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(UpdateUploadSettingsResponseObject); ok { if err := validResponse.VisitUpdateUploadSettingsResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // ListSources operation middleware func (sh *strictHandler) ListSources(w http.ResponseWriter, r *http.Request) { var request ListSourcesRequestObject handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.ListSources(ctx, request.(ListSourcesRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "ListSources") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(ListSourcesResponseObject); ok { if err := validResponse.VisitListSourcesResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // CreateSource operation middleware func (sh *strictHandler) CreateSource(w http.ResponseWriter, r *http.Request) { var request CreateSourceRequestObject var body CreateSourceJSONRequestBody if err := json.NewDecoder(r.Body).Decode(&body); err != nil { sh.options.RequestErrorHandlerFunc(w, r, fmt.Errorf("can't decode JSON body: %w", err)) return } request.Body = &body handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.CreateSource(ctx, request.(CreateSourceRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "CreateSource") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(CreateSourceResponseObject); ok { if err := validResponse.VisitCreateSourceResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // DeleteSource operation middleware func (sh *strictHandler) DeleteSource(w http.ResponseWriter, r *http.Request, id SourceId) { var request DeleteSourceRequestObject request.Id = id handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.DeleteSource(ctx, request.(DeleteSourceRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "DeleteSource") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(DeleteSourceResponseObject); ok { if err := validResponse.VisitDeleteSourceResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // GetSource operation middleware func (sh *strictHandler) GetSource(w http.ResponseWriter, r *http.Request, id SourceId) { var request GetSourceRequestObject request.Id = id handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.GetSource(ctx, request.(GetSourceRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "GetSource") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(GetSourceResponseObject); ok { if err := validResponse.VisitGetSourceResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // UpdateSource operation middleware func (sh *strictHandler) UpdateSource(w http.ResponseWriter, r *http.Request, id SourceId) { var request UpdateSourceRequestObject request.Id = id var body UpdateSourceJSONRequestBody if err := json.NewDecoder(r.Body).Decode(&body); err != nil { sh.options.RequestErrorHandlerFunc(w, r, fmt.Errorf("can't decode JSON body: %w", err)) return } request.Body = &body handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.UpdateSource(ctx, request.(UpdateSourceRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "UpdateSource") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(UpdateSourceResponseObject); ok { if err := validResponse.VisitUpdateSourceResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // GetSourceCoverStats operation middleware func (sh *strictHandler) GetSourceCoverStats(w http.ResponseWriter, r *http.Request, id SourceId) { var request GetSourceCoverStatsRequestObject request.Id = id handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.GetSourceCoverStats(ctx, request.(GetSourceCoverStatsRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "GetSourceCoverStats") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(GetSourceCoverStatsResponseObject); ok { if err := validResponse.VisitGetSourceCoverStatsResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // GetSourcePatterns operation middleware func (sh *strictHandler) GetSourcePatterns(w http.ResponseWriter, r *http.Request, id SourceId) { var request GetSourcePatternsRequestObject request.Id = id handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.GetSourcePatterns(ctx, request.(GetSourcePatternsRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "GetSourcePatterns") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(GetSourcePatternsResponseObject); ok { if err := validResponse.VisitGetSourcePatternsResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // PutSourcePatterns operation middleware func (sh *strictHandler) PutSourcePatterns(w http.ResponseWriter, r *http.Request, id SourceId) { var request PutSourcePatternsRequestObject request.Id = id var body PutSourcePatternsJSONRequestBody if err := json.NewDecoder(r.Body).Decode(&body); err != nil { sh.options.RequestErrorHandlerFunc(w, r, fmt.Errorf("can't decode JSON body: %w", err)) return } request.Body = &body handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.PutSourcePatterns(ctx, request.(PutSourcePatternsRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "PutSourcePatterns") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(PutSourcePatternsResponseObject); ok { if err := validResponse.VisitPutSourcePatternsResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // PreviewSourcePatterns operation middleware func (sh *strictHandler) PreviewSourcePatterns(w http.ResponseWriter, r *http.Request, id SourceId) { var request PreviewSourcePatternsRequestObject request.Id = id var body PreviewSourcePatternsJSONRequestBody if err := json.NewDecoder(r.Body).Decode(&body); err != nil { sh.options.RequestErrorHandlerFunc(w, r, fmt.Errorf("can't decode JSON body: %w", err)) return } request.Body = &body handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.PreviewSourcePatterns(ctx, request.(PreviewSourcePatternsRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "PreviewSourcePatterns") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(PreviewSourcePatternsResponseObject); ok { if err := validResponse.VisitPreviewSourcePatternsResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // ScanSource operation middleware func (sh *strictHandler) ScanSource(w http.ResponseWriter, r *http.Request, id SourceId) { var request ScanSourceRequestObject request.Id = id var body ScanSourceJSONRequestBody if err := json.NewDecoder(r.Body).Decode(&body); err != nil { sh.options.RequestErrorHandlerFunc(w, r, fmt.Errorf("can't decode JSON body: %w", err)) return } request.Body = &body handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.ScanSource(ctx, request.(ScanSourceRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "ScanSource") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(ScanSourceResponseObject); ok { if err := validResponse.VisitScanSourceResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // TestSource operation middleware func (sh *strictHandler) TestSource(w http.ResponseWriter, r *http.Request, id SourceId) { var request TestSourceRequestObject request.Id = id handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.TestSource(ctx, request.(TestSourceRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "TestSource") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(TestSourceResponseObject); ok { if err := validResponse.VisitTestSourceResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // CheckWriteTemplate operation middleware func (sh *strictHandler) CheckWriteTemplate(w http.ResponseWriter, r *http.Request, id SourceId) { var request CheckWriteTemplateRequestObject request.Id = id var body CheckWriteTemplateJSONRequestBody if err := json.NewDecoder(r.Body).Decode(&body); err != nil { sh.options.RequestErrorHandlerFunc(w, r, fmt.Errorf("can't decode JSON body: %w", err)) return } request.Body = &body handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.CheckWriteTemplate(ctx, request.(CheckWriteTemplateRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "CheckWriteTemplate") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(CheckWriteTemplateResponseObject); ok { if err := validResponse.VisitCheckWriteTemplateResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // SuggestWriteTemplate operation middleware func (sh *strictHandler) SuggestWriteTemplate(w http.ResponseWriter, r *http.Request, id SourceId) { var request SuggestWriteTemplateRequestObject request.Id = id handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.SuggestWriteTemplate(ctx, request.(SuggestWriteTemplateRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "SuggestWriteTemplate") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(SuggestWriteTemplateResponseObject); ok { if err := validResponse.VisitSuggestWriteTemplateResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // ListUploads operation middleware func (sh *strictHandler) ListUploads(w http.ResponseWriter, r *http.Request, params ListUploadsParams) { var request ListUploadsRequestObject request.Params = params handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.ListUploads(ctx, request.(ListUploadsRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "ListUploads") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(ListUploadsResponseObject); ok { if err := validResponse.VisitListUploadsResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // UpdateUploadBatch operation middleware func (sh *strictHandler) UpdateUploadBatch(w http.ResponseWriter, r *http.Request, id EntityId) { var request UpdateUploadBatchRequestObject request.Id = id var body UpdateUploadBatchJSONRequestBody if err := json.NewDecoder(r.Body).Decode(&body); err != nil { sh.options.RequestErrorHandlerFunc(w, r, fmt.Errorf("can't decode JSON body: %w", err)) return } request.Body = &body handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.UpdateUploadBatch(ctx, request.(UpdateUploadBatchRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "UpdateUploadBatch") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(UpdateUploadBatchResponseObject); ok { if err := validResponse.VisitUpdateUploadBatchResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // ApplyUploadRelease operation middleware func (sh *strictHandler) ApplyUploadRelease(w http.ResponseWriter, r *http.Request, id EntityId) { var request ApplyUploadReleaseRequestObject request.Id = id var body ApplyUploadReleaseJSONRequestBody if err := json.NewDecoder(r.Body).Decode(&body); err != nil { sh.options.RequestErrorHandlerFunc(w, r, fmt.Errorf("can't decode JSON body: %w", err)) return } request.Body = &body handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.ApplyUploadRelease(ctx, request.(ApplyUploadReleaseRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "ApplyUploadRelease") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(ApplyUploadReleaseResponseObject); ok { if err := validResponse.VisitApplyUploadReleaseResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // GetUploadReleases operation middleware func (sh *strictHandler) GetUploadReleases(w http.ResponseWriter, r *http.Request, id EntityId, params GetUploadReleasesParams) { var request GetUploadReleasesRequestObject request.Id = id request.Params = params handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.GetUploadReleases(ctx, request.(GetUploadReleasesRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "GetUploadReleases") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(GetUploadReleasesResponseObject); ok { if err := validResponse.VisitGetUploadReleasesResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // SearchUploadReleases operation middleware func (sh *strictHandler) SearchUploadReleases(w http.ResponseWriter, r *http.Request, id EntityId) { var request SearchUploadReleasesRequestObject request.Id = id var body SearchUploadReleasesJSONRequestBody if err := json.NewDecoder(r.Body).Decode(&body); err != nil { sh.options.RequestErrorHandlerFunc(w, r, fmt.Errorf("can't decode JSON body: %w", err)) return } request.Body = &body handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.SearchUploadReleases(ctx, request.(SearchUploadReleasesRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "SearchUploadReleases") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(SearchUploadReleasesResponseObject); ok { if err := validResponse.VisitSearchUploadReleasesResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // GetUploadReleaseCover operation middleware func (sh *strictHandler) GetUploadReleaseCover(w http.ResponseWriter, r *http.Request, id EntityId, releaseId openapi_types.UUID, params GetUploadReleaseCoverParams) { var request GetUploadReleaseCoverRequestObject request.Id = id request.ReleaseId = releaseId request.Params = params handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.GetUploadReleaseCover(ctx, request.(GetUploadReleaseCoverRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "GetUploadReleaseCover") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(GetUploadReleaseCoverResponseObject); ok { if err := validResponse.VisitGetUploadReleaseCoverResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // UpdateUpload operation middleware func (sh *strictHandler) UpdateUpload(w http.ResponseWriter, r *http.Request, id EntityId) { var request UpdateUploadRequestObject request.Id = id var body UpdateUploadJSONRequestBody if err := json.NewDecoder(r.Body).Decode(&body); err != nil { sh.options.RequestErrorHandlerFunc(w, r, fmt.Errorf("can't decode JSON body: %w", err)) return } request.Body = &body handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.UpdateUpload(ctx, request.(UpdateUploadRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "UpdateUpload") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(UpdateUploadResponseObject); ok { if err := validResponse.VisitUpdateUploadResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // RetryUploadImport operation middleware func (sh *strictHandler) RetryUploadImport(w http.ResponseWriter, r *http.Request, id EntityId) { var request RetryUploadImportRequestObject request.Id = id handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.RetryUploadImport(ctx, request.(RetryUploadImportRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "RetryUploadImport") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(RetryUploadImportResponseObject); ok { if err := validResponse.VisitRetryUploadImportResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // StreamUpload operation middleware func (sh *strictHandler) StreamUpload(w http.ResponseWriter, r *http.Request, id EntityId, params StreamUploadParams) { var request StreamUploadRequestObject request.Id = id request.Params = params handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.StreamUpload(ctx, request.(StreamUploadRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "StreamUpload") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(StreamUploadResponseObject); ok { if err := validResponse.VisitStreamUploadResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // ReviewUploads operation middleware func (sh *strictHandler) ReviewUploads(w http.ResponseWriter, r *http.Request) { var request ReviewUploadsRequestObject var body ReviewUploadsJSONRequestBody if err := json.NewDecoder(r.Body).Decode(&body); err != nil { sh.options.RequestErrorHandlerFunc(w, r, fmt.Errorf("can't decode JSON body: %w", err)) return } request.Body = &body handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.ReviewUploads(ctx, request.(ReviewUploadsRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "ReviewUploads") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(ReviewUploadsResponseObject); ok { if err := validResponse.VisitReviewUploadsResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // ListUsers operation middleware func (sh *strictHandler) ListUsers(w http.ResponseWriter, r *http.Request, params ListUsersParams) { var request ListUsersRequestObject request.Params = params handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.ListUsers(ctx, request.(ListUsersRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "ListUsers") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(ListUsersResponseObject); ok { if err := validResponse.VisitListUsersResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // CreateUser operation middleware func (sh *strictHandler) CreateUser(w http.ResponseWriter, r *http.Request) { var request CreateUserRequestObject var body CreateUserJSONRequestBody if err := json.NewDecoder(r.Body).Decode(&body); err != nil { sh.options.RequestErrorHandlerFunc(w, r, fmt.Errorf("can't decode JSON body: %w", err)) return } request.Body = &body handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.CreateUser(ctx, request.(CreateUserRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "CreateUser") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(CreateUserResponseObject); ok { if err := validResponse.VisitCreateUserResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // ExportUsers operation middleware func (sh *strictHandler) ExportUsers(w http.ResponseWriter, r *http.Request) { var request ExportUsersRequestObject handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.ExportUsers(ctx, request.(ExportUsersRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "ExportUsers") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(ExportUsersResponseObject); ok { if err := validResponse.VisitExportUsersResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // ImportUsers operation middleware func (sh *strictHandler) ImportUsers(w http.ResponseWriter, r *http.Request) { var request ImportUsersRequestObject var body ImportUsersJSONRequestBody if err := json.NewDecoder(r.Body).Decode(&body); err != nil { sh.options.RequestErrorHandlerFunc(w, r, fmt.Errorf("can't decode JSON body: %w", err)) return } request.Body = &body handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.ImportUsers(ctx, request.(ImportUsersRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "ImportUsers") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(ImportUsersResponseObject); ok { if err := validResponse.VisitImportUsersResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // DeleteUser operation middleware func (sh *strictHandler) DeleteUser(w http.ResponseWriter, r *http.Request, id UserId) { var request DeleteUserRequestObject request.Id = id handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.DeleteUser(ctx, request.(DeleteUserRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "DeleteUser") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(DeleteUserResponseObject); ok { if err := validResponse.VisitDeleteUserResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // UpdateUser operation middleware func (sh *strictHandler) UpdateUser(w http.ResponseWriter, r *http.Request, id UserId) { var request UpdateUserRequestObject request.Id = id var body UpdateUserJSONRequestBody if err := json.NewDecoder(r.Body).Decode(&body); err != nil { sh.options.RequestErrorHandlerFunc(w, r, fmt.Errorf("can't decode JSON body: %w", err)) return } request.Body = &body handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.UpdateUser(ctx, request.(UpdateUserRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "UpdateUser") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(UpdateUserResponseObject); ok { if err := validResponse.VisitUpdateUserResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // ResetUserPassword operation middleware func (sh *strictHandler) ResetUserPassword(w http.ResponseWriter, r *http.Request, id UserId) { var request ResetUserPasswordRequestObject request.Id = id handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.ResetUserPassword(ctx, request.(ResetUserPasswordRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "ResetUserPassword") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(ResetUserPasswordResponseObject); ok { if err := validResponse.VisitResetUserPasswordResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // ResetUserRecommendations operation middleware func (sh *strictHandler) ResetUserRecommendations(w http.ResponseWriter, r *http.Request, id UserId) { var request ResetUserRecommendationsRequestObject request.Id = id handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.ResetUserRecommendations(ctx, request.(ResetUserRecommendationsRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "ResetUserRecommendations") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(ResetUserRecommendationsResponseObject); ok { if err := validResponse.VisitResetUserRecommendationsResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // GetAlbum operation middleware func (sh *strictHandler) GetAlbum(w http.ResponseWriter, r *http.Request, id EntityId) { var request GetAlbumRequestObject request.Id = id handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.GetAlbum(ctx, request.(GetAlbumRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "GetAlbum") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(GetAlbumResponseObject); ok { if err := validResponse.VisitGetAlbumResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // DownloadAndroidApk operation middleware func (sh *strictHandler) DownloadAndroidApk(w http.ResponseWriter, r *http.Request, version string) { var request DownloadAndroidApkRequestObject request.Version = version handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.DownloadAndroidApk(ctx, request.(DownloadAndroidApkRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "DownloadAndroidApk") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(DownloadAndroidApkResponseObject); ok { if err := validResponse.VisitDownloadAndroidApkResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // GetAndroidLatest operation middleware func (sh *strictHandler) GetAndroidLatest(w http.ResponseWriter, r *http.Request) { var request GetAndroidLatestRequestObject handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.GetAndroidLatest(ctx, request.(GetAndroidLatestRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "GetAndroidLatest") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(GetAndroidLatestResponseObject); ok { if err := validResponse.VisitGetAndroidLatestResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // GetAppClients operation middleware func (sh *strictHandler) GetAppClients(w http.ResponseWriter, r *http.Request) { var request GetAppClientsRequestObject handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.GetAppClients(ctx, request.(GetAppClientsRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "GetAppClients") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(GetAppClientsResponseObject); ok { if err := validResponse.VisitGetAppClientsResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // DownloadAppClient operation middleware func (sh *strictHandler) DownloadAppClient(w http.ResponseWriter, r *http.Request, client AppClient, version string) { var request DownloadAppClientRequestObject request.Client = client request.Version = version handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.DownloadAppClient(ctx, request.(DownloadAppClientRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "DownloadAppClient") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(DownloadAppClientResponseObject); ok { if err := validResponse.VisitDownloadAppClientResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // GetArtist operation middleware func (sh *strictHandler) GetArtist(w http.ResponseWriter, r *http.Request, id EntityId) { var request GetArtistRequestObject request.Id = id handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.GetArtist(ctx, request.(GetArtistRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "GetArtist") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(GetArtistResponseObject); ok { if err := validResponse.VisitGetArtistResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // ListArtistAlbums operation middleware func (sh *strictHandler) ListArtistAlbums(w http.ResponseWriter, r *http.Request, id EntityId) { var request ListArtistAlbumsRequestObject request.Id = id handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.ListArtistAlbums(ctx, request.(ListArtistAlbumsRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "ListArtistAlbums") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(ListArtistAlbumsResponseObject); ok { if err := validResponse.VisitListArtistAlbumsResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // ListArtistTopTracks operation middleware func (sh *strictHandler) ListArtistTopTracks(w http.ResponseWriter, r *http.Request, id EntityId, params ListArtistTopTracksParams) { var request ListArtistTopTracksRequestObject request.Id = id request.Params = params handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.ListArtistTopTracks(ctx, request.(ListArtistTopTracksRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "ListArtistTopTracks") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(ListArtistTopTracksResponseObject); ok { if err := validResponse.VisitListArtistTopTracksResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // Login operation middleware func (sh *strictHandler) Login(w http.ResponseWriter, r *http.Request) { var request LoginRequestObject var body LoginJSONRequestBody if err := json.NewDecoder(r.Body).Decode(&body); err != nil { sh.options.RequestErrorHandlerFunc(w, r, fmt.Errorf("can't decode JSON body: %w", err)) return } request.Body = &body handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.Login(ctx, request.(LoginRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "Login") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(LoginResponseObject); ok { if err := validResponse.VisitLoginResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // Logout operation middleware func (sh *strictHandler) Logout(w http.ResponseWriter, r *http.Request) { var request LogoutRequestObject handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.Logout(ctx, request.(LogoutRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "Logout") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(LogoutResponseObject); ok { if err := validResponse.VisitLogoutResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // LogoutAll operation middleware func (sh *strictHandler) LogoutAll(w http.ResponseWriter, r *http.Request) { var request LogoutAllRequestObject handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.LogoutAll(ctx, request.(LogoutAllRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "LogoutAll") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(LogoutAllResponseObject); ok { if err := validResponse.VisitLogoutAllResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // RefreshTokens operation middleware func (sh *strictHandler) RefreshTokens(w http.ResponseWriter, r *http.Request, params RefreshTokensParams) { var request RefreshTokensRequestObject request.Params = params var body RefreshTokensJSONRequestBody if err := json.NewDecoder(r.Body).Decode(&body); err != nil { sh.options.RequestErrorHandlerFunc(w, r, fmt.Errorf("can't decode JSON body: %w", err)) return } request.Body = &body handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.RefreshTokens(ctx, request.(RefreshTokensRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "RefreshTokens") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(RefreshTokensResponseObject); ok { if err := validResponse.VisitRefreshTokensResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // GetCover operation middleware func (sh *strictHandler) GetCover(w http.ResponseWriter, r *http.Request, id EntityId, params GetCoverParams) { var request GetCoverRequestObject request.Id = id request.Params = params handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.GetCover(ctx, request.(GetCoverRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "GetCover") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(GetCoverResponseObject); ok { if err := validResponse.VisitGetCoverResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // PostEvents operation middleware func (sh *strictHandler) PostEvents(w http.ResponseWriter, r *http.Request) { var request PostEventsRequestObject var body PostEventsJSONRequestBody if err := json.NewDecoder(r.Body).Decode(&body); err != nil { sh.options.RequestErrorHandlerFunc(w, r, fmt.Errorf("can't decode JSON body: %w", err)) return } request.Body = &body handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.PostEvents(ctx, request.(PostEventsRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "PostEvents") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(PostEventsResponseObject); ok { if err := validResponse.VisitPostEventsResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // GetMe operation middleware func (sh *strictHandler) GetMe(w http.ResponseWriter, r *http.Request) { var request GetMeRequestObject handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.GetMe(ctx, request.(GetMeRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "GetMe") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(GetMeResponseObject); ok { if err := validResponse.VisitGetMeResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // UpdateMe operation middleware func (sh *strictHandler) UpdateMe(w http.ResponseWriter, r *http.Request) { var request UpdateMeRequestObject var body UpdateMeJSONRequestBody if err := json.NewDecoder(r.Body).Decode(&body); err != nil { sh.options.RequestErrorHandlerFunc(w, r, fmt.Errorf("can't decode JSON body: %w", err)) return } request.Body = &body handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.UpdateMe(ctx, request.(UpdateMeRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "UpdateMe") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(UpdateMeResponseObject); ok { if err := validResponse.VisitUpdateMeResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // SetBootstrapCredentials operation middleware func (sh *strictHandler) SetBootstrapCredentials(w http.ResponseWriter, r *http.Request) { var request SetBootstrapCredentialsRequestObject var body SetBootstrapCredentialsJSONRequestBody if err := json.NewDecoder(r.Body).Decode(&body); err != nil { sh.options.RequestErrorHandlerFunc(w, r, fmt.Errorf("can't decode JSON body: %w", err)) return } request.Body = &body handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.SetBootstrapCredentials(ctx, request.(SetBootstrapCredentialsRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "SetBootstrapCredentials") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(SetBootstrapCredentialsResponseObject); ok { if err := validResponse.VisitSetBootstrapCredentialsResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // GetDislikes operation middleware func (sh *strictHandler) GetDislikes(w http.ResponseWriter, r *http.Request, params GetDislikesParams) { var request GetDislikesRequestObject request.Params = params handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.GetDislikes(ctx, request.(GetDislikesRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "GetDislikes") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(GetDislikesResponseObject); ok { if err := validResponse.VisitGetDislikesResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // ClearHistory operation middleware func (sh *strictHandler) ClearHistory(w http.ResponseWriter, r *http.Request) { var request ClearHistoryRequestObject handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.ClearHistory(ctx, request.(ClearHistoryRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "ClearHistory") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(ClearHistoryResponseObject); ok { if err := validResponse.VisitClearHistoryResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // GetHistory operation middleware func (sh *strictHandler) GetHistory(w http.ResponseWriter, r *http.Request, params GetHistoryParams) { var request GetHistoryRequestObject request.Params = params handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.GetHistory(ctx, request.(GetHistoryRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "GetHistory") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(GetHistoryResponseObject); ok { if err := validResponse.VisitGetHistoryResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // GetLikes operation middleware func (sh *strictHandler) GetLikes(w http.ResponseWriter, r *http.Request, params GetLikesParams) { var request GetLikesRequestObject request.Params = params handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.GetLikes(ctx, request.(GetLikesRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "GetLikes") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(GetLikesResponseObject); ok { if err := validResponse.VisitGetLikesResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // SaveOnboarding operation middleware func (sh *strictHandler) SaveOnboarding(w http.ResponseWriter, r *http.Request) { var request SaveOnboardingRequestObject var body SaveOnboardingJSONRequestBody if err := json.NewDecoder(r.Body).Decode(&body); err != nil { sh.options.RequestErrorHandlerFunc(w, r, fmt.Errorf("can't decode JSON body: %w", err)) return } request.Body = &body handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.SaveOnboarding(ctx, request.(SaveOnboardingRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "SaveOnboarding") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(SaveOnboardingResponseObject); ok { if err := validResponse.VisitSaveOnboardingResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // ChangePassword operation middleware func (sh *strictHandler) ChangePassword(w http.ResponseWriter, r *http.Request) { var request ChangePasswordRequestObject var body ChangePasswordJSONRequestBody if err := json.NewDecoder(r.Body).Decode(&body); err != nil { sh.options.RequestErrorHandlerFunc(w, r, fmt.Errorf("can't decode JSON body: %w", err)) return } request.Body = &body handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.ChangePassword(ctx, request.(ChangePasswordRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "ChangePassword") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(ChangePasswordResponseObject); ok { if err := validResponse.VisitChangePasswordResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // GetPlaybackState operation middleware func (sh *strictHandler) GetPlaybackState(w http.ResponseWriter, r *http.Request) { var request GetPlaybackStateRequestObject handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.GetPlaybackState(ctx, request.(GetPlaybackStateRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "GetPlaybackState") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(GetPlaybackStateResponseObject); ok { if err := validResponse.VisitGetPlaybackStateResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // PutPlaybackState operation middleware func (sh *strictHandler) PutPlaybackState(w http.ResponseWriter, r *http.Request) { var request PutPlaybackStateRequestObject var body PutPlaybackStateJSONRequestBody if err := json.NewDecoder(r.Body).Decode(&body); err != nil { sh.options.RequestErrorHandlerFunc(w, r, fmt.Errorf("can't decode JSON body: %w", err)) return } request.Body = &body handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.PutPlaybackState(ctx, request.(PutPlaybackStateRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "PutPlaybackState") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(PutPlaybackStateResponseObject); ok { if err := validResponse.VisitPutPlaybackStateResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // ListPlaylists operation middleware func (sh *strictHandler) ListPlaylists(w http.ResponseWriter, r *http.Request) { var request ListPlaylistsRequestObject handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.ListPlaylists(ctx, request.(ListPlaylistsRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "ListPlaylists") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(ListPlaylistsResponseObject); ok { if err := validResponse.VisitListPlaylistsResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // CreatePlaylist operation middleware func (sh *strictHandler) CreatePlaylist(w http.ResponseWriter, r *http.Request) { var request CreatePlaylistRequestObject var body CreatePlaylistJSONRequestBody if err := json.NewDecoder(r.Body).Decode(&body); err != nil { sh.options.RequestErrorHandlerFunc(w, r, fmt.Errorf("can't decode JSON body: %w", err)) return } request.Body = &body handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.CreatePlaylist(ctx, request.(CreatePlaylistRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "CreatePlaylist") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(CreatePlaylistResponseObject); ok { if err := validResponse.VisitCreatePlaylistResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // DeletePlaylist operation middleware func (sh *strictHandler) DeletePlaylist(w http.ResponseWriter, r *http.Request, id openapi_types.UUID) { var request DeletePlaylistRequestObject request.Id = id handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.DeletePlaylist(ctx, request.(DeletePlaylistRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "DeletePlaylist") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(DeletePlaylistResponseObject); ok { if err := validResponse.VisitDeletePlaylistResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // GetPlaylist operation middleware func (sh *strictHandler) GetPlaylist(w http.ResponseWriter, r *http.Request, id openapi_types.UUID) { var request GetPlaylistRequestObject request.Id = id handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.GetPlaylist(ctx, request.(GetPlaylistRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "GetPlaylist") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(GetPlaylistResponseObject); ok { if err := validResponse.VisitGetPlaylistResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // UpdatePlaylist operation middleware func (sh *strictHandler) UpdatePlaylist(w http.ResponseWriter, r *http.Request, id openapi_types.UUID) { var request UpdatePlaylistRequestObject request.Id = id var body UpdatePlaylistJSONRequestBody if err := json.NewDecoder(r.Body).Decode(&body); err != nil { sh.options.RequestErrorHandlerFunc(w, r, fmt.Errorf("can't decode JSON body: %w", err)) return } request.Body = &body handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.UpdatePlaylist(ctx, request.(UpdatePlaylistRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "UpdatePlaylist") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(UpdatePlaylistResponseObject); ok { if err := validResponse.VisitUpdatePlaylistResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // RevokePlaylistShare operation middleware func (sh *strictHandler) RevokePlaylistShare(w http.ResponseWriter, r *http.Request, id openapi_types.UUID) { var request RevokePlaylistShareRequestObject request.Id = id handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.RevokePlaylistShare(ctx, request.(RevokePlaylistShareRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "RevokePlaylistShare") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(RevokePlaylistShareResponseObject); ok { if err := validResponse.VisitRevokePlaylistShareResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // SharePlaylist operation middleware func (sh *strictHandler) SharePlaylist(w http.ResponseWriter, r *http.Request, id openapi_types.UUID) { var request SharePlaylistRequestObject request.Id = id handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.SharePlaylist(ctx, request.(SharePlaylistRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "SharePlaylist") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(SharePlaylistResponseObject); ok { if err := validResponse.VisitSharePlaylistResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // ClearTrackReaction operation middleware func (sh *strictHandler) ClearTrackReaction(w http.ResponseWriter, r *http.Request, id EntityId) { var request ClearTrackReactionRequestObject request.Id = id handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.ClearTrackReaction(ctx, request.(ClearTrackReactionRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "ClearTrackReaction") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(ClearTrackReactionResponseObject); ok { if err := validResponse.VisitClearTrackReactionResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // SetTrackReaction operation middleware func (sh *strictHandler) SetTrackReaction(w http.ResponseWriter, r *http.Request, id EntityId) { var request SetTrackReactionRequestObject request.Id = id var body SetTrackReactionJSONRequestBody if err := json.NewDecoder(r.Body).Decode(&body); err != nil { sh.options.RequestErrorHandlerFunc(w, r, fmt.Errorf("can't decode JSON body: %w", err)) return } request.Body = &body handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.SetTrackReaction(ctx, request.(SetTrackReactionRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "SetTrackReaction") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(SetTrackReactionResponseObject); ok { if err := validResponse.VisitSetTrackReactionResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // ListMySessions operation middleware func (sh *strictHandler) ListMySessions(w http.ResponseWriter, r *http.Request) { var request ListMySessionsRequestObject handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.ListMySessions(ctx, request.(ListMySessionsRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "ListMySessions") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(ListMySessionsResponseObject); ok { if err := validResponse.VisitListMySessionsResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // RevokeMySession operation middleware func (sh *strictHandler) RevokeMySession(w http.ResponseWriter, r *http.Request, id openapi_types.UUID) { var request RevokeMySessionRequestObject request.Id = id handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.RevokeMySession(ctx, request.(RevokeMySessionRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "RevokeMySession") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(RevokeMySessionResponseObject); ok { if err := validResponse.VisitRevokeMySessionResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // GetSocial operation middleware func (sh *strictHandler) GetSocial(w http.ResponseWriter, r *http.Request) { var request GetSocialRequestObject handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.GetSocial(ctx, request.(GetSocialRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "GetSocial") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(GetSocialResponseObject); ok { if err := validResponse.VisitGetSocialResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // SocialAction operation middleware func (sh *strictHandler) SocialAction(w http.ResponseWriter, r *http.Request) { var request SocialActionRequestObject var body SocialActionJSONRequestBody if err := json.NewDecoder(r.Body).Decode(&body); err != nil { sh.options.RequestErrorHandlerFunc(w, r, fmt.Errorf("can't decode JSON body: %w", err)) return } request.Body = &body handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.SocialAction(ctx, request.(SocialActionRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "SocialAction") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(SocialActionResponseObject); ok { if err := validResponse.VisitSocialActionResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // PublishListeningActivity operation middleware func (sh *strictHandler) PublishListeningActivity(w http.ResponseWriter, r *http.Request) { var request PublishListeningActivityRequestObject var body PublishListeningActivityJSONRequestBody if err := json.NewDecoder(r.Body).Decode(&body); err != nil { sh.options.RequestErrorHandlerFunc(w, r, fmt.Errorf("can't decode JSON body: %w", err)) return } request.Body = &body handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.PublishListeningActivity(ctx, request.(PublishListeningActivityRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "PublishListeningActivity") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(PublishListeningActivityResponseObject); ok { if err := validResponse.VisitPublishListeningActivityResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // SetActivityVisibility operation middleware func (sh *strictHandler) SetActivityVisibility(w http.ResponseWriter, r *http.Request) { var request SetActivityVisibilityRequestObject var body SetActivityVisibilityJSONRequestBody if err := json.NewDecoder(r.Body).Decode(&body); err != nil { sh.options.RequestErrorHandlerFunc(w, r, fmt.Errorf("can't decode JSON body: %w", err)) return } request.Body = &body handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.SetActivityVisibility(ctx, request.(SetActivityVisibilityRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "SetActivityVisibility") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(SetActivityVisibilityResponseObject); ok { if err := validResponse.VisitSetActivityVisibilityResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // GetDirectMessages operation middleware func (sh *strictHandler) GetDirectMessages(w http.ResponseWriter, r *http.Request, peerId openapi_types.UUID, params GetDirectMessagesParams) { var request GetDirectMessagesRequestObject request.PeerId = peerId request.Params = params handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.GetDirectMessages(ctx, request.(GetDirectMessagesRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "GetDirectMessages") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(GetDirectMessagesResponseObject); ok { if err := validResponse.VisitGetDirectMessagesResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // SendDirectMessage operation middleware func (sh *strictHandler) SendDirectMessage(w http.ResponseWriter, r *http.Request, peerId openapi_types.UUID) { var request SendDirectMessageRequestObject request.PeerId = peerId var body SendDirectMessageJSONRequestBody if err := json.NewDecoder(r.Body).Decode(&body); err != nil { sh.options.RequestErrorHandlerFunc(w, r, fmt.Errorf("can't decode JSON body: %w", err)) return } request.Body = &body handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.SendDirectMessage(ctx, request.(SendDirectMessageRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "SendDirectMessage") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(SendDirectMessageResponseObject); ok { if err := validResponse.VisitSendDirectMessageResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // UpdateChatMessage operation middleware func (sh *strictHandler) UpdateChatMessage(w http.ResponseWriter, r *http.Request, peerId openapi_types.UUID, messageId openapi_types.UUID) { var request UpdateChatMessageRequestObject request.PeerId = peerId request.MessageId = messageId var body UpdateChatMessageJSONRequestBody if err := json.NewDecoder(r.Body).Decode(&body); err != nil { sh.options.RequestErrorHandlerFunc(w, r, fmt.Errorf("can't decode JSON body: %w", err)) return } request.Body = &body handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.UpdateChatMessage(ctx, request.(UpdateChatMessageRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "UpdateChatMessage") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(UpdateChatMessageResponseObject); ok { if err := validResponse.VisitUpdateChatMessageResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // GetChatMeta operation middleware func (sh *strictHandler) GetChatMeta(w http.ResponseWriter, r *http.Request, peerId openapi_types.UUID) { var request GetChatMetaRequestObject request.PeerId = peerId handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.GetChatMeta(ctx, request.(GetChatMetaRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "GetChatMeta") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(GetChatMetaResponseObject); ok { if err := validResponse.VisitGetChatMetaResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // SetChatTyping operation middleware func (sh *strictHandler) SetChatTyping(w http.ResponseWriter, r *http.Request, peerId openapi_types.UUID) { var request SetChatTypingRequestObject request.PeerId = peerId var body SetChatTypingJSONRequestBody if err := json.NewDecoder(r.Body).Decode(&body); err != nil { sh.options.RequestErrorHandlerFunc(w, r, fmt.Errorf("can't decode JSON body: %w", err)) return } request.Body = &body handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.SetChatTyping(ctx, request.(SetChatTypingRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "SetChatTyping") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(SetChatTypingResponseObject); ok { if err := validResponse.VisitSetChatTypingResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // GetListeningState operation middleware func (sh *strictHandler) GetListeningState(w http.ResponseWriter, r *http.Request) { var request GetListeningStateRequestObject handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.GetListeningState(ctx, request.(GetListeningStateRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "GetListeningState") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(GetListeningStateResponseObject); ok { if err := validResponse.VisitGetListeningStateResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // ListeningAction operation middleware func (sh *strictHandler) ListeningAction(w http.ResponseWriter, r *http.Request) { var request ListeningActionRequestObject var body ListeningActionJSONRequestBody if err := json.NewDecoder(r.Body).Decode(&body); err != nil { sh.options.RequestErrorHandlerFunc(w, r, fmt.Errorf("can't decode JSON body: %w", err)) return } request.Body = &body handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.ListeningAction(ctx, request.(ListeningActionRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "ListeningAction") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(ListeningActionResponseObject); ok { if err := validResponse.VisitListeningActionResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // SetListeningPreferences operation middleware func (sh *strictHandler) SetListeningPreferences(w http.ResponseWriter, r *http.Request) { var request SetListeningPreferencesRequestObject var body SetListeningPreferencesJSONRequestBody if err := json.NewDecoder(r.Body).Decode(&body); err != nil { sh.options.RequestErrorHandlerFunc(w, r, fmt.Errorf("can't decode JSON body: %w", err)) return } request.Body = &body handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.SetListeningPreferences(ctx, request.(SetListeningPreferencesRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "SetListeningPreferences") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(SetListeningPreferencesResponseObject); ok { if err := validResponse.VisitSetListeningPreferencesResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // PublishListeningState operation middleware func (sh *strictHandler) PublishListeningState(w http.ResponseWriter, r *http.Request) { var request PublishListeningStateRequestObject var body PublishListeningStateJSONRequestBody if err := json.NewDecoder(r.Body).Decode(&body); err != nil { sh.options.RequestErrorHandlerFunc(w, r, fmt.Errorf("can't decode JSON body: %w", err)) return } request.Body = &body handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.PublishListeningState(ctx, request.(PublishListeningStateRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "PublishListeningState") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(PublishListeningStateResponseObject); ok { if err := validResponse.VisitPublishListeningStateResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // SearchPeople operation middleware func (sh *strictHandler) SearchPeople(w http.ResponseWriter, r *http.Request, params SearchPeopleParams) { var request SearchPeopleRequestObject request.Params = params handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.SearchPeople(ctx, request.(SearchPeopleRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "SearchPeople") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(SearchPeopleResponseObject); ok { if err := validResponse.VisitSearchPeopleResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // SetFriendsRecommendations operation middleware func (sh *strictHandler) SetFriendsRecommendations(w http.ResponseWriter, r *http.Request) { var request SetFriendsRecommendationsRequestObject var body SetFriendsRecommendationsJSONRequestBody if err := json.NewDecoder(r.Body).Decode(&body); err != nil { sh.options.RequestErrorHandlerFunc(w, r, fmt.Errorf("can't decode JSON body: %w", err)) return } request.Body = &body handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.SetFriendsRecommendations(ctx, request.(SetFriendsRecommendationsRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "SetFriendsRecommendations") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(SetFriendsRecommendationsResponseObject); ok { if err := validResponse.VisitSetFriendsRecommendationsResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // GetOnboarding operation middleware func (sh *strictHandler) GetOnboarding(w http.ResponseWriter, r *http.Request) { var request GetOnboardingRequestObject handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.GetOnboarding(ctx, request.(GetOnboardingRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "GetOnboarding") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(GetOnboardingResponseObject); ok { if err := validResponse.VisitGetOnboardingResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // Search operation middleware func (sh *strictHandler) Search(w http.ResponseWriter, r *http.Request, params SearchParams) { var request SearchRequestObject request.Params = params handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.Search(ctx, request.(SearchRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "Search") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(SearchResponseObject); ok { if err := validResponse.VisitSearchResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // SearchSuggest operation middleware func (sh *strictHandler) SearchSuggest(w http.ResponseWriter, r *http.Request, params SearchSuggestParams) { var request SearchSuggestRequestObject request.Params = params handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.SearchSuggest(ctx, request.(SearchSuggestRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "SearchSuggest") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(SearchSuggestResponseObject); ok { if err := validResponse.VisitSearchSuggestResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // GetServerInfo operation middleware func (sh *strictHandler) GetServerInfo(w http.ResponseWriter, r *http.Request) { var request GetServerInfoRequestObject handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.GetServerInfo(ctx, request.(GetServerInfoRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "GetServerInfo") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(GetServerInfoResponseObject); ok { if err := validResponse.VisitGetServerInfoResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // GetSharedPlaylist operation middleware func (sh *strictHandler) GetSharedPlaylist(w http.ResponseWriter, r *http.Request, shareId openapi_types.UUID) { var request GetSharedPlaylistRequestObject request.ShareId = shareId handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.GetSharedPlaylist(ctx, request.(GetSharedPlaylistRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "GetSharedPlaylist") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(GetSharedPlaylistResponseObject); ok { if err := validResponse.VisitGetSharedPlaylistResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // GetActivityPlaylist operation middleware func (sh *strictHandler) GetActivityPlaylist(w http.ResponseWriter, r *http.Request, userId openapi_types.UUID) { var request GetActivityPlaylistRequestObject request.UserId = userId handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.GetActivityPlaylist(ctx, request.(GetActivityPlaylistRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "GetActivityPlaylist") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(GetActivityPlaylistResponseObject); ok { if err := validResponse.VisitGetActivityPlaylistResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // StreamTrack operation middleware func (sh *strictHandler) StreamTrack(w http.ResponseWriter, r *http.Request, id EntityId, params StreamTrackParams) { var request StreamTrackRequestObject request.Id = id request.Params = params handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.StreamTrack(ctx, request.(StreamTrackRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "StreamTrack") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(StreamTrackResponseObject); ok { if err := validResponse.VisitStreamTrackResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // GetTracksBatch operation middleware func (sh *strictHandler) GetTracksBatch(w http.ResponseWriter, r *http.Request) { var request GetTracksBatchRequestObject var body GetTracksBatchJSONRequestBody if err := json.NewDecoder(r.Body).Decode(&body); err != nil { sh.options.RequestErrorHandlerFunc(w, r, fmt.Errorf("can't decode JSON body: %w", err)) return } request.Body = &body handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.GetTracksBatch(ctx, request.(GetTracksBatchRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "GetTracksBatch") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(GetTracksBatchResponseObject); ok { if err := validResponse.VisitGetTracksBatchResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // GetTrack operation middleware func (sh *strictHandler) GetTrack(w http.ResponseWriter, r *http.Request, id EntityId) { var request GetTrackRequestObject request.Id = id handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.GetTrack(ctx, request.(GetTrackRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "GetTrack") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(GetTrackResponseObject); ok { if err := validResponse.VisitGetTrackResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // GetTrackGenius operation middleware func (sh *strictHandler) GetTrackGenius(w http.ResponseWriter, r *http.Request, id EntityId) { var request GetTrackGeniusRequestObject request.Id = id handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.GetTrackGenius(ctx, request.(GetTrackGeniusRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "GetTrackGenius") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(GetTrackGeniusResponseObject); ok { if err := validResponse.VisitGetTrackGeniusResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // CreateUploadBatch operation middleware func (sh *strictHandler) CreateUploadBatch(w http.ResponseWriter, r *http.Request) { var request CreateUploadBatchRequestObject var body CreateUploadBatchJSONRequestBody if err := json.NewDecoder(r.Body).Decode(&body); err != nil { sh.options.RequestErrorHandlerFunc(w, r, fmt.Errorf("can't decode JSON body: %w", err)) return } request.Body = &body handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.CreateUploadBatch(ctx, request.(CreateUploadBatchRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "CreateUploadBatch") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(CreateUploadBatchResponseObject); ok { if err := validResponse.VisitCreateUploadBatchResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // WithdrawUpload operation middleware func (sh *strictHandler) WithdrawUpload(w http.ResponseWriter, r *http.Request, id EntityId) { var request WithdrawUploadRequestObject request.Id = id handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.WithdrawUpload(ctx, request.(WithdrawUploadRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "WithdrawUpload") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(WithdrawUploadResponseObject); ok { if err := validResponse.VisitWithdrawUploadResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // ListMyUploads operation middleware func (sh *strictHandler) ListMyUploads(w http.ResponseWriter, r *http.Request, params ListMyUploadsParams) { var request ListMyUploadsRequestObject request.Params = params handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.ListMyUploads(ctx, request.(ListMyUploadsRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "ListMyUploads") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(ListMyUploadsResponseObject); ok { if err := validResponse.VisitListMyUploadsResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // PrecheckUploads operation middleware func (sh *strictHandler) PrecheckUploads(w http.ResponseWriter, r *http.Request) { var request PrecheckUploadsRequestObject var body PrecheckUploadsJSONRequestBody if err := json.NewDecoder(r.Body).Decode(&body); err != nil { sh.options.RequestErrorHandlerFunc(w, r, fmt.Errorf("can't decode JSON body: %w", err)) return } request.Body = &body handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.PrecheckUploads(ctx, request.(PrecheckUploadsRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "PrecheckUploads") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(PrecheckUploadsResponseObject); ok { if err := validResponse.VisitPrecheckUploadsResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // GetUploadQuota operation middleware func (sh *strictHandler) GetUploadQuota(w http.ResponseWriter, r *http.Request) { var request GetUploadQuotaRequestObject handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.GetUploadQuota(ctx, request.(GetUploadQuotaRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "GetUploadQuota") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(GetUploadQuotaResponseObject); ok { if err := validResponse.VisitGetUploadQuotaResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // MarkUploadsSeen operation middleware func (sh *strictHandler) MarkUploadsSeen(w http.ResponseWriter, r *http.Request) { var request MarkUploadsSeenRequestObject handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.MarkUploadsSeen(ctx, request.(MarkUploadsSeenRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "MarkUploadsSeen") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(MarkUploadsSeenResponseObject); ok { if err := validResponse.VisitMarkUploadsSeenResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // UnseenUploadDecisions operation middleware func (sh *strictHandler) UnseenUploadDecisions(w http.ResponseWriter, r *http.Request) { var request UnseenUploadDecisionsRequestObject handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.UnseenUploadDecisions(ctx, request.(UnseenUploadDecisionsRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "UnseenUploadDecisions") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(UnseenUploadDecisionsResponseObject); ok { if err := validResponse.VisitUnseenUploadDecisionsResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // GetWaveOptions operation middleware func (sh *strictHandler) GetWaveOptions(w http.ResponseWriter, r *http.Request) { var request GetWaveOptionsRequestObject handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.GetWaveOptions(ctx, request.(GetWaveOptionsRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "GetWaveOptions") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(GetWaveOptionsResponseObject); ok { if err := validResponse.VisitGetWaveOptionsResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // StartWave operation middleware func (sh *strictHandler) StartWave(w http.ResponseWriter, r *http.Request) { var request StartWaveRequestObject var body StartWaveJSONRequestBody if err := json.NewDecoder(r.Body).Decode(&body); err != nil { sh.options.RequestErrorHandlerFunc(w, r, fmt.Errorf("can't decode JSON body: %w", err)) return } request.Body = &body handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.StartWave(ctx, request.(StartWaveRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "StartWave") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(StartWaveResponseObject); ok { if err := validResponse.VisitStartWaveResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // EndWave operation middleware func (sh *strictHandler) EndWave(w http.ResponseWriter, r *http.Request, id EntityId) { var request EndWaveRequestObject request.Id = id handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.EndWave(ctx, request.(EndWaveRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "EndWave") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(EndWaveResponseObject); ok { if err := validResponse.VisitEndWaveResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // UpdateWave operation middleware func (sh *strictHandler) UpdateWave(w http.ResponseWriter, r *http.Request, id EntityId) { var request UpdateWaveRequestObject request.Id = id var body UpdateWaveJSONRequestBody if err := json.NewDecoder(r.Body).Decode(&body); err != nil { sh.options.RequestErrorHandlerFunc(w, r, fmt.Errorf("can't decode JSON body: %w", err)) return } request.Body = &body handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.UpdateWave(ctx, request.(UpdateWaveRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "UpdateWave") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(UpdateWaveResponseObject); ok { if err := validResponse.VisitUpdateWaveResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // NextWave operation middleware func (sh *strictHandler) NextWave(w http.ResponseWriter, r *http.Request, id EntityId) { var request NextWaveRequestObject request.Id = id var body NextWaveJSONRequestBody if err := json.NewDecoder(r.Body).Decode(&body); err != nil { sh.options.RequestErrorHandlerFunc(w, r, fmt.Errorf("can't decode JSON body: %w", err)) return } request.Body = &body handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.NextWave(ctx, request.(NextWaveRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "NextWave") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(NextWaveResponseObject); ok { if err := validResponse.VisitNextWaveResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // GetHealthz operation middleware func (sh *strictHandler) GetHealthz(w http.ResponseWriter, r *http.Request) { var request GetHealthzRequestObject handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.GetHealthz(ctx, request.(GetHealthzRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "GetHealthz") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(GetHealthzResponseObject); ok { if err := validResponse.VisitGetHealthzResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // GetReadyz operation middleware func (sh *strictHandler) GetReadyz(w http.ResponseWriter, r *http.Request) { var request GetReadyzRequestObject handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, request interface{}) (interface{}, error) { return sh.ssi.GetReadyz(ctx, request.(GetReadyzRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "GetReadyz") } response, err := handler(r.Context(), w, r, request) if err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } else if validResponse, ok := response.(GetReadyzResponseObject); ok { if err := validResponse.VisitGetReadyzResponse(w); err != nil { sh.options.ResponseErrorHandlerFunc(w, r, err) } } else if response != nil { sh.options.ResponseErrorHandlerFunc(w, r, fmt.Errorf("unexpected response type: %T", response)) } } // Base64 encoded, gzipped, json marshaled Swagger object var swaggerSpec = []string{ "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", } // GetSwagger returns the content of the embedded swagger specification file // or error if failed to decode func decodeSpec() ([]byte, error) { zipped, err := base64.StdEncoding.DecodeString(strings.Join(swaggerSpec, "")) if err != nil { return nil, fmt.Errorf("error base64 decoding spec: %w", err) } zr, err := gzip.NewReader(bytes.NewReader(zipped)) if err != nil { return nil, fmt.Errorf("error decompressing spec: %w", err) } var buf bytes.Buffer _, err = buf.ReadFrom(zr) if err != nil { return nil, fmt.Errorf("error decompressing spec: %w", err) } return buf.Bytes(), nil } var rawSpec = decodeSpecCached() // a naive cached of a decoded swagger spec func decodeSpecCached() func() ([]byte, error) { data, err := decodeSpec() return func() ([]byte, error) { return data, err } } // Constructs a synthetic filesystem for resolving external references when loading openapi specifications. func PathToRawSpec(pathToFile string) map[string]func() ([]byte, error) { res := make(map[string]func() ([]byte, error)) if len(pathToFile) > 0 { res[pathToFile] = rawSpec } return res } // GetSwagger returns the Swagger specification corresponding to the generated code // in this file. The external references of Swagger specification are resolved. // The logic of resolving external references is tightly connected to "import-mapping" feature. // Externally referenced files must be embedded in the corresponding golang packages. // Urls can be supported but this task was out of the scope. func GetSwagger() (swagger *openapi3.T, err error) { resolvePath := PathToRawSpec("") loader := openapi3.NewLoader() loader.IsExternalRefsAllowed = true loader.ReadFromURIFunc = func(loader *openapi3.Loader, url *url.URL) ([]byte, error) { pathToFile := url.String() pathToFile = path.Clean(pathToFile) getSpec, ok := resolvePath[pathToFile] if !ok { err1 := fmt.Errorf("path not found: %s", pathToFile) return nil, err1 } return getSpec() } var specData []byte specData, err = rawSpec() if err != nil { return } swagger, err = loader.LoadFromData(specData) if err != nil { return } return }