feat(openapi): refactor into indiv. files to match API & tpl routing
parent
9c5b690799
commit
84f5e4cf3d
@ -0,0 +1,91 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- admin
|
||||||
|
summary: Get system cache info
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: ""
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
postCache:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
length:
|
||||||
|
type: number
|
||||||
|
max:
|
||||||
|
type: number
|
||||||
|
nullable: true
|
||||||
|
itemCount:
|
||||||
|
type: number
|
||||||
|
percentFull:
|
||||||
|
type: number
|
||||||
|
avgPostSize:
|
||||||
|
type: number
|
||||||
|
hits:
|
||||||
|
type: string
|
||||||
|
misses:
|
||||||
|
type: string
|
||||||
|
hitRatio:
|
||||||
|
type: string
|
||||||
|
groupCache:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
length:
|
||||||
|
type: number
|
||||||
|
max:
|
||||||
|
type: number
|
||||||
|
itemCount:
|
||||||
|
type: number
|
||||||
|
percentFull:
|
||||||
|
type: number
|
||||||
|
hits:
|
||||||
|
type: string
|
||||||
|
misses:
|
||||||
|
type: string
|
||||||
|
hitRatio:
|
||||||
|
type: string
|
||||||
|
localCache:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
length:
|
||||||
|
type: number
|
||||||
|
max:
|
||||||
|
type: number
|
||||||
|
itemCount:
|
||||||
|
type: number
|
||||||
|
percentFull:
|
||||||
|
type: number
|
||||||
|
dump:
|
||||||
|
type: boolean
|
||||||
|
hits:
|
||||||
|
type: string
|
||||||
|
misses:
|
||||||
|
type: string
|
||||||
|
hitRatio:
|
||||||
|
type: string
|
||||||
|
objectCache:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
length:
|
||||||
|
type: number
|
||||||
|
max:
|
||||||
|
type: number
|
||||||
|
itemCount:
|
||||||
|
type: number
|
||||||
|
percentFull:
|
||||||
|
type: number
|
||||||
|
hits:
|
||||||
|
type: string
|
||||||
|
misses:
|
||||||
|
type: string
|
||||||
|
hitRatio:
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- postCache
|
||||||
|
- groupCache
|
||||||
|
- localCache
|
||||||
|
- $ref: ../../../components/schemas/CommonProps.yaml#/CommonProps
|
@ -0,0 +1,14 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- admin
|
||||||
|
summary: Get database information
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: "A JSON object with database status information"
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
properties: {}
|
||||||
|
additionalProperties:
|
||||||
|
type: object
|
||||||
|
description: Each database configured will have an entry here with information about its runtime status
|
@ -0,0 +1,38 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- admin
|
||||||
|
summary: Get server-side errors
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: "A JSON object containing server-side errors"
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
not-found:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
value:
|
||||||
|
type: string
|
||||||
|
description: Path to the requested URL that returned a 404
|
||||||
|
score:
|
||||||
|
type: number
|
||||||
|
description: The number of times that URL was requested
|
||||||
|
analytics:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
not-found:
|
||||||
|
type: array
|
||||||
|
description: 404 responses groups by day, from 6 days ago, to present day
|
||||||
|
items:
|
||||||
|
type: number
|
||||||
|
toobusy:
|
||||||
|
type: array
|
||||||
|
description: 503 responses groups by day, from 6 days ago, to present day
|
||||||
|
items:
|
||||||
|
type: number
|
||||||
|
- $ref: ../../../components/schemas/CommonProps.yaml#/CommonProps
|
@ -0,0 +1,12 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- admin
|
||||||
|
summary: Export errors (.csv)
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: "A CSV file containing server-side errors"
|
||||||
|
content:
|
||||||
|
text/csv:
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
format: binary
|
@ -0,0 +1,65 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- admin
|
||||||
|
summary: Get event log
|
||||||
|
parameters:
|
||||||
|
- in: query
|
||||||
|
name: type
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
description: Event name to filter by
|
||||||
|
example: config-change
|
||||||
|
- in: query
|
||||||
|
name: start
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
description: Start date to filter by
|
||||||
|
example: ''
|
||||||
|
- in: query
|
||||||
|
name: end
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
description: End date to filter by
|
||||||
|
example: ''
|
||||||
|
- in: query
|
||||||
|
name: perPage
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
description: Limit the number of events returned per page
|
||||||
|
example: 20
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: "A JSON object containing "
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
events:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
type:
|
||||||
|
type: string
|
||||||
|
additionalProperties:
|
||||||
|
description: Each individual event as added by core/plugins can append their own metadata related to the event
|
||||||
|
- $ref: ../../../components/schemas/Pagination.yaml#/Pagination
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
types:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
value:
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
selected:
|
||||||
|
type: boolean
|
||||||
|
query:
|
||||||
|
additionalProperties:
|
||||||
|
description: An object containing the query string parameters, if any
|
||||||
|
- $ref: ../../../components/schemas/CommonProps.yaml#/CommonProps
|
@ -0,0 +1,45 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- admin
|
||||||
|
summary: Get active plugin hooks
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: "A JSON object containing all hooks with active listeners"
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
hooks:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
hookName:
|
||||||
|
type: string
|
||||||
|
description: The name of the hook (also the name used in code)
|
||||||
|
methods:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
id:
|
||||||
|
type: string
|
||||||
|
description: Plugin listening to this hook
|
||||||
|
priority:
|
||||||
|
type: number
|
||||||
|
description: Priority level, lower priorities are executed earlier
|
||||||
|
method:
|
||||||
|
type: string
|
||||||
|
description: Stringified method for examination
|
||||||
|
index:
|
||||||
|
type: string
|
||||||
|
description: Internal counter used for DOM element ids
|
||||||
|
index:
|
||||||
|
type: string
|
||||||
|
description: Internal counter used for DOM element ids
|
||||||
|
count:
|
||||||
|
type: number
|
||||||
|
description: The number of listeners subscribed to this hook
|
||||||
|
- $ref: ../../../components/schemas/CommonProps.yaml#/CommonProps
|
@ -0,0 +1,17 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- admin
|
||||||
|
summary: Get server-side log output
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: "A JSON object containing the server-side log"
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
data:
|
||||||
|
type: string
|
||||||
|
description: Output of the server-side log file
|
||||||
|
- $ref: ../../../components/schemas/CommonProps.yaml#/CommonProps
|
@ -0,0 +1,58 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- admin
|
||||||
|
summary: Get site analytics
|
||||||
|
parameters:
|
||||||
|
- in: query
|
||||||
|
name: units
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
enum: [hours, days]
|
||||||
|
description: Whether to display dashboard data segmented daily or hourly
|
||||||
|
example: days
|
||||||
|
- in: query
|
||||||
|
name: until
|
||||||
|
schema:
|
||||||
|
type: number
|
||||||
|
description: A UNIX timestamp denoting the end of the analytics reporting period
|
||||||
|
example: ''
|
||||||
|
- in: query
|
||||||
|
name: count
|
||||||
|
schema:
|
||||||
|
type: number
|
||||||
|
description: The number of entries to return (e.g. if `units` is `hourly`, and `count` is `24`, the result set will contain 24 hours' worth of analytics)
|
||||||
|
example: 20
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: "A JSON object containing analytics data"
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
query:
|
||||||
|
additionalProperties:
|
||||||
|
description: The query string passed in
|
||||||
|
result:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
uniquevisitors:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: number
|
||||||
|
pageviews:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: number
|
||||||
|
pageviews:registered:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: number
|
||||||
|
pageviews:bot:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: number
|
||||||
|
pageviews:guest:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: number
|
@ -0,0 +1,18 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- admin
|
||||||
|
summary: Get appearance settings
|
||||||
|
parameters:
|
||||||
|
- name: term
|
||||||
|
in: path
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example: themes
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: ""
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: ../../components/schemas/CommonProps.yaml#/CommonProps
|
@ -0,0 +1,37 @@
|
|||||||
|
post:
|
||||||
|
tags:
|
||||||
|
- admin
|
||||||
|
summary: Update category picture (via image upload)
|
||||||
|
requestBody:
|
||||||
|
required: true
|
||||||
|
content:
|
||||||
|
multipart/form-data:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
cid:
|
||||||
|
type: number
|
||||||
|
description: Category identifier whose picture will be set after successful upload
|
||||||
|
example: 1
|
||||||
|
files:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
format: binary
|
||||||
|
required:
|
||||||
|
- cid
|
||||||
|
- files
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: "Image uploaded"
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
description: The filename
|
||||||
|
url:
|
||||||
|
type: string
|
||||||
|
description: URL of the uploaded image for use client-side
|
@ -0,0 +1,96 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- admin
|
||||||
|
summary: Get administrative dashboard
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: A JSON object containing dashboard data
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
version:
|
||||||
|
type: string
|
||||||
|
lookupFailed:
|
||||||
|
type: boolean
|
||||||
|
latestVersion:
|
||||||
|
type: string
|
||||||
|
nullable: true
|
||||||
|
upgradeAvailable:
|
||||||
|
type: boolean
|
||||||
|
nullable: true
|
||||||
|
currentPrerelease:
|
||||||
|
type: boolean
|
||||||
|
notices:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
done:
|
||||||
|
type: boolean
|
||||||
|
doneText:
|
||||||
|
type: string
|
||||||
|
notDoneText:
|
||||||
|
type: string
|
||||||
|
tooltip:
|
||||||
|
type: string
|
||||||
|
link:
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- done
|
||||||
|
stats:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
yesterday:
|
||||||
|
type: number
|
||||||
|
today:
|
||||||
|
type: number
|
||||||
|
lastweek:
|
||||||
|
type: number
|
||||||
|
thisweek:
|
||||||
|
type: number
|
||||||
|
lastmonth:
|
||||||
|
type: number
|
||||||
|
thismonth:
|
||||||
|
type: number
|
||||||
|
alltime:
|
||||||
|
type: number
|
||||||
|
dayIncrease:
|
||||||
|
type: string
|
||||||
|
dayTextClass:
|
||||||
|
type: string
|
||||||
|
weekIncrease:
|
||||||
|
type: string
|
||||||
|
weekTextClass:
|
||||||
|
type: string
|
||||||
|
monthIncrease:
|
||||||
|
type: string
|
||||||
|
monthTextClass:
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
canRestart:
|
||||||
|
type: boolean
|
||||||
|
lastrestart:
|
||||||
|
nullable: true
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
uid:
|
||||||
|
type: number
|
||||||
|
description: A user identifier
|
||||||
|
ip:
|
||||||
|
type: string
|
||||||
|
timestamp:
|
||||||
|
type: number
|
||||||
|
user:
|
||||||
|
$ref: ../../components/schemas/UserObject.yaml#/UserObject
|
||||||
|
timestampISO:
|
||||||
|
type: string
|
||||||
|
description: An ISO 8601 formatted date string (complementing `timestamp`)
|
||||||
|
showSystemControls:
|
||||||
|
type: boolean
|
||||||
|
- $ref: ../../components/schemas/CommonProps.yaml#/CommonProps
|
@ -0,0 +1,160 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- admin
|
||||||
|
summary: Get process/system information
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: "A JSON object containing process and system information"
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
info:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
process:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
port:
|
||||||
|
description: An array containing the port numbers configured to be used by NodeBB processes
|
||||||
|
oneOf:
|
||||||
|
- type: array
|
||||||
|
items:
|
||||||
|
oneOf:
|
||||||
|
- type: string
|
||||||
|
- type: number
|
||||||
|
- type: string
|
||||||
|
- type: number
|
||||||
|
pid:
|
||||||
|
type: number
|
||||||
|
description: Process id
|
||||||
|
title:
|
||||||
|
type: number
|
||||||
|
description: Executable
|
||||||
|
version:
|
||||||
|
type: number
|
||||||
|
description: NodeBB version
|
||||||
|
memoryUsage:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
rss:
|
||||||
|
type: number
|
||||||
|
heapTotal:
|
||||||
|
type: number
|
||||||
|
heapUsed:
|
||||||
|
type: number
|
||||||
|
external:
|
||||||
|
type: number
|
||||||
|
arrayBuffers:
|
||||||
|
type: number
|
||||||
|
humanReadable:
|
||||||
|
type: number
|
||||||
|
required:
|
||||||
|
- rss
|
||||||
|
- heapTotal
|
||||||
|
- heapUsed
|
||||||
|
- external
|
||||||
|
- humanReadable
|
||||||
|
uptime:
|
||||||
|
type: number
|
||||||
|
cpuUsage:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
user:
|
||||||
|
type: string
|
||||||
|
system:
|
||||||
|
type: string
|
||||||
|
os:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
hostname:
|
||||||
|
type: string
|
||||||
|
type:
|
||||||
|
type: string
|
||||||
|
platform:
|
||||||
|
type: string
|
||||||
|
arch:
|
||||||
|
type: string
|
||||||
|
release:
|
||||||
|
type: string
|
||||||
|
load:
|
||||||
|
type: string
|
||||||
|
description: CPU load
|
||||||
|
nodebb:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
isPrimary:
|
||||||
|
type: boolean
|
||||||
|
isCluster:
|
||||||
|
type: boolean
|
||||||
|
runJobs:
|
||||||
|
type: boolean
|
||||||
|
jobsDisabled:
|
||||||
|
type: boolean
|
||||||
|
git:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
hash:
|
||||||
|
type: string
|
||||||
|
hashShort:
|
||||||
|
type: string
|
||||||
|
branch:
|
||||||
|
type: string
|
||||||
|
stats:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
onlineGuestCount:
|
||||||
|
type: number
|
||||||
|
onlineRegisteredCount:
|
||||||
|
type: number
|
||||||
|
socketCount:
|
||||||
|
type: number
|
||||||
|
users:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
categories:
|
||||||
|
type: number
|
||||||
|
recent:
|
||||||
|
type: number
|
||||||
|
unread:
|
||||||
|
type: number
|
||||||
|
topics:
|
||||||
|
type: number
|
||||||
|
category:
|
||||||
|
type: number
|
||||||
|
topics:
|
||||||
|
type: array
|
||||||
|
id:
|
||||||
|
type: string
|
||||||
|
infoJSON:
|
||||||
|
type: string
|
||||||
|
description: "`info`, but stringified"
|
||||||
|
host:
|
||||||
|
type: string
|
||||||
|
description: Server hostname
|
||||||
|
port:
|
||||||
|
description: An array containing the port numbers configured to be used by NodeBB processes
|
||||||
|
oneOf:
|
||||||
|
- type: array
|
||||||
|
items:
|
||||||
|
oneOf:
|
||||||
|
- type: string
|
||||||
|
- type: number
|
||||||
|
- type: string
|
||||||
|
- type: number
|
||||||
|
nodeCount:
|
||||||
|
type: number
|
||||||
|
description: The number of NodeBB application processes currently running
|
||||||
|
timeout:
|
||||||
|
type: number
|
||||||
|
ip:
|
||||||
|
type: string
|
||||||
|
loggedIn:
|
||||||
|
type: boolean
|
||||||
|
relative_path:
|
||||||
|
type: string
|
||||||
|
- $ref: ../../../components/schemas/CommonProps.yaml#/CommonProps
|
@ -0,0 +1,11 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- admin
|
||||||
|
summary: Get system logger settings
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: ""
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: ../../../components/schemas/CommonProps.yaml#/CommonProps
|
@ -0,0 +1,204 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- admin
|
||||||
|
summary: Get system plugin settings
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: ""
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
installed:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
latest:
|
||||||
|
type: string
|
||||||
|
description:
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
updated:
|
||||||
|
type: string
|
||||||
|
url:
|
||||||
|
type: string
|
||||||
|
numInstalls:
|
||||||
|
type: number
|
||||||
|
isCompatible:
|
||||||
|
type: boolean
|
||||||
|
id:
|
||||||
|
type: string
|
||||||
|
installed:
|
||||||
|
type: boolean
|
||||||
|
active:
|
||||||
|
type: boolean
|
||||||
|
isTheme:
|
||||||
|
type: boolean
|
||||||
|
error:
|
||||||
|
type: boolean
|
||||||
|
version:
|
||||||
|
type: string
|
||||||
|
license:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
text:
|
||||||
|
type: string
|
||||||
|
nullable: true
|
||||||
|
outdated:
|
||||||
|
type: boolean
|
||||||
|
settingsRoute:
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- latest
|
||||||
|
- description
|
||||||
|
- name
|
||||||
|
- id
|
||||||
|
- installed
|
||||||
|
- active
|
||||||
|
- isTheme
|
||||||
|
- error
|
||||||
|
- version
|
||||||
|
- license
|
||||||
|
- outdated
|
||||||
|
installedCount:
|
||||||
|
type: number
|
||||||
|
activeCount:
|
||||||
|
type: number
|
||||||
|
inactiveCount:
|
||||||
|
type: number
|
||||||
|
upgradeCount:
|
||||||
|
type: number
|
||||||
|
download:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
updated:
|
||||||
|
type: string
|
||||||
|
description:
|
||||||
|
type: string
|
||||||
|
latest:
|
||||||
|
type: string
|
||||||
|
url:
|
||||||
|
type: string
|
||||||
|
numInstalls:
|
||||||
|
type: number
|
||||||
|
isCompatible:
|
||||||
|
type: boolean
|
||||||
|
id:
|
||||||
|
type: string
|
||||||
|
installed:
|
||||||
|
type: boolean
|
||||||
|
active:
|
||||||
|
type: boolean
|
||||||
|
required:
|
||||||
|
- name
|
||||||
|
- updated
|
||||||
|
- latest
|
||||||
|
- url
|
||||||
|
- numInstalls
|
||||||
|
- isCompatible
|
||||||
|
- id
|
||||||
|
- installed
|
||||||
|
- active
|
||||||
|
incompatible:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
latest:
|
||||||
|
type: string
|
||||||
|
description:
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
updated:
|
||||||
|
type: string
|
||||||
|
url:
|
||||||
|
type: string
|
||||||
|
numInstalls:
|
||||||
|
type: number
|
||||||
|
isCompatible:
|
||||||
|
type: boolean
|
||||||
|
id:
|
||||||
|
type: string
|
||||||
|
installed:
|
||||||
|
type: boolean
|
||||||
|
active:
|
||||||
|
type: boolean
|
||||||
|
required:
|
||||||
|
- name
|
||||||
|
- updated
|
||||||
|
- latest
|
||||||
|
- url
|
||||||
|
- numInstalls
|
||||||
|
- isCompatible
|
||||||
|
- id
|
||||||
|
- installed
|
||||||
|
- active
|
||||||
|
trending:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
latest:
|
||||||
|
type: string
|
||||||
|
description:
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
updated:
|
||||||
|
type: string
|
||||||
|
url:
|
||||||
|
type: string
|
||||||
|
numInstalls:
|
||||||
|
type: number
|
||||||
|
isCompatible:
|
||||||
|
type: boolean
|
||||||
|
id:
|
||||||
|
type: string
|
||||||
|
installed:
|
||||||
|
type: boolean
|
||||||
|
active:
|
||||||
|
type: boolean
|
||||||
|
isTheme:
|
||||||
|
type: boolean
|
||||||
|
error:
|
||||||
|
type: boolean
|
||||||
|
version:
|
||||||
|
type: string
|
||||||
|
license:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
text:
|
||||||
|
type: string
|
||||||
|
nullable: true
|
||||||
|
outdated:
|
||||||
|
type: boolean
|
||||||
|
settingsRoute:
|
||||||
|
type: string
|
||||||
|
downloads:
|
||||||
|
type: number
|
||||||
|
required:
|
||||||
|
- latest
|
||||||
|
- description
|
||||||
|
- name
|
||||||
|
- id
|
||||||
|
- installed
|
||||||
|
- active
|
||||||
|
- downloads
|
||||||
|
submitPluginUsage:
|
||||||
|
type: number
|
||||||
|
version:
|
||||||
|
type: string
|
||||||
|
- $ref: ../../../components/schemas/CommonProps.yaml#/CommonProps
|
@ -0,0 +1,85 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- admin
|
||||||
|
summary: Get rewards settings
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: "A JSON object containing rewards and their settings"
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
active:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
condition:
|
||||||
|
type: string
|
||||||
|
conditional:
|
||||||
|
type: string
|
||||||
|
value:
|
||||||
|
type: number
|
||||||
|
rid:
|
||||||
|
type: string
|
||||||
|
claimable:
|
||||||
|
type: string
|
||||||
|
id:
|
||||||
|
type: string
|
||||||
|
disabled:
|
||||||
|
type: boolean
|
||||||
|
rewards:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
additionalProperties: {}
|
||||||
|
description: Reward-specific properties
|
||||||
|
conditions:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
condition:
|
||||||
|
type: string
|
||||||
|
conditionals:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
conditional:
|
||||||
|
type: string
|
||||||
|
rewards:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
rid:
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
inputs:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
type:
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
label:
|
||||||
|
type: string
|
||||||
|
values:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
value:
|
||||||
|
type: string
|
||||||
|
- $ref: ../../../components/schemas/CommonProps.yaml#/CommonProps
|
@ -0,0 +1,90 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- admin
|
||||||
|
summary: Get widget settings
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: ""
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
templates:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
template:
|
||||||
|
type: string
|
||||||
|
areas:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
location:
|
||||||
|
type: string
|
||||||
|
areas:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
template:
|
||||||
|
type: string
|
||||||
|
location:
|
||||||
|
type: string
|
||||||
|
data:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
widget:
|
||||||
|
type: string
|
||||||
|
data:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
html:
|
||||||
|
type: string
|
||||||
|
cid:
|
||||||
|
type: string
|
||||||
|
title:
|
||||||
|
type: string
|
||||||
|
container:
|
||||||
|
type: string
|
||||||
|
groups:
|
||||||
|
type: array
|
||||||
|
items: {}
|
||||||
|
groupsHideFrom:
|
||||||
|
type: array
|
||||||
|
items: {}
|
||||||
|
hide-mobile:
|
||||||
|
type: string
|
||||||
|
numTags:
|
||||||
|
type: string
|
||||||
|
numUsers:
|
||||||
|
type: string
|
||||||
|
text:
|
||||||
|
type: string
|
||||||
|
parseAsPost:
|
||||||
|
type: string
|
||||||
|
numTopics:
|
||||||
|
type: string
|
||||||
|
availableWidgets:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
widget:
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
description:
|
||||||
|
type: string
|
||||||
|
content:
|
||||||
|
type: string
|
||||||
|
- $ref: ../../../components/schemas/CommonProps.yaml#/CommonProps
|
@ -0,0 +1,19 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- admin
|
||||||
|
summary: Get members of a group (.csv)
|
||||||
|
parameters:
|
||||||
|
- in: header
|
||||||
|
name: referer
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
required: true
|
||||||
|
example: /admin/manage/groups
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: "A CSV file containing all users in the group"
|
||||||
|
content:
|
||||||
|
text/csv:
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
format: binary
|
@ -0,0 +1,56 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- admin
|
||||||
|
summary: Get administrators and moderators
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: "A JSON object containing administrators and moderators globally and per-category"
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
admins:
|
||||||
|
$ref: ../../../components/schemas/GroupObject.yaml#/GroupFullObject
|
||||||
|
globalMods:
|
||||||
|
$ref: ../../../components/schemas/GroupObject.yaml#/GroupFullObject
|
||||||
|
categories:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
cid:
|
||||||
|
type: number
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
level:
|
||||||
|
type: number
|
||||||
|
example: 0
|
||||||
|
icon:
|
||||||
|
type: string
|
||||||
|
description: A FontAwesome icon string
|
||||||
|
parentCid:
|
||||||
|
type: number
|
||||||
|
description: The parent category's identifier
|
||||||
|
color:
|
||||||
|
type: string
|
||||||
|
description: A six-character hexadecimal colour code
|
||||||
|
bgColor:
|
||||||
|
type: string
|
||||||
|
description: A six-character hexadecimal colour code
|
||||||
|
imageClass:
|
||||||
|
type: string
|
||||||
|
depth:
|
||||||
|
type: number
|
||||||
|
description: The depth of the category relative to the forum root (`0` is root level)
|
||||||
|
moderators:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
$ref: ../../../components/schemas/UserObject.yaml#/UserObjectSlim
|
||||||
|
allPrivileges:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
description: A simple array containing user privilege names (used client-side when giving mod privilege)
|
||||||
|
- $ref: ../../../components/schemas/CommonProps.yaml#/CommonProps
|
@ -0,0 +1,92 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- admin
|
||||||
|
summary: Get category settings
|
||||||
|
parameters:
|
||||||
|
- name: category_id
|
||||||
|
in: path
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example: 1
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: ""
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
category:
|
||||||
|
allOf:
|
||||||
|
- $ref: ../../../components/schemas/CategoryObject.yaml#/CategoryObject
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
tagWhitelist:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
unread-class:
|
||||||
|
type: string
|
||||||
|
parent:
|
||||||
|
$ref: ../../../components/schemas/CategoryObject.yaml#/CategoryObject
|
||||||
|
categories:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
cid:
|
||||||
|
type: number
|
||||||
|
description: A category identifier
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
icon:
|
||||||
|
type: string
|
||||||
|
selected:
|
||||||
|
type: boolean
|
||||||
|
level:
|
||||||
|
type: string
|
||||||
|
parentCid:
|
||||||
|
type: number
|
||||||
|
description: The category identifier for the category that is the immediate
|
||||||
|
ancestor of the current category
|
||||||
|
color:
|
||||||
|
type: string
|
||||||
|
bgColor:
|
||||||
|
type: string
|
||||||
|
imageClass:
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- cid
|
||||||
|
- name
|
||||||
|
- icon
|
||||||
|
selectedCategory:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
cid:
|
||||||
|
type: number
|
||||||
|
description: A category identifier
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
level:
|
||||||
|
type: string
|
||||||
|
icon:
|
||||||
|
type: string
|
||||||
|
parentCid:
|
||||||
|
type: number
|
||||||
|
description: The category identifier for the category that is the immediate
|
||||||
|
ancestor of the current category
|
||||||
|
color:
|
||||||
|
type: string
|
||||||
|
bgColor:
|
||||||
|
type: string
|
||||||
|
imageClass:
|
||||||
|
type: string
|
||||||
|
selected:
|
||||||
|
type: boolean
|
||||||
|
customClasses:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
- $ref: ../../../components/schemas/CommonProps.yaml#/CommonProps
|
@ -0,0 +1,42 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- admin
|
||||||
|
summary: Get category anayltics
|
||||||
|
parameters:
|
||||||
|
- name: category_id
|
||||||
|
in: path
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example: 1
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: ""
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
analytics:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
pageviews:hourly:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: number
|
||||||
|
pageviews:daily:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: number
|
||||||
|
topics:daily:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: number
|
||||||
|
posts:daily:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: number
|
||||||
|
- $ref: ../../../../components/schemas/CommonProps.yaml#/CommonProps
|
@ -0,0 +1,51 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- admin
|
||||||
|
summary: Get system digest info/settings
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: "A JSON object containing recent digest sends and settings"
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
title:
|
||||||
|
type: string
|
||||||
|
delivery:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
username:
|
||||||
|
type: string
|
||||||
|
description: A friendly name for a given user account
|
||||||
|
picture:
|
||||||
|
nullable: true
|
||||||
|
type: string
|
||||||
|
uid:
|
||||||
|
type: number
|
||||||
|
description: A user identifier
|
||||||
|
icon:text:
|
||||||
|
type: string
|
||||||
|
description: A single-letter representation of a username. This is used in the
|
||||||
|
auto-generated icon given to users without an
|
||||||
|
avatar
|
||||||
|
icon:bgColor:
|
||||||
|
type: string
|
||||||
|
description: A six-character hexadecimal colour code assigned to the user. This
|
||||||
|
value is used in conjunction with `icon:text`
|
||||||
|
for the user's auto-generated icon
|
||||||
|
example: "#f44336"
|
||||||
|
lastDelivery:
|
||||||
|
type: string
|
||||||
|
setting:
|
||||||
|
type: boolean
|
||||||
|
default:
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- title
|
||||||
|
- delivery
|
||||||
|
- $ref: ../../../components/schemas/Pagination.yaml#/Pagination
|
||||||
|
- $ref: ../../../components/schemas/CommonProps.yaml#/CommonProps
|
@ -0,0 +1,70 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- admin
|
||||||
|
summary: Get user group details
|
||||||
|
parameters:
|
||||||
|
- name: name
|
||||||
|
in: path
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example: administrators
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: ""
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
group:
|
||||||
|
$ref: ../../../components/schemas/GroupObject.yaml#/GroupFullObject
|
||||||
|
groupNames:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
encodedName:
|
||||||
|
type: string
|
||||||
|
displayName:
|
||||||
|
type: string
|
||||||
|
selected:
|
||||||
|
type: boolean
|
||||||
|
categories:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
cid:
|
||||||
|
type: number
|
||||||
|
description: A category identifier
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
icon:
|
||||||
|
type: string
|
||||||
|
selected:
|
||||||
|
type: boolean
|
||||||
|
level:
|
||||||
|
type: string
|
||||||
|
parentCid:
|
||||||
|
type: number
|
||||||
|
description: The category identifier for the category that is the immediate
|
||||||
|
ancestor of the current category
|
||||||
|
color:
|
||||||
|
type: string
|
||||||
|
bgColor:
|
||||||
|
type: string
|
||||||
|
imageClass:
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- cid
|
||||||
|
- name
|
||||||
|
- icon
|
||||||
|
allowPrivateGroups:
|
||||||
|
type: number
|
||||||
|
maximumGroupNameLength:
|
||||||
|
type: number
|
||||||
|
maximumGroupTitleLength:
|
||||||
|
type: number
|
||||||
|
- $ref: ../../../components/schemas/CommonProps.yaml#/CommonProps
|
@ -0,0 +1,150 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- admin
|
||||||
|
summary: Get category privileges
|
||||||
|
parameters:
|
||||||
|
- name: cid
|
||||||
|
in: path
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example: 1
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: ""
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
privileges:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
labels:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
users:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
groups:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
keys:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
users:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
groups:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
users:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
nameEscaped:
|
||||||
|
type: string
|
||||||
|
privileges:
|
||||||
|
type: object
|
||||||
|
additionalProperties:
|
||||||
|
type: boolean
|
||||||
|
description: Each privilege will have a key in this object
|
||||||
|
groups:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
nameEscaped:
|
||||||
|
type: string
|
||||||
|
privileges:
|
||||||
|
type: object
|
||||||
|
additionalProperties:
|
||||||
|
type: boolean
|
||||||
|
description: Each privilege will have a key in this object
|
||||||
|
isPrivate:
|
||||||
|
type: boolean
|
||||||
|
columnCountUser:
|
||||||
|
type: number
|
||||||
|
columnCountUserOther:
|
||||||
|
type: number
|
||||||
|
columnCountGroup:
|
||||||
|
type: number
|
||||||
|
columnCountGroupOther:
|
||||||
|
type: number
|
||||||
|
categories:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
cid:
|
||||||
|
type: number
|
||||||
|
description: A category identifier
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
icon:
|
||||||
|
type: string
|
||||||
|
selected:
|
||||||
|
type: boolean
|
||||||
|
level:
|
||||||
|
type: string
|
||||||
|
parentCid:
|
||||||
|
type: number
|
||||||
|
description: The category identifier for the category that is the immediate
|
||||||
|
ancestor of the current category
|
||||||
|
color:
|
||||||
|
type: string
|
||||||
|
bgColor:
|
||||||
|
type: string
|
||||||
|
imageClass:
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- cid
|
||||||
|
- name
|
||||||
|
- icon
|
||||||
|
- selected
|
||||||
|
selectedCategory:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
cid:
|
||||||
|
type: number
|
||||||
|
description: A category identifier
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
level:
|
||||||
|
type: string
|
||||||
|
icon:
|
||||||
|
type: string
|
||||||
|
parentCid:
|
||||||
|
type: number
|
||||||
|
description: The category identifier for the category that is the immediate
|
||||||
|
ancestor of the current category
|
||||||
|
color:
|
||||||
|
type: string
|
||||||
|
bgColor:
|
||||||
|
type: string
|
||||||
|
imageClass:
|
||||||
|
type: string
|
||||||
|
selected:
|
||||||
|
type: boolean
|
||||||
|
cid:
|
||||||
|
type: number
|
||||||
|
description: A category identifier
|
||||||
|
group:
|
||||||
|
type: string
|
||||||
|
- $ref: ../../../components/schemas/CommonProps.yaml#/CommonProps
|
@ -0,0 +1,90 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- admin
|
||||||
|
summary: Get registration queue/invites
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: "A JSON object containing the registration queue and invites"
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
registrationQueueCount:
|
||||||
|
type: number
|
||||||
|
users:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
username:
|
||||||
|
type: string
|
||||||
|
email:
|
||||||
|
type: string
|
||||||
|
ip:
|
||||||
|
type: string
|
||||||
|
timestampISO:
|
||||||
|
type: string
|
||||||
|
usernameEscaped:
|
||||||
|
type: string
|
||||||
|
ipMatch:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
username:
|
||||||
|
type: string
|
||||||
|
description: A friendly name for a given user account
|
||||||
|
userslug:
|
||||||
|
type: string
|
||||||
|
description: An URL-safe variant of the username (i.e. lower-cased, spaces
|
||||||
|
removed, etc.)
|
||||||
|
picture:
|
||||||
|
type: string
|
||||||
|
uid:
|
||||||
|
type: number
|
||||||
|
description: A user identifier
|
||||||
|
icon:text:
|
||||||
|
type: string
|
||||||
|
description: A single-letter representation of a username. This is used in the
|
||||||
|
auto-generated icon given to users without
|
||||||
|
an avatar
|
||||||
|
icon:bgColor:
|
||||||
|
type: string
|
||||||
|
description: A six-character hexadecimal colour code assigned to the user. This
|
||||||
|
value is used in conjunction with
|
||||||
|
`icon:text` for the user's auto-generated
|
||||||
|
icon
|
||||||
|
example: "#f44336"
|
||||||
|
customActions:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
title:
|
||||||
|
type: string
|
||||||
|
id:
|
||||||
|
type: string
|
||||||
|
class:
|
||||||
|
type: string
|
||||||
|
icon:
|
||||||
|
type: string
|
||||||
|
customHeaders:
|
||||||
|
type: array
|
||||||
|
invites:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
uid:
|
||||||
|
type: number
|
||||||
|
invitations:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
email:
|
||||||
|
type: string
|
||||||
|
- $ref: ../../../components/schemas/Pagination.yaml#/Pagination
|
||||||
|
- $ref: ../../../components/schemas/CommonProps.yaml#/CommonProps
|
@ -0,0 +1,35 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- admin
|
||||||
|
summary: Get tag settings
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: "A JSON object containing tag settings"
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
tags:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
value:
|
||||||
|
type: string
|
||||||
|
description: The tag name
|
||||||
|
score:
|
||||||
|
type: number
|
||||||
|
description: The number of topics containing this tag
|
||||||
|
valueEscaped:
|
||||||
|
type: string
|
||||||
|
color:
|
||||||
|
type: string
|
||||||
|
description: Six-character hexadecimal string (with `#` prepended)
|
||||||
|
example: "#ff0000"
|
||||||
|
bgColor:
|
||||||
|
type: string
|
||||||
|
description: Six-character hexadecimal string (with `#` prepended)
|
||||||
|
example: "#ff0000"
|
||||||
|
- $ref: ../../../components/schemas/CommonProps.yaml#/CommonProps
|
@ -0,0 +1,57 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- admin
|
||||||
|
summary: Get uploaded files
|
||||||
|
parameters:
|
||||||
|
- in: query
|
||||||
|
name: dir
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
description: Path of the folder, relative to `public/uploads/`
|
||||||
|
example: /
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: "A JSON object containing uploaded files"
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
currentFolder:
|
||||||
|
type: string
|
||||||
|
description: Path of the folder, relative to `public/uploads/`
|
||||||
|
showPids:
|
||||||
|
type: boolean
|
||||||
|
description: Whether or not the post identifiers should be shown (this is `true` only for `public/uploads/files/`, as that is where post uploads go)
|
||||||
|
files:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
path:
|
||||||
|
type: string
|
||||||
|
description: Path relative to `currentFolder`
|
||||||
|
url:
|
||||||
|
type: string
|
||||||
|
description: Relative URL ready to be combined with `config.relative_path` on the client-side or templates
|
||||||
|
fileCount:
|
||||||
|
type: number
|
||||||
|
description: For directories, the number of files inside
|
||||||
|
size:
|
||||||
|
type: number
|
||||||
|
description: The size of the file/directory
|
||||||
|
sizeHumanReadable:
|
||||||
|
type: string
|
||||||
|
isDirectory:
|
||||||
|
type: boolean
|
||||||
|
isFile:
|
||||||
|
type: boolean
|
||||||
|
mtime:
|
||||||
|
type: number
|
||||||
|
description: Last modified time of the file, down to the microsecond (expressed as a UNIX timestamp)
|
||||||
|
- $ref: ../../../components/schemas/Breadcrumbs.yaml#/Breadcrumbs
|
||||||
|
- $ref: ../../../components/schemas/Pagination.yaml#/Pagination
|
||||||
|
- $ref: ../../../components/schemas/CommonProps.yaml#/CommonProps
|
@ -0,0 +1,35 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- admin
|
||||||
|
summary: Get users
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: ""
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
users:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
$ref: ../../../components/schemas/UserObject.yaml#/UserObjectACP
|
||||||
|
page:
|
||||||
|
type: number
|
||||||
|
pageCount:
|
||||||
|
type: number
|
||||||
|
resultsPerPage:
|
||||||
|
type: number
|
||||||
|
latest:
|
||||||
|
type: boolean
|
||||||
|
search_display:
|
||||||
|
type: string
|
||||||
|
requireEmailConfirmation:
|
||||||
|
type: number
|
||||||
|
inviteOnly:
|
||||||
|
type: boolean
|
||||||
|
adminInviteOnly:
|
||||||
|
type: boolean
|
||||||
|
- $ref: ../../../components/schemas/Pagination.yaml#/Pagination
|
||||||
|
- $ref: ../../../components/schemas/CommonProps.yaml#/CommonProps
|
@ -0,0 +1,7 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- admin
|
||||||
|
summary: Get banned users
|
||||||
|
responses:
|
||||||
|
"418":
|
||||||
|
description: "TODO: A proper response needs to be added. It is not really a teapot | Replace this responses block with the block from /manage/users/latest"
|
@ -0,0 +1,7 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- admin
|
||||||
|
summary: Get flagged users
|
||||||
|
responses:
|
||||||
|
"418":
|
||||||
|
description: "TODO: A proper response needs to be added. It is not really a teapot | Replace this responses block with the block from /manage/users/latest"
|
@ -0,0 +1,7 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- admin
|
||||||
|
summary: Get inactive users
|
||||||
|
responses:
|
||||||
|
"418":
|
||||||
|
description: "TODO: A proper response needs to be added. It is not really a teapot | Replace this responses block with the block from /manage/users/latest"
|
@ -0,0 +1,7 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- admin
|
||||||
|
summary: Get latest users
|
||||||
|
responses:
|
||||||
|
"418":
|
||||||
|
description: "TODO: A proper response needs to be added. It is not really a teapot | Replace this responses block with the block from /manage/users/latest"
|
@ -0,0 +1,7 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- admin
|
||||||
|
summary: Get users with the most reputation
|
||||||
|
responses:
|
||||||
|
"418":
|
||||||
|
description: "TODO: A proper response needs to be added. It is not really a teapot | Replace this responses block with the block from /manage/users/latest"
|
@ -0,0 +1,7 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- admin
|
||||||
|
summary: Get users with no posts
|
||||||
|
responses:
|
||||||
|
"418":
|
||||||
|
description: "TODO: A proper response needs to be added. It is not really a teapot | Replace this responses block with the block from /manage/users/latest"
|
@ -0,0 +1,7 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- admin
|
||||||
|
summary: Get non-verified users
|
||||||
|
responses:
|
||||||
|
"418":
|
||||||
|
description: "TODO: A proper response needs to be added. It is not really a teapot | Replace this responses block with the block from /manage/users/latest"
|
@ -0,0 +1,39 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- admin
|
||||||
|
summary: Get users via search term
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: ""
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
search_display:
|
||||||
|
type: string
|
||||||
|
matchCount:
|
||||||
|
type: number
|
||||||
|
query:
|
||||||
|
type: string
|
||||||
|
uidQuery:
|
||||||
|
type: string
|
||||||
|
usernameQuery:
|
||||||
|
type: string
|
||||||
|
emailQuery:
|
||||||
|
type: string
|
||||||
|
ipQuery:
|
||||||
|
type: string
|
||||||
|
pageCount:
|
||||||
|
type: number
|
||||||
|
resultsPerPage:
|
||||||
|
type: number
|
||||||
|
timing:
|
||||||
|
type: number
|
||||||
|
users:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
$ref: ../../../../components/schemas/UserObject.yaml#/UserObjectACP
|
||||||
|
- $ref: ../../../../components/schemas/CommonProps.yaml#/CommonProps
|
||||||
|
- $ref: ../../../../components/schemas/Pagination.yaml#/Pagination
|
@ -0,0 +1,7 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- admin
|
||||||
|
summary: Get users with the most posts
|
||||||
|
responses:
|
||||||
|
"418":
|
||||||
|
description: "TODO: A proper response needs to be added. It is not really a teapot | Replace this responses block with the block from /manage/users/latest"
|
@ -0,0 +1,24 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- admin
|
||||||
|
summary: Get system settings
|
||||||
|
parameters:
|
||||||
|
- name: term
|
||||||
|
in: path
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example: general
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: ""
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- type: object
|
||||||
|
properties: {}
|
||||||
|
additionalProperties:
|
||||||
|
type: object
|
||||||
|
description: Most of the settings pages have their values loaded on the client-side, so the settings are not exposed server-side.
|
||||||
|
- $ref: ../../components/schemas/CommonProps.yaml#/CommonProps
|
@ -0,0 +1,23 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- admin
|
||||||
|
summary: Get homepage settings
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: ""
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
routes:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
route:
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
- $ref: ../../../components/schemas/CommonProps.yaml#/CommonProps
|
@ -0,0 +1,35 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- admin
|
||||||
|
summary: Get language settings
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: A JSON object containing available languages and settings
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
languages:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
description: Localised name of the language
|
||||||
|
code:
|
||||||
|
type: string
|
||||||
|
description: A language code (similar to ISO-639)
|
||||||
|
dir:
|
||||||
|
type: string
|
||||||
|
description: Directionality of the language
|
||||||
|
enum: [ltr, rtl]
|
||||||
|
selected:
|
||||||
|
type: boolean
|
||||||
|
description: Denotes the currently selected default system language on the forum
|
||||||
|
autoDetectLang:
|
||||||
|
type: integer
|
||||||
|
description: Whether the forum will attempt to guess language based on browser's `Accept-Language` header
|
||||||
|
- $ref: ../../../components/schemas/CommonProps.yaml#/CommonProps
|
@ -0,0 +1,107 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- admin
|
||||||
|
summary: Get navigation bar settings
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: A JSON object containing navigation settings
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
enabled:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
route:
|
||||||
|
type: string
|
||||||
|
description: Relative URL to the page the navigation item goes to
|
||||||
|
title:
|
||||||
|
type: string
|
||||||
|
description: Tooltip text
|
||||||
|
enabled:
|
||||||
|
type: boolean
|
||||||
|
iconClass:
|
||||||
|
type: string
|
||||||
|
description: A FontAwesome icon string
|
||||||
|
textClass:
|
||||||
|
type: string
|
||||||
|
description: HTML class applied to the text label for this navigation item
|
||||||
|
text:
|
||||||
|
type: string
|
||||||
|
description: Label text for this navigation item
|
||||||
|
order:
|
||||||
|
type: integer
|
||||||
|
description: Ordinality of this item, lower value appears earlier
|
||||||
|
groups:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
displayName:
|
||||||
|
type: string
|
||||||
|
selected:
|
||||||
|
type: boolean
|
||||||
|
index:
|
||||||
|
type: integer
|
||||||
|
description: Seemingly identical to order, but an integer instead of a string
|
||||||
|
selected:
|
||||||
|
type: boolean
|
||||||
|
available:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
id:
|
||||||
|
type: string
|
||||||
|
description: Unique ID that will be added to the navigation element's `id` property in the DOM
|
||||||
|
route:
|
||||||
|
type: string
|
||||||
|
description: Relative URL to the page the navigation item goes to
|
||||||
|
title:
|
||||||
|
type: string
|
||||||
|
description: Tooltip text
|
||||||
|
enabled:
|
||||||
|
type: boolean
|
||||||
|
iconClass:
|
||||||
|
type: string
|
||||||
|
description: A FontAwesome icon string
|
||||||
|
textClass:
|
||||||
|
type: string
|
||||||
|
description: HTML class applied to the text label for this navigation item
|
||||||
|
text:
|
||||||
|
type: string
|
||||||
|
description: Label text for this navigation item
|
||||||
|
core:
|
||||||
|
type: boolean
|
||||||
|
description: Whether the navigation item is provided by core or not (a plugin)
|
||||||
|
groups:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
displayName:
|
||||||
|
type: string
|
||||||
|
properties:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
targetBlank:
|
||||||
|
type: boolean
|
||||||
|
groups:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
displayName:
|
||||||
|
type: string
|
||||||
|
navigation:
|
||||||
|
type: array
|
||||||
|
description: A clone of `enabled`
|
||||||
|
- $ref: ../../../components/schemas/CommonProps.yaml#/CommonProps
|
@ -0,0 +1,28 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- admin
|
||||||
|
summary: Get post social sharing settings
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: "A JSON object containing post social sharing settings"
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
posts:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
id:
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
class:
|
||||||
|
type: string
|
||||||
|
description: A FontAwesome icon string
|
||||||
|
activated:
|
||||||
|
type: boolean
|
||||||
|
- $ref: ../../../components/schemas/CommonProps.yaml#/CommonProps
|
@ -0,0 +1,35 @@
|
|||||||
|
post:
|
||||||
|
tags:
|
||||||
|
- admin
|
||||||
|
summary: Upload a file
|
||||||
|
requestBody:
|
||||||
|
required: true
|
||||||
|
content:
|
||||||
|
multipart/form-data:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
folder:
|
||||||
|
type: string
|
||||||
|
description: The folder to upload the files to (relative to `public/uploads/`)
|
||||||
|
files:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
format: binary
|
||||||
|
required:
|
||||||
|
- files
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: "File uploaded"
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
description: The filename
|
||||||
|
url:
|
||||||
|
type: string
|
||||||
|
description: URL of the uploaded file for use client-side
|
@ -0,0 +1,32 @@
|
|||||||
|
post:
|
||||||
|
tags:
|
||||||
|
- admin
|
||||||
|
summary: Upload default avatar
|
||||||
|
requestBody:
|
||||||
|
required: true
|
||||||
|
content:
|
||||||
|
multipart/form-data:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
files:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
format: binary
|
||||||
|
required:
|
||||||
|
- files
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: "Image uploaded"
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
description: The filename
|
||||||
|
url:
|
||||||
|
type: string
|
||||||
|
description: URL of the uploaded image for use client-side
|
@ -0,0 +1,32 @@
|
|||||||
|
post:
|
||||||
|
tags:
|
||||||
|
- admin
|
||||||
|
summary: Upload Maskable Icon
|
||||||
|
requestBody:
|
||||||
|
required: true
|
||||||
|
content:
|
||||||
|
multipart/form-data:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
files:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
format: binary
|
||||||
|
required:
|
||||||
|
- files
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: "Image uploaded"
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
description: The filename
|
||||||
|
url:
|
||||||
|
type: string
|
||||||
|
description: URL of the uploaded logo for the Maskable Icon entry for PWA / A2HS
|
@ -0,0 +1,32 @@
|
|||||||
|
post:
|
||||||
|
tags:
|
||||||
|
- admin
|
||||||
|
summary: Upload site-wide Open Graph Image
|
||||||
|
requestBody:
|
||||||
|
required: true
|
||||||
|
content:
|
||||||
|
multipart/form-data:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
files:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
format: binary
|
||||||
|
required:
|
||||||
|
- files
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: "Image uploaded"
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
description: The filename
|
||||||
|
url:
|
||||||
|
type: string
|
||||||
|
description: URL of the uploaded image for use client-side
|
@ -0,0 +1,32 @@
|
|||||||
|
post:
|
||||||
|
tags:
|
||||||
|
- admin
|
||||||
|
summary: Upload Touch Icon
|
||||||
|
requestBody:
|
||||||
|
required: true
|
||||||
|
content:
|
||||||
|
multipart/form-data:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
files:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
format: binary
|
||||||
|
required:
|
||||||
|
- files
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: "Image uploaded"
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
description: The filename
|
||||||
|
url:
|
||||||
|
type: string
|
||||||
|
description: URL of the uploaded logo for the Homescreen/Touch Icon to enable PWA
|
@ -0,0 +1,32 @@
|
|||||||
|
post:
|
||||||
|
tags:
|
||||||
|
- admin
|
||||||
|
summary: Upload favicon
|
||||||
|
requestBody:
|
||||||
|
required: true
|
||||||
|
content:
|
||||||
|
multipart/form-data:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
files:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
format: binary
|
||||||
|
required:
|
||||||
|
- files
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: "Image uploaded"
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
description: The filename
|
||||||
|
url:
|
||||||
|
type: string
|
||||||
|
description: URL of the uploaded image for use client-side
|
@ -0,0 +1,32 @@
|
|||||||
|
post:
|
||||||
|
tags:
|
||||||
|
- admin
|
||||||
|
summary: Upload site logo
|
||||||
|
requestBody:
|
||||||
|
required: true
|
||||||
|
content:
|
||||||
|
multipart/form-data:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
files:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
format: binary
|
||||||
|
required:
|
||||||
|
- files
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: "Image uploaded"
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
description: The filename
|
||||||
|
url:
|
||||||
|
type: string
|
||||||
|
description: URL of the uploaded image for use client-side
|
@ -0,0 +1,19 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- admin
|
||||||
|
summary: Get users export (.csv)
|
||||||
|
parameters:
|
||||||
|
- in: header
|
||||||
|
name: referer
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
required: true
|
||||||
|
example: /admin/manage/users
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: "A CSV file containing all registered users"
|
||||||
|
content:
|
||||||
|
text/csv:
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
format: binary
|
@ -0,0 +1,208 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- categories
|
||||||
|
summary: Get a list of categories
|
||||||
|
description: >
|
||||||
|
This route retrieve the list of categories currently available to the
|
||||||
|
accessing user. It doesn't necessarily mean that the user can *enter*
|
||||||
|
the category, as that is a separate privilege. Specifically, this route
|
||||||
|
will return all categories that grant the calling user the "Find
|
||||||
|
Category" privilege.
|
||||||
|
|
||||||
|
|
||||||
|
Subcategories are also returned, nested under a category's `children` property.
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: A list of category objectscurrently available to the accessing user
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
title:
|
||||||
|
description: The page title
|
||||||
|
type: string
|
||||||
|
categories:
|
||||||
|
description: A collection of category data objects
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
allOf:
|
||||||
|
- $ref: ../components/schemas/CategoryObject.yaml#/CategoryObject
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
tagWhitelist:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
unread-class:
|
||||||
|
type: string
|
||||||
|
children:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
allOf:
|
||||||
|
- $ref: ../components/schemas/CategoryObject.yaml#/CategoryObject
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
tagWhitelist:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
unread-class:
|
||||||
|
type: string
|
||||||
|
children:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
$ref: ../components/schemas/CategoryObject.yaml#/CategoryObject
|
||||||
|
parent:
|
||||||
|
allOf:
|
||||||
|
- $ref: ../components/schemas/CategoryObject.yaml#/CategoryObject
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
tagWhitelist:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
unread-class:
|
||||||
|
type: string
|
||||||
|
posts:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
pid:
|
||||||
|
type: number
|
||||||
|
timestamp:
|
||||||
|
type: number
|
||||||
|
content:
|
||||||
|
type: string
|
||||||
|
timestampISO:
|
||||||
|
type: string
|
||||||
|
description: An ISO 8601 formatted date string (complementing `timestamp`)
|
||||||
|
user:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
uid:
|
||||||
|
type: number
|
||||||
|
description: A user identifier
|
||||||
|
username:
|
||||||
|
type: string
|
||||||
|
description: A friendly name for a given user account
|
||||||
|
userslug:
|
||||||
|
type: string
|
||||||
|
description: An URL-safe variant of the username (i.e. lower-cased, spaces
|
||||||
|
removed, etc.)
|
||||||
|
picture:
|
||||||
|
nullable: true
|
||||||
|
type: string
|
||||||
|
icon:text:
|
||||||
|
type: string
|
||||||
|
description: A single-letter representation of a username. This is used in the
|
||||||
|
auto-generated icon given to
|
||||||
|
users without an avatar
|
||||||
|
icon:bgColor:
|
||||||
|
type: string
|
||||||
|
description: A six-character hexadecimal colour code assigned to the user. This
|
||||||
|
value is used in conjunction
|
||||||
|
with `icon:text` for the user's
|
||||||
|
auto-generated icon
|
||||||
|
example: "#f44336"
|
||||||
|
index:
|
||||||
|
type: number
|
||||||
|
cid:
|
||||||
|
type: number
|
||||||
|
description: A category identifier
|
||||||
|
parentCid:
|
||||||
|
type: number
|
||||||
|
description: The category identifier for the category that is the immediate
|
||||||
|
ancestor of the current category
|
||||||
|
topic:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
slug:
|
||||||
|
type: string
|
||||||
|
title:
|
||||||
|
type: string
|
||||||
|
imageClass:
|
||||||
|
type: string
|
||||||
|
timesClicked:
|
||||||
|
type: number
|
||||||
|
posts:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
pid:
|
||||||
|
type: number
|
||||||
|
timestamp:
|
||||||
|
type: number
|
||||||
|
content:
|
||||||
|
type: string
|
||||||
|
timestampISO:
|
||||||
|
type: string
|
||||||
|
description: An ISO 8601 formatted date string (complementing `timestamp`)
|
||||||
|
user:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
uid:
|
||||||
|
type: number
|
||||||
|
description: A user identifier
|
||||||
|
username:
|
||||||
|
type: string
|
||||||
|
description: A friendly name for a given user account
|
||||||
|
userslug:
|
||||||
|
type: string
|
||||||
|
description: An URL-safe variant of the username (i.e. lower-cased, spaces
|
||||||
|
removed, etc.)
|
||||||
|
picture:
|
||||||
|
nullable: true
|
||||||
|
type: string
|
||||||
|
icon:text:
|
||||||
|
type: string
|
||||||
|
description: A single-letter representation of a username. This is used in the
|
||||||
|
auto-generated icon given to users
|
||||||
|
without an avatar
|
||||||
|
icon:bgColor:
|
||||||
|
type: string
|
||||||
|
description: A six-character hexadecimal colour code assigned to the user. This
|
||||||
|
value is used in conjunction with
|
||||||
|
`icon:text` for the user's
|
||||||
|
auto-generated icon
|
||||||
|
example: "#f44336"
|
||||||
|
index:
|
||||||
|
type: number
|
||||||
|
cid:
|
||||||
|
type: number
|
||||||
|
description: A category identifier
|
||||||
|
parentCid:
|
||||||
|
type: number
|
||||||
|
description: The category identifier for the category that is the immediate
|
||||||
|
ancestor of the current category
|
||||||
|
topic:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
slug:
|
||||||
|
type: string
|
||||||
|
title:
|
||||||
|
type: string
|
||||||
|
teaser:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
url:
|
||||||
|
type: string
|
||||||
|
timestampISO:
|
||||||
|
type: string
|
||||||
|
description: An ISO 8601 formatted date string (complementing `timestamp`)
|
||||||
|
pid:
|
||||||
|
type: number
|
||||||
|
topic:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
slug:
|
||||||
|
type: string
|
||||||
|
title:
|
||||||
|
type: string
|
||||||
|
imageClass:
|
||||||
|
type: string
|
||||||
|
- $ref: ../components/schemas/Breadcrumbs.yaml#/Breadcrumbs
|
||||||
|
- $ref: ../components/schemas/CommonProps.yaml#/CommonProps
|
@ -0,0 +1,30 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- categories
|
||||||
|
summary: Get mods for a category
|
||||||
|
description: >
|
||||||
|
This route returns an array of uids that correspond to the moderators
|
||||||
|
for the category in question.
|
||||||
|
parameters:
|
||||||
|
- name: cid
|
||||||
|
description: The category identifier for the category you wish to look up
|
||||||
|
in: path
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
type: number
|
||||||
|
example: 1
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: An array of moderators for the requested category
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
moderators:
|
||||||
|
type: array
|
||||||
|
example:
|
||||||
|
moderators:
|
||||||
|
- 1
|
||||||
|
- 2
|
||||||
|
- 3
|
@ -0,0 +1,97 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- categories
|
||||||
|
summary: Get a single category
|
||||||
|
description: This route retrieves a single category's data, along with its children and the topics created inside of the category.
|
||||||
|
parameters:
|
||||||
|
- name: category_id
|
||||||
|
in: path
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example: 1
|
||||||
|
- name: slug
|
||||||
|
description: This parameter is not required. If omitted, the request will be automatically redirected with the proper category slug.
|
||||||
|
in: path
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example: test
|
||||||
|
- name: topic_index
|
||||||
|
description: This parameter is not required. If omitted, the request will presume that you want the first post. The API response is largely unaffected by this parameter, it is used client-side (to send the user to the requested post), and changes the meta/link tags in the server-side generated HTML.
|
||||||
|
in: path
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example: 1
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: ""
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- $ref: ../components/schemas/CategoryObject.yaml#/CategoryObject
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
tagWhitelist:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
unread-class:
|
||||||
|
type: string
|
||||||
|
children:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
$ref: ../components/schemas/CategoryObject.yaml#/CategoryObject
|
||||||
|
topics:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
$ref: ../components/schemas/TopicObject.yaml#/TopicObject
|
||||||
|
nextStart:
|
||||||
|
type: number
|
||||||
|
isWatched:
|
||||||
|
type: boolean
|
||||||
|
isNotWatched:
|
||||||
|
type: boolean
|
||||||
|
isIgnored:
|
||||||
|
type: boolean
|
||||||
|
title:
|
||||||
|
type: string
|
||||||
|
privileges:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
topics:create:
|
||||||
|
type: boolean
|
||||||
|
topics:read:
|
||||||
|
type: boolean
|
||||||
|
topics:tag:
|
||||||
|
type: boolean
|
||||||
|
read:
|
||||||
|
type: boolean
|
||||||
|
cid:
|
||||||
|
type: string
|
||||||
|
uid:
|
||||||
|
type: number
|
||||||
|
description: A user identifier
|
||||||
|
editable:
|
||||||
|
type: boolean
|
||||||
|
view_deleted:
|
||||||
|
type: boolean
|
||||||
|
isAdminOrMod:
|
||||||
|
type: boolean
|
||||||
|
showSelect:
|
||||||
|
type: boolean
|
||||||
|
showTopicTools:
|
||||||
|
type: boolean
|
||||||
|
topicIndex:
|
||||||
|
type: number
|
||||||
|
rssFeedUrl:
|
||||||
|
type: string
|
||||||
|
feeds:disableRSS:
|
||||||
|
type: number
|
||||||
|
reputation:disabled:
|
||||||
|
type: number
|
||||||
|
- $ref: ../components/schemas/Pagination.yaml#/Pagination
|
||||||
|
- $ref: ../components/schemas/Breadcrumbs.yaml#/Breadcrumbs
|
||||||
|
- $ref: ../components/schemas/CommonProps.yaml#/CommonProps
|
@ -0,0 +1,63 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- shorthand
|
||||||
|
summary: Get category data
|
||||||
|
parameters:
|
||||||
|
- name: id
|
||||||
|
in: path
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example: 1
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: "A JSON object containing category data"
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
cid:
|
||||||
|
type: number
|
||||||
|
name:
|
||||||
|
type: number
|
||||||
|
description:
|
||||||
|
type: string
|
||||||
|
descriptionParsed:
|
||||||
|
type: string
|
||||||
|
icon:
|
||||||
|
type: string
|
||||||
|
bgColor:
|
||||||
|
type: string
|
||||||
|
color:
|
||||||
|
type: string
|
||||||
|
slug:
|
||||||
|
type: string
|
||||||
|
parentCid:
|
||||||
|
type: number
|
||||||
|
topic_count:
|
||||||
|
type: number
|
||||||
|
post_count:
|
||||||
|
type: number
|
||||||
|
disabled:
|
||||||
|
type: number
|
||||||
|
order:
|
||||||
|
type: number
|
||||||
|
link:
|
||||||
|
type: string
|
||||||
|
numRecentReplies:
|
||||||
|
type: number
|
||||||
|
class:
|
||||||
|
type: string
|
||||||
|
imageClass:
|
||||||
|
type: string
|
||||||
|
isSection:
|
||||||
|
type: number
|
||||||
|
totalPostCount:
|
||||||
|
type: number
|
||||||
|
totalTopicCount:
|
||||||
|
type: number
|
||||||
|
minTags:
|
||||||
|
type: number
|
||||||
|
maxTags:
|
||||||
|
type: number
|
@ -0,0 +1,20 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- shorthand
|
||||||
|
summary: Access a chat room
|
||||||
|
description: Redirects a request to the proper chat page URL
|
||||||
|
parameters:
|
||||||
|
- name: roomid
|
||||||
|
in: path
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example: 1
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: "Chat identifier resolved"
|
||||||
|
content:
|
||||||
|
text/plain:
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
description: A relative path to the canonical URL for that chat page
|
@ -0,0 +1,135 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- home
|
||||||
|
summary: Get forum settings
|
||||||
|
description: This route retrieves forum settings and user-specific settings for client-side options on the forum.
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: ""
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
relative_path:
|
||||||
|
type: string
|
||||||
|
upload_url:
|
||||||
|
type: string
|
||||||
|
assetBaseUrl:
|
||||||
|
type: string
|
||||||
|
siteTitle:
|
||||||
|
type: string
|
||||||
|
browserTitle:
|
||||||
|
type: string
|
||||||
|
titleLayout:
|
||||||
|
type: string
|
||||||
|
showSiteTitle:
|
||||||
|
type: boolean
|
||||||
|
minimumTitleLength:
|
||||||
|
type: number
|
||||||
|
maximumTitleLength:
|
||||||
|
type: number
|
||||||
|
minimumPostLength:
|
||||||
|
type: number
|
||||||
|
maximumPostLength:
|
||||||
|
type: number
|
||||||
|
minimumTagsPerTopic:
|
||||||
|
type: number
|
||||||
|
maximumTagsPerTopic:
|
||||||
|
type: number
|
||||||
|
minimumTagLength:
|
||||||
|
type: number
|
||||||
|
maximumTagLength:
|
||||||
|
type: number
|
||||||
|
useOutgoingLinksPage:
|
||||||
|
type: boolean
|
||||||
|
allowGuestHandles:
|
||||||
|
type: boolean
|
||||||
|
allowTopicsThumbnail:
|
||||||
|
type: boolean
|
||||||
|
usePagination:
|
||||||
|
type: boolean
|
||||||
|
disableChat:
|
||||||
|
type: boolean
|
||||||
|
disableChatMessageEditing:
|
||||||
|
type: boolean
|
||||||
|
maximumChatMessageLength:
|
||||||
|
type: number
|
||||||
|
socketioTransports:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
socketioOrigins:
|
||||||
|
type: string
|
||||||
|
websocketAddress:
|
||||||
|
type: string
|
||||||
|
maxReconnectionAttempts:
|
||||||
|
type: number
|
||||||
|
reconnectionDelay:
|
||||||
|
type: number
|
||||||
|
topicsPerPage:
|
||||||
|
type: number
|
||||||
|
postsPerPage:
|
||||||
|
type: number
|
||||||
|
maximumFileSize:
|
||||||
|
type: number
|
||||||
|
theme:id:
|
||||||
|
type: string
|
||||||
|
theme:src:
|
||||||
|
type: string
|
||||||
|
defaultLang:
|
||||||
|
type: string
|
||||||
|
userLang:
|
||||||
|
type: string
|
||||||
|
loggedIn:
|
||||||
|
type: boolean
|
||||||
|
uid:
|
||||||
|
type: number
|
||||||
|
description: A user identifier
|
||||||
|
cache-buster:
|
||||||
|
type: string
|
||||||
|
requireEmailConfirmation:
|
||||||
|
type: boolean
|
||||||
|
topicPostSort:
|
||||||
|
type: string
|
||||||
|
categoryTopicSort:
|
||||||
|
type: string
|
||||||
|
csrf_token:
|
||||||
|
type: string
|
||||||
|
searchEnabled:
|
||||||
|
type: boolean
|
||||||
|
bootswatchSkin:
|
||||||
|
type: string
|
||||||
|
enablePostHistory:
|
||||||
|
type: boolean
|
||||||
|
timeagoCutoff:
|
||||||
|
type: number
|
||||||
|
timeagoCodes:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
cookies:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
enabled:
|
||||||
|
type: boolean
|
||||||
|
message:
|
||||||
|
type: string
|
||||||
|
dismiss:
|
||||||
|
type: string
|
||||||
|
link:
|
||||||
|
type: string
|
||||||
|
link_url:
|
||||||
|
type: string
|
||||||
|
acpLang:
|
||||||
|
type: string
|
||||||
|
openOutgoingLinksInNewTab:
|
||||||
|
type: boolean
|
||||||
|
topicSearchEnabled:
|
||||||
|
type: boolean
|
||||||
|
hideSubCategories:
|
||||||
|
type: boolean
|
||||||
|
hideCategoryLastPost:
|
||||||
|
type: boolean
|
||||||
|
enableQuickReply:
|
||||||
|
type: boolean
|
@ -0,0 +1,17 @@
|
|||||||
|
# TODO: Need GET route here as well
|
||||||
|
post:
|
||||||
|
tags:
|
||||||
|
- emails
|
||||||
|
summary: Unsubscribe user from email type
|
||||||
|
parameters:
|
||||||
|
- name: token
|
||||||
|
in: path
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example: testToken
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: "Successfully unsubscribed"
|
||||||
|
"500":
|
||||||
|
description: "Server-side error (likely token verification failure)"
|
@ -0,0 +1,220 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- flags
|
||||||
|
summary: /api/flags/{flagId}
|
||||||
|
parameters:
|
||||||
|
- name: flagId
|
||||||
|
in: path
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example: 1
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: ""
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
state:
|
||||||
|
type: string
|
||||||
|
flagId:
|
||||||
|
type: number
|
||||||
|
type:
|
||||||
|
type: string
|
||||||
|
targetId:
|
||||||
|
type: number
|
||||||
|
targetUid:
|
||||||
|
type: number
|
||||||
|
datetime:
|
||||||
|
type: number
|
||||||
|
datetimeISO:
|
||||||
|
type: string
|
||||||
|
target_readable:
|
||||||
|
type: string
|
||||||
|
target:
|
||||||
|
type: object
|
||||||
|
properties: {}
|
||||||
|
additionalProperties:
|
||||||
|
description: Properties change depending on the target type (user, post, etc.)
|
||||||
|
assignee:
|
||||||
|
type: number
|
||||||
|
nullable: true
|
||||||
|
history:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
uid:
|
||||||
|
type: number
|
||||||
|
description: A user identifier
|
||||||
|
fields:
|
||||||
|
type: object
|
||||||
|
additionalProperties: {}
|
||||||
|
meta:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
key:
|
||||||
|
type: string
|
||||||
|
value:
|
||||||
|
type: string
|
||||||
|
labelClass:
|
||||||
|
type: string
|
||||||
|
enum: ['default', 'primary', 'success', 'info', 'danger']
|
||||||
|
required:
|
||||||
|
- key
|
||||||
|
datetime:
|
||||||
|
type: number
|
||||||
|
datetimeISO:
|
||||||
|
type: string
|
||||||
|
user:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
username:
|
||||||
|
type: string
|
||||||
|
description: A friendly name for a given user account
|
||||||
|
userslug:
|
||||||
|
type: string
|
||||||
|
description: An URL-safe variant of the username (i.e. lower-cased, spaces
|
||||||
|
removed, etc.)
|
||||||
|
picture:
|
||||||
|
nullable: true
|
||||||
|
uid:
|
||||||
|
type: number
|
||||||
|
description: A user identifier
|
||||||
|
icon:text:
|
||||||
|
type: string
|
||||||
|
description: A single-letter representation of a username. This is used in the
|
||||||
|
auto-generated icon given to users without
|
||||||
|
an avatar
|
||||||
|
icon:bgColor:
|
||||||
|
type: string
|
||||||
|
description: A six-character hexadecimal colour code assigned to the user. This
|
||||||
|
value is used in conjunction with
|
||||||
|
`icon:text` for the user's auto-generated
|
||||||
|
icon
|
||||||
|
example: "#f44336"
|
||||||
|
required:
|
||||||
|
- uid
|
||||||
|
- datetime
|
||||||
|
- datetimeISO
|
||||||
|
- user
|
||||||
|
notes:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
uid:
|
||||||
|
type: number
|
||||||
|
content:
|
||||||
|
type: string
|
||||||
|
datetime:
|
||||||
|
type: number
|
||||||
|
datetimeISO:
|
||||||
|
type: string
|
||||||
|
user:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
username:
|
||||||
|
type: string
|
||||||
|
description: A friendly name for a given user account
|
||||||
|
userslug:
|
||||||
|
type: string
|
||||||
|
description: An URL-safe variant of the username (i.e. lower-cased, spaces
|
||||||
|
removed, etc.)
|
||||||
|
picture:
|
||||||
|
type: string
|
||||||
|
uid:
|
||||||
|
type: number
|
||||||
|
description: A user identifier
|
||||||
|
icon:text:
|
||||||
|
type: string
|
||||||
|
description: A single-letter representation of a username. This is used in the
|
||||||
|
auto-generated icon given to users without
|
||||||
|
an avatar
|
||||||
|
icon:bgColor:
|
||||||
|
type: string
|
||||||
|
description: A six-character hexadecimal colour code assigned to the user. This
|
||||||
|
value is used in conjunction with
|
||||||
|
`icon:text` for the user's auto-generated
|
||||||
|
icon
|
||||||
|
example: "#f44336"
|
||||||
|
reports:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
value:
|
||||||
|
type: string
|
||||||
|
timestamp:
|
||||||
|
type: number
|
||||||
|
timestampISO:
|
||||||
|
type: string
|
||||||
|
reporter:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
username:
|
||||||
|
type: string
|
||||||
|
description: A friendly name for a given user account
|
||||||
|
userslug:
|
||||||
|
type: string
|
||||||
|
description: An URL-safe variant of the username (i.e. lower-cased, spaces
|
||||||
|
removed, etc.)
|
||||||
|
picture:
|
||||||
|
nullable: true
|
||||||
|
reputation:
|
||||||
|
type: number
|
||||||
|
uid:
|
||||||
|
type: number
|
||||||
|
description: A user identifier
|
||||||
|
icon:text:
|
||||||
|
type: string
|
||||||
|
description: A single-letter representation of a username. This is used in the
|
||||||
|
auto-generated icon given to users without an
|
||||||
|
avatar
|
||||||
|
icon:bgColor:
|
||||||
|
type: string
|
||||||
|
description: A six-character hexadecimal colour code assigned to the user. This
|
||||||
|
value is used in conjunction with `icon:text` for
|
||||||
|
the user's auto-generated icon
|
||||||
|
example: "#f44336"
|
||||||
|
type_path:
|
||||||
|
type: string
|
||||||
|
assignees:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
$ref: ../components/schemas/UserObject.yaml#/UserObject
|
||||||
|
type_bool:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
post:
|
||||||
|
type: boolean
|
||||||
|
user:
|
||||||
|
type: boolean
|
||||||
|
empty:
|
||||||
|
type: boolean
|
||||||
|
title:
|
||||||
|
type: string
|
||||||
|
categories:
|
||||||
|
type: object
|
||||||
|
additionalProperties:
|
||||||
|
type: string
|
||||||
|
filters:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
page:
|
||||||
|
type: number
|
||||||
|
perPage:
|
||||||
|
type: number
|
||||||
|
privileges:
|
||||||
|
type: object
|
||||||
|
properties: {}
|
||||||
|
additionalProperties:
|
||||||
|
description: "A list of global and admin privileges, and whether the calling user has (or has inherited) them"
|
||||||
|
type: boolean
|
||||||
|
- $ref: ../components/schemas/Breadcrumbs.yaml#/Breadcrumbs
|
||||||
|
- $ref: ../components/schemas/CommonProps.yaml#/CommonProps
|
@ -0,0 +1,34 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- groups
|
||||||
|
summary: Get user group details
|
||||||
|
parameters:
|
||||||
|
- name: slug
|
||||||
|
in: path
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example: administrators
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: ""
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
title:
|
||||||
|
type: string
|
||||||
|
group:
|
||||||
|
$ref: ../components/schemas/GroupObject.yaml#/GroupFullObject
|
||||||
|
posts:
|
||||||
|
$ref: ../components/schemas/PostsObject.yaml#/PostsObject
|
||||||
|
isAdmin:
|
||||||
|
type: boolean
|
||||||
|
isGlobalMod:
|
||||||
|
type: boolean
|
||||||
|
allowPrivateGroups:
|
||||||
|
type: number
|
||||||
|
- $ref: ../components/schemas/Breadcrumbs.yaml#/Breadcrumbs
|
||||||
|
- $ref: ../components/schemas/CommonProps.yaml#/CommonProps
|
@ -0,0 +1,25 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- groups
|
||||||
|
summary: Get user group members
|
||||||
|
parameters:
|
||||||
|
- name: slug
|
||||||
|
in: path
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example: administrators
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: ""
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
users:
|
||||||
|
type: array
|
||||||
|
- $ref: ../../components/schemas/Pagination.yaml#/Pagination
|
||||||
|
- $ref: ../../components/schemas/Breadcrumbs.yaml#/Breadcrumbs
|
||||||
|
- $ref: ../../components/schemas/CommonProps.yaml#/CommonProps
|
@ -0,0 +1,202 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- home
|
||||||
|
description: >
|
||||||
|
This route is used to populate the homepage of NodeBB. It is the main
|
||||||
|
access point of the forum, and shows a list of categories for navigation
|
||||||
|
purposes.
|
||||||
|
summary: Get forum index data
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: ""
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
title:
|
||||||
|
type: string
|
||||||
|
description: The page title
|
||||||
|
categories:
|
||||||
|
description: A collection of category data objects
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
allOf:
|
||||||
|
- $ref: ../components/schemas/CategoryObject.yaml#/CategoryObject
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
tagWhitelist:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
unread-class:
|
||||||
|
type: string
|
||||||
|
children:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
allOf:
|
||||||
|
- $ref: ../components/schemas/CategoryObject.yaml#/CategoryObject
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
tagWhitelist:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
unread-class:
|
||||||
|
type: string
|
||||||
|
children:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
$ref: ../components/schemas/CategoryObject.yaml#/CategoryObject
|
||||||
|
parent:
|
||||||
|
allOf:
|
||||||
|
- $ref: ../components/schemas/CategoryObject.yaml#/CategoryObject
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
tagWhitelist:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
unread-class:
|
||||||
|
type: string
|
||||||
|
posts:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
pid:
|
||||||
|
type: number
|
||||||
|
timestamp:
|
||||||
|
type: number
|
||||||
|
content:
|
||||||
|
type: string
|
||||||
|
timestampISO:
|
||||||
|
type: string
|
||||||
|
description: An ISO 8601 formatted date string (complementing `timestamp`)
|
||||||
|
user:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
uid:
|
||||||
|
type: number
|
||||||
|
description: A user identifier
|
||||||
|
username:
|
||||||
|
type: string
|
||||||
|
description: A friendly name for a given user account
|
||||||
|
userslug:
|
||||||
|
type: string
|
||||||
|
description: An URL-safe variant of the username (i.e. lower-cased, spaces
|
||||||
|
removed, etc.)
|
||||||
|
picture:
|
||||||
|
nullable: true
|
||||||
|
type: string
|
||||||
|
icon:text:
|
||||||
|
type: string
|
||||||
|
description: A single-letter representation of a username. This is used in the
|
||||||
|
auto-generated icon given to
|
||||||
|
users without an avatar
|
||||||
|
icon:bgColor:
|
||||||
|
type: string
|
||||||
|
description: A six-character hexadecimal colour code assigned to the user. This
|
||||||
|
value is used in conjunction
|
||||||
|
with `icon:text` for the user's
|
||||||
|
auto-generated icon
|
||||||
|
example: "#f44336"
|
||||||
|
index:
|
||||||
|
type: number
|
||||||
|
cid:
|
||||||
|
type: number
|
||||||
|
description: A category identifier
|
||||||
|
parentCid:
|
||||||
|
type: number
|
||||||
|
description: The category identifier for the category that is the immediate
|
||||||
|
ancestor of the current category
|
||||||
|
topic:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
slug:
|
||||||
|
type: string
|
||||||
|
title:
|
||||||
|
type: string
|
||||||
|
imageClass:
|
||||||
|
type: string
|
||||||
|
timesClicked:
|
||||||
|
type: number
|
||||||
|
posts:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
pid:
|
||||||
|
type: number
|
||||||
|
timestamp:
|
||||||
|
type: number
|
||||||
|
content:
|
||||||
|
type: string
|
||||||
|
timestampISO:
|
||||||
|
type: string
|
||||||
|
description: An ISO 8601 formatted date string (complementing `timestamp`)
|
||||||
|
user:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
uid:
|
||||||
|
type: number
|
||||||
|
description: A user identifier
|
||||||
|
username:
|
||||||
|
type: string
|
||||||
|
description: A friendly name for a given user account
|
||||||
|
userslug:
|
||||||
|
type: string
|
||||||
|
description: An URL-safe variant of the username (i.e. lower-cased, spaces
|
||||||
|
removed, etc.)
|
||||||
|
picture:
|
||||||
|
nullable: true
|
||||||
|
type: string
|
||||||
|
icon:text:
|
||||||
|
type: string
|
||||||
|
description: A single-letter representation of a username. This is used in the
|
||||||
|
auto-generated icon given to users
|
||||||
|
without an avatar
|
||||||
|
icon:bgColor:
|
||||||
|
type: string
|
||||||
|
description: A six-character hexadecimal colour code assigned to the user. This
|
||||||
|
value is used in conjunction with
|
||||||
|
`icon:text` for the user's
|
||||||
|
auto-generated icon
|
||||||
|
example: "#f44336"
|
||||||
|
index:
|
||||||
|
type: number
|
||||||
|
cid:
|
||||||
|
type: number
|
||||||
|
description: A category identifier
|
||||||
|
parentCid:
|
||||||
|
type: number
|
||||||
|
description: The category identifier for the category that is the immediate
|
||||||
|
ancestor of the current category
|
||||||
|
topic:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
slug:
|
||||||
|
type: string
|
||||||
|
title:
|
||||||
|
type: string
|
||||||
|
teaser:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
url:
|
||||||
|
type: string
|
||||||
|
timestampISO:
|
||||||
|
type: string
|
||||||
|
description: An ISO 8601 formatted date string (complementing `timestamp`)
|
||||||
|
pid:
|
||||||
|
type: number
|
||||||
|
topic:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
slug:
|
||||||
|
type: string
|
||||||
|
title:
|
||||||
|
type: string
|
||||||
|
imageClass:
|
||||||
|
type: string
|
||||||
|
- $ref: ../components/schemas/CommonProps.yaml#/CommonProps
|
@ -0,0 +1,7 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- admin
|
||||||
|
summary: Get IP blacklist settings
|
||||||
|
responses:
|
||||||
|
"418":
|
||||||
|
description: "TODO: A proper response needs to be added. It is not really a teapot | Copy response from corresponding admin route"
|
@ -0,0 +1,58 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- authentication
|
||||||
|
summary: /api/login
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: ""
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
loginFormEntry:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
label:
|
||||||
|
type: string
|
||||||
|
description: A label for the added block
|
||||||
|
html:
|
||||||
|
type: string
|
||||||
|
description: HTML to render on the login page
|
||||||
|
styleName:
|
||||||
|
type: string
|
||||||
|
description: Custom identifier (value is added to `input[id]` and `label[for]`)
|
||||||
|
alternate_logins:
|
||||||
|
type: boolean
|
||||||
|
authentication:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
url:
|
||||||
|
type: string
|
||||||
|
callbackURL:
|
||||||
|
type: string
|
||||||
|
icon:
|
||||||
|
type: string
|
||||||
|
scope:
|
||||||
|
type: string
|
||||||
|
prompt:
|
||||||
|
type: string
|
||||||
|
allowRegistration:
|
||||||
|
type: boolean
|
||||||
|
allowLoginWith:
|
||||||
|
type: string
|
||||||
|
title:
|
||||||
|
type: string
|
||||||
|
allowPasswordReset:
|
||||||
|
type: boolean
|
||||||
|
allowLocalLogin:
|
||||||
|
type: boolean
|
||||||
|
- $ref: ../components/schemas/Breadcrumbs.yaml#/Breadcrumbs
|
||||||
|
- $ref: ../components/schemas/CommonProps.yaml#/CommonProps
|
@ -0,0 +1,10 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- shorthand
|
||||||
|
summary: Access your own profile's sub-pages
|
||||||
|
description: >-
|
||||||
|
This shorthand is useful if you want to link to pages in your own account profile, but do not want (or have) the `userslug`. It is also especially useful as a
|
||||||
|
means to instruct users on how to do things, as you can easily redirect them to their own profile pages.
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: "Canonical URL to your requested profile page"
|
@ -0,0 +1,109 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- notifications
|
||||||
|
summary: Get notifications
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: ""
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
notifications:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
bodyShort:
|
||||||
|
type: string
|
||||||
|
path:
|
||||||
|
type: string
|
||||||
|
nid:
|
||||||
|
type: string
|
||||||
|
from:
|
||||||
|
type: number
|
||||||
|
importance:
|
||||||
|
type: number
|
||||||
|
datetime:
|
||||||
|
type: number
|
||||||
|
datetimeISO:
|
||||||
|
type: string
|
||||||
|
user:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
username:
|
||||||
|
type: string
|
||||||
|
description: A friendly name for a given user account
|
||||||
|
userslug:
|
||||||
|
type: string
|
||||||
|
description: An URL-safe variant of the username (i.e. lower-cased, spaces
|
||||||
|
removed, etc.)
|
||||||
|
picture:
|
||||||
|
type: string
|
||||||
|
nullable: true
|
||||||
|
uid:
|
||||||
|
type: number
|
||||||
|
description: A user identifier
|
||||||
|
icon:text:
|
||||||
|
type: string
|
||||||
|
description: A single-letter representation of a username. This is used in the
|
||||||
|
auto-generated icon given to users without
|
||||||
|
an avatar
|
||||||
|
icon:bgColor:
|
||||||
|
type: string
|
||||||
|
description: A six-character hexadecimal colour code assigned to the user. This
|
||||||
|
value is used in conjunction with
|
||||||
|
`icon:text` for the user's auto-generated
|
||||||
|
icon
|
||||||
|
example: "#f44336"
|
||||||
|
image:
|
||||||
|
type: string
|
||||||
|
nullable: true
|
||||||
|
read:
|
||||||
|
type: boolean
|
||||||
|
readClass:
|
||||||
|
type: string
|
||||||
|
filters:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
additionalProperties: {}
|
||||||
|
regularFilters:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
filter:
|
||||||
|
type: string
|
||||||
|
selected:
|
||||||
|
type: boolean
|
||||||
|
required:
|
||||||
|
- name
|
||||||
|
- filter
|
||||||
|
moderatorFilters:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
filter:
|
||||||
|
type: string
|
||||||
|
selectedFilter:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
filter:
|
||||||
|
type: string
|
||||||
|
selected:
|
||||||
|
type: boolean
|
||||||
|
title:
|
||||||
|
type: string
|
||||||
|
- $ref: ../components/schemas/Pagination.yaml#/Pagination
|
||||||
|
- $ref: ../components/schemas/Breadcrumbs.yaml#/Breadcrumbs
|
||||||
|
- $ref: ../components/schemas/CommonProps.yaml#/CommonProps
|
@ -0,0 +1,137 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- topics
|
||||||
|
summary: Get popular topics
|
||||||
|
description: Returns a list of topics sorted by most replies. In an event of a
|
||||||
|
tie breaker, the topic with the most views. Can be filtered by All Time,
|
||||||
|
Day, Week, or Month.
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: An array of topic objects sorted by most replies and views.
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
nextStart:
|
||||||
|
type: number
|
||||||
|
topicCount:
|
||||||
|
type: number
|
||||||
|
topics:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
$ref: ../components/schemas/TopicObject.yaml#/TopicObject
|
||||||
|
tids:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: number
|
||||||
|
canPost:
|
||||||
|
type: boolean
|
||||||
|
showSelect:
|
||||||
|
type: boolean
|
||||||
|
showTopicTools:
|
||||||
|
type: boolean
|
||||||
|
categories:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
cid:
|
||||||
|
type: number
|
||||||
|
description: A category identifier
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
level:
|
||||||
|
type: string
|
||||||
|
icon:
|
||||||
|
type: string
|
||||||
|
parentCid:
|
||||||
|
type: number
|
||||||
|
description: The category identifier for the category that is the immediate
|
||||||
|
ancestor of the current category
|
||||||
|
color:
|
||||||
|
type: string
|
||||||
|
bgColor:
|
||||||
|
type: string
|
||||||
|
selected:
|
||||||
|
type: boolean
|
||||||
|
imageClass:
|
||||||
|
type: string
|
||||||
|
allCategoriesUrl:
|
||||||
|
type: string
|
||||||
|
selectedCategory:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
icon:
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
bgColor:
|
||||||
|
type: string
|
||||||
|
nullable: true
|
||||||
|
selectedCids:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: number
|
||||||
|
feeds:disableRSS:
|
||||||
|
type: number
|
||||||
|
rssFeedUrl:
|
||||||
|
type: string
|
||||||
|
title:
|
||||||
|
type: string
|
||||||
|
filters:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
url:
|
||||||
|
type: string
|
||||||
|
selected:
|
||||||
|
type: boolean
|
||||||
|
filter:
|
||||||
|
type: string
|
||||||
|
icon:
|
||||||
|
type: string
|
||||||
|
selectedFilter:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
url:
|
||||||
|
type: string
|
||||||
|
selected:
|
||||||
|
type: boolean
|
||||||
|
filter:
|
||||||
|
type: string
|
||||||
|
icon:
|
||||||
|
type: string
|
||||||
|
terms:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
url:
|
||||||
|
type: string
|
||||||
|
selected:
|
||||||
|
type: boolean
|
||||||
|
term:
|
||||||
|
type: string
|
||||||
|
selectedTerm:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
url:
|
||||||
|
type: string
|
||||||
|
selected:
|
||||||
|
type: boolean
|
||||||
|
term:
|
||||||
|
type: string
|
||||||
|
- $ref: ../components/schemas/Pagination.yaml#/Pagination
|
||||||
|
- $ref: ../components/schemas/Breadcrumbs.yaml#/Breadcrumbs
|
||||||
|
- $ref: ../components/schemas/CommonProps.yaml#/CommonProps
|
@ -0,0 +1,180 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- admin
|
||||||
|
summary: Get flag data
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: ""
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
title:
|
||||||
|
type: string
|
||||||
|
allCategories:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
bgColor:
|
||||||
|
type: string
|
||||||
|
cid:
|
||||||
|
type: number
|
||||||
|
color:
|
||||||
|
type: string
|
||||||
|
disabled:
|
||||||
|
type: number
|
||||||
|
disabledClass:
|
||||||
|
type: boolean
|
||||||
|
icon:
|
||||||
|
type: string
|
||||||
|
imageClass:
|
||||||
|
type: string
|
||||||
|
level:
|
||||||
|
type: string
|
||||||
|
link:
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
parentCid:
|
||||||
|
type: number
|
||||||
|
slug:
|
||||||
|
type: string
|
||||||
|
posts:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
allOf:
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
id:
|
||||||
|
type: string
|
||||||
|
uid:
|
||||||
|
type: number
|
||||||
|
description: A user identifier
|
||||||
|
type:
|
||||||
|
type: string
|
||||||
|
data:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
title:
|
||||||
|
type: string
|
||||||
|
content:
|
||||||
|
type: string
|
||||||
|
thumb:
|
||||||
|
type: string
|
||||||
|
cid:
|
||||||
|
oneOf:
|
||||||
|
- type: number
|
||||||
|
- type: string
|
||||||
|
tags:
|
||||||
|
type: array
|
||||||
|
items: {}
|
||||||
|
uid:
|
||||||
|
type: number
|
||||||
|
description: A user identifier
|
||||||
|
req:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
uid:
|
||||||
|
type: number
|
||||||
|
description: A user identifier
|
||||||
|
ip:
|
||||||
|
type: string
|
||||||
|
host:
|
||||||
|
type: string
|
||||||
|
protocol:
|
||||||
|
type: string
|
||||||
|
secure:
|
||||||
|
type: boolean
|
||||||
|
url:
|
||||||
|
type: string
|
||||||
|
path:
|
||||||
|
type: string
|
||||||
|
headers:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
x-real-ip:
|
||||||
|
type: string
|
||||||
|
x-forwarded-for:
|
||||||
|
type: string
|
||||||
|
x-forwarded-proto:
|
||||||
|
type: string
|
||||||
|
host:
|
||||||
|
type: string
|
||||||
|
x-nginx-proxy:
|
||||||
|
type: string
|
||||||
|
connection:
|
||||||
|
type: string
|
||||||
|
accept:
|
||||||
|
type: string
|
||||||
|
user-agent:
|
||||||
|
type: string
|
||||||
|
sec-fetch-site:
|
||||||
|
type: string
|
||||||
|
sec-fetch-mode:
|
||||||
|
type: string
|
||||||
|
referer:
|
||||||
|
type: string
|
||||||
|
accept-encoding:
|
||||||
|
type: string
|
||||||
|
accept-language:
|
||||||
|
type: string
|
||||||
|
cookie:
|
||||||
|
type: string
|
||||||
|
timestamp:
|
||||||
|
type: number
|
||||||
|
fromQueue:
|
||||||
|
type: boolean
|
||||||
|
timestampISO:
|
||||||
|
type: string
|
||||||
|
description: An ISO 8601 formatted date string (complementing `timestamp`)
|
||||||
|
rawContent:
|
||||||
|
type: string
|
||||||
|
tid:
|
||||||
|
type: number
|
||||||
|
description: A topic identifier
|
||||||
|
toPid:
|
||||||
|
nullable: true
|
||||||
|
user:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
username:
|
||||||
|
type: string
|
||||||
|
description: A friendly name for a given user account
|
||||||
|
userslug:
|
||||||
|
type: string
|
||||||
|
description: An URL-safe variant of the username (i.e. lower-cased, spaces
|
||||||
|
removed, etc.)
|
||||||
|
picture:
|
||||||
|
nullable: true
|
||||||
|
type: string
|
||||||
|
uid:
|
||||||
|
type: number
|
||||||
|
description: A user identifier
|
||||||
|
icon:text:
|
||||||
|
type: string
|
||||||
|
description: A single-letter representation of a username. This is used in the
|
||||||
|
auto-generated icon given to users without
|
||||||
|
an avatar
|
||||||
|
icon:bgColor:
|
||||||
|
type: string
|
||||||
|
description: A six-character hexadecimal colour code assigned to the user. This
|
||||||
|
value is used in conjunction with
|
||||||
|
`icon:text` for the user's auto-generated
|
||||||
|
icon
|
||||||
|
example: "#f44336"
|
||||||
|
topic:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
cid:
|
||||||
|
type: number
|
||||||
|
title:
|
||||||
|
type: string
|
||||||
|
titleRaw:
|
||||||
|
type: string
|
||||||
|
- $ref: ../components/schemas/CategoryObject.yaml#/CategoryObject
|
||||||
|
- $ref: ../components/schemas/Pagination.yaml#/Pagination
|
||||||
|
- $ref: ../components/schemas/Breadcrumbs.yaml#/Breadcrumbs
|
||||||
|
- $ref: ../components/schemas/CommonProps.yaml#/CommonProps
|
@ -0,0 +1,19 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- shorthand
|
||||||
|
summary: Access a specific post
|
||||||
|
description: This route comes in handy when all you have is the `pid`, and you want to redirect users to the canonical URL for the topic, with the appropriate topic slug and post index.
|
||||||
|
parameters:
|
||||||
|
- name: pid
|
||||||
|
in: path
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example: 1
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: "Canonical URL of topic"
|
||||||
|
content:
|
||||||
|
text/plain:
|
||||||
|
schema:
|
||||||
|
type: string
|
@ -0,0 +1,56 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- shorthand
|
||||||
|
summary: Get post data
|
||||||
|
parameters:
|
||||||
|
- name: id
|
||||||
|
in: path
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
type: number
|
||||||
|
example: 1
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: "A JSON object containing post data"
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
uid:
|
||||||
|
type: number
|
||||||
|
tid:
|
||||||
|
type: number
|
||||||
|
timestamp:
|
||||||
|
type: number
|
||||||
|
content:
|
||||||
|
type: string
|
||||||
|
pid:
|
||||||
|
type: number
|
||||||
|
downvotes:
|
||||||
|
type: number
|
||||||
|
upvotes:
|
||||||
|
type: number
|
||||||
|
bookmarks:
|
||||||
|
type: number
|
||||||
|
deleted:
|
||||||
|
type: number
|
||||||
|
deleterUid:
|
||||||
|
type: number
|
||||||
|
edited:
|
||||||
|
type: number
|
||||||
|
votes:
|
||||||
|
type: number
|
||||||
|
timestampISO:
|
||||||
|
type: string
|
||||||
|
editedISO:
|
||||||
|
type: string
|
||||||
|
upvoted:
|
||||||
|
type: boolean
|
||||||
|
downvoted:
|
||||||
|
type: boolean
|
||||||
|
flagId:
|
||||||
|
type: number
|
||||||
|
description: The flag identifier, if this particular post has been flagged before
|
||||||
|
replies:
|
||||||
|
type: number
|
@ -0,0 +1,59 @@
|
|||||||
|
post:
|
||||||
|
tags:
|
||||||
|
- posts
|
||||||
|
summary: Upload a file to a specific post
|
||||||
|
description: Provided by NodeBB core and used mainly by the composer, this route allows you to upload an image or file to a post.
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: ""
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
url:
|
||||||
|
type: string
|
||||||
|
text/plain:
|
||||||
|
schema:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
url:
|
||||||
|
type: string
|
||||||
|
"403":
|
||||||
|
description: ""
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example: Forbidden
|
||||||
|
text/plain:
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example: Forbidden
|
||||||
|
"500":
|
||||||
|
description: ""
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
path:
|
||||||
|
type: string
|
||||||
|
error:
|
||||||
|
type: string
|
||||||
|
text/plain:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
path:
|
||||||
|
type: string
|
||||||
|
error:
|
||||||
|
type: string
|
@ -0,0 +1,135 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- topics
|
||||||
|
summary: Get recent topics
|
||||||
|
description: Returns a list of topics sorted by timestamp.
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: An array of topic objects sorted by timestamp.
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
nextStart:
|
||||||
|
type: number
|
||||||
|
topicCount:
|
||||||
|
type: number
|
||||||
|
topics:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
$ref: ../components/schemas/TopicObject.yaml#/TopicObject
|
||||||
|
tids:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: number
|
||||||
|
canPost:
|
||||||
|
type: boolean
|
||||||
|
showSelect:
|
||||||
|
type: boolean
|
||||||
|
showTopicTools:
|
||||||
|
type: boolean
|
||||||
|
categories:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
cid:
|
||||||
|
type: number
|
||||||
|
description: A category identifier
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
level:
|
||||||
|
type: string
|
||||||
|
icon:
|
||||||
|
type: string
|
||||||
|
parentCid:
|
||||||
|
type: number
|
||||||
|
description: The category identifier for the category that is the immediate
|
||||||
|
ancestor of the current category
|
||||||
|
color:
|
||||||
|
type: string
|
||||||
|
bgColor:
|
||||||
|
type: string
|
||||||
|
selected:
|
||||||
|
type: boolean
|
||||||
|
imageClass:
|
||||||
|
type: string
|
||||||
|
allCategoriesUrl:
|
||||||
|
type: string
|
||||||
|
selectedCategory:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
icon:
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
bgColor:
|
||||||
|
type: string
|
||||||
|
nullable: true
|
||||||
|
selectedCids:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: number
|
||||||
|
feeds:disableRSS:
|
||||||
|
type: number
|
||||||
|
rssFeedUrl:
|
||||||
|
type: string
|
||||||
|
title:
|
||||||
|
type: string
|
||||||
|
filters:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
url:
|
||||||
|
type: string
|
||||||
|
selected:
|
||||||
|
type: boolean
|
||||||
|
filter:
|
||||||
|
type: string
|
||||||
|
icon:
|
||||||
|
type: string
|
||||||
|
selectedFilter:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
url:
|
||||||
|
type: string
|
||||||
|
selected:
|
||||||
|
type: boolean
|
||||||
|
filter:
|
||||||
|
type: string
|
||||||
|
icon:
|
||||||
|
type: string
|
||||||
|
terms:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
url:
|
||||||
|
type: string
|
||||||
|
selected:
|
||||||
|
type: boolean
|
||||||
|
term:
|
||||||
|
type: string
|
||||||
|
selectedTerm:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
url:
|
||||||
|
type: string
|
||||||
|
selected:
|
||||||
|
type: boolean
|
||||||
|
term:
|
||||||
|
type: string
|
||||||
|
- $ref: ../components/schemas/Pagination.yaml#/Pagination
|
||||||
|
- $ref: ../components/schemas/Breadcrumbs.yaml#/Breadcrumbs
|
||||||
|
- $ref: ../components/schemas/CommonProps.yaml#/CommonProps
|
@ -0,0 +1,18 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- posts
|
||||||
|
summary: Get recent posts
|
||||||
|
parameters:
|
||||||
|
- name: term
|
||||||
|
in: path
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example: daily
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: ""
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: ../../components/schemas/PostsObject.yaml#/PostsObject
|
@ -0,0 +1,81 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- authentication
|
||||||
|
summary: /api/register
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: ""
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
register_window:spansize:
|
||||||
|
type: string
|
||||||
|
alternate_logins:
|
||||||
|
type: boolean
|
||||||
|
authentication:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
url:
|
||||||
|
type: string
|
||||||
|
callbackURL:
|
||||||
|
type: string
|
||||||
|
icon:
|
||||||
|
type: string
|
||||||
|
scope:
|
||||||
|
type: string
|
||||||
|
prompt:
|
||||||
|
type: string
|
||||||
|
minimumUsernameLength:
|
||||||
|
type: number
|
||||||
|
maximumUsernameLength:
|
||||||
|
type: number
|
||||||
|
minimumPasswordLength:
|
||||||
|
type: number
|
||||||
|
minimumPasswordStrength:
|
||||||
|
type: number
|
||||||
|
regFormEntry:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
label:
|
||||||
|
type: string
|
||||||
|
html:
|
||||||
|
type: string
|
||||||
|
styleName:
|
||||||
|
type: string
|
||||||
|
title:
|
||||||
|
type: string
|
||||||
|
- $ref: ../components/schemas/Breadcrumbs.yaml#/Breadcrumbs
|
||||||
|
- $ref: ../components/schemas/CommonProps.yaml#/CommonProps
|
||||||
|
# /api/register/complete:
|
||||||
|
# get:
|
||||||
|
# tags:
|
||||||
|
# - authentication
|
||||||
|
# summary: /api/register/complete
|
||||||
|
# responses:
|
||||||
|
# "200":
|
||||||
|
# description: ""
|
||||||
|
# content:
|
||||||
|
# application/json:
|
||||||
|
# schema:
|
||||||
|
# allOf:
|
||||||
|
# - type: object
|
||||||
|
# properties:
|
||||||
|
# title:
|
||||||
|
# type: string
|
||||||
|
# errors:
|
||||||
|
# type: array
|
||||||
|
# items: {}
|
||||||
|
# sections:
|
||||||
|
# type: array
|
||||||
|
# items:
|
||||||
|
# type: string
|
||||||
|
# - $ref: ../components/schemas/CommonProps.yaml#/CommonProps
|
@ -0,0 +1,7 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- admin
|
||||||
|
summary: Get registration queue
|
||||||
|
responses:
|
||||||
|
"418":
|
||||||
|
description: "TODO: A proper response needs to be added. It is not really a teapot | Copy response from corresponding admin route"
|
@ -0,0 +1,32 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- authentication
|
||||||
|
summary: Get user password reset (step 2)
|
||||||
|
parameters:
|
||||||
|
- name: code
|
||||||
|
in: path
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example: testCode
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: "A JSON object containing the 2nd step of the user password reset flow"
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
valid:
|
||||||
|
type: boolean
|
||||||
|
code:
|
||||||
|
type: string
|
||||||
|
minimumPasswordLength:
|
||||||
|
type: number
|
||||||
|
minimumPasswordStrength:
|
||||||
|
type: number
|
||||||
|
title:
|
||||||
|
type: string
|
||||||
|
- $ref: ../components/schemas/Breadcrumbs.yaml#/Breadcrumbs
|
||||||
|
- $ref: ../components/schemas/CommonProps.yaml#/CommonProps
|
@ -0,0 +1,77 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- search
|
||||||
|
summary: Get search results
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: ""
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
posts:
|
||||||
|
$ref: ../components/schemas/PostsObject.yaml#/PostsObject
|
||||||
|
matchCount:
|
||||||
|
type: number
|
||||||
|
pageCount:
|
||||||
|
type: number
|
||||||
|
time:
|
||||||
|
type: string
|
||||||
|
multiplePages:
|
||||||
|
type: boolean
|
||||||
|
search_query:
|
||||||
|
type: string
|
||||||
|
term:
|
||||||
|
type: string
|
||||||
|
categories:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
value:
|
||||||
|
oneOf:
|
||||||
|
- type: string
|
||||||
|
- type: number
|
||||||
|
text:
|
||||||
|
type: string
|
||||||
|
categoriesCount:
|
||||||
|
type: number
|
||||||
|
expandSearch:
|
||||||
|
type: boolean
|
||||||
|
showAsPosts:
|
||||||
|
type: boolean
|
||||||
|
showAsTopics:
|
||||||
|
type: boolean
|
||||||
|
title:
|
||||||
|
type: string
|
||||||
|
searchDefaultSortBy:
|
||||||
|
type: string
|
||||||
|
privileges:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
search:users:
|
||||||
|
type: boolean
|
||||||
|
search:content:
|
||||||
|
type: boolean
|
||||||
|
search:tags:
|
||||||
|
type: boolean
|
||||||
|
required:
|
||||||
|
- posts
|
||||||
|
- matchCount
|
||||||
|
- pageCount
|
||||||
|
- time
|
||||||
|
- multiplePages
|
||||||
|
- search_query
|
||||||
|
- categories
|
||||||
|
- categoriesCount
|
||||||
|
- expandSearch
|
||||||
|
- showAsPosts
|
||||||
|
- showAsTopics
|
||||||
|
- title
|
||||||
|
- searchDefaultSortBy
|
||||||
|
- permissions
|
||||||
|
- $ref: ../components/schemas/Pagination.yaml#/Pagination
|
||||||
|
- $ref: ../components/schemas/Breadcrumbs.yaml#/Breadcrumbs
|
||||||
|
- $ref: ../components/schemas/CommonProps.yaml#/CommonProps
|
@ -0,0 +1,12 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- shorthand
|
||||||
|
summary: Access your profile data
|
||||||
|
description: This shorthand returns the data for the logged in user, identical to the data returned at this route /user/<userslug>
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: ""
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: ../components/schemas/UserObject.yaml#/UserObjectFull
|
@ -0,0 +1,276 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- tags
|
||||||
|
summary: Get tag data
|
||||||
|
description: Returns a list of topics that are tagged with {tag}
|
||||||
|
parameters:
|
||||||
|
- name: tag
|
||||||
|
description: The tag used to retrieve the topics
|
||||||
|
in: path
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example: test
|
||||||
|
- name: page
|
||||||
|
description: Page number used in pagination
|
||||||
|
in: query
|
||||||
|
required: false
|
||||||
|
schema:
|
||||||
|
type: number
|
||||||
|
example: ''
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: ""
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
topics:
|
||||||
|
type: array
|
||||||
|
description: An array of topics that are all tagged with {tag}
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
tid:
|
||||||
|
type: number
|
||||||
|
description: A topic identifier
|
||||||
|
uid:
|
||||||
|
type: number
|
||||||
|
description: A user identifier
|
||||||
|
cid:
|
||||||
|
type: number
|
||||||
|
description: A category identifier
|
||||||
|
mainPid:
|
||||||
|
type: number
|
||||||
|
description: The post id of the first post in this topic (also called the
|
||||||
|
"original post")
|
||||||
|
title:
|
||||||
|
type: string
|
||||||
|
slug:
|
||||||
|
type: string
|
||||||
|
timestamp:
|
||||||
|
type: number
|
||||||
|
lastposttime:
|
||||||
|
type: number
|
||||||
|
postcount:
|
||||||
|
type: number
|
||||||
|
viewcount:
|
||||||
|
type: number
|
||||||
|
teaserPid:
|
||||||
|
oneOf:
|
||||||
|
- type: number
|
||||||
|
- type: string
|
||||||
|
deleted:
|
||||||
|
type: number
|
||||||
|
locked:
|
||||||
|
type: number
|
||||||
|
pinned:
|
||||||
|
type: number
|
||||||
|
description: Whether or not this particular topic is pinned to the top of the
|
||||||
|
category
|
||||||
|
upvotes:
|
||||||
|
type: number
|
||||||
|
downvotes:
|
||||||
|
type: number
|
||||||
|
titleRaw:
|
||||||
|
type: string
|
||||||
|
timestampISO:
|
||||||
|
type: string
|
||||||
|
description: An ISO 8601 formatted date string (complementing `timestamp`)
|
||||||
|
lastposttimeISO:
|
||||||
|
type: string
|
||||||
|
votes:
|
||||||
|
type: number
|
||||||
|
category:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
cid:
|
||||||
|
type: number
|
||||||
|
description: A category identifier
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
slug:
|
||||||
|
type: string
|
||||||
|
icon:
|
||||||
|
type: string
|
||||||
|
image:
|
||||||
|
nullable: true
|
||||||
|
imageClass:
|
||||||
|
nullable: true
|
||||||
|
type: string
|
||||||
|
bgColor:
|
||||||
|
type: string
|
||||||
|
color:
|
||||||
|
type: string
|
||||||
|
disabled:
|
||||||
|
type: number
|
||||||
|
user:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
uid:
|
||||||
|
type: number
|
||||||
|
description: A user identifier
|
||||||
|
username:
|
||||||
|
type: string
|
||||||
|
description: A friendly name for a given user account
|
||||||
|
userslug:
|
||||||
|
type: string
|
||||||
|
description: An URL-safe variant of the username (i.e. lower-cased, spaces
|
||||||
|
removed, etc.)
|
||||||
|
reputation:
|
||||||
|
type: number
|
||||||
|
postcount:
|
||||||
|
type: number
|
||||||
|
picture:
|
||||||
|
nullable: true
|
||||||
|
type: string
|
||||||
|
signature:
|
||||||
|
nullable: true
|
||||||
|
type: string
|
||||||
|
banned:
|
||||||
|
type: number
|
||||||
|
status:
|
||||||
|
type: string
|
||||||
|
icon:text:
|
||||||
|
type: string
|
||||||
|
description: A single-letter representation of a username. This is used in the
|
||||||
|
auto-generated icon given to users without
|
||||||
|
an avatar
|
||||||
|
icon:bgColor:
|
||||||
|
type: string
|
||||||
|
description: A six-character hexadecimal colour code assigned to the user. This
|
||||||
|
value is used in conjunction with
|
||||||
|
`icon:text` for the user's auto-generated
|
||||||
|
icon
|
||||||
|
example: "#f44336"
|
||||||
|
banned_until_readable:
|
||||||
|
type: string
|
||||||
|
fullname:
|
||||||
|
type: string
|
||||||
|
teaser:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
pid:
|
||||||
|
type: number
|
||||||
|
uid:
|
||||||
|
type: number
|
||||||
|
description: A user identifier
|
||||||
|
timestamp:
|
||||||
|
type: number
|
||||||
|
tid:
|
||||||
|
type: number
|
||||||
|
description: A topic identifier
|
||||||
|
content:
|
||||||
|
type: string
|
||||||
|
timestampISO:
|
||||||
|
type: string
|
||||||
|
description: An ISO 8601 formatted date string (complementing `timestamp`)
|
||||||
|
user:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
uid:
|
||||||
|
type: number
|
||||||
|
description: A user identifier
|
||||||
|
username:
|
||||||
|
type: string
|
||||||
|
description: A friendly name for a given user account
|
||||||
|
userslug:
|
||||||
|
type: string
|
||||||
|
description: An URL-safe variant of the username (i.e. lower-cased, spaces
|
||||||
|
removed, etc.)
|
||||||
|
picture:
|
||||||
|
nullable: true
|
||||||
|
type: string
|
||||||
|
icon:text:
|
||||||
|
type: string
|
||||||
|
description: A single-letter representation of a username. This is used in the
|
||||||
|
auto-generated icon given to users
|
||||||
|
without an avatar
|
||||||
|
icon:bgColor:
|
||||||
|
type: string
|
||||||
|
description: A six-character hexadecimal colour code assigned to the user. This
|
||||||
|
value is used in conjunction with
|
||||||
|
`icon:text` for the user's
|
||||||
|
auto-generated icon
|
||||||
|
example: "#f44336"
|
||||||
|
index:
|
||||||
|
type: number
|
||||||
|
tags:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
value:
|
||||||
|
type: string
|
||||||
|
valueEscaped:
|
||||||
|
type: string
|
||||||
|
color:
|
||||||
|
type: string
|
||||||
|
bgColor:
|
||||||
|
type: string
|
||||||
|
score:
|
||||||
|
type: number
|
||||||
|
isOwner:
|
||||||
|
type: boolean
|
||||||
|
ignored:
|
||||||
|
type: boolean
|
||||||
|
unread:
|
||||||
|
type: boolean
|
||||||
|
bookmark:
|
||||||
|
nullable: true
|
||||||
|
unreplied:
|
||||||
|
type: boolean
|
||||||
|
icons:
|
||||||
|
type: array
|
||||||
|
items: {}
|
||||||
|
index:
|
||||||
|
type: number
|
||||||
|
thumb:
|
||||||
|
type: string
|
||||||
|
isQuestion:
|
||||||
|
nullable: true
|
||||||
|
type: number
|
||||||
|
isSolved:
|
||||||
|
type: number
|
||||||
|
tag:
|
||||||
|
type: string
|
||||||
|
title:
|
||||||
|
type: string
|
||||||
|
categories:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
cid:
|
||||||
|
type: number
|
||||||
|
description: A category identifier
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
level:
|
||||||
|
type: string
|
||||||
|
icon:
|
||||||
|
type: string
|
||||||
|
parentCid:
|
||||||
|
type: number
|
||||||
|
description: The category identifier for the category that is the immediate
|
||||||
|
ancestor of the current category
|
||||||
|
color:
|
||||||
|
type: string
|
||||||
|
bgColor:
|
||||||
|
type: string
|
||||||
|
selected:
|
||||||
|
type: boolean
|
||||||
|
imageClass:
|
||||||
|
type: string
|
||||||
|
rssFeedUrl:
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- topics
|
||||||
|
- tag
|
||||||
|
- title
|
||||||
|
- categories
|
||||||
|
- $ref: ../components/schemas/Pagination.yaml#/Pagination
|
||||||
|
- $ref: ../components/schemas/Breadcrumbs.yaml#/Breadcrumbs
|
||||||
|
- $ref: ../components/schemas/CommonProps.yaml#/CommonProps
|
@ -0,0 +1,148 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- topics
|
||||||
|
summary: Get top topics
|
||||||
|
description: Returns a list of topics sorted by most upvotes.
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: An array of topic objects sorted by most upvotes.
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
nextStart:
|
||||||
|
type: number
|
||||||
|
topicCount:
|
||||||
|
type: number
|
||||||
|
topics:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
$ref: ../components/schemas/TopicObject.yaml#/TopicObject
|
||||||
|
tids:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: number
|
||||||
|
canPost:
|
||||||
|
type: boolean
|
||||||
|
showSelect:
|
||||||
|
type: boolean
|
||||||
|
showTopicTools:
|
||||||
|
type: boolean
|
||||||
|
categories:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
cid:
|
||||||
|
type: number
|
||||||
|
description: A category identifier
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
level:
|
||||||
|
type: string
|
||||||
|
icon:
|
||||||
|
type: string
|
||||||
|
parentCid:
|
||||||
|
type: number
|
||||||
|
description: The category identifier for the category that is the immediate
|
||||||
|
ancestor of the current category
|
||||||
|
color:
|
||||||
|
type: string
|
||||||
|
bgColor:
|
||||||
|
type: string
|
||||||
|
selected:
|
||||||
|
type: boolean
|
||||||
|
imageClass:
|
||||||
|
type: string
|
||||||
|
allCategoriesUrl:
|
||||||
|
type: string
|
||||||
|
selectedCategory:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
cid:
|
||||||
|
type: number
|
||||||
|
description: A category identifier
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
level:
|
||||||
|
type: string
|
||||||
|
icon:
|
||||||
|
type: string
|
||||||
|
parentCid:
|
||||||
|
type: number
|
||||||
|
description: The category identifier for the category that is the immediate
|
||||||
|
ancestor of the current category
|
||||||
|
color:
|
||||||
|
type: string
|
||||||
|
bgColor:
|
||||||
|
type: string
|
||||||
|
selected:
|
||||||
|
type: boolean
|
||||||
|
nullable: true
|
||||||
|
selectedCids:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: number
|
||||||
|
feeds:disableRSS:
|
||||||
|
type: number
|
||||||
|
rssFeedUrl:
|
||||||
|
type: string
|
||||||
|
title:
|
||||||
|
type: string
|
||||||
|
filters:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
url:
|
||||||
|
type: string
|
||||||
|
selected:
|
||||||
|
type: boolean
|
||||||
|
filter:
|
||||||
|
type: string
|
||||||
|
icon:
|
||||||
|
type: string
|
||||||
|
selectedFilter:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
url:
|
||||||
|
type: string
|
||||||
|
selected:
|
||||||
|
type: boolean
|
||||||
|
filter:
|
||||||
|
type: string
|
||||||
|
icon:
|
||||||
|
type: string
|
||||||
|
terms:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
url:
|
||||||
|
type: string
|
||||||
|
selected:
|
||||||
|
type: boolean
|
||||||
|
term:
|
||||||
|
type: string
|
||||||
|
selectedTerm:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
url:
|
||||||
|
type: string
|
||||||
|
selected:
|
||||||
|
type: boolean
|
||||||
|
term:
|
||||||
|
type: string
|
||||||
|
- $ref: ../components/schemas/Pagination.yaml#/Pagination
|
||||||
|
- $ref: ../components/schemas/Breadcrumbs.yaml#/Breadcrumbs
|
||||||
|
- $ref: ../components/schemas/CommonProps.yaml#/CommonProps
|
@ -0,0 +1,414 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- topics
|
||||||
|
summary: Get topic data
|
||||||
|
parameters:
|
||||||
|
- name: topic_id
|
||||||
|
in: path
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example: 1
|
||||||
|
- name: slug
|
||||||
|
description: This parameter is not required. If omitted, the request will be automatically redirected with the proper topic slug.
|
||||||
|
in: path
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example: test-topic
|
||||||
|
- name: post_index
|
||||||
|
description: This parameter is not required. If omitted, the request will presume that you want the first post. The API response is largely unaffected by this parameter, it is used client-side (to send the user to the requested post), and changes the meta/link tags in the server-side generated HTML.
|
||||||
|
in: path
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example: 1
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: ""
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
tid:
|
||||||
|
type: number
|
||||||
|
description: A topic identifier
|
||||||
|
uid:
|
||||||
|
type: number
|
||||||
|
description: A user identifier
|
||||||
|
cid:
|
||||||
|
type: number
|
||||||
|
description: A category identifier
|
||||||
|
title:
|
||||||
|
type: string
|
||||||
|
slug:
|
||||||
|
type: string
|
||||||
|
timestamp:
|
||||||
|
type: number
|
||||||
|
lastposttime:
|
||||||
|
type: number
|
||||||
|
postcount:
|
||||||
|
type: number
|
||||||
|
viewcount:
|
||||||
|
type: number
|
||||||
|
posterCount:
|
||||||
|
type: number
|
||||||
|
description: The number of unique users who made a post in this topic
|
||||||
|
mainPid:
|
||||||
|
type: number
|
||||||
|
description: The post id of the first post in this topic (also called the
|
||||||
|
"original post")
|
||||||
|
teaserPid:
|
||||||
|
type: number
|
||||||
|
nullable: true
|
||||||
|
upvotes:
|
||||||
|
type: number
|
||||||
|
downvotes:
|
||||||
|
type: number
|
||||||
|
deleted:
|
||||||
|
type: number
|
||||||
|
locked:
|
||||||
|
type: number
|
||||||
|
pinned:
|
||||||
|
type: number
|
||||||
|
description: Whether or not this particular topic is pinned to the top of the
|
||||||
|
category
|
||||||
|
deleterUid:
|
||||||
|
type: number
|
||||||
|
titleRaw:
|
||||||
|
type: string
|
||||||
|
timestampISO:
|
||||||
|
type: string
|
||||||
|
description: An ISO 8601 formatted date string (complementing `timestamp`)
|
||||||
|
lastposttimeISO:
|
||||||
|
type: string
|
||||||
|
votes:
|
||||||
|
type: number
|
||||||
|
tags:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
value:
|
||||||
|
type: string
|
||||||
|
valueEscaped:
|
||||||
|
type: string
|
||||||
|
color:
|
||||||
|
type: string
|
||||||
|
bgColor:
|
||||||
|
type: string
|
||||||
|
score:
|
||||||
|
type: number
|
||||||
|
posts:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
pid:
|
||||||
|
type: number
|
||||||
|
uid:
|
||||||
|
type: number
|
||||||
|
description: A user identifier
|
||||||
|
tid:
|
||||||
|
type: number
|
||||||
|
description: A topic identifier
|
||||||
|
content:
|
||||||
|
type: string
|
||||||
|
timestamp:
|
||||||
|
type: number
|
||||||
|
votes:
|
||||||
|
type: number
|
||||||
|
deleted:
|
||||||
|
type: number
|
||||||
|
upvotes:
|
||||||
|
type: number
|
||||||
|
downvotes:
|
||||||
|
type: number
|
||||||
|
bookmarks:
|
||||||
|
type: number
|
||||||
|
deleterUid:
|
||||||
|
type: number
|
||||||
|
edited:
|
||||||
|
type: number
|
||||||
|
timestampISO:
|
||||||
|
type: string
|
||||||
|
description: An ISO 8601 formatted date string (complementing `timestamp`)
|
||||||
|
editedISO:
|
||||||
|
type: string
|
||||||
|
index:
|
||||||
|
type: number
|
||||||
|
user:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
uid:
|
||||||
|
type: number
|
||||||
|
description: A user identifier
|
||||||
|
username:
|
||||||
|
type: string
|
||||||
|
description: A friendly name for a given user account
|
||||||
|
userslug:
|
||||||
|
type: string
|
||||||
|
description: An URL-safe variant of the username (i.e. lower-cased, spaces
|
||||||
|
removed, etc.)
|
||||||
|
reputation:
|
||||||
|
type: number
|
||||||
|
postcount:
|
||||||
|
type: number
|
||||||
|
topiccount:
|
||||||
|
type: number
|
||||||
|
picture:
|
||||||
|
type: string
|
||||||
|
nullable: true
|
||||||
|
signature:
|
||||||
|
type: string
|
||||||
|
banned:
|
||||||
|
type: number
|
||||||
|
banned:expire:
|
||||||
|
type: number
|
||||||
|
status:
|
||||||
|
type: string
|
||||||
|
lastonline:
|
||||||
|
type: number
|
||||||
|
groupTitle:
|
||||||
|
nullable: true
|
||||||
|
type: string
|
||||||
|
groupTitleArray:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
icon:text:
|
||||||
|
type: string
|
||||||
|
description: A single-letter representation of a username. This is used in the
|
||||||
|
auto-generated icon given to users without
|
||||||
|
an avatar
|
||||||
|
icon:bgColor:
|
||||||
|
type: string
|
||||||
|
description: A six-character hexadecimal colour code assigned to the user. This
|
||||||
|
value is used in conjunction with
|
||||||
|
`icon:text` for the user's auto-generated
|
||||||
|
icon
|
||||||
|
example: "#f44336"
|
||||||
|
lastonlineISO:
|
||||||
|
type: string
|
||||||
|
banned_until:
|
||||||
|
type: number
|
||||||
|
banned_until_readable:
|
||||||
|
type: string
|
||||||
|
selectedGroups:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
slug:
|
||||||
|
type: string
|
||||||
|
labelColor:
|
||||||
|
type: string
|
||||||
|
textColor:
|
||||||
|
type: string
|
||||||
|
icon:
|
||||||
|
type: string
|
||||||
|
userTitle:
|
||||||
|
type: string
|
||||||
|
custom_profile_info:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
content:
|
||||||
|
type: string
|
||||||
|
description: HTML that is injected into `topic.tpl` of themes that support custom profile info
|
||||||
|
editor:
|
||||||
|
nullable: true
|
||||||
|
bookmarked:
|
||||||
|
type: boolean
|
||||||
|
upvoted:
|
||||||
|
type: boolean
|
||||||
|
downvoted:
|
||||||
|
type: boolean
|
||||||
|
replies:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
hasMore:
|
||||||
|
type: boolean
|
||||||
|
users:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
username:
|
||||||
|
type: string
|
||||||
|
description: A friendly name for a given user account
|
||||||
|
userslug:
|
||||||
|
type: string
|
||||||
|
description: An URL-safe variant of the username (i.e. lower-cased, spaces
|
||||||
|
removed, etc.)
|
||||||
|
picture:
|
||||||
|
type: string
|
||||||
|
uid:
|
||||||
|
type: number
|
||||||
|
description: A user identifier
|
||||||
|
icon:text:
|
||||||
|
type: string
|
||||||
|
description: A single-letter representation of a username. This is used in the
|
||||||
|
auto-generated icon given to users without
|
||||||
|
an avatar
|
||||||
|
icon:bgColor:
|
||||||
|
type: string
|
||||||
|
description: A six-character hexadecimal colour code assigned to the user. This
|
||||||
|
value is used in conjunction with
|
||||||
|
`icon:text` for the user's auto-generated
|
||||||
|
icon
|
||||||
|
example: "#f44336"
|
||||||
|
administrator:
|
||||||
|
type: boolean
|
||||||
|
text:
|
||||||
|
type: string
|
||||||
|
count:
|
||||||
|
type: number
|
||||||
|
selfPost:
|
||||||
|
type: boolean
|
||||||
|
display_edit_tools:
|
||||||
|
type: boolean
|
||||||
|
display_delete_tools:
|
||||||
|
type: boolean
|
||||||
|
display_moderator_tools:
|
||||||
|
type: boolean
|
||||||
|
display_move_tools:
|
||||||
|
type: boolean
|
||||||
|
display_post_menu:
|
||||||
|
type: boolean
|
||||||
|
flagId:
|
||||||
|
type: number
|
||||||
|
description: The flag identifier, if this particular post has been flagged before
|
||||||
|
category:
|
||||||
|
$ref: ../components/schemas/CategoryObject.yaml#/CategoryObject
|
||||||
|
tagWhitelist:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
minTags:
|
||||||
|
type: number
|
||||||
|
maxTags:
|
||||||
|
type: number
|
||||||
|
thread_tools:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
class:
|
||||||
|
type: string
|
||||||
|
title:
|
||||||
|
type: string
|
||||||
|
icon:
|
||||||
|
type: string
|
||||||
|
isFollowing:
|
||||||
|
type: boolean
|
||||||
|
isNotFollowing:
|
||||||
|
type: boolean
|
||||||
|
isIgnoring:
|
||||||
|
type: boolean
|
||||||
|
bookmark:
|
||||||
|
nullable: true
|
||||||
|
postSharing:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
id:
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
class:
|
||||||
|
type: string
|
||||||
|
activated:
|
||||||
|
type: boolean
|
||||||
|
deleter:
|
||||||
|
nullable: true
|
||||||
|
merger:
|
||||||
|
nullable: true
|
||||||
|
related:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
$ref: ../components/schemas/TopicObject.yaml#/TopicObject
|
||||||
|
unreplied:
|
||||||
|
type: boolean
|
||||||
|
icons:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
description: HTML that is rendered by the theme
|
||||||
|
privileges:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
topics:reply:
|
||||||
|
type: boolean
|
||||||
|
topics:read:
|
||||||
|
type: boolean
|
||||||
|
topics:tag:
|
||||||
|
type: boolean
|
||||||
|
topics:delete:
|
||||||
|
type: boolean
|
||||||
|
posts:edit:
|
||||||
|
type: boolean
|
||||||
|
posts:history:
|
||||||
|
type: boolean
|
||||||
|
posts:delete:
|
||||||
|
type: boolean
|
||||||
|
posts:view_deleted:
|
||||||
|
type: boolean
|
||||||
|
read:
|
||||||
|
type: boolean
|
||||||
|
purge:
|
||||||
|
type: boolean
|
||||||
|
view_thread_tools:
|
||||||
|
type: boolean
|
||||||
|
editable:
|
||||||
|
type: boolean
|
||||||
|
deletable:
|
||||||
|
type: boolean
|
||||||
|
view_deleted:
|
||||||
|
type: boolean
|
||||||
|
isAdminOrMod:
|
||||||
|
type: boolean
|
||||||
|
disabled:
|
||||||
|
type: number
|
||||||
|
tid:
|
||||||
|
type: string
|
||||||
|
uid:
|
||||||
|
type: number
|
||||||
|
description: A user identifier
|
||||||
|
topicStaleDays:
|
||||||
|
type: number
|
||||||
|
reputation:disabled:
|
||||||
|
type: number
|
||||||
|
downvote:disabled:
|
||||||
|
type: number
|
||||||
|
feeds:disableRSS:
|
||||||
|
type: number
|
||||||
|
bookmarkThreshold:
|
||||||
|
type: number
|
||||||
|
necroThreshold:
|
||||||
|
type: number
|
||||||
|
postEditDuration:
|
||||||
|
type: number
|
||||||
|
postDeleteDuration:
|
||||||
|
type: number
|
||||||
|
scrollToMyPost:
|
||||||
|
type: boolean
|
||||||
|
allowMultipleBadges:
|
||||||
|
type: boolean
|
||||||
|
privateUploads:
|
||||||
|
type: boolean
|
||||||
|
rssFeedUrl:
|
||||||
|
type: string
|
||||||
|
postIndex:
|
||||||
|
type: number
|
||||||
|
loggedInUser:
|
||||||
|
$ref: ../components/schemas/UserObject.yaml#/UserObject
|
||||||
|
- $ref: ../components/schemas/Pagination.yaml#/Pagination
|
||||||
|
- $ref: ../components/schemas/Breadcrumbs.yaml#/Breadcrumbs
|
||||||
|
- $ref: ../components/schemas/CommonProps.yaml#/CommonProps
|
@ -0,0 +1,19 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- topics
|
||||||
|
summary: Get topic pagination data
|
||||||
|
description: This route retrieves pagination data for a given topic. It is used mainly client-side, as it return data necessary to update a pagination block client-side.
|
||||||
|
parameters:
|
||||||
|
- name: topic_id
|
||||||
|
in: path
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example: 1
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: ""
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: ../../components/schemas/Pagination.yaml#/Pagination
|
@ -0,0 +1,18 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- topics
|
||||||
|
summary: Get a topic's teaser post
|
||||||
|
parameters:
|
||||||
|
- name: topic_id
|
||||||
|
in: path
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example: 1
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: "A JSON object containing the teaser post for a topic"
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: ../../components/schemas/PostsObject.yaml#/PostsObject
|
@ -0,0 +1,35 @@
|
|||||||
|
post:
|
||||||
|
tags:
|
||||||
|
- topics
|
||||||
|
summary: Upload topic thumb
|
||||||
|
requestBody:
|
||||||
|
required: true
|
||||||
|
content:
|
||||||
|
multipart/form-data:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
files:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
format: binary
|
||||||
|
required:
|
||||||
|
- files
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: "Image uploaded"
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
description: The filename
|
||||||
|
url:
|
||||||
|
type: string
|
||||||
|
description: URL of the uploaded image for use client-side
|
||||||
|
path:
|
||||||
|
type: string
|
||||||
|
description: Path to the file in the local file system
|
@ -0,0 +1,62 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- shorthand
|
||||||
|
summary: Get topic data
|
||||||
|
parameters:
|
||||||
|
- name: id
|
||||||
|
in: path
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example: 1
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: "A JSON object containing topic data"
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
tid:
|
||||||
|
type: number
|
||||||
|
uid:
|
||||||
|
type: number
|
||||||
|
cid:
|
||||||
|
type: number
|
||||||
|
mainPid:
|
||||||
|
type: number
|
||||||
|
teaserPid:
|
||||||
|
type: number
|
||||||
|
nullable: true
|
||||||
|
title:
|
||||||
|
type: string
|
||||||
|
slug:
|
||||||
|
type: string
|
||||||
|
timestamp:
|
||||||
|
type: number
|
||||||
|
lastposttime:
|
||||||
|
type: number
|
||||||
|
postcount:
|
||||||
|
type: number
|
||||||
|
viewcount:
|
||||||
|
type: number
|
||||||
|
deleted:
|
||||||
|
type: number
|
||||||
|
locked:
|
||||||
|
type: number
|
||||||
|
pinned:
|
||||||
|
type: number
|
||||||
|
upvotes:
|
||||||
|
type: number
|
||||||
|
downvotes:
|
||||||
|
type: number
|
||||||
|
deleterUid:
|
||||||
|
type: number
|
||||||
|
titleRaw:
|
||||||
|
type: string
|
||||||
|
timestampISO:
|
||||||
|
type: string
|
||||||
|
lastposttimeISO:
|
||||||
|
type: string
|
||||||
|
votes:
|
||||||
|
type: number
|
@ -0,0 +1,19 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- shorthand
|
||||||
|
summary: Access a user's profile pages
|
||||||
|
description: >-
|
||||||
|
This particular shorthand is useful if you are looking to redirect to a user's profile (or other associated pages), but do not know or want to retrieve their userslug,
|
||||||
|
which is part of the canonical url.
|
||||||
|
|
||||||
|
For example, to go to `uid` 15's list of topics made, you can navigate to `/api/uid/15/topics`, which will send you to the appropriate canonical URL for that user's topics.
|
||||||
|
parameters:
|
||||||
|
- name: uid
|
||||||
|
in: path
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example: 1
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: "Canonical URL of user profile page"
|
@ -0,0 +1,290 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- topics
|
||||||
|
summary: Get unread topics
|
||||||
|
description: Returns a list of the current user's unread topics, sorted by the
|
||||||
|
last post's timestamp.
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: An array of unread topic objects sorted by the last post's timestamp.
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
showSelect:
|
||||||
|
type: boolean
|
||||||
|
showTopicTools:
|
||||||
|
type: boolean
|
||||||
|
nextStart:
|
||||||
|
type: number
|
||||||
|
topics:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
tid:
|
||||||
|
type: number
|
||||||
|
description: A topic identifier
|
||||||
|
uid:
|
||||||
|
type: number
|
||||||
|
description: A user identifier
|
||||||
|
cid:
|
||||||
|
type: number
|
||||||
|
description: A category identifier
|
||||||
|
mainPid:
|
||||||
|
type: number
|
||||||
|
description: The post id of the first post in this topic (also called the
|
||||||
|
"original post")
|
||||||
|
title:
|
||||||
|
type: string
|
||||||
|
slug:
|
||||||
|
type: string
|
||||||
|
timestamp:
|
||||||
|
type: number
|
||||||
|
lastposttime:
|
||||||
|
type: number
|
||||||
|
postcount:
|
||||||
|
type: number
|
||||||
|
viewcount:
|
||||||
|
type: number
|
||||||
|
teaserPid:
|
||||||
|
type: number
|
||||||
|
upvotes:
|
||||||
|
type: number
|
||||||
|
downvotes:
|
||||||
|
type: number
|
||||||
|
deleted:
|
||||||
|
type: number
|
||||||
|
locked:
|
||||||
|
type: number
|
||||||
|
pinned:
|
||||||
|
type: number
|
||||||
|
description: Whether or not this particular topic is pinned to the top of the
|
||||||
|
category
|
||||||
|
titleRaw:
|
||||||
|
type: string
|
||||||
|
timestampISO:
|
||||||
|
type: string
|
||||||
|
description: An ISO 8601 formatted date string (complementing `timestamp`)
|
||||||
|
lastposttimeISO:
|
||||||
|
type: string
|
||||||
|
votes:
|
||||||
|
type: number
|
||||||
|
category:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
cid:
|
||||||
|
type: number
|
||||||
|
description: A category identifier
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
slug:
|
||||||
|
type: string
|
||||||
|
icon:
|
||||||
|
type: string
|
||||||
|
image:
|
||||||
|
nullable: true
|
||||||
|
imageClass:
|
||||||
|
nullable: true
|
||||||
|
type: string
|
||||||
|
bgColor:
|
||||||
|
type: string
|
||||||
|
color:
|
||||||
|
type: string
|
||||||
|
disabled:
|
||||||
|
type: number
|
||||||
|
user:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
uid:
|
||||||
|
type: number
|
||||||
|
description: A user identifier
|
||||||
|
username:
|
||||||
|
type: string
|
||||||
|
description: A friendly name for a given user account
|
||||||
|
fullname:
|
||||||
|
type: string
|
||||||
|
userslug:
|
||||||
|
type: string
|
||||||
|
description: An URL-safe variant of the username (i.e. lower-cased, spaces
|
||||||
|
removed, etc.)
|
||||||
|
reputation:
|
||||||
|
type: number
|
||||||
|
postcount:
|
||||||
|
type: number
|
||||||
|
picture:
|
||||||
|
nullable: true
|
||||||
|
type: string
|
||||||
|
signature:
|
||||||
|
nullable: true
|
||||||
|
type: string
|
||||||
|
banned:
|
||||||
|
type: number
|
||||||
|
status:
|
||||||
|
type: string
|
||||||
|
icon:text:
|
||||||
|
type: string
|
||||||
|
description: A single-letter representation of a username. This is used in the
|
||||||
|
auto-generated icon given to users without
|
||||||
|
an avatar
|
||||||
|
icon:bgColor:
|
||||||
|
type: string
|
||||||
|
description: A six-character hexadecimal colour code assigned to the user. This
|
||||||
|
value is used in conjunction with
|
||||||
|
`icon:text` for the user's auto-generated
|
||||||
|
icon
|
||||||
|
example: "#f44336"
|
||||||
|
banned_until_readable:
|
||||||
|
type: string
|
||||||
|
teaser:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
pid:
|
||||||
|
type: number
|
||||||
|
uid:
|
||||||
|
type: number
|
||||||
|
description: A user identifier
|
||||||
|
timestamp:
|
||||||
|
type: number
|
||||||
|
tid:
|
||||||
|
type: number
|
||||||
|
description: A topic identifier
|
||||||
|
content:
|
||||||
|
type: string
|
||||||
|
timestampISO:
|
||||||
|
type: string
|
||||||
|
description: An ISO 8601 formatted date string (complementing `timestamp`)
|
||||||
|
user:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
uid:
|
||||||
|
type: number
|
||||||
|
description: A user identifier
|
||||||
|
username:
|
||||||
|
type: string
|
||||||
|
description: A friendly name for a given user account
|
||||||
|
userslug:
|
||||||
|
type: string
|
||||||
|
description: An URL-safe variant of the username (i.e. lower-cased, spaces
|
||||||
|
removed, etc.)
|
||||||
|
picture:
|
||||||
|
nullable: true
|
||||||
|
type: string
|
||||||
|
icon:text:
|
||||||
|
type: string
|
||||||
|
description: A single-letter representation of a username. This is used in the
|
||||||
|
auto-generated icon given to users
|
||||||
|
without an avatar
|
||||||
|
icon:bgColor:
|
||||||
|
type: string
|
||||||
|
description: A six-character hexadecimal colour code assigned to the user. This
|
||||||
|
value is used in conjunction with
|
||||||
|
`icon:text` for the user's
|
||||||
|
auto-generated icon
|
||||||
|
example: "#f44336"
|
||||||
|
index:
|
||||||
|
type: number
|
||||||
|
tags:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
value:
|
||||||
|
type: string
|
||||||
|
valueEscaped:
|
||||||
|
type: string
|
||||||
|
color:
|
||||||
|
type: string
|
||||||
|
bgColor:
|
||||||
|
type: string
|
||||||
|
score:
|
||||||
|
type: number
|
||||||
|
isOwner:
|
||||||
|
type: boolean
|
||||||
|
ignored:
|
||||||
|
type: boolean
|
||||||
|
unread:
|
||||||
|
type: boolean
|
||||||
|
bookmark:
|
||||||
|
nullable: true
|
||||||
|
unreplied:
|
||||||
|
type: boolean
|
||||||
|
icons:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
index:
|
||||||
|
type: number
|
||||||
|
isQuestion:
|
||||||
|
nullable: true
|
||||||
|
topicCount:
|
||||||
|
type: number
|
||||||
|
title:
|
||||||
|
type: string
|
||||||
|
pageCount:
|
||||||
|
type: number
|
||||||
|
categories:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
cid:
|
||||||
|
type: number
|
||||||
|
description: A category identifier
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
level:
|
||||||
|
type: string
|
||||||
|
icon:
|
||||||
|
type: string
|
||||||
|
parentCid:
|
||||||
|
type: number
|
||||||
|
description: The category identifier for the category that is the immediate
|
||||||
|
ancestor of the current category
|
||||||
|
color:
|
||||||
|
type: string
|
||||||
|
bgColor:
|
||||||
|
type: string
|
||||||
|
selected:
|
||||||
|
type: boolean
|
||||||
|
imageClass:
|
||||||
|
type: string
|
||||||
|
allCategoriesUrl:
|
||||||
|
type: string
|
||||||
|
selectedCids:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: number
|
||||||
|
filters:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
url:
|
||||||
|
type: string
|
||||||
|
selected:
|
||||||
|
type: boolean
|
||||||
|
filter:
|
||||||
|
type: string
|
||||||
|
icon:
|
||||||
|
type: string
|
||||||
|
selectedFilter:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
url:
|
||||||
|
type: string
|
||||||
|
selected:
|
||||||
|
type: boolean
|
||||||
|
filter:
|
||||||
|
type: string
|
||||||
|
icon:
|
||||||
|
type: string
|
||||||
|
- $ref: ../components/schemas/Pagination.yaml#/Pagination
|
||||||
|
- $ref: ../components/schemas/Breadcrumbs.yaml#/Breadcrumbs
|
||||||
|
- $ref: ../components/schemas/CommonProps.yaml#/CommonProps
|
@ -0,0 +1,11 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- topics
|
||||||
|
summary: Get number of unread topics
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: "Success"
|
||||||
|
content:
|
||||||
|
text/plain:
|
||||||
|
schema:
|
||||||
|
type: number
|
@ -0,0 +1,86 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- users
|
||||||
|
summary: Get user profile
|
||||||
|
parameters:
|
||||||
|
- name: userslug
|
||||||
|
in: path
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example: admin
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: ""
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- $ref: ../components/schemas/UserObject.yaml#/UserObjectFull
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
posts:
|
||||||
|
$ref: ../components/schemas/PostsObject.yaml#/PostsObject
|
||||||
|
latestPosts:
|
||||||
|
$ref: ../components/schemas/PostsObject.yaml#/PostsObject
|
||||||
|
bestPosts:
|
||||||
|
$ref: ../components/schemas/PostsObject.yaml#/PostsObject
|
||||||
|
hasPrivateChat:
|
||||||
|
type: number
|
||||||
|
title:
|
||||||
|
type: string
|
||||||
|
allowCoverPicture:
|
||||||
|
type: boolean
|
||||||
|
selectedGroup:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
slug:
|
||||||
|
type: string
|
||||||
|
createtime:
|
||||||
|
type: number
|
||||||
|
userTitle:
|
||||||
|
type: string
|
||||||
|
description:
|
||||||
|
type: string
|
||||||
|
memberCount:
|
||||||
|
type: number
|
||||||
|
deleted:
|
||||||
|
type: string
|
||||||
|
hidden:
|
||||||
|
type: number
|
||||||
|
system:
|
||||||
|
type: number
|
||||||
|
private:
|
||||||
|
type: number
|
||||||
|
ownerUid:
|
||||||
|
type: number
|
||||||
|
icon:
|
||||||
|
type: string
|
||||||
|
labelColor:
|
||||||
|
type: string
|
||||||
|
cover:url:
|
||||||
|
type: string
|
||||||
|
cover:position:
|
||||||
|
type: string
|
||||||
|
userTitleEnabled:
|
||||||
|
type: number
|
||||||
|
disableJoinRequests:
|
||||||
|
type: number
|
||||||
|
disableLeave:
|
||||||
|
type: number
|
||||||
|
nameEncoded:
|
||||||
|
type: string
|
||||||
|
displayName:
|
||||||
|
type: string
|
||||||
|
textColor:
|
||||||
|
type: string
|
||||||
|
createtimeISO:
|
||||||
|
type: string
|
||||||
|
cover:thumb:url:
|
||||||
|
type: string
|
||||||
|
- $ref: ../components/schemas/Breadcrumbs.yaml#/Breadcrumbs
|
||||||
|
- $ref: ../components/schemas/CommonProps.yaml#/CommonProps
|
@ -0,0 +1,45 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- users
|
||||||
|
summary: Get a user's best performing topics
|
||||||
|
parameters:
|
||||||
|
- name: userslug
|
||||||
|
in: path
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example: admin
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: ""
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- $ref: ../../components/schemas/UserObject.yaml#/UserObjectFull
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
posts:
|
||||||
|
$ref: ../../components/schemas/PostsObject.yaml#/PostsObject
|
||||||
|
nextStart:
|
||||||
|
type: number
|
||||||
|
noItemsFoundKey:
|
||||||
|
type: string
|
||||||
|
title:
|
||||||
|
type: string
|
||||||
|
showSort:
|
||||||
|
type: boolean
|
||||||
|
sortOptions:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
url:
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
selected:
|
||||||
|
type: boolean
|
||||||
|
- $ref: ../../components/schemas/Pagination.yaml#/Pagination
|
||||||
|
- $ref: ../../components/schemas/Breadcrumbs.yaml#/Breadcrumbs
|
||||||
|
- $ref: ../../components/schemas/CommonProps.yaml#/CommonProps
|
@ -0,0 +1,30 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- users
|
||||||
|
summary: Get user's blocks
|
||||||
|
parameters:
|
||||||
|
- name: userslug
|
||||||
|
in: path
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example: admin
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: ""
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- $ref: ../../components/schemas/UserObject.yaml#/UserObjectFull
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
users:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
$ref: ../../components/schemas/UserObject.yaml#/UserObjectSlim
|
||||||
|
title:
|
||||||
|
type: string
|
||||||
|
- $ref: ../../components/schemas/Pagination.yaml#/Pagination
|
||||||
|
- $ref: ../../components/schemas/Breadcrumbs.yaml#/Breadcrumbs
|
||||||
|
- $ref: ../../components/schemas/CommonProps.yaml#/CommonProps
|
@ -0,0 +1,45 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- users
|
||||||
|
summary: Get user's bookmarks
|
||||||
|
parameters:
|
||||||
|
- name: userslug
|
||||||
|
in: path
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example: admin
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: ""
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- $ref: ../../components/schemas/UserObject.yaml#/UserObjectFull
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
posts:
|
||||||
|
$ref: ../../components/schemas/PostsObject.yaml#/PostsObject
|
||||||
|
nextStart:
|
||||||
|
type: number
|
||||||
|
noItemsFoundKey:
|
||||||
|
type: string
|
||||||
|
title:
|
||||||
|
type: string
|
||||||
|
showSort:
|
||||||
|
type: boolean
|
||||||
|
sortOptions:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
url:
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
selected:
|
||||||
|
type: boolean
|
||||||
|
- $ref: ../../components/schemas/Pagination.yaml#/Pagination
|
||||||
|
- $ref: ../../components/schemas/Breadcrumbs.yaml#/Breadcrumbs
|
||||||
|
- $ref: ../../components/schemas/CommonProps.yaml#/CommonProps
|
@ -0,0 +1,61 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- users
|
||||||
|
summary: Get user's watched categories
|
||||||
|
description: This route retrieves the list of categories and their watch states
|
||||||
|
parameters:
|
||||||
|
- name: userslug
|
||||||
|
in: path
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example: admin
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: ""
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- $ref: ../../components/schemas/UserObject.yaml#/UserObjectFull
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
categories:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
cid:
|
||||||
|
type: number
|
||||||
|
description: A category identifier
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
level:
|
||||||
|
type: string
|
||||||
|
icon:
|
||||||
|
type: string
|
||||||
|
parentCid:
|
||||||
|
type: number
|
||||||
|
description: The category identifier for the category that is the immediate
|
||||||
|
ancestor of the current category
|
||||||
|
color:
|
||||||
|
type: string
|
||||||
|
bgColor:
|
||||||
|
type: string
|
||||||
|
descriptionParsed:
|
||||||
|
type: string
|
||||||
|
depth:
|
||||||
|
type: number
|
||||||
|
slug:
|
||||||
|
type: string
|
||||||
|
isIgnored:
|
||||||
|
type: boolean
|
||||||
|
isWatched:
|
||||||
|
type: boolean
|
||||||
|
isNotWatched:
|
||||||
|
type: boolean
|
||||||
|
imageClass:
|
||||||
|
type: string
|
||||||
|
title:
|
||||||
|
type: string
|
||||||
|
- $ref: ../../components/schemas/CommonProps.yaml#/CommonProps
|
@ -0,0 +1,299 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- users
|
||||||
|
summary: Get chat room
|
||||||
|
parameters:
|
||||||
|
- name: userslug
|
||||||
|
in: path
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example: admin
|
||||||
|
- name: roomid
|
||||||
|
in: path
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example: 1
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: ""
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
owner:
|
||||||
|
type: number
|
||||||
|
roomId:
|
||||||
|
type: number
|
||||||
|
roomName:
|
||||||
|
type: string
|
||||||
|
messages:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
content:
|
||||||
|
type: string
|
||||||
|
timestamp:
|
||||||
|
type: number
|
||||||
|
fromuid:
|
||||||
|
type: number
|
||||||
|
roomId:
|
||||||
|
type: string
|
||||||
|
deleted:
|
||||||
|
type: boolean
|
||||||
|
system:
|
||||||
|
type: boolean
|
||||||
|
edited:
|
||||||
|
type: number
|
||||||
|
timestampISO:
|
||||||
|
type: string
|
||||||
|
description: An ISO 8601 formatted date string (complementing `timestamp`)
|
||||||
|
editedISO:
|
||||||
|
type: string
|
||||||
|
messageId:
|
||||||
|
type: number
|
||||||
|
fromUser:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
uid:
|
||||||
|
type: number
|
||||||
|
description: A user identifier
|
||||||
|
username:
|
||||||
|
type: string
|
||||||
|
description: A friendly name for a given user account
|
||||||
|
userslug:
|
||||||
|
type: string
|
||||||
|
description: An URL-safe variant of the username (i.e. lower-cased, spaces
|
||||||
|
removed, etc.)
|
||||||
|
picture:
|
||||||
|
type: string
|
||||||
|
nullable: true
|
||||||
|
status:
|
||||||
|
type: string
|
||||||
|
banned:
|
||||||
|
type: boolean
|
||||||
|
icon:text:
|
||||||
|
type: string
|
||||||
|
description: A single-letter representation of a username. This is used in the
|
||||||
|
auto-generated icon given to users without
|
||||||
|
an avatar
|
||||||
|
icon:bgColor:
|
||||||
|
type: string
|
||||||
|
description: A six-character hexadecimal colour code assigned to the user. This
|
||||||
|
value is used in conjunction with
|
||||||
|
`icon:text` for the user's auto-generated
|
||||||
|
icon
|
||||||
|
example: "#f44336"
|
||||||
|
banned_until_readable:
|
||||||
|
type: string
|
||||||
|
deleted:
|
||||||
|
type: boolean
|
||||||
|
self:
|
||||||
|
type: number
|
||||||
|
newSet:
|
||||||
|
type: boolean
|
||||||
|
index:
|
||||||
|
type: number
|
||||||
|
cleanedContent:
|
||||||
|
type: string
|
||||||
|
isOwner:
|
||||||
|
type: boolean
|
||||||
|
isOwner:
|
||||||
|
type: boolean
|
||||||
|
users:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
uid:
|
||||||
|
type: number
|
||||||
|
description: A user identifier
|
||||||
|
username:
|
||||||
|
type: string
|
||||||
|
description: A friendly name for a given user account
|
||||||
|
picture:
|
||||||
|
type: string
|
||||||
|
nullable: true
|
||||||
|
status:
|
||||||
|
type: string
|
||||||
|
icon:text:
|
||||||
|
type: string
|
||||||
|
description: A single-letter representation of a username. This is used in the
|
||||||
|
auto-generated icon given to users without an
|
||||||
|
avatar
|
||||||
|
icon:bgColor:
|
||||||
|
type: string
|
||||||
|
description: A six-character hexadecimal colour code assigned to the user. This
|
||||||
|
value is used in conjunction with `icon:text`
|
||||||
|
for the user's auto-generated icon
|
||||||
|
example: "#f44336"
|
||||||
|
isOwner:
|
||||||
|
type: boolean
|
||||||
|
canReply:
|
||||||
|
type: boolean
|
||||||
|
groupChat:
|
||||||
|
type: boolean
|
||||||
|
usernames:
|
||||||
|
type: string
|
||||||
|
maximumUsersInChatRoom:
|
||||||
|
type: number
|
||||||
|
maximumChatMessageLength:
|
||||||
|
type: number
|
||||||
|
showUserInput:
|
||||||
|
type: boolean
|
||||||
|
isAdminOrGlobalMod:
|
||||||
|
type: boolean
|
||||||
|
rooms:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
owner:
|
||||||
|
oneOf:
|
||||||
|
- type: number
|
||||||
|
- type: string
|
||||||
|
roomId:
|
||||||
|
type: number
|
||||||
|
roomName:
|
||||||
|
type: string
|
||||||
|
users:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
uid:
|
||||||
|
type: number
|
||||||
|
description: A user identifier
|
||||||
|
username:
|
||||||
|
type: string
|
||||||
|
description: A friendly name for a given user account
|
||||||
|
userslug:
|
||||||
|
type: string
|
||||||
|
description: An URL-safe variant of the username (i.e. lower-cased, spaces
|
||||||
|
removed, etc.)
|
||||||
|
picture:
|
||||||
|
nullable: true
|
||||||
|
type: string
|
||||||
|
status:
|
||||||
|
type: string
|
||||||
|
lastonline:
|
||||||
|
type: number
|
||||||
|
icon:text:
|
||||||
|
type: string
|
||||||
|
description: A single-letter representation of a username. This is used in the
|
||||||
|
auto-generated icon given to users without
|
||||||
|
an avatar
|
||||||
|
icon:bgColor:
|
||||||
|
type: string
|
||||||
|
description: A six-character hexadecimal colour code assigned to the user. This
|
||||||
|
value is used in conjunction with
|
||||||
|
`icon:text` for the user's auto-generated
|
||||||
|
icon
|
||||||
|
example: "#f44336"
|
||||||
|
lastonlineISO:
|
||||||
|
type: string
|
||||||
|
groupChat:
|
||||||
|
type: boolean
|
||||||
|
unread:
|
||||||
|
type: boolean
|
||||||
|
teaser:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
fromuid:
|
||||||
|
type: number
|
||||||
|
content:
|
||||||
|
type: string
|
||||||
|
timestamp:
|
||||||
|
type: number
|
||||||
|
timestampISO:
|
||||||
|
type: string
|
||||||
|
description: An ISO 8601 formatted date string (complementing `timestamp`)
|
||||||
|
user:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
uid:
|
||||||
|
type: number
|
||||||
|
description: A user identifier
|
||||||
|
username:
|
||||||
|
type: string
|
||||||
|
description: A friendly name for a given user account
|
||||||
|
userslug:
|
||||||
|
type: string
|
||||||
|
description: An URL-safe variant of the username (i.e. lower-cased, spaces
|
||||||
|
removed, etc.)
|
||||||
|
picture:
|
||||||
|
nullable: true
|
||||||
|
type: string
|
||||||
|
status:
|
||||||
|
type: string
|
||||||
|
lastonline:
|
||||||
|
type: number
|
||||||
|
icon:text:
|
||||||
|
type: string
|
||||||
|
description: A single-letter representation of a username. This is used in the
|
||||||
|
auto-generated icon given to users
|
||||||
|
without an avatar
|
||||||
|
icon:bgColor:
|
||||||
|
type: string
|
||||||
|
description: A six-character hexadecimal colour code assigned to the user. This
|
||||||
|
value is used in conjunction with
|
||||||
|
`icon:text` for the user's
|
||||||
|
auto-generated icon
|
||||||
|
example: "#f44336"
|
||||||
|
lastonlineISO:
|
||||||
|
type: string
|
||||||
|
nullable: true
|
||||||
|
lastUser:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
uid:
|
||||||
|
type: number
|
||||||
|
description: A user identifier
|
||||||
|
username:
|
||||||
|
type: string
|
||||||
|
description: A friendly name for a given user account
|
||||||
|
userslug:
|
||||||
|
type: string
|
||||||
|
description: An URL-safe variant of the username (i.e. lower-cased, spaces
|
||||||
|
removed, etc.)
|
||||||
|
picture:
|
||||||
|
nullable: true
|
||||||
|
type: string
|
||||||
|
status:
|
||||||
|
type: string
|
||||||
|
lastonline:
|
||||||
|
type: number
|
||||||
|
icon:text:
|
||||||
|
type: string
|
||||||
|
description: A single-letter representation of a username. This is used in the
|
||||||
|
auto-generated icon given to users without
|
||||||
|
an avatar
|
||||||
|
icon:bgColor:
|
||||||
|
type: string
|
||||||
|
description: A six-character hexadecimal colour code assigned to the user. This
|
||||||
|
value is used in conjunction with
|
||||||
|
`icon:text` for the user's auto-generated
|
||||||
|
icon
|
||||||
|
example: "#f44336"
|
||||||
|
lastonlineISO:
|
||||||
|
type: string
|
||||||
|
usernames:
|
||||||
|
type: string
|
||||||
|
nextStart:
|
||||||
|
type: number
|
||||||
|
title:
|
||||||
|
type: string
|
||||||
|
uid:
|
||||||
|
type: number
|
||||||
|
description: A user identifier
|
||||||
|
userslug:
|
||||||
|
type: string
|
||||||
|
description: An URL-safe variant of the username (i.e. lower-cased, spaces
|
||||||
|
removed, etc.)
|
||||||
|
canViewInfo:
|
||||||
|
type: boolean
|
||||||
|
- $ref: ../../components/schemas/CommonProps.yaml#/CommonProps
|
@ -0,0 +1,34 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- users
|
||||||
|
summary: Get user's GDPR consent settings
|
||||||
|
parameters:
|
||||||
|
- name: userslug
|
||||||
|
in: path
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example: admin
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: ""
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- $ref: ../../components/schemas/UserObject.yaml#/UserObjectFull
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
gdpr_consent:
|
||||||
|
type: boolean
|
||||||
|
digest:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
frequency:
|
||||||
|
type: string
|
||||||
|
enabled:
|
||||||
|
type: boolean
|
||||||
|
title:
|
||||||
|
type: string
|
||||||
|
- $ref: ../../components/schemas/Breadcrumbs.yaml#/Breadcrumbs
|
||||||
|
- $ref: ../../components/schemas/CommonProps.yaml#/CommonProps
|
@ -0,0 +1,51 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- users
|
||||||
|
summary: Get user's downvoted posts
|
||||||
|
parameters:
|
||||||
|
- name: userslug
|
||||||
|
in: path
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example: admin
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: ""
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- $ref: ../../components/schemas/UserObject.yaml#/UserObjectFull
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
posts:
|
||||||
|
$ref: ../../components/schemas/PostsObject.yaml#/PostsObject
|
||||||
|
nextStart:
|
||||||
|
type: number
|
||||||
|
noItemsFoundKey:
|
||||||
|
type: string
|
||||||
|
description: Translation key for message notifying user that there were no posts found
|
||||||
|
title:
|
||||||
|
type: string
|
||||||
|
showSort:
|
||||||
|
type: boolean
|
||||||
|
sortOptions:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
url:
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
selected:
|
||||||
|
type: boolean
|
||||||
|
required:
|
||||||
|
- posts
|
||||||
|
- nextStart
|
||||||
|
- noItemsFoundKey
|
||||||
|
- title
|
||||||
|
- $ref: ../../components/schemas/Pagination.yaml#/Pagination
|
||||||
|
- $ref: ../../components/schemas/Breadcrumbs.yaml#/Breadcrumbs
|
||||||
|
- $ref: ../../components/schemas/CommonProps.yaml#/CommonProps
|
@ -0,0 +1,66 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- users
|
||||||
|
summary: Get user profile for editing
|
||||||
|
parameters:
|
||||||
|
- name: userslug
|
||||||
|
in: path
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example: admin
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: ""
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- $ref: ../../components/schemas/UserObject.yaml#/UserObjectFull
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
maximumSignatureLength:
|
||||||
|
type: number
|
||||||
|
maximumAboutMeLength:
|
||||||
|
type: number
|
||||||
|
maximumProfileImageSize:
|
||||||
|
type: number
|
||||||
|
allowProfilePicture:
|
||||||
|
type: boolean
|
||||||
|
allowCoverPicture:
|
||||||
|
type: boolean
|
||||||
|
allowProfileImageUploads:
|
||||||
|
type: number
|
||||||
|
allowedProfileImageExtensios:
|
||||||
|
type: string
|
||||||
|
allowMultipleBadges:
|
||||||
|
type: boolean
|
||||||
|
allowAccountDelete:
|
||||||
|
type: boolean
|
||||||
|
allowWebsite:
|
||||||
|
type: boolean
|
||||||
|
allowAboutMe:
|
||||||
|
type: boolean
|
||||||
|
allowSignature:
|
||||||
|
type: boolean
|
||||||
|
profileImageDimension:
|
||||||
|
type: number
|
||||||
|
defaultAvatar:
|
||||||
|
type: string
|
||||||
|
groupSelectSize:
|
||||||
|
type: number
|
||||||
|
title:
|
||||||
|
type: string
|
||||||
|
editButtons:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
link:
|
||||||
|
type: string
|
||||||
|
description: A relative path to the page linked to
|
||||||
|
text:
|
||||||
|
type: string
|
||||||
|
description: Button label
|
||||||
|
- $ref: ../../components/schemas/Breadcrumbs.yaml#/Breadcrumbs
|
||||||
|
- $ref: ../../components/schemas/CommonProps.yaml#/CommonProps
|
@ -0,0 +1,27 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- users
|
||||||
|
summary: Get configs for email editing
|
||||||
|
parameters:
|
||||||
|
- name: userslug
|
||||||
|
in: path
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example: admin
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: ""
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- $ref: ../../../components/schemas/UserObject.yaml#/UserObjectFull
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
hasPassword:
|
||||||
|
type: boolean
|
||||||
|
title:
|
||||||
|
type: string
|
||||||
|
- $ref: ../../../components/schemas/Breadcrumbs.yaml#/Breadcrumbs
|
||||||
|
- $ref: ../../../components/schemas/CommonProps.yaml#/CommonProps
|
@ -0,0 +1,31 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- users
|
||||||
|
summary: Get configs for password editing
|
||||||
|
parameters:
|
||||||
|
- name: userslug
|
||||||
|
in: path
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example: admin
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: ""
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- $ref: ../../../components/schemas/UserObject.yaml#/UserObjectFull
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
hasPassword:
|
||||||
|
type: boolean
|
||||||
|
minimumPasswordLength:
|
||||||
|
type: number
|
||||||
|
minimumPasswordStrength:
|
||||||
|
type: number
|
||||||
|
title:
|
||||||
|
type: string
|
||||||
|
- $ref: ../../../components/schemas/Breadcrumbs.yaml#/Breadcrumbs
|
||||||
|
- $ref: ../../../components/schemas/CommonProps.yaml#/CommonProps
|
@ -0,0 +1,27 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- users
|
||||||
|
summary: Get configs for username editing
|
||||||
|
parameters:
|
||||||
|
- name: userslug
|
||||||
|
in: path
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example: admin
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: ""
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- $ref: ../../../components/schemas/UserObject.yaml#/UserObjectFull
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
hasPassword:
|
||||||
|
type: boolean
|
||||||
|
title:
|
||||||
|
type: string
|
||||||
|
- $ref: ../../../components/schemas/Breadcrumbs.yaml#/Breadcrumbs
|
||||||
|
- $ref: ../../../components/schemas/CommonProps.yaml#/CommonProps
|
@ -0,0 +1,19 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- users
|
||||||
|
summary: Get user by email
|
||||||
|
description: This route retrieves a user's public profile data. If the calling user is the same as the profile, then it will also return data the user elected to hide (e.g. email/fullname)
|
||||||
|
parameters:
|
||||||
|
- name: email
|
||||||
|
in: path
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example: 'test@example.org'
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: ""
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: ../../components/schemas/UserObject.yaml#/UserObject
|
@ -0,0 +1,91 @@
|
|||||||
|
get:
|
||||||
|
tags:
|
||||||
|
- users
|
||||||
|
summary: Get followers
|
||||||
|
parameters:
|
||||||
|
- name: userslug
|
||||||
|
in: path
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example: admin
|
||||||
|
- name: page
|
||||||
|
in: query
|
||||||
|
schema:
|
||||||
|
type: number
|
||||||
|
example: ''
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: ""
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
allOf:
|
||||||
|
- $ref: ../../components/schemas/UserObject.yaml#/UserObjectFull
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
title:
|
||||||
|
type: string
|
||||||
|
users:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
uid:
|
||||||
|
type: number
|
||||||
|
description: A user identifier
|
||||||
|
username:
|
||||||
|
type: string
|
||||||
|
description: A friendly name for a given user account
|
||||||
|
userslug:
|
||||||
|
type: string
|
||||||
|
description: An URL-safe variant of the username (i.e. lower-cased, spaces
|
||||||
|
removed, etc.)
|
||||||
|
picture:
|
||||||
|
nullable: true
|
||||||
|
type: string
|
||||||
|
status:
|
||||||
|
type: string
|
||||||
|
postcount:
|
||||||
|
type: number
|
||||||
|
reputation:
|
||||||
|
type: number
|
||||||
|
email:confirmed:
|
||||||
|
type: number
|
||||||
|
description: Whether the user has confirmed their email address or not
|
||||||
|
lastonline:
|
||||||
|
type: number
|
||||||
|
flags:
|
||||||
|
nullable: true
|
||||||
|
banned:
|
||||||
|
type: number
|
||||||
|
banned:expire:
|
||||||
|
type: number
|
||||||
|
joindate:
|
||||||
|
type: number
|
||||||
|
description: A UNIX timestamp representing the moment the user's account was
|
||||||
|
created
|
||||||
|
icon:text:
|
||||||
|
type: string
|
||||||
|
description: A single-letter representation of a username. This is used in the
|
||||||
|
auto-generated icon given to users without an
|
||||||
|
avatar
|
||||||
|
icon:bgColor:
|
||||||
|
type: string
|
||||||
|
description: A six-character hexadecimal colour code assigned to the user. This
|
||||||
|
value is used in conjunction with `icon:text`
|
||||||
|
for the user's auto-generated icon
|
||||||
|
example: "#f44336"
|
||||||
|
joindateISO:
|
||||||
|
type: string
|
||||||
|
lastonlineISO:
|
||||||
|
type: string
|
||||||
|
banned_until:
|
||||||
|
type: number
|
||||||
|
banned_until_readable:
|
||||||
|
type: string
|
||||||
|
administrator:
|
||||||
|
type: boolean
|
||||||
|
- $ref: ../../components/schemas/Pagination.yaml#/Pagination
|
||||||
|
- $ref: ../../components/schemas/Breadcrumbs.yaml#/Breadcrumbs
|
||||||
|
- $ref: ../../components/schemas/CommonProps.yaml#/CommonProps
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue