mirror of
https://github.com/LukeHagar/plexgo.git
synced 2025-12-06 12:37:46 +00:00
Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
70d2e2a152 |
@@ -1,12 +1,12 @@
|
|||||||
lockVersion: 2.0.0
|
lockVersion: 2.0.0
|
||||||
id: dfa99515-01c0-42eb-9be5-ee212fd03eb3
|
id: dfa99515-01c0-42eb-9be5-ee212fd03eb3
|
||||||
management:
|
management:
|
||||||
docChecksum: a14d0ae27d4f5bd83b80747112f74352
|
docChecksum: 1e8e82037a237e1d1467721fbd2c7ab0
|
||||||
docVersion: 0.0.3
|
docVersion: 0.0.3
|
||||||
speakeasyVersion: internal
|
speakeasyVersion: internal
|
||||||
generationVersion: 2.237.2
|
generationVersion: 2.237.3
|
||||||
releaseVersion: 0.0.5
|
releaseVersion: 0.1.0
|
||||||
configChecksum: 5b3127b5f000f6d96e7a3e6ea5fc06e9
|
configChecksum: 73d3c85671a6bde12c0c56fe7e1dc772
|
||||||
repoURL: https://github.com/LukeHagar/plexgo.git
|
repoURL: https://github.com/LukeHagar/plexgo.git
|
||||||
repoSubDirectory: .
|
repoSubDirectory: .
|
||||||
installationURL: https://github.com/LukeHagar/plexgo
|
installationURL: https://github.com/LukeHagar/plexgo
|
||||||
@@ -19,6 +19,7 @@ features:
|
|||||||
globalSecurity: 2.82.4
|
globalSecurity: 2.82.4
|
||||||
globalServerURLs: 2.82.1
|
globalServerURLs: 2.82.1
|
||||||
nameOverrides: 2.81.1
|
nameOverrides: 2.81.1
|
||||||
|
unions: 2.85.2
|
||||||
generatedFiles:
|
generatedFiles:
|
||||||
- server.go
|
- server.go
|
||||||
- media.go
|
- media.go
|
||||||
@@ -173,6 +174,11 @@ generatedFiles:
|
|||||||
- docs/models/operations/mediacontainer.md
|
- docs/models/operations/mediacontainer.md
|
||||||
- docs/models/operations/getservercapabilitiesresponsebody.md
|
- docs/models/operations/getservercapabilitiesresponsebody.md
|
||||||
- docs/models/operations/getservercapabilitiesresponse.md
|
- docs/models/operations/getservercapabilitiesresponse.md
|
||||||
|
- docs/models/operations/two.md
|
||||||
|
- docs/models/operations/one.md
|
||||||
|
- docs/models/operations/setting.md
|
||||||
|
- docs/models/operations/getserverpreferencesmediacontainer.md
|
||||||
|
- docs/models/operations/getserverpreferencesresponsebody.md
|
||||||
- docs/models/operations/getserverpreferencesresponse.md
|
- docs/models/operations/getserverpreferencesresponse.md
|
||||||
- docs/models/operations/server.md
|
- docs/models/operations/server.md
|
||||||
- docs/models/operations/getavailableclientsmediacontainer.md
|
- docs/models/operations/getavailableclientsmediacontainer.md
|
||||||
@@ -265,6 +271,12 @@ generatedFiles:
|
|||||||
- docs/models/operations/includedetails.md
|
- docs/models/operations/includedetails.md
|
||||||
- docs/models/operations/getlibraryrequest.md
|
- docs/models/operations/getlibraryrequest.md
|
||||||
- docs/models/operations/getlibrarydirectory.md
|
- docs/models/operations/getlibrarydirectory.md
|
||||||
|
- docs/models/operations/filter.md
|
||||||
|
- docs/models/operations/sort.md
|
||||||
|
- docs/models/operations/field.md
|
||||||
|
- docs/models/operations/getlibrarytype.md
|
||||||
|
- docs/models/operations/operator.md
|
||||||
|
- docs/models/operations/fieldtype.md
|
||||||
- docs/models/operations/getlibrarymediacontainer.md
|
- docs/models/operations/getlibrarymediacontainer.md
|
||||||
- docs/models/operations/getlibraryresponsebody.md
|
- docs/models/operations/getlibraryresponsebody.md
|
||||||
- docs/models/operations/getlibraryresponse.md
|
- docs/models/operations/getlibraryresponse.md
|
||||||
|
|||||||
10
RELEASES.md
10
RELEASES.md
@@ -49,3 +49,13 @@ Based on:
|
|||||||
- [go v0.0.5] .
|
- [go v0.0.5] .
|
||||||
### Releases
|
### Releases
|
||||||
- [Go v0.0.5] https://github.com/LukeHagar/plexgo/releases/tag/v0.0.5 - .
|
- [Go v0.0.5] https://github.com/LukeHagar/plexgo/releases/tag/v0.0.5 - .
|
||||||
|
|
||||||
|
## 2024-01-20 03:10:19
|
||||||
|
### Changes
|
||||||
|
Based on:
|
||||||
|
- OpenAPI Doc 0.0.3
|
||||||
|
- Speakeasy CLI 1.148.0 (2.237.3) https://github.com/speakeasy-api/speakeasy
|
||||||
|
### Generated
|
||||||
|
- [go v0.1.0] .
|
||||||
|
### Releases
|
||||||
|
- [Go v0.1.0] https://github.com/LukeHagar/plexgo/releases/tag/v0.1.0 - .
|
||||||
11
docs/models/operations/field.md
Normal file
11
docs/models/operations/field.md
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
# Field
|
||||||
|
|
||||||
|
|
||||||
|
## Fields
|
||||||
|
|
||||||
|
| Field | Type | Required | Description | Example |
|
||||||
|
| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ |
|
||||||
|
| `Key` | **string* | :heavy_minus_sign: | N/A | label |
|
||||||
|
| `Title` | **string* | :heavy_minus_sign: | N/A | Label |
|
||||||
|
| `Type` | **string* | :heavy_minus_sign: | N/A | tag |
|
||||||
|
| `SubType` | **string* | :heavy_minus_sign: | N/A | bitrate |
|
||||||
9
docs/models/operations/fieldtype.md
Normal file
9
docs/models/operations/fieldtype.md
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
# FieldType
|
||||||
|
|
||||||
|
|
||||||
|
## Fields
|
||||||
|
|
||||||
|
| Field | Type | Required | Description | Example |
|
||||||
|
| ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
|
||||||
|
| `Type` | **string* | :heavy_minus_sign: | N/A | resolution |
|
||||||
|
| `Operator` | [][operations.Operator](../../models/operations/operator.md) | :heavy_minus_sign: | N/A | [{"key":"=","title":"is"}] |
|
||||||
12
docs/models/operations/filter.md
Normal file
12
docs/models/operations/filter.md
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
# Filter
|
||||||
|
|
||||||
|
|
||||||
|
## Fields
|
||||||
|
|
||||||
|
| Field | Type | Required | Description | Example |
|
||||||
|
| ------------------------- | ------------------------- | ------------------------- | ------------------------- | ------------------------- |
|
||||||
|
| `Filter` | **string* | :heavy_minus_sign: | N/A | label |
|
||||||
|
| `FilterType` | **string* | :heavy_minus_sign: | N/A | string |
|
||||||
|
| `Key` | **string* | :heavy_minus_sign: | N/A | /library/sections/1/label |
|
||||||
|
| `Title` | **string* | :heavy_minus_sign: | N/A | Labels |
|
||||||
|
| `Type` | **string* | :heavy_minus_sign: | N/A | filter |
|
||||||
@@ -5,8 +5,8 @@
|
|||||||
|
|
||||||
| Field | Type | Required | Description | Example |
|
| Field | Type | Required | Description | Example |
|
||||||
| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ |
|
| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ |
|
||||||
|
| `Key` | **string* | :heavy_minus_sign: | N/A | search?type=1 |
|
||||||
|
| `Title` | **string* | :heavy_minus_sign: | N/A | Search... |
|
||||||
| `Secondary` | **bool* | :heavy_minus_sign: | N/A | true |
|
| `Secondary` | **bool* | :heavy_minus_sign: | N/A | true |
|
||||||
| `Prompt` | **string* | :heavy_minus_sign: | N/A | Search Movies |
|
| `Prompt` | **string* | :heavy_minus_sign: | N/A | Search Movies |
|
||||||
| `Search` | **bool* | :heavy_minus_sign: | N/A | true |
|
| `Search` | **bool* | :heavy_minus_sign: | N/A | true |
|
||||||
| `Key` | **string* | :heavy_minus_sign: | N/A | search?type=1 |
|
|
||||||
| `Title` | **string* | :heavy_minus_sign: | N/A | Search... |
|
|
||||||
File diff suppressed because one or more lines are too long
14
docs/models/operations/getlibrarytype.md
Normal file
14
docs/models/operations/getlibrarytype.md
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
# GetLibraryType
|
||||||
|
|
||||||
|
|
||||||
|
## Fields
|
||||||
|
|
||||||
|
| Field | Type | Required | Description | Example |
|
||||||
|
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||||
|
| `Key` | **string* | :heavy_minus_sign: | N/A | /library/sections/1/all?type=1 |
|
||||||
|
| `Type` | **string* | :heavy_minus_sign: | N/A | movie |
|
||||||
|
| `Title` | **string* | :heavy_minus_sign: | N/A | Movies |
|
||||||
|
| `Active` | **bool* | :heavy_minus_sign: | N/A | false |
|
||||||
|
| `Filter` | [][operations.Filter](../../models/operations/filter.md) | :heavy_minus_sign: | N/A | [{"filter":"label","filterType":"string","key":"/library/sections/1/label","title":"Labels","type":"filter"}] |
|
||||||
|
| `Sort` | [][operations.Sort](../../models/operations/sort.md) | :heavy_minus_sign: | N/A | [{"default":"asc","defaultDirection":"desc","descKey":"random:desc","firstCharacterKey":"/library/sections/1/firstCharacter","key":"random","title":"Randomly"}] |
|
||||||
|
| `Field` | [][operations.Field](../../models/operations/field.md) | :heavy_minus_sign: | N/A | [{"key":"label","subType":"bitrate","title":"Label","type":"tag"}] |
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
# GetServerPreferencesMediaContainer
|
||||||
|
|
||||||
|
|
||||||
|
## Fields
|
||||||
|
|
||||||
|
| Field | Type | Required | Description | Example |
|
||||||
|
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||||
|
| `Size` | **int* | :heavy_minus_sign: | N/A | 161 |
|
||||||
|
| `Setting` | [][operations.Setting](../../models/operations/setting.md) | :heavy_minus_sign: | N/A | [{"advanced":false,"default":"","group":"general","hidden":false,"id":"FriendlyName","label":"Friendly name","summary":"This name will be used to identify this media server to other computers on your network. If you leave it blank, your computer's name will be used instead.","type":"text","value":"Hera"},{"advanced":false,"default":3600,"enumValues":"900:every 15 minutes\|1800:every 30 minutes\|3600:hourly\|7200:every 2 hours\|21600:every 6 hours\|43200:every 12 hours\|86400:daily","group":"library","hidden":false,"id":"ScheduledLibraryUpdateInterval","label":"Library scan interval","summary":"","type":"int","value":3600}] |
|
||||||
@@ -3,8 +3,9 @@
|
|||||||
|
|
||||||
## Fields
|
## Fields
|
||||||
|
|
||||||
| Field | Type | Required | Description |
|
| Field | Type | Required | Description |
|
||||||
| ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- |
|
| ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- |
|
||||||
| `ContentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
|
| `ContentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
|
||||||
| `StatusCode` | *int* | :heavy_check_mark: | HTTP response status code for this operation |
|
| `StatusCode` | *int* | :heavy_check_mark: | HTTP response status code for this operation |
|
||||||
| `RawResponse` | [*http.Response](https://pkg.go.dev/net/http#Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
|
| `RawResponse` | [*http.Response](https://pkg.go.dev/net/http#Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
|
||||||
|
| `Object` | [*operations.GetServerPreferencesResponseBody](../../models/operations/getserverpreferencesresponsebody.md) | :heavy_minus_sign: | Server Preferences |
|
||||||
10
docs/models/operations/getserverpreferencesresponsebody.md
Normal file
10
docs/models/operations/getserverpreferencesresponsebody.md
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# GetServerPreferencesResponseBody
|
||||||
|
|
||||||
|
Server Preferences
|
||||||
|
|
||||||
|
|
||||||
|
## Fields
|
||||||
|
|
||||||
|
| Field | Type | Required | Description |
|
||||||
|
| --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
|
||||||
|
| `MediaContainer` | [*operations.GetServerPreferencesMediaContainer](../../models/operations/getserverpreferencesmediacontainer.md) | :heavy_minus_sign: | N/A |
|
||||||
16
docs/models/operations/one.md
Normal file
16
docs/models/operations/one.md
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
# One
|
||||||
|
|
||||||
|
|
||||||
|
## Fields
|
||||||
|
|
||||||
|
| Field | Type | Required | Description | Example |
|
||||||
|
| ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||||
|
| `ID` | **string* | :heavy_minus_sign: | N/A | FriendlyName |
|
||||||
|
| `Label` | **string* | :heavy_minus_sign: | N/A | Friendly name |
|
||||||
|
| `Summary` | **string* | :heavy_minus_sign: | N/A | This name will be used to identify this media server to other computers on your network. If you leave it blank, your computer's name will be used instead. |
|
||||||
|
| `Type` | **string* | :heavy_minus_sign: | N/A | text |
|
||||||
|
| `Default` | **string* | :heavy_minus_sign: | N/A | |
|
||||||
|
| `Value` | **string* | :heavy_minus_sign: | N/A | Hera |
|
||||||
|
| `Hidden` | **bool* | :heavy_minus_sign: | N/A | false |
|
||||||
|
| `Advanced` | **bool* | :heavy_minus_sign: | N/A | false |
|
||||||
|
| `Group` | **string* | :heavy_minus_sign: | N/A | general |
|
||||||
9
docs/models/operations/operator.md
Normal file
9
docs/models/operations/operator.md
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
# Operator
|
||||||
|
|
||||||
|
|
||||||
|
## Fields
|
||||||
|
|
||||||
|
| Field | Type | Required | Description | Example |
|
||||||
|
| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ |
|
||||||
|
| `Key` | **string* | :heavy_minus_sign: | N/A | = |
|
||||||
|
| `Title` | **string* | :heavy_minus_sign: | N/A | is |
|
||||||
17
docs/models/operations/setting.md
Normal file
17
docs/models/operations/setting.md
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
# Setting
|
||||||
|
|
||||||
|
|
||||||
|
## Supported Types
|
||||||
|
|
||||||
|
### One
|
||||||
|
|
||||||
|
```go
|
||||||
|
setting := operations.CreateSettingOne(operations.One{/* values here */})
|
||||||
|
```
|
||||||
|
|
||||||
|
### Two
|
||||||
|
|
||||||
|
```go
|
||||||
|
setting := operations.CreateSettingTwo(operations.Two{/* values here */})
|
||||||
|
```
|
||||||
|
|
||||||
13
docs/models/operations/sort.md
Normal file
13
docs/models/operations/sort.md
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
# Sort
|
||||||
|
|
||||||
|
|
||||||
|
## Fields
|
||||||
|
|
||||||
|
| Field | Type | Required | Description | Example |
|
||||||
|
| ---------------------------------- | ---------------------------------- | ---------------------------------- | ---------------------------------- | ---------------------------------- |
|
||||||
|
| `Default` | **string* | :heavy_minus_sign: | N/A | asc |
|
||||||
|
| `DefaultDirection` | **string* | :heavy_minus_sign: | N/A | desc |
|
||||||
|
| `DescKey` | **string* | :heavy_minus_sign: | N/A | random:desc |
|
||||||
|
| `FirstCharacterKey` | **string* | :heavy_minus_sign: | N/A | /library/sections/1/firstCharacter |
|
||||||
|
| `Key` | **string* | :heavy_minus_sign: | N/A | random |
|
||||||
|
| `Title` | **string* | :heavy_minus_sign: | N/A | Randomly |
|
||||||
17
docs/models/operations/two.md
Normal file
17
docs/models/operations/two.md
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
# Two
|
||||||
|
|
||||||
|
|
||||||
|
## Fields
|
||||||
|
|
||||||
|
| Field | Type | Required | Description | Example |
|
||||||
|
| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ |
|
||||||
|
| `ID` | **string* | :heavy_minus_sign: | N/A | ScheduledLibraryUpdateInterval |
|
||||||
|
| `Label` | **string* | :heavy_minus_sign: | N/A | Library scan interval |
|
||||||
|
| `Summary` | **string* | :heavy_minus_sign: | N/A | |
|
||||||
|
| `Type` | **string* | :heavy_minus_sign: | N/A | int |
|
||||||
|
| `Default` | **int* | :heavy_minus_sign: | N/A | 3600 |
|
||||||
|
| `Value` | **int* | :heavy_minus_sign: | N/A | 3600 |
|
||||||
|
| `Hidden` | **bool* | :heavy_minus_sign: | N/A | false |
|
||||||
|
| `Advanced` | **bool* | :heavy_minus_sign: | N/A | false |
|
||||||
|
| `Group` | **string* | :heavy_minus_sign: | N/A | library |
|
||||||
|
| `EnumValues` | **string* | :heavy_minus_sign: | N/A | 900:every 15 minutes\|1800:every 30 minutes\|3600:hourly\|7200:every 2 hours\|21600:every 6 hours\|43200:every 12 hours\|86400:daily |
|
||||||
@@ -79,7 +79,6 @@ import(
|
|||||||
"github.com/LukeHagar/plexgo"
|
"github.com/LukeHagar/plexgo"
|
||||||
"context"
|
"context"
|
||||||
"log"
|
"log"
|
||||||
"net/http"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
@@ -93,7 +92,7 @@ func main() {
|
|||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if res.StatusCode == http.StatusOK {
|
if res.Object != nil {
|
||||||
// handle response
|
// handle response
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
2
gen.yaml
2
gen.yaml
@@ -8,7 +8,7 @@ generation:
|
|||||||
fixes:
|
fixes:
|
||||||
nameResolutionDec2023: false
|
nameResolutionDec2023: false
|
||||||
go:
|
go:
|
||||||
version: 0.0.5
|
version: 0.1.0
|
||||||
clientServerStatusCodesAsErrors: true
|
clientServerStatusCodesAsErrors: true
|
||||||
flattenGlobalSecurity: true
|
flattenGlobalSecurity: true
|
||||||
imports:
|
imports:
|
||||||
|
|||||||
@@ -73,11 +73,25 @@ func (o *GetLibraryRequest) GetIncludeDetails() *IncludeDetails {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type GetLibraryDirectory struct {
|
type GetLibraryDirectory struct {
|
||||||
|
Key *string `json:"key,omitempty"`
|
||||||
|
Title *string `json:"title,omitempty"`
|
||||||
Secondary *bool `json:"secondary,omitempty"`
|
Secondary *bool `json:"secondary,omitempty"`
|
||||||
Prompt *string `json:"prompt,omitempty"`
|
Prompt *string `json:"prompt,omitempty"`
|
||||||
Search *bool `json:"search,omitempty"`
|
Search *bool `json:"search,omitempty"`
|
||||||
Key *string `json:"key,omitempty"`
|
}
|
||||||
Title *string `json:"title,omitempty"`
|
|
||||||
|
func (o *GetLibraryDirectory) GetKey() *string {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.Key
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetLibraryDirectory) GetTitle() *string {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.Title
|
||||||
}
|
}
|
||||||
|
|
||||||
func (o *GetLibraryDirectory) GetSecondary() *bool {
|
func (o *GetLibraryDirectory) GetSecondary() *bool {
|
||||||
@@ -101,20 +115,232 @@ func (o *GetLibraryDirectory) GetSearch() *bool {
|
|||||||
return o.Search
|
return o.Search
|
||||||
}
|
}
|
||||||
|
|
||||||
func (o *GetLibraryDirectory) GetKey() *string {
|
type Filter struct {
|
||||||
|
Filter *string `json:"filter,omitempty"`
|
||||||
|
FilterType *string `json:"filterType,omitempty"`
|
||||||
|
Key *string `json:"key,omitempty"`
|
||||||
|
Title *string `json:"title,omitempty"`
|
||||||
|
Type *string `json:"type,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *Filter) GetFilter() *string {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.Filter
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *Filter) GetFilterType() *string {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.FilterType
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *Filter) GetKey() *string {
|
||||||
if o == nil {
|
if o == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
return o.Key
|
return o.Key
|
||||||
}
|
}
|
||||||
|
|
||||||
func (o *GetLibraryDirectory) GetTitle() *string {
|
func (o *Filter) GetTitle() *string {
|
||||||
if o == nil {
|
if o == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
return o.Title
|
return o.Title
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (o *Filter) GetType() *string {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.Type
|
||||||
|
}
|
||||||
|
|
||||||
|
type Sort struct {
|
||||||
|
Default *string `json:"default,omitempty"`
|
||||||
|
DefaultDirection *string `json:"defaultDirection,omitempty"`
|
||||||
|
DescKey *string `json:"descKey,omitempty"`
|
||||||
|
FirstCharacterKey *string `json:"firstCharacterKey,omitempty"`
|
||||||
|
Key *string `json:"key,omitempty"`
|
||||||
|
Title *string `json:"title,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *Sort) GetDefault() *string {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.Default
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *Sort) GetDefaultDirection() *string {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.DefaultDirection
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *Sort) GetDescKey() *string {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.DescKey
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *Sort) GetFirstCharacterKey() *string {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.FirstCharacterKey
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *Sort) GetKey() *string {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.Key
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *Sort) GetTitle() *string {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.Title
|
||||||
|
}
|
||||||
|
|
||||||
|
type Field struct {
|
||||||
|
Key *string `json:"key,omitempty"`
|
||||||
|
Title *string `json:"title,omitempty"`
|
||||||
|
Type *string `json:"type,omitempty"`
|
||||||
|
SubType *string `json:"subType,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *Field) GetKey() *string {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.Key
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *Field) GetTitle() *string {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.Title
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *Field) GetType() *string {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.Type
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *Field) GetSubType() *string {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.SubType
|
||||||
|
}
|
||||||
|
|
||||||
|
type GetLibraryType struct {
|
||||||
|
Key *string `json:"key,omitempty"`
|
||||||
|
Type *string `json:"type,omitempty"`
|
||||||
|
Title *string `json:"title,omitempty"`
|
||||||
|
Active *bool `json:"active,omitempty"`
|
||||||
|
Filter []Filter `json:"Filter,omitempty"`
|
||||||
|
Sort []Sort `json:"Sort,omitempty"`
|
||||||
|
Field []Field `json:"Field,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetLibraryType) GetKey() *string {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.Key
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetLibraryType) GetType() *string {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.Type
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetLibraryType) GetTitle() *string {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.Title
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetLibraryType) GetActive() *bool {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.Active
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetLibraryType) GetFilter() []Filter {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.Filter
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetLibraryType) GetSort() []Sort {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.Sort
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetLibraryType) GetField() []Field {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.Field
|
||||||
|
}
|
||||||
|
|
||||||
|
type Operator struct {
|
||||||
|
Key *string `json:"key,omitempty"`
|
||||||
|
Title *string `json:"title,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *Operator) GetKey() *string {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.Key
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *Operator) GetTitle() *string {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.Title
|
||||||
|
}
|
||||||
|
|
||||||
|
type FieldType struct {
|
||||||
|
Type *string `json:"type,omitempty"`
|
||||||
|
Operator []Operator `json:"Operator,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *FieldType) GetType() *string {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.Type
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *FieldType) GetOperator() []Operator {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.Operator
|
||||||
|
}
|
||||||
|
|
||||||
type GetLibraryMediaContainer struct {
|
type GetLibraryMediaContainer struct {
|
||||||
Size *int `json:"size,omitempty"`
|
Size *int `json:"size,omitempty"`
|
||||||
AllowSync *bool `json:"allowSync,omitempty"`
|
AllowSync *bool `json:"allowSync,omitempty"`
|
||||||
@@ -129,6 +355,8 @@ type GetLibraryMediaContainer struct {
|
|||||||
ViewGroup *string `json:"viewGroup,omitempty"`
|
ViewGroup *string `json:"viewGroup,omitempty"`
|
||||||
ViewMode *int `json:"viewMode,omitempty"`
|
ViewMode *int `json:"viewMode,omitempty"`
|
||||||
Directory []GetLibraryDirectory `json:"Directory,omitempty"`
|
Directory []GetLibraryDirectory `json:"Directory,omitempty"`
|
||||||
|
Type []GetLibraryType `json:"Type,omitempty"`
|
||||||
|
FieldType []FieldType `json:"FieldType,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (o *GetLibraryMediaContainer) GetSize() *int {
|
func (o *GetLibraryMediaContainer) GetSize() *int {
|
||||||
@@ -222,6 +450,20 @@ func (o *GetLibraryMediaContainer) GetDirectory() []GetLibraryDirectory {
|
|||||||
return o.Directory
|
return o.Directory
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (o *GetLibraryMediaContainer) GetType() []GetLibraryType {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.Type
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetLibraryMediaContainer) GetFieldType() []FieldType {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.FieldType
|
||||||
|
}
|
||||||
|
|
||||||
// GetLibraryResponseBody - The details of the library
|
// GetLibraryResponseBody - The details of the library
|
||||||
type GetLibraryResponseBody struct {
|
type GetLibraryResponseBody struct {
|
||||||
MediaContainer *GetLibraryMediaContainer `json:"MediaContainer,omitempty"`
|
MediaContainer *GetLibraryMediaContainer `json:"MediaContainer,omitempty"`
|
||||||
|
|||||||
@@ -3,9 +3,263 @@
|
|||||||
package operations
|
package operations
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"errors"
|
||||||
|
"github.com/LukeHagar/plexgo/internal/utils"
|
||||||
"net/http"
|
"net/http"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type Two struct {
|
||||||
|
ID *string `json:"id,omitempty"`
|
||||||
|
Label *string `json:"label,omitempty"`
|
||||||
|
Summary *string `json:"summary,omitempty"`
|
||||||
|
Type *string `json:"type,omitempty"`
|
||||||
|
Default *int `json:"default,omitempty"`
|
||||||
|
Value *int `json:"value,omitempty"`
|
||||||
|
Hidden *bool `json:"hidden,omitempty"`
|
||||||
|
Advanced *bool `json:"advanced,omitempty"`
|
||||||
|
Group *string `json:"group,omitempty"`
|
||||||
|
EnumValues *string `json:"enumValues,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *Two) GetID() *string {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.ID
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *Two) GetLabel() *string {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.Label
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *Two) GetSummary() *string {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.Summary
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *Two) GetType() *string {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.Type
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *Two) GetDefault() *int {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.Default
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *Two) GetValue() *int {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.Value
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *Two) GetHidden() *bool {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.Hidden
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *Two) GetAdvanced() *bool {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.Advanced
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *Two) GetGroup() *string {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.Group
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *Two) GetEnumValues() *string {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.EnumValues
|
||||||
|
}
|
||||||
|
|
||||||
|
type One struct {
|
||||||
|
ID *string `json:"id,omitempty"`
|
||||||
|
Label *string `json:"label,omitempty"`
|
||||||
|
Summary *string `json:"summary,omitempty"`
|
||||||
|
Type *string `json:"type,omitempty"`
|
||||||
|
Default *string `json:"default,omitempty"`
|
||||||
|
Value *string `json:"value,omitempty"`
|
||||||
|
Hidden *bool `json:"hidden,omitempty"`
|
||||||
|
Advanced *bool `json:"advanced,omitempty"`
|
||||||
|
Group *string `json:"group,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *One) GetID() *string {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.ID
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *One) GetLabel() *string {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.Label
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *One) GetSummary() *string {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.Summary
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *One) GetType() *string {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.Type
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *One) GetDefault() *string {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.Default
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *One) GetValue() *string {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.Value
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *One) GetHidden() *bool {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.Hidden
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *One) GetAdvanced() *bool {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.Advanced
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *One) GetGroup() *string {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.Group
|
||||||
|
}
|
||||||
|
|
||||||
|
type SettingType string
|
||||||
|
|
||||||
|
const (
|
||||||
|
SettingTypeOne SettingType = "1"
|
||||||
|
SettingTypeTwo SettingType = "2"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Setting struct {
|
||||||
|
One *One
|
||||||
|
Two *Two
|
||||||
|
|
||||||
|
Type SettingType
|
||||||
|
}
|
||||||
|
|
||||||
|
func CreateSettingOne(one One) Setting {
|
||||||
|
typ := SettingTypeOne
|
||||||
|
|
||||||
|
return Setting{
|
||||||
|
One: &one,
|
||||||
|
Type: typ,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func CreateSettingTwo(two Two) Setting {
|
||||||
|
typ := SettingTypeTwo
|
||||||
|
|
||||||
|
return Setting{
|
||||||
|
Two: &two,
|
||||||
|
Type: typ,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (u *Setting) UnmarshalJSON(data []byte) error {
|
||||||
|
|
||||||
|
one := One{}
|
||||||
|
if err := utils.UnmarshalJSON(data, &one, "", true, true); err == nil {
|
||||||
|
u.One = &one
|
||||||
|
u.Type = SettingTypeOne
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
two := Two{}
|
||||||
|
if err := utils.UnmarshalJSON(data, &two, "", true, true); err == nil {
|
||||||
|
u.Two = &two
|
||||||
|
u.Type = SettingTypeTwo
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
return errors.New("could not unmarshal into supported union types")
|
||||||
|
}
|
||||||
|
|
||||||
|
func (u Setting) MarshalJSON() ([]byte, error) {
|
||||||
|
if u.One != nil {
|
||||||
|
return utils.MarshalJSON(u.One, "", true)
|
||||||
|
}
|
||||||
|
|
||||||
|
if u.Two != nil {
|
||||||
|
return utils.MarshalJSON(u.Two, "", true)
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil, errors.New("could not marshal union type: all fields are null")
|
||||||
|
}
|
||||||
|
|
||||||
|
type GetServerPreferencesMediaContainer struct {
|
||||||
|
Size *int `json:"size,omitempty"`
|
||||||
|
Setting []Setting `json:"Setting,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetServerPreferencesMediaContainer) GetSize() *int {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.Size
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetServerPreferencesMediaContainer) GetSetting() []Setting {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.Setting
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetServerPreferencesResponseBody - Server Preferences
|
||||||
|
type GetServerPreferencesResponseBody struct {
|
||||||
|
MediaContainer *GetServerPreferencesMediaContainer `json:"MediaContainer,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *GetServerPreferencesResponseBody) GetMediaContainer() *GetServerPreferencesMediaContainer {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.MediaContainer
|
||||||
|
}
|
||||||
|
|
||||||
type GetServerPreferencesResponse struct {
|
type GetServerPreferencesResponse struct {
|
||||||
// HTTP response content type for this operation
|
// HTTP response content type for this operation
|
||||||
ContentType string
|
ContentType string
|
||||||
@@ -13,6 +267,8 @@ type GetServerPreferencesResponse struct {
|
|||||||
StatusCode int
|
StatusCode int
|
||||||
// Raw HTTP response; suitable for custom response parsing
|
// Raw HTTP response; suitable for custom response parsing
|
||||||
RawResponse *http.Response
|
RawResponse *http.Response
|
||||||
|
// Server Preferences
|
||||||
|
Object *GetServerPreferencesResponseBody
|
||||||
}
|
}
|
||||||
|
|
||||||
func (o *GetServerPreferencesResponse) GetContentType() string {
|
func (o *GetServerPreferencesResponse) GetContentType() string {
|
||||||
@@ -35,3 +291,10 @@ func (o *GetServerPreferencesResponse) GetRawResponse() *http.Response {
|
|||||||
}
|
}
|
||||||
return o.RawResponse
|
return o.RawResponse
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (o *GetServerPreferencesResponse) GetObject() *GetServerPreferencesResponseBody {
|
||||||
|
if o == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return o.Object
|
||||||
|
}
|
||||||
|
|||||||
@@ -251,9 +251,9 @@ func New(opts ...SDKOption) *PlexAPI {
|
|||||||
sdkConfiguration: sdkConfiguration{
|
sdkConfiguration: sdkConfiguration{
|
||||||
Language: "go",
|
Language: "go",
|
||||||
OpenAPIDocVersion: "0.0.3",
|
OpenAPIDocVersion: "0.0.3",
|
||||||
SDKVersion: "0.0.5",
|
SDKVersion: "0.1.0",
|
||||||
GenVersion: "2.237.2",
|
GenVersion: "2.237.3",
|
||||||
UserAgent: "speakeasy-sdk/go 0.0.5 2.237.2 0.0.3 github.com/LukeHagar/plexgo",
|
UserAgent: "speakeasy-sdk/go 0.1.0 2.237.3 0.0.3 github.com/LukeHagar/plexgo",
|
||||||
ServerDefaults: []map[string]string{
|
ServerDefaults: []map[string]string{
|
||||||
{
|
{
|
||||||
"protocol": "http",
|
"protocol": "http",
|
||||||
|
|||||||
11
server.go
11
server.go
@@ -138,6 +138,17 @@ func (s *Server) GetServerPreferences(ctx context.Context) (*operations.GetServe
|
|||||||
httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody))
|
httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody))
|
||||||
switch {
|
switch {
|
||||||
case httpRes.StatusCode == 200:
|
case httpRes.StatusCode == 200:
|
||||||
|
switch {
|
||||||
|
case utils.MatchContentType(contentType, `application/json`):
|
||||||
|
var out operations.GetServerPreferencesResponseBody
|
||||||
|
if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
res.Object = &out
|
||||||
|
default:
|
||||||
|
return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", contentType), httpRes.StatusCode, string(rawBody), httpRes)
|
||||||
|
}
|
||||||
case httpRes.StatusCode == 400:
|
case httpRes.StatusCode == 400:
|
||||||
fallthrough
|
fallthrough
|
||||||
case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500:
|
case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500:
|
||||||
|
|||||||
Reference in New Issue
Block a user