From 62543cd0be81a93e788263ab61e7d0af8fc49cd1 Mon Sep 17 00:00:00 2001 From: Harvey Tindall Date: Thu, 24 Sep 2020 17:52:38 +0100 Subject: [PATCH] remove generated documentation can be regenerated by running 'make swagger' before 'make compile'. depends on swaggo/swag. --- .gitignore | 1 + docs/docs.go | 1062 --------------------------------------------- docs/go.mod | 3 - docs/swagger.json | 999 ------------------------------------------ docs/swagger.yaml | 678 ----------------------------- 5 files changed, 1 insertion(+), 2742 deletions(-) delete mode 100644 docs/docs.go delete mode 100644 docs/go.mod delete mode 100644 docs/swagger.json delete mode 100644 docs/swagger.yaml diff --git a/.gitignore b/.gitignore index 134852e..92443bd 100644 --- a/.gitignore +++ b/.gitignore @@ -20,3 +20,4 @@ pkg/ old/ version.go notes +docs/ diff --git a/docs/docs.go b/docs/docs.go deleted file mode 100644 index 3c53b26..0000000 --- a/docs/docs.go +++ /dev/null @@ -1,1062 +0,0 @@ -// GENERATED BY THE COMMAND ABOVE; DO NOT EDIT -// This file was generated by swaggo/swag - -package docs - -import ( - "bytes" - "encoding/json" - "strings" - - "github.com/alecthomas/template" - "github.com/swaggo/swag" -) - -var doc = `{ - "schemes": {{ marshal .Schemes }}, - "swagger": "2.0", - "info": { - "description": "{{.Description}}", - "title": "{{.Title}}", - "contact": { - "name": "Harvey Tindall", - "email": "hrfee@protonmail.ch" - }, - "license": { - "name": "MIT", - "url": "https://raw.githubusercontent.com/hrfee/jfa-go/main/LICENSE" - }, - "version": "{{.Version}}" - }, - "host": "{{.Host}}", - "basePath": "{{.BasePath}}", - "paths": { - "/config": { - "get": { - "produces": [ - "application/json" - ], - "summary": "Get jfa-go configuration.", - "responses": { - "200": { - "description": "Uses the same format as config-base.json", - "schema": { - "$ref": "#/definitions/main.configDTO" - } - } - } - } - }, - "/invites": { - "get": { - "produces": [ - "application/json" - ], - "summary": "Get invites.", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/main.getInvitesDTO" - } - } - } - }, - "post": { - "produces": [ - "application/json" - ], - "summary": "Create a new invite.", - "parameters": [ - { - "description": "New invite request object", - "name": "generateInviteDTO", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/main.generateInviteDTO" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/main.boolResponse" - } - } - } - }, - "delete": { - "produces": [ - "application/json" - ], - "summary": "Delete an invite.", - "parameters": [ - { - "description": "Delete invite object", - "name": "deleteInviteDTO", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/main.deleteInviteDTO" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/main.boolResponse" - } - }, - "400": { - "description": "Bad Request", - "schema": { - "$ref": "#/definitions/main.stringResponse" - } - } - } - } - }, - "/invites/notify": { - "post": { - "produces": [ - "application/json" - ], - "summary": "Set notification preferences for an invite.", - "parameters": [ - { - "description": "Map of invite codes to notification settings objects", - "name": "setNotifyDTO", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/main.setNotifyDTO" - } - } - ], - "responses": { - "200": {}, - "400": { - "description": "Bad Request", - "schema": { - "$ref": "#/definitions/main.stringResponse" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/main.stringResponse" - } - } - } - } - }, - "/invites/profile": { - "post": { - "produces": [ - "application/json" - ], - "summary": "Set profile for an invite", - "parameters": [ - { - "description": "Invite profile object", - "name": "inviteProfileDTO", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/main.inviteProfileDTO" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/main.boolResponse" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/main.stringResponse" - } - } - } - } - }, - "/logout": { - "post": { - "produces": [ - "application/json" - ], - "summary": "Logout by deleting refresh token from cookies.", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/main.boolResponse" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/main.stringResponse" - } - } - } - } - }, - "/newUser": { - "post": { - "produces": [ - "application/json" - ], - "summary": "Creates a new Jellyfin user via invite code", - "parameters": [ - { - "description": "New user request object", - "name": "newUserDTO", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/main.newUserDTO" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/main.PasswordValidation" - } - }, - "400": { - "description": "Bad Request", - "schema": { - "$ref": "#/definitions/main.PasswordValidation" - } - } - } - } - }, - "/ombi/defaults": { - "post": { - "produces": [ - "application/json" - ], - "summary": "Set new user defaults for Ombi accounts.", - "parameters": [ - { - "description": "User to source settings from", - "name": "ombiUser", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/main.ombiUser" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/main.boolResponse" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/main.stringResponse" - } - } - } - } - }, - "/ombi/users": { - "get": { - "produces": [ - "application/json" - ], - "summary": "Get a list of Ombi users.", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/main.ombiUsersDTO" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/main.stringResponse" - } - } - } - } - }, - "/profiles": { - "get": { - "produces": [ - "application/json" - ], - "summary": "Get a list of profiles", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/main.getProfilesDTO" - } - } - } - }, - "post": { - "produces": [ - "application/json" - ], - "summary": "Create a profile based on a Jellyfin user's settings.", - "parameters": [ - { - "description": "New profile object", - "name": "newProfileDTO", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/main.newProfileDTO" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/main.boolResponse" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/main.stringResponse" - } - } - } - }, - "delete": { - "produces": [ - "application/json" - ], - "summary": "Delete an existing profile", - "parameters": [ - { - "description": "Delete profile object", - "name": "profileChangeDTO", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/main.profileChangeDTO" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/main.boolResponse" - } - } - } - } - }, - "/profiles/default": { - "post": { - "produces": [ - "application/json" - ], - "summary": "Set the default profile to use.", - "parameters": [ - { - "description": "Default profile object", - "name": "profileChangeDTO", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/main.profileChangeDTO" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/main.boolResponse" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/main.stringResponse" - } - } - } - } - }, - "/users": { - "get": { - "produces": [ - "application/json" - ], - "summary": "Get a list of Jellyfin users.", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/main.getUsersDTO" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/main.stringResponse" - } - } - } - }, - "post": { - "produces": [ - "application/json" - ], - "summary": "Creates a new Jellyfin user without an invite.", - "parameters": [ - { - "description": "New user request object", - "name": "newUserDTO", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/main.newUserDTO" - } - } - ], - "responses": { - "200": {} - } - }, - "delete": { - "produces": [ - "application/json" - ], - "summary": "Delete a list of users, optionally notifying them why.", - "parameters": [ - { - "description": "User deletion request object", - "name": "deleteUserDTO", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/main.deleteUserDTO" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/main.boolResponse" - } - }, - "400": { - "description": "Bad Request", - "schema": { - "$ref": "#/definitions/main.stringResponse" - } - }, - "500": { - "description": "List of errors", - "schema": { - "$ref": "#/definitions/main.errorListDTO" - } - } - } - } - }, - "/users/emails": { - "post": { - "produces": [ - "application/json" - ], - "summary": "Modify user's email addresses.", - "parameters": [ - { - "description": "Map of userIDs to email addresses", - "name": "modifyEmailsDTO", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/main.modifyEmailsDTO" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/main.boolResponse" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/main.stringResponse" - } - } - } - } - }, - "/users/settings": { - "post": { - "produces": [ - "application/json" - ], - "summary": "Apply settings to a list of users, either from a profile or from another user.", - "parameters": [ - { - "description": "Parameters for applying settings", - "name": "userSettingsDTO", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/main.userSettingsDTO" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/main.errorListDTO" - } - }, - "500": { - "description": "Lists of errors that occured while applying settings", - "schema": { - "$ref": "#/definitions/main.errorListDTO" - } - } - } - } - } - }, - "definitions": { - "main.PasswordValidation": { - "type": "object", - "properties": { - "characters": { - "description": "Number of characters", - "type": "boolean" - }, - "lowercase characters": { - "description": "Number of lowercase characters", - "type": "boolean" - }, - "numbers": { - "description": "Number of numbers", - "type": "boolean" - }, - "special characters": { - "description": "Number of special characters", - "type": "boolean" - }, - "uppercase characters": { - "description": "Number of uppercase characters", - "type": "boolean" - } - } - }, - "main.boolResponse": { - "type": "object", - "properties": { - "error": { - "type": "boolean", - "example": true - }, - "success": { - "type": "boolean", - "example": false - } - } - }, - "main.configDTO": { - "type": "object", - "additionalProperties": true - }, - "main.deleteInviteDTO": { - "type": "object", - "properties": { - "code": { - "description": "Code of invite to delete", - "type": "string", - "example": "skjadajd43234s" - } - } - }, - "main.deleteUserDTO": { - "type": "object", - "required": [ - "users" - ], - "properties": { - "notify": { - "description": "Whether to notify users of deletion", - "type": "boolean" - }, - "reason": { - "description": "Account deletion reason (for notification)", - "type": "string" - }, - "users": { - "description": "List of usernames to delete", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "main.errorListDTO": { - "type": "object", - "additionalProperties": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } - }, - "main.generateInviteDTO": { - "type": "object", - "properties": { - "days": { - "description": "Number of days", - "type": "integer", - "example": 1 - }, - "email": { - "description": "Send invite to this address", - "type": "string", - "example": "jeff@jellyf.in" - }, - "hours": { - "description": "Number of hours", - "type": "integer", - "example": 2 - }, - "minutes": { - "description": "Number of minutes", - "type": "integer", - "example": 3 - }, - "multiple-uses": { - "description": "Allow multiple uses", - "type": "boolean", - "example": true - }, - "no-limit": { - "description": "No invite use limit", - "type": "boolean", - "example": false - }, - "profile": { - "description": "Name of profile to apply on this invite", - "type": "string", - "example": "DefaultProfile" - }, - "remaining-uses": { - "description": "Remaining invite uses", - "type": "integer", - "example": 5 - } - } - }, - "main.getInvitesDTO": { - "type": "object", - "properties": { - "invites": { - "description": "List of invites", - "type": "array", - "items": { - "$ref": "#/definitions/main.inviteDTO" - } - }, - "profiles": { - "description": "List of profiles (name only)", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "main.getProfilesDTO": { - "type": "object", - "properties": { - "default_profile": { - "type": "string" - }, - "profiles": { - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/main.profileDTO" - } - } - } - }, - "main.getUsersDTO": { - "type": "object", - "properties": { - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/main.respUser" - } - } - } - }, - "main.inviteDTO": { - "type": "object", - "properties": { - "code": { - "description": "Invite code", - "type": "string", - "example": "sajdlj23423j23" - }, - "created": { - "description": "Date of creation", - "type": "string", - "example": "01/01/20 12:00" - }, - "days": { - "description": "Number of days till expiry", - "type": "integer", - "example": 1 - }, - "email": { - "description": "Email the invite was sent to (if applicable)", - "type": "string" - }, - "hours": { - "description": "Number of hours till expiry", - "type": "integer", - "example": 2 - }, - "minutes": { - "description": "Number of minutes till expiry", - "type": "integer", - "example": 3 - }, - "no-limit": { - "description": "If true, invite can be used any number of times", - "type": "boolean" - }, - "notify-creation": { - "description": "Whether to notify the requesting user of account creation or not", - "type": "boolean" - }, - "notify-expiry": { - "description": "Whether to notify the requesting user of expiry or not", - "type": "boolean" - }, - "profile": { - "description": "Profile used on this invite", - "type": "string", - "example": "DefaultProfile" - }, - "remaining-uses": { - "description": "Remaining number of uses (if applicable)", - "type": "integer" - }, - "used-by": { - "description": "Users who have used this invite", - "type": "array", - "items": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - }, - "main.inviteProfileDTO": { - "type": "object", - "properties": { - "invite": { - "description": "Invite to apply to", - "type": "string", - "example": "slakdaslkdl2342" - }, - "profile": { - "description": "Profile to use", - "type": "string", - "example": "DefaultProfile" - } - } - }, - "main.modifyEmailsDTO": { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "main.newProfileDTO": { - "type": "object", - "required": [ - "id", - "name" - ], - "properties": { - "homescreen": { - "description": "Whether to store homescreen layout or not", - "type": "boolean", - "example": true - }, - "id": { - "description": "ID of user to source settings from", - "type": "string", - "example": "kasdjlaskjd342342" - }, - "name": { - "description": "Name of the profile", - "type": "string", - "example": "DefaultProfile" - } - } - }, - "main.newUserDTO": { - "type": "object", - "required": [ - "password", - "username" - ], - "properties": { - "code": { - "description": "Invite code (required on /newUser)", - "type": "string", - "example": "abc0933jncjkcjj" - }, - "email": { - "description": "User's email address", - "type": "string", - "example": "jeff@jellyf.in" - }, - "password": { - "description": "User's password", - "type": "string", - "example": "guest" - }, - "username": { - "description": "User's username", - "type": "string", - "example": "jeff" - } - } - }, - "main.ombiUser": { - "type": "object", - "properties": { - "id": { - "description": "userID of Ombi user", - "type": "string", - "example": "djgkjdg7dkjfsj8" - }, - "name": { - "description": "Name of Ombi user", - "type": "string", - "example": "jeff" - } - } - }, - "main.ombiUsersDTO": { - "type": "object", - "properties": { - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/main.ombiUser" - } - } - } - }, - "main.profileChangeDTO": { - "type": "object", - "required": [ - "name" - ], - "properties": { - "name": { - "description": "Name of the profile", - "type": "string", - "example": "DefaultProfile" - } - } - }, - "main.profileDTO": { - "type": "object", - "properties": { - "admin": { - "description": "Whether profile has admin rights or not", - "type": "boolean", - "example": false - }, - "fromUser": { - "description": "The user the profile is based on", - "type": "string", - "example": "jeff" - }, - "libraries": { - "description": "Number of libraries profile has access to", - "type": "string", - "example": "all" - } - } - }, - "main.respUser": { - "type": "object", - "properties": { - "admin": { - "description": "Whether or not the user is Administrator", - "type": "boolean", - "example": false - }, - "email": { - "description": "Email address of user (if available)", - "type": "string", - "example": "jeff@jellyf.in" - }, - "id": { - "description": "userID of user", - "type": "string", - "example": "fdgsdfg45534fa" - }, - "last_active": { - "description": "Time of last activity on Jellyfin", - "type": "string" - }, - "name": { - "description": "Username of user", - "type": "string", - "example": "jeff" - } - } - }, - "main.setNotifyDTO": { - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/main.setNotifyValues" - } - }, - "main.setNotifyValues": { - "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "notify-creation": { - "description": "Whether to notify the requesting user of account creation or not", - "type": "boolean" - }, - "notify-expiry": { - "description": "Whether to notify the requesting user of expiry or not", - "type": "boolean" - } - } - } - }, - "main.stringResponse": { - "type": "object", - "properties": { - "error": { - "type": "string", - "example": "errorDescription" - }, - "response": { - "type": "string", - "example": "message" - } - } - }, - "main.userSettingsDTO": { - "type": "object", - "properties": { - "apply_to": { - "description": "Users to apply settings to", - "type": "array", - "items": { - "type": "string" - } - }, - "from": { - "description": "Whether to apply from \"user\" or \"profile\"", - "type": "string" - }, - "homescreen": { - "description": "Whether to apply homescreen layout or not", - "type": "boolean" - }, - "id": { - "description": "ID of user (if from = \"user\")", - "type": "string" - }, - "profile": { - "description": "Name of profile (if from = \"profile\")", - "type": "string" - } - } - } - } -}` - -type swaggerInfo struct { - Version string - Host string - BasePath string - Schemes []string - Title string - Description string -} - -// SwaggerInfo holds exported Swagger Info so clients can modify it -var SwaggerInfo = swaggerInfo{ - Version: "0.2.0", - Host: "", - BasePath: "/", - Schemes: []string{}, - Title: "jfa-go internal API", - Description: "API for the jfa-go frontend", -} - -type s struct{} - -func (s *s) ReadDoc() string { - sInfo := SwaggerInfo - sInfo.Description = strings.Replace(sInfo.Description, "\n", "\\n", -1) - - t, err := template.New("swagger_info").Funcs(template.FuncMap{ - "marshal": func(v interface{}) string { - a, _ := json.Marshal(v) - return string(a) - }, - }).Parse(doc) - if err != nil { - return doc - } - - var tpl bytes.Buffer - if err := t.Execute(&tpl, sInfo); err != nil { - return doc - } - - return tpl.String() -} - -func init() { - swag.Register(swag.Name, &s{}) -} diff --git a/docs/go.mod b/docs/go.mod deleted file mode 100644 index 6ec1d14..0000000 --- a/docs/go.mod +++ /dev/null @@ -1,3 +0,0 @@ -module github.com/hrfee/jfa-go/docs - -go 1.15 diff --git a/docs/swagger.json b/docs/swagger.json deleted file mode 100644 index 7b1e87e..0000000 --- a/docs/swagger.json +++ /dev/null @@ -1,999 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "description": "API for the jfa-go frontend", - "title": "jfa-go internal API", - "contact": { - "name": "Harvey Tindall", - "email": "hrfee@protonmail.ch" - }, - "license": { - "name": "MIT", - "url": "https://raw.githubusercontent.com/hrfee/jfa-go/main/LICENSE" - }, - "version": "0.2.0" - }, - "basePath": "/", - "paths": { - "/config": { - "get": { - "produces": [ - "application/json" - ], - "summary": "Get jfa-go configuration.", - "responses": { - "200": { - "description": "Uses the same format as config-base.json", - "schema": { - "$ref": "#/definitions/main.configDTO" - } - } - } - } - }, - "/invites": { - "get": { - "produces": [ - "application/json" - ], - "summary": "Get invites.", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/main.getInvitesDTO" - } - } - } - }, - "post": { - "produces": [ - "application/json" - ], - "summary": "Create a new invite.", - "parameters": [ - { - "description": "New invite request object", - "name": "generateInviteDTO", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/main.generateInviteDTO" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/main.boolResponse" - } - } - } - }, - "delete": { - "produces": [ - "application/json" - ], - "summary": "Delete an invite.", - "parameters": [ - { - "description": "Delete invite object", - "name": "deleteInviteDTO", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/main.deleteInviteDTO" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/main.boolResponse" - } - }, - "400": { - "description": "Bad Request", - "schema": { - "$ref": "#/definitions/main.stringResponse" - } - } - } - } - }, - "/invites/notify": { - "post": { - "produces": [ - "application/json" - ], - "summary": "Set notification preferences for an invite.", - "parameters": [ - { - "description": "Map of invite codes to notification settings objects", - "name": "setNotifyDTO", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/main.setNotifyDTO" - } - } - ], - "responses": { - "200": {}, - "400": { - "description": "Bad Request", - "schema": { - "$ref": "#/definitions/main.stringResponse" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/main.stringResponse" - } - } - } - } - }, - "/invites/profile": { - "post": { - "produces": [ - "application/json" - ], - "summary": "Set profile for an invite", - "parameters": [ - { - "description": "Invite profile object", - "name": "inviteProfileDTO", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/main.inviteProfileDTO" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/main.boolResponse" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/main.stringResponse" - } - } - } - } - }, - "/logout": { - "post": { - "produces": [ - "application/json" - ], - "summary": "Logout by deleting refresh token from cookies.", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/main.boolResponse" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/main.stringResponse" - } - } - } - } - }, - "/newUser": { - "post": { - "produces": [ - "application/json" - ], - "summary": "Creates a new Jellyfin user via invite code", - "parameters": [ - { - "description": "New user request object", - "name": "newUserDTO", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/main.newUserDTO" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/main.PasswordValidation" - } - }, - "400": { - "description": "Bad Request", - "schema": { - "$ref": "#/definitions/main.PasswordValidation" - } - } - } - } - }, - "/ombi/defaults": { - "post": { - "produces": [ - "application/json" - ], - "summary": "Set new user defaults for Ombi accounts.", - "parameters": [ - { - "description": "User to source settings from", - "name": "ombiUser", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/main.ombiUser" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/main.boolResponse" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/main.stringResponse" - } - } - } - } - }, - "/ombi/users": { - "get": { - "produces": [ - "application/json" - ], - "summary": "Get a list of Ombi users.", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/main.ombiUsersDTO" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/main.stringResponse" - } - } - } - } - }, - "/profiles": { - "get": { - "produces": [ - "application/json" - ], - "summary": "Get a list of profiles", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/main.getProfilesDTO" - } - } - } - }, - "post": { - "produces": [ - "application/json" - ], - "summary": "Create a profile based on a Jellyfin user's settings.", - "parameters": [ - { - "description": "New profile object", - "name": "newProfileDTO", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/main.newProfileDTO" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/main.boolResponse" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/main.stringResponse" - } - } - } - }, - "delete": { - "produces": [ - "application/json" - ], - "summary": "Delete an existing profile", - "parameters": [ - { - "description": "Delete profile object", - "name": "profileChangeDTO", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/main.profileChangeDTO" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/main.boolResponse" - } - } - } - } - }, - "/profiles/default": { - "post": { - "produces": [ - "application/json" - ], - "summary": "Set the default profile to use.", - "parameters": [ - { - "description": "Default profile object", - "name": "profileChangeDTO", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/main.profileChangeDTO" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/main.boolResponse" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/main.stringResponse" - } - } - } - } - }, - "/users": { - "get": { - "produces": [ - "application/json" - ], - "summary": "Get a list of Jellyfin users.", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/main.getUsersDTO" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/main.stringResponse" - } - } - } - }, - "post": { - "produces": [ - "application/json" - ], - "summary": "Creates a new Jellyfin user without an invite.", - "parameters": [ - { - "description": "New user request object", - "name": "newUserDTO", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/main.newUserDTO" - } - } - ], - "responses": { - "200": {} - } - }, - "delete": { - "produces": [ - "application/json" - ], - "summary": "Delete a list of users, optionally notifying them why.", - "parameters": [ - { - "description": "User deletion request object", - "name": "deleteUserDTO", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/main.deleteUserDTO" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/main.boolResponse" - } - }, - "400": { - "description": "Bad Request", - "schema": { - "$ref": "#/definitions/main.stringResponse" - } - }, - "500": { - "description": "List of errors", - "schema": { - "$ref": "#/definitions/main.errorListDTO" - } - } - } - } - }, - "/users/emails": { - "post": { - "produces": [ - "application/json" - ], - "summary": "Modify user's email addresses.", - "parameters": [ - { - "description": "Map of userIDs to email addresses", - "name": "modifyEmailsDTO", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/main.modifyEmailsDTO" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/main.boolResponse" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/main.stringResponse" - } - } - } - } - }, - "/users/settings": { - "post": { - "produces": [ - "application/json" - ], - "summary": "Apply settings to a list of users, either from a profile or from another user.", - "parameters": [ - { - "description": "Parameters for applying settings", - "name": "userSettingsDTO", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/main.userSettingsDTO" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/main.errorListDTO" - } - }, - "500": { - "description": "Lists of errors that occured while applying settings", - "schema": { - "$ref": "#/definitions/main.errorListDTO" - } - } - } - } - } - }, - "definitions": { - "main.PasswordValidation": { - "type": "object", - "properties": { - "characters": { - "description": "Number of characters", - "type": "boolean" - }, - "lowercase characters": { - "description": "Number of lowercase characters", - "type": "boolean" - }, - "numbers": { - "description": "Number of numbers", - "type": "boolean" - }, - "special characters": { - "description": "Number of special characters", - "type": "boolean" - }, - "uppercase characters": { - "description": "Number of uppercase characters", - "type": "boolean" - } - } - }, - "main.boolResponse": { - "type": "object", - "properties": { - "error": { - "type": "boolean", - "example": true - }, - "success": { - "type": "boolean", - "example": false - } - } - }, - "main.configDTO": { - "type": "object", - "additionalProperties": true - }, - "main.deleteInviteDTO": { - "type": "object", - "properties": { - "code": { - "description": "Code of invite to delete", - "type": "string", - "example": "skjadajd43234s" - } - } - }, - "main.deleteUserDTO": { - "type": "object", - "required": [ - "users" - ], - "properties": { - "notify": { - "description": "Whether to notify users of deletion", - "type": "boolean" - }, - "reason": { - "description": "Account deletion reason (for notification)", - "type": "string" - }, - "users": { - "description": "List of usernames to delete", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "main.errorListDTO": { - "type": "object", - "additionalProperties": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } - }, - "main.generateInviteDTO": { - "type": "object", - "properties": { - "days": { - "description": "Number of days", - "type": "integer", - "example": 1 - }, - "email": { - "description": "Send invite to this address", - "type": "string", - "example": "jeff@jellyf.in" - }, - "hours": { - "description": "Number of hours", - "type": "integer", - "example": 2 - }, - "minutes": { - "description": "Number of minutes", - "type": "integer", - "example": 3 - }, - "multiple-uses": { - "description": "Allow multiple uses", - "type": "boolean", - "example": true - }, - "no-limit": { - "description": "No invite use limit", - "type": "boolean", - "example": false - }, - "profile": { - "description": "Name of profile to apply on this invite", - "type": "string", - "example": "DefaultProfile" - }, - "remaining-uses": { - "description": "Remaining invite uses", - "type": "integer", - "example": 5 - } - } - }, - "main.getInvitesDTO": { - "type": "object", - "properties": { - "invites": { - "description": "List of invites", - "type": "array", - "items": { - "$ref": "#/definitions/main.inviteDTO" - } - }, - "profiles": { - "description": "List of profiles (name only)", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "main.getProfilesDTO": { - "type": "object", - "properties": { - "default_profile": { - "type": "string" - }, - "profiles": { - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/main.profileDTO" - } - } - } - }, - "main.getUsersDTO": { - "type": "object", - "properties": { - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/main.respUser" - } - } - } - }, - "main.inviteDTO": { - "type": "object", - "properties": { - "code": { - "description": "Invite code", - "type": "string", - "example": "sajdlj23423j23" - }, - "created": { - "description": "Date of creation", - "type": "string", - "example": "01/01/20 12:00" - }, - "days": { - "description": "Number of days till expiry", - "type": "integer", - "example": 1 - }, - "email": { - "description": "Email the invite was sent to (if applicable)", - "type": "string" - }, - "hours": { - "description": "Number of hours till expiry", - "type": "integer", - "example": 2 - }, - "minutes": { - "description": "Number of minutes till expiry", - "type": "integer", - "example": 3 - }, - "no-limit": { - "description": "If true, invite can be used any number of times", - "type": "boolean" - }, - "notify-creation": { - "description": "Whether to notify the requesting user of account creation or not", - "type": "boolean" - }, - "notify-expiry": { - "description": "Whether to notify the requesting user of expiry or not", - "type": "boolean" - }, - "profile": { - "description": "Profile used on this invite", - "type": "string", - "example": "DefaultProfile" - }, - "remaining-uses": { - "description": "Remaining number of uses (if applicable)", - "type": "integer" - }, - "used-by": { - "description": "Users who have used this invite", - "type": "array", - "items": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - }, - "main.inviteProfileDTO": { - "type": "object", - "properties": { - "invite": { - "description": "Invite to apply to", - "type": "string", - "example": "slakdaslkdl2342" - }, - "profile": { - "description": "Profile to use", - "type": "string", - "example": "DefaultProfile" - } - } - }, - "main.modifyEmailsDTO": { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "main.newProfileDTO": { - "type": "object", - "required": [ - "id", - "name" - ], - "properties": { - "homescreen": { - "description": "Whether to store homescreen layout or not", - "type": "boolean", - "example": true - }, - "id": { - "description": "ID of user to source settings from", - "type": "string", - "example": "kasdjlaskjd342342" - }, - "name": { - "description": "Name of the profile", - "type": "string", - "example": "DefaultProfile" - } - } - }, - "main.newUserDTO": { - "type": "object", - "required": [ - "password", - "username" - ], - "properties": { - "code": { - "description": "Invite code (required on /newUser)", - "type": "string", - "example": "abc0933jncjkcjj" - }, - "email": { - "description": "User's email address", - "type": "string", - "example": "jeff@jellyf.in" - }, - "password": { - "description": "User's password", - "type": "string", - "example": "guest" - }, - "username": { - "description": "User's username", - "type": "string", - "example": "jeff" - } - } - }, - "main.ombiUser": { - "type": "object", - "properties": { - "id": { - "description": "userID of Ombi user", - "type": "string", - "example": "djgkjdg7dkjfsj8" - }, - "name": { - "description": "Name of Ombi user", - "type": "string", - "example": "jeff" - } - } - }, - "main.ombiUsersDTO": { - "type": "object", - "properties": { - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/main.ombiUser" - } - } - } - }, - "main.profileChangeDTO": { - "type": "object", - "required": [ - "name" - ], - "properties": { - "name": { - "description": "Name of the profile", - "type": "string", - "example": "DefaultProfile" - } - } - }, - "main.profileDTO": { - "type": "object", - "properties": { - "admin": { - "description": "Whether profile has admin rights or not", - "type": "boolean", - "example": false - }, - "fromUser": { - "description": "The user the profile is based on", - "type": "string", - "example": "jeff" - }, - "libraries": { - "description": "Number of libraries profile has access to", - "type": "string", - "example": "all" - } - } - }, - "main.respUser": { - "type": "object", - "properties": { - "admin": { - "description": "Whether or not the user is Administrator", - "type": "boolean", - "example": false - }, - "email": { - "description": "Email address of user (if available)", - "type": "string", - "example": "jeff@jellyf.in" - }, - "id": { - "description": "userID of user", - "type": "string", - "example": "fdgsdfg45534fa" - }, - "last_active": { - "description": "Time of last activity on Jellyfin", - "type": "string" - }, - "name": { - "description": "Username of user", - "type": "string", - "example": "jeff" - } - } - }, - "main.setNotifyDTO": { - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/main.setNotifyValues" - } - }, - "main.setNotifyValues": { - "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "notify-creation": { - "description": "Whether to notify the requesting user of account creation or not", - "type": "boolean" - }, - "notify-expiry": { - "description": "Whether to notify the requesting user of expiry or not", - "type": "boolean" - } - } - } - }, - "main.stringResponse": { - "type": "object", - "properties": { - "error": { - "type": "string", - "example": "errorDescription" - }, - "response": { - "type": "string", - "example": "message" - } - } - }, - "main.userSettingsDTO": { - "type": "object", - "properties": { - "apply_to": { - "description": "Users to apply settings to", - "type": "array", - "items": { - "type": "string" - } - }, - "from": { - "description": "Whether to apply from \"user\" or \"profile\"", - "type": "string" - }, - "homescreen": { - "description": "Whether to apply homescreen layout or not", - "type": "boolean" - }, - "id": { - "description": "ID of user (if from = \"user\")", - "type": "string" - }, - "profile": { - "description": "Name of profile (if from = \"profile\")", - "type": "string" - } - } - } - } -} \ No newline at end of file diff --git a/docs/swagger.yaml b/docs/swagger.yaml deleted file mode 100644 index 29c7b6d..0000000 --- a/docs/swagger.yaml +++ /dev/null @@ -1,678 +0,0 @@ -basePath: / -definitions: - main.PasswordValidation: - properties: - characters: - description: Number of characters - type: boolean - lowercase characters: - description: Number of lowercase characters - type: boolean - numbers: - description: Number of numbers - type: boolean - special characters: - description: Number of special characters - type: boolean - uppercase characters: - description: Number of uppercase characters - type: boolean - type: object - main.boolResponse: - properties: - error: - example: true - type: boolean - success: - example: false - type: boolean - type: object - main.configDTO: - additionalProperties: true - type: object - main.deleteInviteDTO: - properties: - code: - description: Code of invite to delete - example: skjadajd43234s - type: string - type: object - main.deleteUserDTO: - properties: - notify: - description: Whether to notify users of deletion - type: boolean - reason: - description: Account deletion reason (for notification) - type: string - users: - description: List of usernames to delete - items: - type: string - type: array - required: - - users - type: object - main.errorListDTO: - additionalProperties: - additionalProperties: - type: string - type: object - type: object - main.generateInviteDTO: - properties: - days: - description: Number of days - example: 1 - type: integer - email: - description: Send invite to this address - example: jeff@jellyf.in - type: string - hours: - description: Number of hours - example: 2 - type: integer - minutes: - description: Number of minutes - example: 3 - type: integer - multiple-uses: - description: Allow multiple uses - example: true - type: boolean - no-limit: - description: No invite use limit - example: false - type: boolean - profile: - description: Name of profile to apply on this invite - example: DefaultProfile - type: string - remaining-uses: - description: Remaining invite uses - example: 5 - type: integer - type: object - main.getInvitesDTO: - properties: - invites: - description: List of invites - items: - $ref: '#/definitions/main.inviteDTO' - type: array - profiles: - description: List of profiles (name only) - items: - type: string - type: array - type: object - main.getProfilesDTO: - properties: - default_profile: - type: string - profiles: - additionalProperties: - $ref: '#/definitions/main.profileDTO' - type: object - type: object - main.getUsersDTO: - properties: - users: - items: - $ref: '#/definitions/main.respUser' - type: array - type: object - main.inviteDTO: - properties: - code: - description: Invite code - example: sajdlj23423j23 - type: string - created: - description: Date of creation - example: 01/01/20 12:00 - type: string - days: - description: Number of days till expiry - example: 1 - type: integer - email: - description: Email the invite was sent to (if applicable) - type: string - hours: - description: Number of hours till expiry - example: 2 - type: integer - minutes: - description: Number of minutes till expiry - example: 3 - type: integer - no-limit: - description: If true, invite can be used any number of times - type: boolean - notify-creation: - description: Whether to notify the requesting user of account creation or not - type: boolean - notify-expiry: - description: Whether to notify the requesting user of expiry or not - type: boolean - profile: - description: Profile used on this invite - example: DefaultProfile - type: string - remaining-uses: - description: Remaining number of uses (if applicable) - type: integer - used-by: - description: Users who have used this invite - items: - items: - type: string - type: array - type: array - type: object - main.inviteProfileDTO: - properties: - invite: - description: Invite to apply to - example: slakdaslkdl2342 - type: string - profile: - description: Profile to use - example: DefaultProfile - type: string - type: object - main.modifyEmailsDTO: - additionalProperties: - type: string - type: object - main.newProfileDTO: - properties: - homescreen: - description: Whether to store homescreen layout or not - example: true - type: boolean - id: - description: ID of user to source settings from - example: kasdjlaskjd342342 - type: string - name: - description: Name of the profile - example: DefaultProfile - type: string - required: - - id - - name - type: object - main.newUserDTO: - properties: - code: - description: Invite code (required on /newUser) - example: abc0933jncjkcjj - type: string - email: - description: User's email address - example: jeff@jellyf.in - type: string - password: - description: User's password - example: guest - type: string - username: - description: User's username - example: jeff - type: string - required: - - password - - username - type: object - main.ombiUser: - properties: - id: - description: userID of Ombi user - example: djgkjdg7dkjfsj8 - type: string - name: - description: Name of Ombi user - example: jeff - type: string - type: object - main.ombiUsersDTO: - properties: - users: - items: - $ref: '#/definitions/main.ombiUser' - type: array - type: object - main.profileChangeDTO: - properties: - name: - description: Name of the profile - example: DefaultProfile - type: string - required: - - name - type: object - main.profileDTO: - properties: - admin: - description: Whether profile has admin rights or not - example: false - type: boolean - fromUser: - description: The user the profile is based on - example: jeff - type: string - libraries: - description: Number of libraries profile has access to - example: all - type: string - type: object - main.respUser: - properties: - admin: - description: Whether or not the user is Administrator - example: false - type: boolean - email: - description: Email address of user (if available) - example: jeff@jellyf.in - type: string - id: - description: userID of user - example: fdgsdfg45534fa - type: string - last_active: - description: Time of last activity on Jellyfin - type: string - name: - description: Username of user - example: jeff - type: string - type: object - main.setNotifyDTO: - additionalProperties: - $ref: '#/definitions/main.setNotifyValues' - type: object - main.setNotifyValues: - additionalProperties: - properties: - notify-creation: - description: Whether to notify the requesting user of account creation or not - type: boolean - notify-expiry: - description: Whether to notify the requesting user of expiry or not - type: boolean - type: object - type: object - main.stringResponse: - properties: - error: - example: errorDescription - type: string - response: - example: message - type: string - type: object - main.userSettingsDTO: - properties: - apply_to: - description: Users to apply settings to - items: - type: string - type: array - from: - description: Whether to apply from "user" or "profile" - type: string - homescreen: - description: Whether to apply homescreen layout or not - type: boolean - id: - description: ID of user (if from = "user") - type: string - profile: - description: Name of profile (if from = "profile") - type: string - type: object -info: - contact: - email: hrfee@protonmail.ch - name: Harvey Tindall - description: API for the jfa-go frontend - license: - name: MIT - url: https://raw.githubusercontent.com/hrfee/jfa-go/main/LICENSE - title: jfa-go internal API - version: 0.2.0 -paths: - /config: - get: - produces: - - application/json - responses: - "200": - description: Uses the same format as config-base.json - schema: - $ref: '#/definitions/main.configDTO' - summary: Get jfa-go configuration. - /invites: - delete: - parameters: - - description: Delete invite object - in: body - name: deleteInviteDTO - required: true - schema: - $ref: '#/definitions/main.deleteInviteDTO' - produces: - - application/json - responses: - "200": - description: OK - schema: - $ref: '#/definitions/main.boolResponse' - "400": - description: Bad Request - schema: - $ref: '#/definitions/main.stringResponse' - summary: Delete an invite. - get: - produces: - - application/json - responses: - "200": - description: OK - schema: - $ref: '#/definitions/main.getInvitesDTO' - summary: Get invites. - post: - parameters: - - description: New invite request object - in: body - name: generateInviteDTO - required: true - schema: - $ref: '#/definitions/main.generateInviteDTO' - produces: - - application/json - responses: - "200": - description: OK - schema: - $ref: '#/definitions/main.boolResponse' - summary: Create a new invite. - /invites/notify: - post: - parameters: - - description: Map of invite codes to notification settings objects - in: body - name: setNotifyDTO - required: true - schema: - $ref: '#/definitions/main.setNotifyDTO' - produces: - - application/json - responses: - "200": {} - "400": - description: Bad Request - schema: - $ref: '#/definitions/main.stringResponse' - "500": - description: Internal Server Error - schema: - $ref: '#/definitions/main.stringResponse' - summary: Set notification preferences for an invite. - /invites/profile: - post: - parameters: - - description: Invite profile object - in: body - name: inviteProfileDTO - required: true - schema: - $ref: '#/definitions/main.inviteProfileDTO' - produces: - - application/json - responses: - "200": - description: OK - schema: - $ref: '#/definitions/main.boolResponse' - "500": - description: Internal Server Error - schema: - $ref: '#/definitions/main.stringResponse' - summary: Set profile for an invite - /logout: - post: - produces: - - application/json - responses: - "200": - description: OK - schema: - $ref: '#/definitions/main.boolResponse' - "500": - description: Internal Server Error - schema: - $ref: '#/definitions/main.stringResponse' - summary: Logout by deleting refresh token from cookies. - /newUser: - post: - parameters: - - description: New user request object - in: body - name: newUserDTO - required: true - schema: - $ref: '#/definitions/main.newUserDTO' - produces: - - application/json - responses: - "200": - description: OK - schema: - $ref: '#/definitions/main.PasswordValidation' - "400": - description: Bad Request - schema: - $ref: '#/definitions/main.PasswordValidation' - summary: Creates a new Jellyfin user via invite code - /ombi/defaults: - post: - parameters: - - description: User to source settings from - in: body - name: ombiUser - required: true - schema: - $ref: '#/definitions/main.ombiUser' - produces: - - application/json - responses: - "200": - description: OK - schema: - $ref: '#/definitions/main.boolResponse' - "500": - description: Internal Server Error - schema: - $ref: '#/definitions/main.stringResponse' - summary: Set new user defaults for Ombi accounts. - /ombi/users: - get: - produces: - - application/json - responses: - "200": - description: OK - schema: - $ref: '#/definitions/main.ombiUsersDTO' - "500": - description: Internal Server Error - schema: - $ref: '#/definitions/main.stringResponse' - summary: Get a list of Ombi users. - /profiles: - delete: - parameters: - - description: Delete profile object - in: body - name: profileChangeDTO - required: true - schema: - $ref: '#/definitions/main.profileChangeDTO' - produces: - - application/json - responses: - "200": - description: OK - schema: - $ref: '#/definitions/main.boolResponse' - summary: Delete an existing profile - get: - produces: - - application/json - responses: - "200": - description: OK - schema: - $ref: '#/definitions/main.getProfilesDTO' - summary: Get a list of profiles - post: - parameters: - - description: New profile object - in: body - name: newProfileDTO - required: true - schema: - $ref: '#/definitions/main.newProfileDTO' - produces: - - application/json - responses: - "200": - description: OK - schema: - $ref: '#/definitions/main.boolResponse' - "500": - description: Internal Server Error - schema: - $ref: '#/definitions/main.stringResponse' - summary: Create a profile based on a Jellyfin user's settings. - /profiles/default: - post: - parameters: - - description: Default profile object - in: body - name: profileChangeDTO - required: true - schema: - $ref: '#/definitions/main.profileChangeDTO' - produces: - - application/json - responses: - "200": - description: OK - schema: - $ref: '#/definitions/main.boolResponse' - "500": - description: Internal Server Error - schema: - $ref: '#/definitions/main.stringResponse' - summary: Set the default profile to use. - /users: - delete: - parameters: - - description: User deletion request object - in: body - name: deleteUserDTO - required: true - schema: - $ref: '#/definitions/main.deleteUserDTO' - produces: - - application/json - responses: - "200": - description: OK - schema: - $ref: '#/definitions/main.boolResponse' - "400": - description: Bad Request - schema: - $ref: '#/definitions/main.stringResponse' - "500": - description: List of errors - schema: - $ref: '#/definitions/main.errorListDTO' - summary: Delete a list of users, optionally notifying them why. - get: - produces: - - application/json - responses: - "200": - description: OK - schema: - $ref: '#/definitions/main.getUsersDTO' - "500": - description: Internal Server Error - schema: - $ref: '#/definitions/main.stringResponse' - summary: Get a list of Jellyfin users. - post: - parameters: - - description: New user request object - in: body - name: newUserDTO - required: true - schema: - $ref: '#/definitions/main.newUserDTO' - produces: - - application/json - responses: - "200": {} - summary: Creates a new Jellyfin user without an invite. - /users/emails: - post: - parameters: - - description: Map of userIDs to email addresses - in: body - name: modifyEmailsDTO - required: true - schema: - $ref: '#/definitions/main.modifyEmailsDTO' - produces: - - application/json - responses: - "200": - description: OK - schema: - $ref: '#/definitions/main.boolResponse' - "500": - description: Internal Server Error - schema: - $ref: '#/definitions/main.stringResponse' - summary: Modify user's email addresses. - /users/settings: - post: - parameters: - - description: Parameters for applying settings - in: body - name: userSettingsDTO - required: true - schema: - $ref: '#/definitions/main.userSettingsDTO' - produces: - - application/json - responses: - "200": - description: OK - schema: - $ref: '#/definitions/main.errorListDTO' - "500": - description: Lists of errors that occured while applying settings - schema: - $ref: '#/definitions/main.errorListDTO' - summary: Apply settings to a list of users, either from a profile or from another user. -swagger: "2.0"