more docs
@@ -7,7 +7,7 @@ import svelte from "@astrojs/svelte";
|
|||||||
// https://astro.build/config
|
// https://astro.build/config
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
integrations: [starlight({
|
integrations: [starlight({
|
||||||
title: 'Docs with Tailwind',
|
title: 'wanderer Documentation',
|
||||||
logo: {
|
logo: {
|
||||||
light: '/src/assets/logo_dark_text.svg',
|
light: '/src/assets/logo_dark_text.svg',
|
||||||
dark: '/src/assets/logo_light_text.svg',
|
dark: '/src/assets/logo_light_text.svg',
|
||||||
@@ -22,15 +22,53 @@ export default defineConfig({
|
|||||||
sidebar: [{
|
sidebar: [{
|
||||||
label: 'Getting Started',
|
label: 'Getting Started',
|
||||||
items: [
|
items: [
|
||||||
// Each item here is one entry in the navigation menu.
|
|
||||||
{
|
{
|
||||||
label: 'Installation',
|
label: 'Installation',
|
||||||
link: '/getting-started/installation/'
|
link: '/getting-started/installation/'
|
||||||
}]
|
},
|
||||||
}, {
|
{
|
||||||
label: 'Reference',
|
label: 'Configuration',
|
||||||
|
link: '/getting-started/configuration/'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Local development',
|
||||||
|
link: '/getting-started/local-development/'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Guides',
|
||||||
|
items: [
|
||||||
|
{
|
||||||
|
label: 'Authentication',
|
||||||
|
link: '/guides/authentication/'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Create a trail',
|
||||||
|
link: '/guides/create-a-trail/'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Share trails',
|
||||||
|
link: '/guides/share-trails/'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Lists',
|
||||||
|
link: '/guides/lists/'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Import/Export',
|
||||||
|
link: '/guides/import-export/'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'API',
|
||||||
|
link: '/guides/api/'
|
||||||
|
},
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'API Reference',
|
||||||
autogenerate: {
|
autogenerate: {
|
||||||
directory: 'reference'
|
directory: 'api-reference'
|
||||||
}
|
}
|
||||||
}],
|
}],
|
||||||
customCss: ['./src/custom.css', './src/tailwind.css', '@fontsource/ibm-plex-sans/400.css', '@fontsource/ibm-plex-sans/600.css', '@fontsource/ibm-plex-mono/400.css', '@fontsource/ibm-plex-mono/600.css']
|
customCss: ['./src/custom.css', './src/tailwind.css', '@fontsource/ibm-plex-sans/400.css', '@fontsource/ibm-plex-sans/600.css', '@fontsource/ibm-plex-mono/400.css', '@fontsource/ibm-plex-mono/600.css']
|
||||||
|
|||||||
BIN
docs/src/assets/guides/pocketbase_oauth.png
Normal file
|
After Width: | Height: | Size: 346 KiB |
BIN
docs/src/assets/guides/valhalla_routing.png
Normal file
|
After Width: | Height: | Size: 896 KiB |
BIN
docs/src/assets/guides/wanderer_lists.gif
Normal file
|
After Width: | Height: | Size: 300 KiB |
BIN
docs/src/assets/guides/wanderer_oauth.png
Normal file
|
After Width: | Height: | Size: 346 KiB |
BIN
docs/src/assets/guides/wanderer_share.gif
Normal file
|
After Width: | Height: | Size: 662 KiB |
|
Before Width: | Height: | Size: 96 KiB |
|
Before Width: | Height: | Size: 882 KiB |
|
Before Width: | Height: | Size: 2.6 MiB |
|
Before Width: | Height: | Size: 435 KiB |
|
Before Width: | Height: | Size: 1.0 MiB |
110
docs/src/content/docs/api-reference/auth.md
Normal file
@@ -0,0 +1,110 @@
|
|||||||
|
---
|
||||||
|
title: auth
|
||||||
|
---
|
||||||
|
|
||||||
|
# auth
|
||||||
|
|
||||||
|
## POST login
|
||||||
|
|
||||||
|
POST /auth/login
|
||||||
|
|
||||||
|
> Body Parameters
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"username": "string",
|
||||||
|
"password": "string"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Params
|
||||||
|
|
||||||
|
|Name|Location|Type|Required|Description|
|
||||||
|
|---|---|---|---|---|
|
||||||
|
|Content-Type|header|string| yes |none|
|
||||||
|
|body|body|object| no |none|
|
||||||
|
|» username|body|string| yes |none|
|
||||||
|
|» password|body|string| yes |none|
|
||||||
|
|
||||||
|
> Response Examples
|
||||||
|
|
||||||
|
> 200 Response
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"record": {
|
||||||
|
"avatar": "string",
|
||||||
|
"collectionId": "string",
|
||||||
|
"collectionName": "string",
|
||||||
|
"created": "string",
|
||||||
|
"email": "string",
|
||||||
|
"emailVisibility": true,
|
||||||
|
"id": "string",
|
||||||
|
"language": "string",
|
||||||
|
"location": {
|
||||||
|
"lat": 0,
|
||||||
|
"lon": 0,
|
||||||
|
"name": "string"
|
||||||
|
},
|
||||||
|
"token": "string",
|
||||||
|
"unit": "string",
|
||||||
|
"updated": "string",
|
||||||
|
"username": "string",
|
||||||
|
"verified": true
|
||||||
|
},
|
||||||
|
"token": "string"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Responses
|
||||||
|
|
||||||
|
|HTTP Status Code |Meaning|Description|Data schema|
|
||||||
|
|---|---|---|---|
|
||||||
|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|OK|Inline|
|
||||||
|
|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Bad Request|Inline|
|
||||||
|
|
||||||
|
### Responses Data Schema
|
||||||
|
|
||||||
|
HTTP Status Code **200**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» record|object|true|none||none|
|
||||||
|
|»» avatar|string|true|none||none|
|
||||||
|
|»» collectionId|string|true|none||none|
|
||||||
|
|»» collectionName|string|true|none||none|
|
||||||
|
|»» created|string|true|none||none|
|
||||||
|
|»» email|string|true|none||none|
|
||||||
|
|»» emailVisibility|boolean|true|none||none|
|
||||||
|
|»» id|string|true|none||none|
|
||||||
|
|»» language|string|true|none||none|
|
||||||
|
|»» location|object|true|none||none|
|
||||||
|
|»»» lat|number|true|none||none|
|
||||||
|
|»»» lon|number|true|none||none|
|
||||||
|
|»»» name|string|true|none||none|
|
||||||
|
|»» token|string|true|none||none|
|
||||||
|
|»» unit|string|true|none||none|
|
||||||
|
|»» updated|string|true|none||none|
|
||||||
|
|»» username|string|true|none||none|
|
||||||
|
|»» verified|boolean|true|none||none|
|
||||||
|
|» token|string|true|none||none|
|
||||||
|
|
||||||
|
HTTP Status Code **400**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» url|string|true|none||none|
|
||||||
|
|» status|integer|true|none||none|
|
||||||
|
|» response|object|true|none||none|
|
||||||
|
|»» code|integer|true|none||none|
|
||||||
|
|»» message|string|true|none||none|
|
||||||
|
|»» data|object|true|none||none|
|
||||||
|
|» isAbort|boolean|true|none||none|
|
||||||
|
|» originalError|object|true|none||none|
|
||||||
|
|»» url|string|true|none||none|
|
||||||
|
|»» status|integer|true|none||none|
|
||||||
|
|»» data|object|true|none||none|
|
||||||
|
|»»» code|integer|true|none||none|
|
||||||
|
|»»» message|string|true|none||none|
|
||||||
|
|»»» data|object|true|none||none|
|
||||||
|
|» name|string|true|none||none|
|
||||||
45
docs/src/content/docs/api-reference/category.md
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
---
|
||||||
|
title: category
|
||||||
|
---
|
||||||
|
|
||||||
|
## GET list
|
||||||
|
|
||||||
|
GET /category
|
||||||
|
|
||||||
|
> Response Examples
|
||||||
|
|
||||||
|
> 200 Response
|
||||||
|
|
||||||
|
```json
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"collectionId": "string",
|
||||||
|
"collectionName": "string",
|
||||||
|
"created": "string",
|
||||||
|
"id": "string",
|
||||||
|
"img": "string",
|
||||||
|
"name": "string",
|
||||||
|
"updated": "string"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
### Responses
|
||||||
|
|
||||||
|
|HTTP Status Code |Meaning|Description|Data schema|
|
||||||
|
|---|---|---|---|
|
||||||
|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|OK|Inline|
|
||||||
|
|
||||||
|
### Responses Data Schema
|
||||||
|
|
||||||
|
HTTP Status Code **200**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» collectionId|string|true|none||none|
|
||||||
|
|» collectionName|string|true|none||none|
|
||||||
|
|» created|string|true|none||none|
|
||||||
|
|» id|string|true|none||none|
|
||||||
|
|» img|string|true|none||none|
|
||||||
|
|» name|string|true|none||none|
|
||||||
|
|» updated|string|true|none||none|
|
||||||
401
docs/src/content/docs/api-reference/comment.md
Normal file
@@ -0,0 +1,401 @@
|
|||||||
|
---
|
||||||
|
title: comment
|
||||||
|
---
|
||||||
|
|
||||||
|
## GET show
|
||||||
|
|
||||||
|
GET /comment/{id}
|
||||||
|
|
||||||
|
### Params
|
||||||
|
|
||||||
|
|Name|Location|Type|Required|Description|
|
||||||
|
|---|---|---|---|---|
|
||||||
|
|id|path|string| yes |none|
|
||||||
|
|
||||||
|
> Response Examples
|
||||||
|
|
||||||
|
> 200 Response
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"author": "string",
|
||||||
|
"collectionId": "string",
|
||||||
|
"collectionName": "string",
|
||||||
|
"created": "string",
|
||||||
|
"expand": {
|
||||||
|
"author": {
|
||||||
|
"avatar": "string",
|
||||||
|
"collectionId": "string",
|
||||||
|
"collectionName": "string",
|
||||||
|
"created": "string",
|
||||||
|
"email": "string",
|
||||||
|
"emailVisibility": true,
|
||||||
|
"id": "string",
|
||||||
|
"token": "string",
|
||||||
|
"updated": "string",
|
||||||
|
"username": "string",
|
||||||
|
"verified": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"id": "string",
|
||||||
|
"rating": 0,
|
||||||
|
"text": "string",
|
||||||
|
"trail": "string",
|
||||||
|
"updated": "string"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Responses
|
||||||
|
|
||||||
|
|HTTP Status Code |Meaning|Description|Data schema|
|
||||||
|
|---|---|---|---|
|
||||||
|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|OK|Inline|
|
||||||
|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Record Not Found|Inline|
|
||||||
|
|
||||||
|
### Responses Data Schema
|
||||||
|
|
||||||
|
HTTP Status Code **200**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» author|string|true|none||none|
|
||||||
|
|» collectionId|string|true|none||none|
|
||||||
|
|» collectionName|string|true|none||none|
|
||||||
|
|» created|string|true|none||none|
|
||||||
|
|» expand|object|true|none||none|
|
||||||
|
|»» author|object|true|none||none|
|
||||||
|
|»»» avatar|string|true|none||none|
|
||||||
|
|»»» collectionId|string|true|none||none|
|
||||||
|
|»»» collectionName|string|true|none||none|
|
||||||
|
|»»» created|string|true|none||none|
|
||||||
|
|»»» email|string|true|none||none|
|
||||||
|
|»»» emailVisibility|boolean|true|none||none|
|
||||||
|
|»»» id|string|true|none||none|
|
||||||
|
|»»» token|string|true|none||none|
|
||||||
|
|»»» updated|string|true|none||none|
|
||||||
|
|»»» username|string|true|none||none|
|
||||||
|
|»»» verified|boolean|true|none||none|
|
||||||
|
|» id|string|true|none||none|
|
||||||
|
|» rating|integer|true|none||none|
|
||||||
|
|» text|string|true|none||none|
|
||||||
|
|» trail|string|true|none||none|
|
||||||
|
|» updated|string|true|none||none|
|
||||||
|
|
||||||
|
HTTP Status Code **404**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» url|string|true|none||none|
|
||||||
|
|» status|integer|true|none||none|
|
||||||
|
|» response|object|true|none||none|
|
||||||
|
|»» code|integer|true|none||none|
|
||||||
|
|»» message|string|true|none||none|
|
||||||
|
|»» data|object|true|none||none|
|
||||||
|
|» isAbort|boolean|true|none||none|
|
||||||
|
|» originalError|object|true|none||none|
|
||||||
|
|»» url|string|true|none||none|
|
||||||
|
|»» status|integer|true|none||none|
|
||||||
|
|»» data|object|true|none||none|
|
||||||
|
|»»» code|integer|true|none||none|
|
||||||
|
|»»» message|string|true|none||none|
|
||||||
|
|»»» data|object|true|none||none|
|
||||||
|
|» name|string|true|none||none|
|
||||||
|
|
||||||
|
## POST update
|
||||||
|
|
||||||
|
POST /comment/{id}
|
||||||
|
|
||||||
|
> Body Parameters
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"text": "string",
|
||||||
|
"trail": "string",
|
||||||
|
"author": "string"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Params
|
||||||
|
|
||||||
|
|Name|Location|Type|Required|Description|
|
||||||
|
|---|---|---|---|---|
|
||||||
|
|id|path|string| yes |none|
|
||||||
|
|Content-Type|header|string| yes |none|
|
||||||
|
|body|body|object| no |none|
|
||||||
|
|» text|body|string| yes |none|
|
||||||
|
|» trail|body|string| yes |none|
|
||||||
|
|» author|body|string| yes |none|
|
||||||
|
|
||||||
|
> Response Examples
|
||||||
|
|
||||||
|
> 200 Response
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"author": "string",
|
||||||
|
"collectionId": "string",
|
||||||
|
"collectionName": "string",
|
||||||
|
"created": "string",
|
||||||
|
"id": "string",
|
||||||
|
"rating": 0,
|
||||||
|
"text": "string",
|
||||||
|
"trail": "string",
|
||||||
|
"updated": "string"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Responses
|
||||||
|
|
||||||
|
|HTTP Status Code |Meaning|Description|Data schema|
|
||||||
|
|---|---|---|---|
|
||||||
|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|OK|Inline|
|
||||||
|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Record Not Found|Inline|
|
||||||
|
|
||||||
|
### Responses Data Schema
|
||||||
|
|
||||||
|
HTTP Status Code **200**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» author|string|true|none||none|
|
||||||
|
|» collectionId|string|true|none||none|
|
||||||
|
|» collectionName|string|true|none||none|
|
||||||
|
|» created|string|true|none||none|
|
||||||
|
|» id|string|true|none||none|
|
||||||
|
|» rating|integer|true|none||none|
|
||||||
|
|» text|string|true|none||none|
|
||||||
|
|» trail|string|true|none||none|
|
||||||
|
|» updated|string|true|none||none|
|
||||||
|
|
||||||
|
HTTP Status Code **404**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» url|string|true|none||none|
|
||||||
|
|» status|integer|true|none||none|
|
||||||
|
|» response|object|true|none||none|
|
||||||
|
|»» code|integer|true|none||none|
|
||||||
|
|»» message|string|true|none||none|
|
||||||
|
|»» data|object|true|none||none|
|
||||||
|
|» isAbort|boolean|true|none||none|
|
||||||
|
|» originalError|object|true|none||none|
|
||||||
|
|»» url|string|true|none||none|
|
||||||
|
|»» status|integer|true|none||none|
|
||||||
|
|»» data|object|true|none||none|
|
||||||
|
|»»» code|integer|true|none||none|
|
||||||
|
|»»» message|string|true|none||none|
|
||||||
|
|»»» data|object|true|none||none|
|
||||||
|
|» name|string|true|none||none|
|
||||||
|
|
||||||
|
## DELETE delete
|
||||||
|
|
||||||
|
DELETE /comment/{id}
|
||||||
|
|
||||||
|
### Params
|
||||||
|
|
||||||
|
|Name|Location|Type|Required|Description|
|
||||||
|
|---|---|---|---|---|
|
||||||
|
|id|path|string| yes |none|
|
||||||
|
|
||||||
|
> Response Examples
|
||||||
|
|
||||||
|
> 200 Response
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"acknowledged": true
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Responses
|
||||||
|
|
||||||
|
|HTTP Status Code |Meaning|Description|Data schema|
|
||||||
|
|---|---|---|---|
|
||||||
|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|OK|Inline|
|
||||||
|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Record Not Found|Inline|
|
||||||
|
|
||||||
|
### Responses Data Schema
|
||||||
|
|
||||||
|
HTTP Status Code **200**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» acknowledged|boolean|true|none||none|
|
||||||
|
|
||||||
|
HTTP Status Code **404**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» url|string|true|none||none|
|
||||||
|
|» status|integer|true|none||none|
|
||||||
|
|» response|object|true|none||none|
|
||||||
|
|»» code|integer|true|none||none|
|
||||||
|
|»» message|string|true|none||none|
|
||||||
|
|»» data|object|true|none||none|
|
||||||
|
|» isAbort|boolean|true|none||none|
|
||||||
|
|» originalError|object|true|none||none|
|
||||||
|
|»» url|string|true|none||none|
|
||||||
|
|»» status|integer|true|none||none|
|
||||||
|
|»» data|object|true|none||none|
|
||||||
|
|»»» code|integer|true|none||none|
|
||||||
|
|»»» message|string|true|none||none|
|
||||||
|
|»»» data|object|true|none||none|
|
||||||
|
|» name|string|true|none||none|
|
||||||
|
|
||||||
|
## GET list
|
||||||
|
|
||||||
|
GET /comment
|
||||||
|
|
||||||
|
> Response Examples
|
||||||
|
|
||||||
|
> 200 Response
|
||||||
|
|
||||||
|
```json
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"author": "string",
|
||||||
|
"collectionId": "string",
|
||||||
|
"collectionName": "string",
|
||||||
|
"created": "string",
|
||||||
|
"expand": {
|
||||||
|
"author": {
|
||||||
|
"avatar": "string",
|
||||||
|
"collectionId": "string",
|
||||||
|
"collectionName": "string",
|
||||||
|
"created": "string",
|
||||||
|
"email": "string",
|
||||||
|
"emailVisibility": true,
|
||||||
|
"id": "string",
|
||||||
|
"token": "string",
|
||||||
|
"updated": "string",
|
||||||
|
"username": "string",
|
||||||
|
"verified": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"id": "string",
|
||||||
|
"rating": 0,
|
||||||
|
"text": "string",
|
||||||
|
"trail": "string",
|
||||||
|
"updated": "string"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
### Responses
|
||||||
|
|
||||||
|
|HTTP Status Code |Meaning|Description|Data schema|
|
||||||
|
|---|---|---|---|
|
||||||
|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|OK|Inline|
|
||||||
|
|
||||||
|
### Responses Data Schema
|
||||||
|
|
||||||
|
HTTP Status Code **200**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» author|string|true|none||none|
|
||||||
|
|» collectionId|string|true|none||none|
|
||||||
|
|» collectionName|string|true|none||none|
|
||||||
|
|» created|string|true|none||none|
|
||||||
|
|» expand|object|true|none||none|
|
||||||
|
|»» author|object|true|none||none|
|
||||||
|
|»»» avatar|string|true|none||none|
|
||||||
|
|»»» collectionId|string|true|none||none|
|
||||||
|
|»»» collectionName|string|true|none||none|
|
||||||
|
|»»» created|string|false|none||none|
|
||||||
|
|»»» email|string|false|none||none|
|
||||||
|
|»»» emailVisibility|boolean|false|none||none|
|
||||||
|
|»»» id|string|true|none||none|
|
||||||
|
|»»» token|string|false|none||none|
|
||||||
|
|»»» updated|string|false|none||none|
|
||||||
|
|»»» username|string|true|none||none|
|
||||||
|
|»»» verified|boolean|false|none||none|
|
||||||
|
|» id|string|true|none||none|
|
||||||
|
|» rating|integer|true|none||none|
|
||||||
|
|» text|string|true|none||none|
|
||||||
|
|» trail|string|true|none||none|
|
||||||
|
|» updated|string|true|none||none|
|
||||||
|
|
||||||
|
## PUT create
|
||||||
|
|
||||||
|
PUT /comment
|
||||||
|
|
||||||
|
> Body Parameters
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"author": "string",
|
||||||
|
"text": "string",
|
||||||
|
"trail": "string"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Params
|
||||||
|
|
||||||
|
|Name|Location|Type|Required|Description|
|
||||||
|
|---|---|---|---|---|
|
||||||
|
|body|body|object| no |none|
|
||||||
|
|» author|body|string| yes |none|
|
||||||
|
|» text|body|string| yes |none|
|
||||||
|
|» trail|body|string| yes |none|
|
||||||
|
|
||||||
|
> Response Examples
|
||||||
|
|
||||||
|
> 200 Response
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"author": "string",
|
||||||
|
"collectionId": "string",
|
||||||
|
"collectionName": "string",
|
||||||
|
"created": "string",
|
||||||
|
"id": "string",
|
||||||
|
"rating": 0,
|
||||||
|
"text": "string",
|
||||||
|
"trail": "string",
|
||||||
|
"updated": "string"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Responses
|
||||||
|
|
||||||
|
|HTTP Status Code |Meaning|Description|Data schema|
|
||||||
|
|---|---|---|---|
|
||||||
|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|OK|Inline|
|
||||||
|
|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Bad Request|Inline|
|
||||||
|
|
||||||
|
### Responses Data Schema
|
||||||
|
|
||||||
|
HTTP Status Code **200**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» author|string|true|none||none|
|
||||||
|
|» collectionId|string|true|none||none|
|
||||||
|
|» collectionName|string|true|none||none|
|
||||||
|
|» created|string|true|none||none|
|
||||||
|
|» id|string|true|none||none|
|
||||||
|
|» rating|integer|true|none||none|
|
||||||
|
|» text|string|true|none||none|
|
||||||
|
|» trail|string|true|none||none|
|
||||||
|
|» updated|string|true|none||none|
|
||||||
|
|
||||||
|
HTTP Status Code **400**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» url|string|true|none||none|
|
||||||
|
|» status|integer|true|none||none|
|
||||||
|
|» response|object|true|none||none|
|
||||||
|
|»» code|integer|true|none||none|
|
||||||
|
|»» message|string|true|none||none|
|
||||||
|
|»» data|object|true|none||none|
|
||||||
|
|» isAbort|boolean|true|none||none|
|
||||||
|
|» originalError|object|true|none||none|
|
||||||
|
|»» url|string|true|none||none|
|
||||||
|
|»» status|integer|true|none||none|
|
||||||
|
|»» data|object|true|none||none|
|
||||||
|
|»»» code|integer|true|none||none|
|
||||||
|
|»»» message|string|true|none||none|
|
||||||
|
|»»» data|object|true|none||none|
|
||||||
|
|» name|string|true|none||none|
|
||||||
449
docs/src/content/docs/api-reference/list.md
Normal file
@@ -0,0 +1,449 @@
|
|||||||
|
---
|
||||||
|
title: list
|
||||||
|
---
|
||||||
|
|
||||||
|
## POST file
|
||||||
|
|
||||||
|
POST /list/{id}/file
|
||||||
|
|
||||||
|
> Body Parameters
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
avatar: string
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
### Params
|
||||||
|
|
||||||
|
|Name|Location|Type|Required|Description|
|
||||||
|
|---|---|---|---|---|
|
||||||
|
|id|path|string| yes |none|
|
||||||
|
|Content-Type|header|string| yes |none|
|
||||||
|
|body|body|object| no |none|
|
||||||
|
|» avatar|body|string(binary)| no |none|
|
||||||
|
|
||||||
|
> Response Examples
|
||||||
|
|
||||||
|
> 200 Response
|
||||||
|
|
||||||
|
```json
|
||||||
|
{}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Responses
|
||||||
|
|
||||||
|
|HTTP Status Code |Meaning|Description|Data schema|
|
||||||
|
|---|---|---|---|
|
||||||
|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Success|Inline|
|
||||||
|
|
||||||
|
### Responses Data Schema
|
||||||
|
|
||||||
|
## GET show
|
||||||
|
|
||||||
|
GET /list/{id}
|
||||||
|
|
||||||
|
### Params
|
||||||
|
|
||||||
|
|Name|Location|Type|Required|Description|
|
||||||
|
|---|---|---|---|---|
|
||||||
|
|id|path|string| yes |none|
|
||||||
|
|
||||||
|
> Response Examples
|
||||||
|
|
||||||
|
> 200 Response
|
||||||
|
|
||||||
|
```json
|
||||||
|
{}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Responses
|
||||||
|
|
||||||
|
|HTTP Status Code |Meaning|Description|Data schema|
|
||||||
|
|---|---|---|---|
|
||||||
|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Success|Inline|
|
||||||
|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Record Not Found|Inline|
|
||||||
|
|
||||||
|
### Responses Data Schema
|
||||||
|
|
||||||
|
HTTP Status Code **404**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» url|string|true|none||none|
|
||||||
|
|» status|integer|true|none||none|
|
||||||
|
|» response|object|true|none||none|
|
||||||
|
|»» code|integer|true|none||none|
|
||||||
|
|»» message|string|true|none||none|
|
||||||
|
|»» data|object|true|none||none|
|
||||||
|
|» isAbort|boolean|true|none||none|
|
||||||
|
|» originalError|object|true|none||none|
|
||||||
|
|»» url|string|true|none||none|
|
||||||
|
|»» status|integer|true|none||none|
|
||||||
|
|»» data|object|true|none||none|
|
||||||
|
|»»» code|integer|true|none||none|
|
||||||
|
|»»» message|string|true|none||none|
|
||||||
|
|»»» data|object|true|none||none|
|
||||||
|
|» name|string|true|none||none|
|
||||||
|
|
||||||
|
## POST update
|
||||||
|
|
||||||
|
POST /list/{id}
|
||||||
|
|
||||||
|
> Body Parameters
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"name": "string"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Params
|
||||||
|
|
||||||
|
|Name|Location|Type|Required|Description|
|
||||||
|
|---|---|---|---|---|
|
||||||
|
|id|path|string| yes |none|
|
||||||
|
|Content-Type|header|string| yes |none|
|
||||||
|
|body|body|object| no |none|
|
||||||
|
|» name|body|string| yes |none|
|
||||||
|
|
||||||
|
> Response Examples
|
||||||
|
|
||||||
|
> 200 Response
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"author": "string",
|
||||||
|
"avatar": "string",
|
||||||
|
"collectionId": "string",
|
||||||
|
"collectionName": "string",
|
||||||
|
"created": "string",
|
||||||
|
"description": "string",
|
||||||
|
"id": "string",
|
||||||
|
"name": "string",
|
||||||
|
"trails": [
|
||||||
|
"string"
|
||||||
|
],
|
||||||
|
"updated": "string"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Responses
|
||||||
|
|
||||||
|
|HTTP Status Code |Meaning|Description|Data schema|
|
||||||
|
|---|---|---|---|
|
||||||
|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|OK|Inline|
|
||||||
|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Record Not Found|Inline|
|
||||||
|
|
||||||
|
### Responses Data Schema
|
||||||
|
|
||||||
|
HTTP Status Code **200**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» author|string|true|none||none|
|
||||||
|
|» avatar|string|true|none||none|
|
||||||
|
|» collectionId|string|true|none||none|
|
||||||
|
|» collectionName|string|true|none||none|
|
||||||
|
|» created|string|true|none||none|
|
||||||
|
|» description|string|true|none||none|
|
||||||
|
|» id|string|true|none||none|
|
||||||
|
|» name|string|true|none||none|
|
||||||
|
|» trails|[string]|true|none||none|
|
||||||
|
|» updated|string|true|none||none|
|
||||||
|
|
||||||
|
HTTP Status Code **404**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» url|string|true|none||none|
|
||||||
|
|» status|integer|true|none||none|
|
||||||
|
|» response|object|true|none||none|
|
||||||
|
|»» code|integer|true|none||none|
|
||||||
|
|»» message|string|true|none||none|
|
||||||
|
|»» data|object|true|none||none|
|
||||||
|
|» isAbort|boolean|true|none||none|
|
||||||
|
|» originalError|object|true|none||none|
|
||||||
|
|»» url|string|true|none||none|
|
||||||
|
|»» status|integer|true|none||none|
|
||||||
|
|»» data|object|true|none||none|
|
||||||
|
|»»» code|integer|true|none||none|
|
||||||
|
|»»» message|string|true|none||none|
|
||||||
|
|»»» data|object|true|none||none|
|
||||||
|
|» name|string|true|none||none|
|
||||||
|
|
||||||
|
## DELETE delete
|
||||||
|
|
||||||
|
DELETE /list/{id}
|
||||||
|
|
||||||
|
### Params
|
||||||
|
|
||||||
|
|Name|Location|Type|Required|Description|
|
||||||
|
|---|---|---|---|---|
|
||||||
|
|id|path|string| yes |none|
|
||||||
|
|
||||||
|
> Response Examples
|
||||||
|
|
||||||
|
> 200 Response
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"acknowledged": true
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Responses
|
||||||
|
|
||||||
|
|HTTP Status Code |Meaning|Description|Data schema|
|
||||||
|
|---|---|---|---|
|
||||||
|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|OK|Inline|
|
||||||
|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Record Not Found|Inline|
|
||||||
|
|
||||||
|
### Responses Data Schema
|
||||||
|
|
||||||
|
HTTP Status Code **200**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» acknowledged|boolean|true|none||none|
|
||||||
|
|
||||||
|
HTTP Status Code **404**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» url|string|true|none||none|
|
||||||
|
|» status|integer|true|none||none|
|
||||||
|
|» response|object|true|none||none|
|
||||||
|
|»» code|integer|true|none||none|
|
||||||
|
|»» message|string|true|none||none|
|
||||||
|
|»» data|object|true|none||none|
|
||||||
|
|» isAbort|boolean|true|none||none|
|
||||||
|
|» originalError|object|true|none||none|
|
||||||
|
|»» url|string|true|none||none|
|
||||||
|
|»» status|integer|true|none||none|
|
||||||
|
|»» data|object|true|none||none|
|
||||||
|
|»»» code|integer|true|none||none|
|
||||||
|
|»»» message|string|true|none||none|
|
||||||
|
|»»» data|object|true|none||none|
|
||||||
|
|» name|string|true|none||none|
|
||||||
|
|
||||||
|
## GET list
|
||||||
|
|
||||||
|
GET /list
|
||||||
|
|
||||||
|
> Response Examples
|
||||||
|
|
||||||
|
> 200 Response
|
||||||
|
|
||||||
|
```json
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"author": "string",
|
||||||
|
"avatar": "string",
|
||||||
|
"collectionId": "string",
|
||||||
|
"collectionName": "string",
|
||||||
|
"created": "string",
|
||||||
|
"description": "string",
|
||||||
|
"id": "string",
|
||||||
|
"name": "string",
|
||||||
|
"trails": [
|
||||||
|
"string"
|
||||||
|
],
|
||||||
|
"updated": "string",
|
||||||
|
"expand": {
|
||||||
|
"trails": [
|
||||||
|
{
|
||||||
|
"author": "string",
|
||||||
|
"category": "string",
|
||||||
|
"collectionId": "string",
|
||||||
|
"collectionName": "string",
|
||||||
|
"created": "string",
|
||||||
|
"description": "string",
|
||||||
|
"difficulty": "string",
|
||||||
|
"distance": 0,
|
||||||
|
"duration": 0,
|
||||||
|
"elevation_gain": 0,
|
||||||
|
"expand": {
|
||||||
|
"category": null,
|
||||||
|
"waypoints": null
|
||||||
|
},
|
||||||
|
"gpx": "string",
|
||||||
|
"id": "string",
|
||||||
|
"lat": 0,
|
||||||
|
"location": "string",
|
||||||
|
"lon": 0,
|
||||||
|
"name": "string",
|
||||||
|
"photos": [
|
||||||
|
"string"
|
||||||
|
],
|
||||||
|
"public": true,
|
||||||
|
"summit_logs": [
|
||||||
|
"string"
|
||||||
|
],
|
||||||
|
"thumbnail": 0,
|
||||||
|
"updated": "string",
|
||||||
|
"waypoints": [
|
||||||
|
"string"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
### Responses
|
||||||
|
|
||||||
|
|HTTP Status Code |Meaning|Description|Data schema|
|
||||||
|
|---|---|---|---|
|
||||||
|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|OK|Inline|
|
||||||
|
|
||||||
|
### Responses Data Schema
|
||||||
|
|
||||||
|
HTTP Status Code **200**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» author|string|true|none||none|
|
||||||
|
|» avatar|string|true|none||none|
|
||||||
|
|» collectionId|string|true|none||none|
|
||||||
|
|» collectionName|string|true|none||none|
|
||||||
|
|» created|string|true|none||none|
|
||||||
|
|» description|string|true|none||none|
|
||||||
|
|» id|string|true|none||none|
|
||||||
|
|» name|string|true|none||none|
|
||||||
|
|» trails|[string]|true|none||none|
|
||||||
|
|» updated|string|true|none||none|
|
||||||
|
|» expand|object|false|none||none|
|
||||||
|
|»» trails|[object]|true|none||none|
|
||||||
|
|»»» author|string|true|none||none|
|
||||||
|
|»»» category|string|true|none||none|
|
||||||
|
|»»» collectionId|string|true|none||none|
|
||||||
|
|»»» collectionName|string|true|none||none|
|
||||||
|
|»»» created|string|true|none||none|
|
||||||
|
|»»» description|string|true|none||none|
|
||||||
|
|»»» difficulty|string|true|none||none|
|
||||||
|
|»»» distance|integer|true|none||none|
|
||||||
|
|»»» duration|integer|true|none||none|
|
||||||
|
|»»» elevation_gain|integer|true|none||none|
|
||||||
|
|»»» expand|object|true|none||none|
|
||||||
|
|»»»» category|object|true|none||none|
|
||||||
|
|»»»»» collectionId|string|true|none||none|
|
||||||
|
|»»»»» collectionName|string|true|none||none|
|
||||||
|
|»»»»» created|string|true|none||none|
|
||||||
|
|»»»»» id|string|true|none||none|
|
||||||
|
|»»»»» img|string|true|none||none|
|
||||||
|
|»»»»» name|string|true|none||none|
|
||||||
|
|»»»»» updated|string|true|none||none|
|
||||||
|
|»»»» waypoints|[object]|false|none||none|
|
||||||
|
|»»»»» author|string|true|none||none|
|
||||||
|
|»»»»» collectionId|string|true|none||none|
|
||||||
|
|»»»»» collectionName|string|true|none||none|
|
||||||
|
|»»»»» created|string|true|none||none|
|
||||||
|
|»»»»» description|string|true|none||none|
|
||||||
|
|»»»»» icon|string|true|none||none|
|
||||||
|
|»»»»» id|string|true|none||none|
|
||||||
|
|»»»»» lat|number|true|none||none|
|
||||||
|
|»»»»» lon|number|true|none||none|
|
||||||
|
|»»»»» name|string|true|none||none|
|
||||||
|
|»»»»» photos|[string]|true|none||none|
|
||||||
|
|»»»»» updated|string|true|none||none|
|
||||||
|
|»»» gpx|string|true|none||none|
|
||||||
|
|»»» id|string|true|none||none|
|
||||||
|
|»»» lat|number|true|none||none|
|
||||||
|
|»»» location|string|true|none||none|
|
||||||
|
|»»» lon|number|true|none||none|
|
||||||
|
|»»» name|string|true|none||none|
|
||||||
|
|»»» photos|[string]|true|none||none|
|
||||||
|
|»»» public|boolean|true|none||none|
|
||||||
|
|»»» summit_logs|[string]|true|none||none|
|
||||||
|
|»»» thumbnail|integer|true|none||none|
|
||||||
|
|»»» updated|string|true|none||none|
|
||||||
|
|»»» waypoints|[string]|true|none||none|
|
||||||
|
|
||||||
|
## PUT create
|
||||||
|
|
||||||
|
PUT /list
|
||||||
|
|
||||||
|
> Body Parameters
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"name": "string",
|
||||||
|
"description": "string",
|
||||||
|
"author": "string"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Params
|
||||||
|
|
||||||
|
|Name|Location|Type|Required|Description|
|
||||||
|
|---|---|---|---|---|
|
||||||
|
|body|body|object| no |none|
|
||||||
|
|» name|body|string| yes |none|
|
||||||
|
|» description|body|string| no |none|
|
||||||
|
|» author|body|string| yes |none|
|
||||||
|
|
||||||
|
> Response Examples
|
||||||
|
|
||||||
|
> 200 Response
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"author": "string",
|
||||||
|
"avatar": "string",
|
||||||
|
"collectionId": "string",
|
||||||
|
"collectionName": "string",
|
||||||
|
"created": "string",
|
||||||
|
"description": "string",
|
||||||
|
"id": "string",
|
||||||
|
"name": "string",
|
||||||
|
"trails": [
|
||||||
|
"string"
|
||||||
|
],
|
||||||
|
"updated": "string"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Responses
|
||||||
|
|
||||||
|
|HTTP Status Code |Meaning|Description|Data schema|
|
||||||
|
|---|---|---|---|
|
||||||
|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|OK|Inline|
|
||||||
|
|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Bad Request|Inline|
|
||||||
|
|
||||||
|
### Responses Data Schema
|
||||||
|
|
||||||
|
HTTP Status Code **200**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» author|string|true|none||none|
|
||||||
|
|» avatar|string|true|none||none|
|
||||||
|
|» collectionId|string|true|none||none|
|
||||||
|
|» collectionName|string|true|none||none|
|
||||||
|
|» created|string|true|none||none|
|
||||||
|
|» description|string|true|none||none|
|
||||||
|
|» id|string|true|none||none|
|
||||||
|
|» name|string|true|none||none|
|
||||||
|
|» trails|[string]|true|none||none|
|
||||||
|
|» updated|string|true|none||none|
|
||||||
|
|
||||||
|
HTTP Status Code **400**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» url|string|true|none||none|
|
||||||
|
|» status|integer|true|none||none|
|
||||||
|
|» response|object|true|none||none|
|
||||||
|
|»» code|integer|true|none||none|
|
||||||
|
|»» message|string|true|none||none|
|
||||||
|
|»» data|object|true|none||none|
|
||||||
|
|» isAbort|boolean|true|none||none|
|
||||||
|
|» originalError|object|true|none||none|
|
||||||
|
|»» url|string|true|none||none|
|
||||||
|
|»» status|integer|true|none||none|
|
||||||
|
|»» data|object|true|none||none|
|
||||||
|
|»»» code|integer|true|none||none|
|
||||||
|
|»»» message|string|true|none||none|
|
||||||
|
|»»» data|object|true|none||none|
|
||||||
|
|» name|string|true|none||none|
|
||||||
323
docs/src/content/docs/api-reference/summit-log.md
Normal file
@@ -0,0 +1,323 @@
|
|||||||
|
---
|
||||||
|
title: summit-log
|
||||||
|
---
|
||||||
|
|
||||||
|
## GET show
|
||||||
|
|
||||||
|
GET /summit-log/{id}
|
||||||
|
|
||||||
|
### Params
|
||||||
|
|
||||||
|
|Name|Location|Type|Required|Description|
|
||||||
|
|---|---|---|---|---|
|
||||||
|
|id|path|string| yes |none|
|
||||||
|
|
||||||
|
> Response Examples
|
||||||
|
|
||||||
|
> 200 Response
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"collectionId": "string",
|
||||||
|
"collectionName": "string",
|
||||||
|
"created": "string",
|
||||||
|
"date": "string",
|
||||||
|
"id": "string",
|
||||||
|
"text": "string",
|
||||||
|
"updated": "string"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Responses
|
||||||
|
|
||||||
|
|HTTP Status Code |Meaning|Description|Data schema|
|
||||||
|
|---|---|---|---|
|
||||||
|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|OK|Inline|
|
||||||
|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Record Not Found|Inline|
|
||||||
|
|
||||||
|
### Responses Data Schema
|
||||||
|
|
||||||
|
HTTP Status Code **200**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» collectionId|string|true|none||none|
|
||||||
|
|» collectionName|string|true|none||none|
|
||||||
|
|» created|string|true|none||none|
|
||||||
|
|» date|string|true|none||none|
|
||||||
|
|» id|string|true|none||none|
|
||||||
|
|» text|string|true|none||none|
|
||||||
|
|» updated|string|true|none||none|
|
||||||
|
|
||||||
|
HTTP Status Code **404**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» url|string|true|none||none|
|
||||||
|
|» status|integer|true|none||none|
|
||||||
|
|» response|object|true|none||none|
|
||||||
|
|»» code|integer|true|none||none|
|
||||||
|
|»» message|string|true|none||none|
|
||||||
|
|»» data|object|true|none||none|
|
||||||
|
|» isAbort|boolean|true|none||none|
|
||||||
|
|» originalError|object|true|none||none|
|
||||||
|
|»» url|string|true|none||none|
|
||||||
|
|»» status|integer|true|none||none|
|
||||||
|
|»» data|object|true|none||none|
|
||||||
|
|»»» code|integer|true|none||none|
|
||||||
|
|»»» message|string|true|none||none|
|
||||||
|
|»»» data|object|true|none||none|
|
||||||
|
|» name|string|true|none||none|
|
||||||
|
|
||||||
|
## POST update
|
||||||
|
|
||||||
|
POST /summit-log/{id}
|
||||||
|
|
||||||
|
> Body Parameters
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"name": "string"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Params
|
||||||
|
|
||||||
|
|Name|Location|Type|Required|Description|
|
||||||
|
|---|---|---|---|---|
|
||||||
|
|id|path|string| yes |none|
|
||||||
|
|Content-Type|header|string| yes |none|
|
||||||
|
|body|body|object| no |none|
|
||||||
|
|» name|body|string| yes |none|
|
||||||
|
|
||||||
|
> Response Examples
|
||||||
|
|
||||||
|
> 200 Response
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"collectionId": "string",
|
||||||
|
"collectionName": "string",
|
||||||
|
"created": "string",
|
||||||
|
"date": "string",
|
||||||
|
"id": "string",
|
||||||
|
"text": "string",
|
||||||
|
"updated": "string"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Responses
|
||||||
|
|
||||||
|
|HTTP Status Code |Meaning|Description|Data schema|
|
||||||
|
|---|---|---|---|
|
||||||
|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|OK|Inline|
|
||||||
|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Record Not Found|Inline|
|
||||||
|
|
||||||
|
### Responses Data Schema
|
||||||
|
|
||||||
|
HTTP Status Code **200**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» collectionId|string|true|none||none|
|
||||||
|
|» collectionName|string|true|none||none|
|
||||||
|
|» created|string|true|none||none|
|
||||||
|
|» date|string|true|none||none|
|
||||||
|
|» id|string|true|none||none|
|
||||||
|
|» text|string|true|none||none|
|
||||||
|
|» updated|string|true|none||none|
|
||||||
|
|
||||||
|
HTTP Status Code **404**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» url|string|true|none||none|
|
||||||
|
|» status|integer|true|none||none|
|
||||||
|
|» response|object|true|none||none|
|
||||||
|
|»» code|integer|true|none||none|
|
||||||
|
|»» message|string|true|none||none|
|
||||||
|
|»» data|object|true|none||none|
|
||||||
|
|» isAbort|boolean|true|none||none|
|
||||||
|
|» originalError|object|true|none||none|
|
||||||
|
|»» url|string|true|none||none|
|
||||||
|
|»» status|integer|true|none||none|
|
||||||
|
|»» data|object|true|none||none|
|
||||||
|
|»»» code|integer|true|none||none|
|
||||||
|
|»»» message|string|true|none||none|
|
||||||
|
|»»» data|object|true|none||none|
|
||||||
|
|» name|string|true|none||none|
|
||||||
|
|
||||||
|
## DELETE delete
|
||||||
|
|
||||||
|
DELETE /summit-log/{id}
|
||||||
|
|
||||||
|
### Params
|
||||||
|
|
||||||
|
|Name|Location|Type|Required|Description|
|
||||||
|
|---|---|---|---|---|
|
||||||
|
|id|path|string| yes |none|
|
||||||
|
|
||||||
|
> Response Examples
|
||||||
|
|
||||||
|
> 200 Response
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"acknowledged": true
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Responses
|
||||||
|
|
||||||
|
|HTTP Status Code |Meaning|Description|Data schema|
|
||||||
|
|---|---|---|---|
|
||||||
|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|OK|Inline|
|
||||||
|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Record Not Found|Inline|
|
||||||
|
|
||||||
|
### Responses Data Schema
|
||||||
|
|
||||||
|
HTTP Status Code **200**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» acknowledged|boolean|true|none||none|
|
||||||
|
|
||||||
|
HTTP Status Code **404**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» url|string|true|none||none|
|
||||||
|
|» status|integer|true|none||none|
|
||||||
|
|» response|object|true|none||none|
|
||||||
|
|»» code|integer|true|none||none|
|
||||||
|
|»» message|string|true|none||none|
|
||||||
|
|»» data|object|true|none||none|
|
||||||
|
|» isAbort|boolean|true|none||none|
|
||||||
|
|» originalError|object|true|none||none|
|
||||||
|
|»» url|string|true|none||none|
|
||||||
|
|»» status|integer|true|none||none|
|
||||||
|
|»» data|object|true|none||none|
|
||||||
|
|»»» code|integer|true|none||none|
|
||||||
|
|»»» message|string|true|none||none|
|
||||||
|
|»»» data|object|true|none||none|
|
||||||
|
|» name|string|true|none||none|
|
||||||
|
|
||||||
|
## GET list
|
||||||
|
|
||||||
|
GET /summit-log
|
||||||
|
|
||||||
|
> Response Examples
|
||||||
|
|
||||||
|
> 200 Response
|
||||||
|
|
||||||
|
```json
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"collectionId": "string",
|
||||||
|
"collectionName": "string",
|
||||||
|
"created": "string",
|
||||||
|
"date": "string",
|
||||||
|
"id": "string",
|
||||||
|
"text": "string",
|
||||||
|
"updated": "string"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
### Responses
|
||||||
|
|
||||||
|
|HTTP Status Code |Meaning|Description|Data schema|
|
||||||
|
|---|---|---|---|
|
||||||
|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|OK|Inline|
|
||||||
|
|
||||||
|
### Responses Data Schema
|
||||||
|
|
||||||
|
HTTP Status Code **200**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» collectionId|string|false|none||none|
|
||||||
|
|» collectionName|string|false|none||none|
|
||||||
|
|» created|string|false|none||none|
|
||||||
|
|» date|string|false|none||none|
|
||||||
|
|» id|string|false|none||none|
|
||||||
|
|» text|string|false|none||none|
|
||||||
|
|» updated|string|false|none||none|
|
||||||
|
|
||||||
|
## PUT create
|
||||||
|
|
||||||
|
PUT /summit-log
|
||||||
|
|
||||||
|
> Body Parameters
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"date": "string",
|
||||||
|
"text": "string"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Params
|
||||||
|
|
||||||
|
|Name|Location|Type|Required|Description|
|
||||||
|
|---|---|---|---|---|
|
||||||
|
|body|body|object| no |none|
|
||||||
|
|» date|body|string| yes |none|
|
||||||
|
|» text|body|string| yes |none|
|
||||||
|
|
||||||
|
> Response Examples
|
||||||
|
|
||||||
|
> 200 Response
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"collectionId": "string",
|
||||||
|
"collectionName": "string",
|
||||||
|
"created": "string",
|
||||||
|
"date": "string",
|
||||||
|
"id": "string",
|
||||||
|
"text": "string",
|
||||||
|
"updated": "string"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Responses
|
||||||
|
|
||||||
|
|HTTP Status Code |Meaning|Description|Data schema|
|
||||||
|
|---|---|---|---|
|
||||||
|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|OK|Inline|
|
||||||
|
|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Bad Request|Inline|
|
||||||
|
|
||||||
|
### Responses Data Schema
|
||||||
|
|
||||||
|
HTTP Status Code **200**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» collectionId|string|true|none||none|
|
||||||
|
|» collectionName|string|true|none||none|
|
||||||
|
|» created|string|true|none||none|
|
||||||
|
|» date|string|true|none||none|
|
||||||
|
|» id|string|true|none||none|
|
||||||
|
|» text|string|true|none||none|
|
||||||
|
|» updated|string|true|none||none|
|
||||||
|
|
||||||
|
HTTP Status Code **400**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» url|string|true|none||none|
|
||||||
|
|» status|integer|true|none||none|
|
||||||
|
|» response|object|true|none||none|
|
||||||
|
|»» code|integer|true|none||none|
|
||||||
|
|»» message|string|true|none||none|
|
||||||
|
|»» data|object|true|none||none|
|
||||||
|
|» isAbort|boolean|true|none||none|
|
||||||
|
|» originalError|object|true|none||none|
|
||||||
|
|»» url|string|true|none||none|
|
||||||
|
|»» status|integer|true|none||none|
|
||||||
|
|»» data|object|true|none||none|
|
||||||
|
|»»» code|integer|true|none||none|
|
||||||
|
|»»» message|string|true|none||none|
|
||||||
|
|»»» data|object|true|none||none|
|
||||||
|
|» name|string|true|none||none|
|
||||||
367
docs/src/content/docs/api-reference/trail-share.md
Normal file
@@ -0,0 +1,367 @@
|
|||||||
|
---
|
||||||
|
title: trail-share
|
||||||
|
---
|
||||||
|
|
||||||
|
## GET show
|
||||||
|
|
||||||
|
GET /trail-share/{id}
|
||||||
|
|
||||||
|
### Params
|
||||||
|
|
||||||
|
|Name|Location|Type|Required|Description|
|
||||||
|
|---|---|---|---|---|
|
||||||
|
|id|path|string| yes |none|
|
||||||
|
|
||||||
|
> Response Examples
|
||||||
|
|
||||||
|
> 200 Response
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"collectionId": "string",
|
||||||
|
"collectionName": "string",
|
||||||
|
"created": "string",
|
||||||
|
"id": "string",
|
||||||
|
"permission": "string",
|
||||||
|
"trail": "string",
|
||||||
|
"updated": "string",
|
||||||
|
"user": "string"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Responses
|
||||||
|
|
||||||
|
|HTTP Status Code |Meaning|Description|Data schema|
|
||||||
|
|---|---|---|---|
|
||||||
|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|OK|Inline|
|
||||||
|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Record Not Found|Inline|
|
||||||
|
|
||||||
|
### Responses Data Schema
|
||||||
|
|
||||||
|
HTTP Status Code **200**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» collectionId|string|true|none||none|
|
||||||
|
|» collectionName|string|true|none||none|
|
||||||
|
|» created|string|true|none||none|
|
||||||
|
|» id|string|true|none||none|
|
||||||
|
|» permission|string|true|none||none|
|
||||||
|
|» trail|string|true|none||none|
|
||||||
|
|» updated|string|true|none||none|
|
||||||
|
|» user|string|true|none||none|
|
||||||
|
|
||||||
|
HTTP Status Code **404**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» url|string|true|none||none|
|
||||||
|
|» status|integer|true|none||none|
|
||||||
|
|» response|object|true|none||none|
|
||||||
|
|»» code|integer|true|none||none|
|
||||||
|
|»» message|string|true|none||none|
|
||||||
|
|»» data|object|true|none||none|
|
||||||
|
|» isAbort|boolean|true|none||none|
|
||||||
|
|» originalError|object|true|none||none|
|
||||||
|
|»» url|string|true|none||none|
|
||||||
|
|»» status|integer|true|none||none|
|
||||||
|
|»» data|object|true|none||none|
|
||||||
|
|»»» code|integer|true|none||none|
|
||||||
|
|»»» message|string|true|none||none|
|
||||||
|
|»»» data|object|true|none||none|
|
||||||
|
|» name|string|true|none||none|
|
||||||
|
|
||||||
|
## POST update
|
||||||
|
|
||||||
|
POST /trail-share/{id}
|
||||||
|
|
||||||
|
> Body Parameters
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"trail": "string",
|
||||||
|
"user": "string",
|
||||||
|
"permission": "view"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Params
|
||||||
|
|
||||||
|
|Name|Location|Type|Required|Description|
|
||||||
|
|---|---|---|---|---|
|
||||||
|
|id|path|string| yes |none|
|
||||||
|
|Content-Type|header|string| yes |none|
|
||||||
|
|body|body|object| no |none|
|
||||||
|
|» trail|body|string| yes |none|
|
||||||
|
|» user|body|string| yes |none|
|
||||||
|
|» permission|body|string| yes |none|
|
||||||
|
|
||||||
|
#### Enum
|
||||||
|
|
||||||
|
|Name|Value|
|
||||||
|
|---|---|
|
||||||
|
|» permission|view|
|
||||||
|
|» permission|edit|
|
||||||
|
|
||||||
|
> Response Examples
|
||||||
|
|
||||||
|
> 200 Response
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"collectionId": "string",
|
||||||
|
"collectionName": "string",
|
||||||
|
"created": "string",
|
||||||
|
"id": "string",
|
||||||
|
"permission": "string",
|
||||||
|
"trail": "string",
|
||||||
|
"updated": "string",
|
||||||
|
"user": "string"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Responses
|
||||||
|
|
||||||
|
|HTTP Status Code |Meaning|Description|Data schema|
|
||||||
|
|---|---|---|---|
|
||||||
|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|OK|Inline|
|
||||||
|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Record Not Found|Inline|
|
||||||
|
|
||||||
|
### Responses Data Schema
|
||||||
|
|
||||||
|
HTTP Status Code **200**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» collectionId|string|true|none||none|
|
||||||
|
|» collectionName|string|true|none||none|
|
||||||
|
|» created|string|true|none||none|
|
||||||
|
|» id|string|true|none||none|
|
||||||
|
|» permission|string|true|none||none|
|
||||||
|
|» trail|string|true|none||none|
|
||||||
|
|» updated|string|true|none||none|
|
||||||
|
|» user|string|true|none||none|
|
||||||
|
|
||||||
|
HTTP Status Code **404**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» url|string|true|none||none|
|
||||||
|
|» status|integer|true|none||none|
|
||||||
|
|» response|object|true|none||none|
|
||||||
|
|»» code|integer|true|none||none|
|
||||||
|
|»» message|string|true|none||none|
|
||||||
|
|»» data|object|true|none||none|
|
||||||
|
|» isAbort|boolean|true|none||none|
|
||||||
|
|» originalError|object|true|none||none|
|
||||||
|
|»» url|string|true|none||none|
|
||||||
|
|»» status|integer|true|none||none|
|
||||||
|
|»» data|object|true|none||none|
|
||||||
|
|»»» code|integer|true|none||none|
|
||||||
|
|»»» message|string|true|none||none|
|
||||||
|
|»»» data|object|true|none||none|
|
||||||
|
|» name|string|true|none||none|
|
||||||
|
|
||||||
|
## DELETE delete
|
||||||
|
|
||||||
|
DELETE /trail-share/{id}
|
||||||
|
|
||||||
|
### Params
|
||||||
|
|
||||||
|
|Name|Location|Type|Required|Description|
|
||||||
|
|---|---|---|---|---|
|
||||||
|
|id|path|string| yes |none|
|
||||||
|
|
||||||
|
> Response Examples
|
||||||
|
|
||||||
|
> 200 Response
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"acknowledged": true
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Responses
|
||||||
|
|
||||||
|
|HTTP Status Code |Meaning|Description|Data schema|
|
||||||
|
|---|---|---|---|
|
||||||
|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|OK|Inline|
|
||||||
|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Record Not Found|Inline|
|
||||||
|
|
||||||
|
### Responses Data Schema
|
||||||
|
|
||||||
|
HTTP Status Code **200**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» acknowledged|boolean|true|none||none|
|
||||||
|
|
||||||
|
HTTP Status Code **404**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» url|string|true|none||none|
|
||||||
|
|» status|integer|true|none||none|
|
||||||
|
|» response|object|true|none||none|
|
||||||
|
|»» code|integer|true|none||none|
|
||||||
|
|»» message|string|true|none||none|
|
||||||
|
|»» data|object|true|none||none|
|
||||||
|
|» isAbort|boolean|true|none||none|
|
||||||
|
|» originalError|object|true|none||none|
|
||||||
|
|»» url|string|true|none||none|
|
||||||
|
|»» status|integer|true|none||none|
|
||||||
|
|»» data|object|true|none||none|
|
||||||
|
|»»» code|integer|true|none||none|
|
||||||
|
|»»» message|string|true|none||none|
|
||||||
|
|»»» data|object|true|none||none|
|
||||||
|
|» name|string|true|none||none|
|
||||||
|
|
||||||
|
## GET list
|
||||||
|
|
||||||
|
GET /trail-share
|
||||||
|
|
||||||
|
> Response Examples
|
||||||
|
|
||||||
|
> 200 Response
|
||||||
|
|
||||||
|
```json
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"collectionId": "string",
|
||||||
|
"collectionName": "string",
|
||||||
|
"created": "string",
|
||||||
|
"id": "string",
|
||||||
|
"permission": "string",
|
||||||
|
"trail": "string",
|
||||||
|
"updated": "string",
|
||||||
|
"user": "string",
|
||||||
|
"expand": {
|
||||||
|
"user": {
|
||||||
|
"avatar": "string",
|
||||||
|
"collectionId": "string",
|
||||||
|
"collectionName": "string",
|
||||||
|
"id": "string",
|
||||||
|
"username": "string"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
### Responses
|
||||||
|
|
||||||
|
|HTTP Status Code |Meaning|Description|Data schema|
|
||||||
|
|---|---|---|---|
|
||||||
|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|OK|Inline|
|
||||||
|
|
||||||
|
### Responses Data Schema
|
||||||
|
|
||||||
|
HTTP Status Code **200**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» collectionId|string|true|none||none|
|
||||||
|
|» collectionName|string|true|none||none|
|
||||||
|
|» created|string|true|none||none|
|
||||||
|
|» id|string|true|none||none|
|
||||||
|
|» permission|string|true|none||none|
|
||||||
|
|» trail|string|true|none||none|
|
||||||
|
|» updated|string|true|none||none|
|
||||||
|
|» user|string|true|none||none|
|
||||||
|
|» expand|object|true|none||none|
|
||||||
|
|»» user|object|true|none||none|
|
||||||
|
|»»» avatar|string|true|none||none|
|
||||||
|
|»»» collectionId|string|true|none||none|
|
||||||
|
|»»» collectionName|string|true|none||none|
|
||||||
|
|»»» id|string|true|none||none|
|
||||||
|
|»»» username|string|true|none||none|
|
||||||
|
|
||||||
|
## PUT create
|
||||||
|
|
||||||
|
PUT /trail-share
|
||||||
|
|
||||||
|
> Body Parameters
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"trail": "string",
|
||||||
|
"user": "string",
|
||||||
|
"permission": "view"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Params
|
||||||
|
|
||||||
|
|Name|Location|Type|Required|Description|
|
||||||
|
|---|---|---|---|---|
|
||||||
|
|body|body|object| no |none|
|
||||||
|
|» trail|body|string| yes |none|
|
||||||
|
|» user|body|string| yes |none|
|
||||||
|
|» permission|body|string| yes |none|
|
||||||
|
|
||||||
|
#### Enum
|
||||||
|
|
||||||
|
|Name|Value|
|
||||||
|
|---|---|
|
||||||
|
|» permission|view|
|
||||||
|
|» permission|edit|
|
||||||
|
|
||||||
|
> Response Examples
|
||||||
|
|
||||||
|
> 200 Response
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"collectionId": "string",
|
||||||
|
"collectionName": "string",
|
||||||
|
"created": "string",
|
||||||
|
"id": "string",
|
||||||
|
"permission": "string",
|
||||||
|
"trail": "string",
|
||||||
|
"updated": "string",
|
||||||
|
"user": "string"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Responses
|
||||||
|
|
||||||
|
|HTTP Status Code |Meaning|Description|Data schema|
|
||||||
|
|---|---|---|---|
|
||||||
|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|OK|Inline|
|
||||||
|
|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Bad Request|Inline|
|
||||||
|
|
||||||
|
### Responses Data Schema
|
||||||
|
|
||||||
|
HTTP Status Code **200**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» collectionId|string|true|none||none|
|
||||||
|
|» collectionName|string|true|none||none|
|
||||||
|
|» created|string|true|none||none|
|
||||||
|
|» id|string|true|none||none|
|
||||||
|
|» permission|string|true|none||none|
|
||||||
|
|» trail|string|true|none||none|
|
||||||
|
|» updated|string|true|none||none|
|
||||||
|
|» user|string|true|none||none|
|
||||||
|
|
||||||
|
HTTP Status Code **400**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» url|string|true|none||none|
|
||||||
|
|» status|integer|true|none||none|
|
||||||
|
|» response|object|true|none||none|
|
||||||
|
|»» code|integer|true|none||none|
|
||||||
|
|»» message|string|true|none||none|
|
||||||
|
|»» data|object|true|none||none|
|
||||||
|
|» isAbort|boolean|true|none||none|
|
||||||
|
|» originalError|object|true|none||none|
|
||||||
|
|»» url|string|true|none||none|
|
||||||
|
|»» status|integer|true|none||none|
|
||||||
|
|»» data|object|true|none||none|
|
||||||
|
|»»» code|integer|true|none||none|
|
||||||
|
|»»» message|string|true|none||none|
|
||||||
|
|»»» data|object|true|none||none|
|
||||||
|
|» name|string|true|none||none|
|
||||||
552
docs/src/content/docs/api-reference/trail.md
Normal file
@@ -0,0 +1,552 @@
|
|||||||
|
---
|
||||||
|
title: trail
|
||||||
|
---
|
||||||
|
|
||||||
|
## POST file
|
||||||
|
|
||||||
|
POST /trail/{id}/file
|
||||||
|
|
||||||
|
> Body Parameters
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
photos: string
|
||||||
|
gpx: string
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
### Params
|
||||||
|
|
||||||
|
|Name|Location|Type|Required|Description|
|
||||||
|
|---|---|---|---|---|
|
||||||
|
|id|path|string| yes |none|
|
||||||
|
|Content-Type|header|string| yes |none|
|
||||||
|
|body|body|object| no |none|
|
||||||
|
|» photos|body|string(binary)| no |none|
|
||||||
|
|» gpx|body|string(binary)| no |none|
|
||||||
|
|
||||||
|
> Response Examples
|
||||||
|
|
||||||
|
> 200 Response
|
||||||
|
|
||||||
|
```json
|
||||||
|
{}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Responses
|
||||||
|
|
||||||
|
|HTTP Status Code |Meaning|Description|Data schema|
|
||||||
|
|---|---|---|---|
|
||||||
|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Success|Inline|
|
||||||
|
|
||||||
|
### Responses Data Schema
|
||||||
|
|
||||||
|
## GET show
|
||||||
|
|
||||||
|
GET /trail/{id}
|
||||||
|
|
||||||
|
### Params
|
||||||
|
|
||||||
|
|Name|Location|Type|Required|Description|
|
||||||
|
|---|---|---|---|---|
|
||||||
|
|id|path|string| yes |none|
|
||||||
|
|
||||||
|
> Response Examples
|
||||||
|
|
||||||
|
> 200 Response
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"author": "string",
|
||||||
|
"category": "string",
|
||||||
|
"collectionId": "string",
|
||||||
|
"collectionName": "string",
|
||||||
|
"created": "string",
|
||||||
|
"description": "string",
|
||||||
|
"difficulty": "string",
|
||||||
|
"distance": 0,
|
||||||
|
"duration": 0,
|
||||||
|
"elevation_gain": 0,
|
||||||
|
"gpx": "string",
|
||||||
|
"id": "string",
|
||||||
|
"lat": 0,
|
||||||
|
"location": "string",
|
||||||
|
"lon": 0,
|
||||||
|
"name": "string",
|
||||||
|
"photos": [
|
||||||
|
"string"
|
||||||
|
],
|
||||||
|
"public": true,
|
||||||
|
"summit_logs": [
|
||||||
|
"string"
|
||||||
|
],
|
||||||
|
"thumbnail": 0,
|
||||||
|
"updated": "string",
|
||||||
|
"waypoints": [
|
||||||
|
"string"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Responses
|
||||||
|
|
||||||
|
|HTTP Status Code |Meaning|Description|Data schema|
|
||||||
|
|---|---|---|---|
|
||||||
|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|OK|Inline|
|
||||||
|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Record Not Found|Inline|
|
||||||
|
|
||||||
|
### Responses Data Schema
|
||||||
|
|
||||||
|
HTTP Status Code **200**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» author|string|true|none||none|
|
||||||
|
|» category|string|true|none||none|
|
||||||
|
|» collectionId|string|true|none||none|
|
||||||
|
|» collectionName|string|true|none||none|
|
||||||
|
|» created|string|true|none||none|
|
||||||
|
|» description|string|true|none||none|
|
||||||
|
|» difficulty|string|true|none||none|
|
||||||
|
|» distance|integer|true|none||none|
|
||||||
|
|» duration|integer|true|none||none|
|
||||||
|
|» elevation_gain|integer|true|none||none|
|
||||||
|
|» gpx|string|true|none||none|
|
||||||
|
|» id|string|true|none||none|
|
||||||
|
|» lat|number|true|none||none|
|
||||||
|
|» location|string|true|none||none|
|
||||||
|
|» lon|number|true|none||none|
|
||||||
|
|» name|string|true|none||none|
|
||||||
|
|» photos|[string]|true|none||none|
|
||||||
|
|» public|boolean|true|none||none|
|
||||||
|
|» summit_logs|[string]|true|none||none|
|
||||||
|
|» thumbnail|integer|true|none||none|
|
||||||
|
|» updated|string|true|none||none|
|
||||||
|
|» waypoints|[string]|true|none||none|
|
||||||
|
|
||||||
|
HTTP Status Code **404**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» url|string|true|none||none|
|
||||||
|
|» status|integer|true|none||none|
|
||||||
|
|» response|object|true|none||none|
|
||||||
|
|»» code|integer|true|none||none|
|
||||||
|
|»» message|string|true|none||none|
|
||||||
|
|»» data|object|true|none||none|
|
||||||
|
|» isAbort|boolean|true|none||none|
|
||||||
|
|» originalError|object|true|none||none|
|
||||||
|
|»» url|string|true|none||none|
|
||||||
|
|»» status|integer|true|none||none|
|
||||||
|
|»» data|object|true|none||none|
|
||||||
|
|»»» code|integer|true|none||none|
|
||||||
|
|»»» message|string|true|none||none|
|
||||||
|
|»»» data|object|true|none||none|
|
||||||
|
|» name|string|true|none||none|
|
||||||
|
|
||||||
|
## POST update
|
||||||
|
|
||||||
|
POST /trail/{id}
|
||||||
|
|
||||||
|
> Body Parameters
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"name": "string"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Params
|
||||||
|
|
||||||
|
|Name|Location|Type|Required|Description|
|
||||||
|
|---|---|---|---|---|
|
||||||
|
|id|path|string| yes |none|
|
||||||
|
|Content-Type|header|string| yes |none|
|
||||||
|
|body|body|object| no |none|
|
||||||
|
|» name|body|string| yes |none|
|
||||||
|
|
||||||
|
> Response Examples
|
||||||
|
|
||||||
|
> 200 Response
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"author": "string",
|
||||||
|
"category": "string",
|
||||||
|
"collectionId": "string",
|
||||||
|
"collectionName": "string",
|
||||||
|
"created": "string",
|
||||||
|
"description": "string",
|
||||||
|
"difficulty": "string",
|
||||||
|
"distance": 0,
|
||||||
|
"duration": 0,
|
||||||
|
"elevation_gain": 0,
|
||||||
|
"expand": {
|
||||||
|
"category": {
|
||||||
|
"collectionId": "string",
|
||||||
|
"collectionName": "string",
|
||||||
|
"created": "string",
|
||||||
|
"id": "string",
|
||||||
|
"img": "string",
|
||||||
|
"name": "string",
|
||||||
|
"updated": "string"
|
||||||
|
},
|
||||||
|
"waypoints": [
|
||||||
|
{
|
||||||
|
"author": "string",
|
||||||
|
"collectionId": "string",
|
||||||
|
"collectionName": "string",
|
||||||
|
"created": "string",
|
||||||
|
"description": "string",
|
||||||
|
"icon": "string",
|
||||||
|
"id": "string",
|
||||||
|
"lat": 0,
|
||||||
|
"lon": 0,
|
||||||
|
"name": "string",
|
||||||
|
"photos": [
|
||||||
|
"string"
|
||||||
|
],
|
||||||
|
"updated": "string"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"gpx": "string",
|
||||||
|
"id": "string",
|
||||||
|
"lat": 0,
|
||||||
|
"location": "string",
|
||||||
|
"lon": 0,
|
||||||
|
"name": "string",
|
||||||
|
"photos": [
|
||||||
|
"string"
|
||||||
|
],
|
||||||
|
"public": true,
|
||||||
|
"summit_logs": [
|
||||||
|
"string"
|
||||||
|
],
|
||||||
|
"thumbnail": 0,
|
||||||
|
"updated": "string",
|
||||||
|
"waypoints": [
|
||||||
|
"string"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Responses
|
||||||
|
|
||||||
|
|HTTP Status Code |Meaning|Description|Data schema|
|
||||||
|
|---|---|---|---|
|
||||||
|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|OK|Inline|
|
||||||
|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Record Not Found|Inline|
|
||||||
|
|
||||||
|
### Responses Data Schema
|
||||||
|
|
||||||
|
HTTP Status Code **200**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» author|string|true|none||none|
|
||||||
|
|» category|string|true|none||none|
|
||||||
|
|» collectionId|string|true|none||none|
|
||||||
|
|» collectionName|string|true|none||none|
|
||||||
|
|» created|string|true|none||none|
|
||||||
|
|» description|string|true|none||none|
|
||||||
|
|» difficulty|string|true|none||none|
|
||||||
|
|» distance|integer|true|none||none|
|
||||||
|
|» duration|integer|true|none||none|
|
||||||
|
|» elevation_gain|integer|true|none||none|
|
||||||
|
|» expand|object|true|none||none|
|
||||||
|
|»» category|object|true|none||none|
|
||||||
|
|»»» collectionId|string|true|none||none|
|
||||||
|
|»»» collectionName|string|true|none||none|
|
||||||
|
|»»» created|string|true|none||none|
|
||||||
|
|»»» id|string|true|none||none|
|
||||||
|
|»»» img|string|true|none||none|
|
||||||
|
|»»» name|string|true|none||none|
|
||||||
|
|»»» updated|string|true|none||none|
|
||||||
|
|»» waypoints|[object]|true|none||none|
|
||||||
|
|»»» author|string|true|none||none|
|
||||||
|
|»»» collectionId|string|true|none||none|
|
||||||
|
|»»» collectionName|string|true|none||none|
|
||||||
|
|»»» created|string|true|none||none|
|
||||||
|
|»»» description|string|true|none||none|
|
||||||
|
|»»» icon|string|true|none||none|
|
||||||
|
|»»» id|string|true|none||none|
|
||||||
|
|»»» lat|number|true|none||none|
|
||||||
|
|»»» lon|number|true|none||none|
|
||||||
|
|»»» name|string|true|none||none|
|
||||||
|
|»»» photos|[string]|true|none||none|
|
||||||
|
|»»» updated|string|true|none||none|
|
||||||
|
|» gpx|string|true|none||none|
|
||||||
|
|» id|string|true|none||none|
|
||||||
|
|» lat|number|true|none||none|
|
||||||
|
|» location|string|true|none||none|
|
||||||
|
|» lon|number|true|none||none|
|
||||||
|
|» name|string|true|none||none|
|
||||||
|
|» photos|[string]|true|none||none|
|
||||||
|
|» public|boolean|true|none||none|
|
||||||
|
|» summit_logs|[string]|true|none||none|
|
||||||
|
|» thumbnail|integer|true|none||none|
|
||||||
|
|» updated|string|true|none||none|
|
||||||
|
|» waypoints|[string]|true|none||none|
|
||||||
|
|
||||||
|
HTTP Status Code **404**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» url|string|true|none||none|
|
||||||
|
|» status|integer|true|none||none|
|
||||||
|
|» response|object|true|none||none|
|
||||||
|
|»» code|integer|true|none||none|
|
||||||
|
|»» message|string|true|none||none|
|
||||||
|
|»» data|object|true|none||none|
|
||||||
|
|» isAbort|boolean|true|none||none|
|
||||||
|
|» originalError|object|true|none||none|
|
||||||
|
|»» url|string|true|none||none|
|
||||||
|
|»» status|integer|true|none||none|
|
||||||
|
|»» data|object|true|none||none|
|
||||||
|
|»»» code|integer|true|none||none|
|
||||||
|
|»»» message|string|true|none||none|
|
||||||
|
|»»» data|object|true|none||none|
|
||||||
|
|» name|string|true|none||none|
|
||||||
|
|
||||||
|
## DELETE delete
|
||||||
|
|
||||||
|
DELETE /trail/{id}
|
||||||
|
|
||||||
|
### Params
|
||||||
|
|
||||||
|
|Name|Location|Type|Required|Description|
|
||||||
|
|---|---|---|---|---|
|
||||||
|
|id|path|string| yes |none|
|
||||||
|
|
||||||
|
> Response Examples
|
||||||
|
|
||||||
|
> 200 Response
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"acknowledged": true
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Responses
|
||||||
|
|
||||||
|
|HTTP Status Code |Meaning|Description|Data schema|
|
||||||
|
|---|---|---|---|
|
||||||
|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|OK|Inline|
|
||||||
|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Record Not Found|Inline|
|
||||||
|
|
||||||
|
### Responses Data Schema
|
||||||
|
|
||||||
|
HTTP Status Code **200**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» acknowledged|boolean|true|none||none|
|
||||||
|
|
||||||
|
HTTP Status Code **404**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» url|string|true|none||none|
|
||||||
|
|» status|integer|true|none||none|
|
||||||
|
|» response|object|true|none||none|
|
||||||
|
|»» code|integer|true|none||none|
|
||||||
|
|»» message|string|true|none||none|
|
||||||
|
|»» data|object|true|none||none|
|
||||||
|
|» isAbort|boolean|true|none||none|
|
||||||
|
|» originalError|object|true|none||none|
|
||||||
|
|»» url|string|true|none||none|
|
||||||
|
|»» status|integer|true|none||none|
|
||||||
|
|»» data|object|true|none||none|
|
||||||
|
|»»» code|integer|true|none||none|
|
||||||
|
|»»» message|string|true|none||none|
|
||||||
|
|»»» data|object|true|none||none|
|
||||||
|
|» name|string|true|none||none|
|
||||||
|
|
||||||
|
## GET list
|
||||||
|
|
||||||
|
GET /trail
|
||||||
|
|
||||||
|
> Response Examples
|
||||||
|
|
||||||
|
> 200 Response
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"page": 0,
|
||||||
|
"perPage": 0,
|
||||||
|
"totalItems": 0,
|
||||||
|
"totalPages": 0,
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"author": "string",
|
||||||
|
"category": "string",
|
||||||
|
"collectionId": "string",
|
||||||
|
"collectionName": "string",
|
||||||
|
"created": "string",
|
||||||
|
"description": "string",
|
||||||
|
"difficulty": "string",
|
||||||
|
"distance": 0,
|
||||||
|
"duration": 0,
|
||||||
|
"elevation_gain": 0,
|
||||||
|
"gpx": "string",
|
||||||
|
"id": "string",
|
||||||
|
"lat": 0,
|
||||||
|
"location": "string",
|
||||||
|
"lon": 0,
|
||||||
|
"name": "string",
|
||||||
|
"photos": [
|
||||||
|
"string"
|
||||||
|
],
|
||||||
|
"public": true,
|
||||||
|
"summit_logs": [
|
||||||
|
"string"
|
||||||
|
],
|
||||||
|
"thumbnail": 0,
|
||||||
|
"updated": "string",
|
||||||
|
"waypoints": [
|
||||||
|
"string"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Responses
|
||||||
|
|
||||||
|
|HTTP Status Code |Meaning|Description|Data schema|
|
||||||
|
|---|---|---|---|
|
||||||
|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|OK|Inline|
|
||||||
|
|
||||||
|
### Responses Data Schema
|
||||||
|
|
||||||
|
HTTP Status Code **200**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» page|integer|true|none||none|
|
||||||
|
|» perPage|integer|true|none||none|
|
||||||
|
|» totalItems|integer|true|none||none|
|
||||||
|
|» totalPages|integer|true|none||none|
|
||||||
|
|» items|[object]|true|none||none|
|
||||||
|
|»» author|string|true|none||none|
|
||||||
|
|»» category|string|true|none||none|
|
||||||
|
|»» collectionId|string|true|none||none|
|
||||||
|
|»» collectionName|string|true|none||none|
|
||||||
|
|»» created|string|true|none||none|
|
||||||
|
|»» description|string|true|none||none|
|
||||||
|
|»» difficulty|string|true|none||none|
|
||||||
|
|»» distance|integer|true|none||none|
|
||||||
|
|»» duration|integer|true|none||none|
|
||||||
|
|»» elevation_gain|integer|true|none||none|
|
||||||
|
|»» gpx|string|true|none||none|
|
||||||
|
|»» id|string|true|none||none|
|
||||||
|
|»» lat|number|true|none||none|
|
||||||
|
|»» location|string|true|none||none|
|
||||||
|
|»» lon|number|true|none||none|
|
||||||
|
|»» name|string|true|none||none|
|
||||||
|
|»» photos|[string]|true|none||none|
|
||||||
|
|»» public|boolean|true|none||none|
|
||||||
|
|»» summit_logs|[string]|true|none||none|
|
||||||
|
|»» thumbnail|integer|true|none||none|
|
||||||
|
|»» updated|string|true|none||none|
|
||||||
|
|»» waypoints|[string]|true|none||none|
|
||||||
|
|
||||||
|
## PUT upload
|
||||||
|
|
||||||
|
PUT /trail/upload
|
||||||
|
|
||||||
|
> Body Parameters
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
string
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
### Params
|
||||||
|
|
||||||
|
|Name|Location|Type|Required|Description|
|
||||||
|
|---|---|---|---|---|
|
||||||
|
|Content-Type|header|string| yes |none|
|
||||||
|
|body|body|string(binary)| no |none|
|
||||||
|
|
||||||
|
> Response Examples
|
||||||
|
|
||||||
|
> 200 Response
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"name": "string",
|
||||||
|
"public": true,
|
||||||
|
"difficulty": "string",
|
||||||
|
"lat": 0,
|
||||||
|
"lon": 0,
|
||||||
|
"thumbnail": 0,
|
||||||
|
"photos": [
|
||||||
|
"string"
|
||||||
|
],
|
||||||
|
"waypoints": [
|
||||||
|
"string"
|
||||||
|
],
|
||||||
|
"summit_logs": [
|
||||||
|
"string"
|
||||||
|
],
|
||||||
|
"expand": {
|
||||||
|
"waypoints": [
|
||||||
|
"string"
|
||||||
|
],
|
||||||
|
"summit_logs": [
|
||||||
|
"string"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"string"
|
||||||
|
],
|
||||||
|
"description": "string",
|
||||||
|
"author": "string"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Responses
|
||||||
|
|
||||||
|
|HTTP Status Code |Meaning|Description|Data schema|
|
||||||
|
|---|---|---|---|
|
||||||
|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|OK|Inline|
|
||||||
|
|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Bad Request|Inline|
|
||||||
|
|
||||||
|
### Responses Data Schema
|
||||||
|
|
||||||
|
HTTP Status Code **200**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» name|string|true|none||none|
|
||||||
|
|» public|boolean|true|none||none|
|
||||||
|
|» difficulty|string|true|none||none|
|
||||||
|
|» lat|number|true|none||none|
|
||||||
|
|» lon|number|true|none||none|
|
||||||
|
|» thumbnail|integer|true|none||none|
|
||||||
|
|» photos|[string]|true|none||none|
|
||||||
|
|» waypoints|[string]|true|none||none|
|
||||||
|
|» summit_logs|[string]|true|none||none|
|
||||||
|
|» expand|object|true|none||none|
|
||||||
|
|»» waypoints|[string]|true|none||none|
|
||||||
|
|»» summit_logs|[string]|true|none||none|
|
||||||
|
|» tags|[string]|true|none||none|
|
||||||
|
|» description|string|true|none||none|
|
||||||
|
|» author|string|true|none||none|
|
||||||
|
|
||||||
|
HTTP Status Code **400**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» url|string|true|none||none|
|
||||||
|
|» status|integer|true|none||none|
|
||||||
|
|» response|object|true|none||none|
|
||||||
|
|»» message|string|true|none||none|
|
||||||
|
|» isAbort|boolean|true|none||none|
|
||||||
|
|» originalError|object|true|none||none|
|
||||||
|
|»» status|integer|true|none||none|
|
||||||
|
|»» response|object|true|none||none|
|
||||||
|
|»»» message|string|true|none||none|
|
||||||
|
|» name|string|true|none||none|
|
||||||
384
docs/src/content/docs/api-reference/user.md
Normal file
@@ -0,0 +1,384 @@
|
|||||||
|
---
|
||||||
|
title: user
|
||||||
|
---
|
||||||
|
|
||||||
|
## POST file
|
||||||
|
|
||||||
|
POST /user/{id}/file
|
||||||
|
|
||||||
|
> Body Parameters
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
avatar: string
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
### Params
|
||||||
|
|
||||||
|
|Name|Location|Type|Required|Description|
|
||||||
|
|---|---|---|---|---|
|
||||||
|
|id|path|string| yes |none|
|
||||||
|
|Content-Type|header|string| yes |none|
|
||||||
|
|body|body|object| no |none|
|
||||||
|
|» avatar|body|string(binary)| no |none|
|
||||||
|
|
||||||
|
> Response Examples
|
||||||
|
|
||||||
|
> 200 Response
|
||||||
|
|
||||||
|
```json
|
||||||
|
{}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Responses
|
||||||
|
|
||||||
|
|HTTP Status Code |Meaning|Description|Data schema|
|
||||||
|
|---|---|---|---|
|
||||||
|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Success|Inline|
|
||||||
|
|
||||||
|
### Responses Data Schema
|
||||||
|
|
||||||
|
## GET show
|
||||||
|
|
||||||
|
GET /user/{id}
|
||||||
|
|
||||||
|
### Params
|
||||||
|
|
||||||
|
|Name|Location|Type|Required|Description|
|
||||||
|
|---|---|---|---|---|
|
||||||
|
|id|path|string| yes |none|
|
||||||
|
|
||||||
|
> Response Examples
|
||||||
|
|
||||||
|
> 200 Response
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"avatar": "string",
|
||||||
|
"collectionId": "string",
|
||||||
|
"collectionName": "string",
|
||||||
|
"created": "string",
|
||||||
|
"email": "string",
|
||||||
|
"emailVisibility": true,
|
||||||
|
"id": "string",
|
||||||
|
"language": "string",
|
||||||
|
"location": {
|
||||||
|
"lat": 0,
|
||||||
|
"lon": 0,
|
||||||
|
"name": "string"
|
||||||
|
},
|
||||||
|
"token": "string",
|
||||||
|
"unit": "string",
|
||||||
|
"updated": "string",
|
||||||
|
"username": "string",
|
||||||
|
"verified": true
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Responses
|
||||||
|
|
||||||
|
|HTTP Status Code |Meaning|Description|Data schema|
|
||||||
|
|---|---|---|---|
|
||||||
|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|OK|Inline|
|
||||||
|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Record Not Found|Inline|
|
||||||
|
|
||||||
|
### Responses Data Schema
|
||||||
|
|
||||||
|
HTTP Status Code **200**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» avatar|string|true|none||none|
|
||||||
|
|» collectionId|string|true|none||none|
|
||||||
|
|» collectionName|string|true|none||none|
|
||||||
|
|» created|string|true|none||none|
|
||||||
|
|» email|string|true|none||none|
|
||||||
|
|» emailVisibility|boolean|true|none||none|
|
||||||
|
|» id|string|true|none||none|
|
||||||
|
|» language|string|true|none||none|
|
||||||
|
|» location|object|true|none||none|
|
||||||
|
|»» lat|number|true|none||none|
|
||||||
|
|»» lon|number|true|none||none|
|
||||||
|
|»» name|string|true|none||none|
|
||||||
|
|» token|string|true|none||none|
|
||||||
|
|» unit|string|true|none||none|
|
||||||
|
|» updated|string|true|none||none|
|
||||||
|
|» username|string|true|none||none|
|
||||||
|
|» verified|boolean|true|none||none|
|
||||||
|
|
||||||
|
HTTP Status Code **404**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» url|string|true|none||none|
|
||||||
|
|» status|integer|true|none||none|
|
||||||
|
|» response|object|true|none||none|
|
||||||
|
|»» code|integer|true|none||none|
|
||||||
|
|»» message|string|true|none||none|
|
||||||
|
|»» data|object|true|none||none|
|
||||||
|
|» isAbort|boolean|true|none||none|
|
||||||
|
|» originalError|object|true|none||none|
|
||||||
|
|»» url|string|true|none||none|
|
||||||
|
|»» status|integer|true|none||none|
|
||||||
|
|»» data|object|true|none||none|
|
||||||
|
|»»» code|integer|true|none||none|
|
||||||
|
|»»» message|string|true|none||none|
|
||||||
|
|»»» data|object|true|none||none|
|
||||||
|
|» name|string|true|none||none|
|
||||||
|
|
||||||
|
## POST update
|
||||||
|
|
||||||
|
POST /user/{id}
|
||||||
|
|
||||||
|
> Body Parameters
|
||||||
|
|
||||||
|
```json
|
||||||
|
{}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Params
|
||||||
|
|
||||||
|
|Name|Location|Type|Required|Description|
|
||||||
|
|---|---|---|---|---|
|
||||||
|
|id|path|string| yes |none|
|
||||||
|
|Content-Type|header|string| yes |none|
|
||||||
|
|body|body|object| no |none|
|
||||||
|
|
||||||
|
> Response Examples
|
||||||
|
|
||||||
|
> 200 Response
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"avatar": "string",
|
||||||
|
"collectionId": "string",
|
||||||
|
"collectionName": "string",
|
||||||
|
"created": "string",
|
||||||
|
"email": "string",
|
||||||
|
"emailVisibility": true,
|
||||||
|
"id": "string",
|
||||||
|
"language": "string",
|
||||||
|
"location": {
|
||||||
|
"lat": 0,
|
||||||
|
"lon": 0,
|
||||||
|
"name": "string"
|
||||||
|
},
|
||||||
|
"token": "string",
|
||||||
|
"unit": "string",
|
||||||
|
"updated": "string",
|
||||||
|
"username": "string",
|
||||||
|
"verified": true
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Responses
|
||||||
|
|
||||||
|
|HTTP Status Code |Meaning|Description|Data schema|
|
||||||
|
|---|---|---|---|
|
||||||
|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|OK|Inline|
|
||||||
|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Record Not Found|Inline|
|
||||||
|
|
||||||
|
### Responses Data Schema
|
||||||
|
|
||||||
|
HTTP Status Code **200**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» avatar|string|true|none||none|
|
||||||
|
|» collectionId|string|true|none||none|
|
||||||
|
|» collectionName|string|true|none||none|
|
||||||
|
|» created|string|true|none||none|
|
||||||
|
|» email|string|true|none||none|
|
||||||
|
|» emailVisibility|boolean|true|none||none|
|
||||||
|
|» id|string|true|none||none|
|
||||||
|
|» language|string|true|none||none|
|
||||||
|
|» location|object|true|none||none|
|
||||||
|
|»» lat|number|true|none||none|
|
||||||
|
|»» lon|number|true|none||none|
|
||||||
|
|»» name|string|true|none||none|
|
||||||
|
|» token|string|true|none||none|
|
||||||
|
|» unit|string|true|none||none|
|
||||||
|
|» updated|string|true|none||none|
|
||||||
|
|» username|string|true|none||none|
|
||||||
|
|» verified|boolean|true|none||none|
|
||||||
|
|
||||||
|
HTTP Status Code **404**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» url|string|true|none||none|
|
||||||
|
|» status|integer|true|none||none|
|
||||||
|
|» response|object|true|none||none|
|
||||||
|
|»» code|integer|true|none||none|
|
||||||
|
|»» message|string|true|none||none|
|
||||||
|
|»» data|object|true|none||none|
|
||||||
|
|» isAbort|boolean|true|none||none|
|
||||||
|
|» originalError|object|true|none||none|
|
||||||
|
|»» url|string|true|none||none|
|
||||||
|
|»» status|integer|true|none||none|
|
||||||
|
|»» data|object|true|none||none|
|
||||||
|
|»»» code|integer|true|none||none|
|
||||||
|
|»»» message|string|true|none||none|
|
||||||
|
|»»» data|object|true|none||none|
|
||||||
|
|» name|string|true|none||none|
|
||||||
|
|
||||||
|
## DELETE delete
|
||||||
|
|
||||||
|
DELETE /user/{id}
|
||||||
|
|
||||||
|
### Params
|
||||||
|
|
||||||
|
|Name|Location|Type|Required|Description|
|
||||||
|
|---|---|---|---|---|
|
||||||
|
|id|path|string| yes |none|
|
||||||
|
|
||||||
|
> Response Examples
|
||||||
|
|
||||||
|
> 200 Response
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"acknowledged": true
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Responses
|
||||||
|
|
||||||
|
|HTTP Status Code |Meaning|Description|Data schema|
|
||||||
|
|---|---|---|---|
|
||||||
|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|OK|Inline|
|
||||||
|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Record Not Found|Inline|
|
||||||
|
|
||||||
|
### Responses Data Schema
|
||||||
|
|
||||||
|
HTTP Status Code **200**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» acknowledged|boolean|true|none||none|
|
||||||
|
|
||||||
|
HTTP Status Code **404**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» url|string|true|none||none|
|
||||||
|
|» status|integer|true|none||none|
|
||||||
|
|» response|object|true|none||none|
|
||||||
|
|»» code|integer|true|none||none|
|
||||||
|
|»» message|string|true|none||none|
|
||||||
|
|»» data|object|true|none||none|
|
||||||
|
|» isAbort|boolean|true|none||none|
|
||||||
|
|» originalError|object|true|none||none|
|
||||||
|
|»» url|string|true|none||none|
|
||||||
|
|»» status|integer|true|none||none|
|
||||||
|
|»» data|object|true|none||none|
|
||||||
|
|»»» code|integer|true|none||none|
|
||||||
|
|»»» message|string|true|none||none|
|
||||||
|
|»»» data|object|true|none||none|
|
||||||
|
|» name|string|true|none||none|
|
||||||
|
|
||||||
|
## PUT create
|
||||||
|
|
||||||
|
PUT /user
|
||||||
|
|
||||||
|
> Body Parameters
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"username": "string",
|
||||||
|
"password": "string",
|
||||||
|
"passwordConfirm": "string",
|
||||||
|
"email": "string"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Params
|
||||||
|
|
||||||
|
|Name|Location|Type|Required|Description|
|
||||||
|
|---|---|---|---|---|
|
||||||
|
|body|body|object| no |none|
|
||||||
|
|» username|body|string| yes |none|
|
||||||
|
|» password|body|string| yes |none|
|
||||||
|
|» passwordConfirm|body|string| yes |none|
|
||||||
|
|» email|body|string| yes |none|
|
||||||
|
|
||||||
|
> Response Examples
|
||||||
|
|
||||||
|
> 200 Response
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"avatar": "string",
|
||||||
|
"collectionId": "string",
|
||||||
|
"collectionName": "string",
|
||||||
|
"created": "string",
|
||||||
|
"emailVisibility": true,
|
||||||
|
"id": "string",
|
||||||
|
"language": "string",
|
||||||
|
"location": null,
|
||||||
|
"token": "string",
|
||||||
|
"unit": "string",
|
||||||
|
"updated": "string",
|
||||||
|
"username": "string",
|
||||||
|
"verified": true
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Responses
|
||||||
|
|
||||||
|
|HTTP Status Code |Meaning|Description|Data schema|
|
||||||
|
|---|---|---|---|
|
||||||
|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|OK|Inline|
|
||||||
|
|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Bad Request|Inline|
|
||||||
|
|
||||||
|
### Responses Data Schema
|
||||||
|
|
||||||
|
HTTP Status Code **200**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» avatar|string|true|none||none|
|
||||||
|
|» collectionId|string|true|none||none|
|
||||||
|
|» collectionName|string|true|none||none|
|
||||||
|
|» created|string|true|none||none|
|
||||||
|
|» emailVisibility|boolean|true|none||none|
|
||||||
|
|» id|string|true|none||none|
|
||||||
|
|» language|string|true|none||none|
|
||||||
|
|» location|null|true|none||none|
|
||||||
|
|» token|string|true|none||none|
|
||||||
|
|» unit|string|true|none||none|
|
||||||
|
|» updated|string|true|none||none|
|
||||||
|
|» username|string|true|none||none|
|
||||||
|
|» verified|boolean|true|none||none|
|
||||||
|
|
||||||
|
HTTP Status Code **400**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» url|string|true|none||none|
|
||||||
|
|» status|integer|true|none||none|
|
||||||
|
|» response|object|true|none||none|
|
||||||
|
|»» code|integer|true|none||none|
|
||||||
|
|»» message|string|true|none||none|
|
||||||
|
|»» data|object|true|none||none|
|
||||||
|
|»»» passwordConfirm|object|true|none||none|
|
||||||
|
|»»»» code|string|true|none||none|
|
||||||
|
|»»»» message|string|true|none||none|
|
||||||
|
|»»» username|object|true|none||none|
|
||||||
|
|»»»» code|string|true|none||none|
|
||||||
|
|»»»» message|string|true|none||none|
|
||||||
|
|» isAbort|boolean|true|none||none|
|
||||||
|
|» originalError|object|true|none||none|
|
||||||
|
|»» url|string|true|none||none|
|
||||||
|
|»» status|integer|true|none||none|
|
||||||
|
|»» data|object|true|none||none|
|
||||||
|
|»»» code|integer|true|none||none|
|
||||||
|
|»»» message|string|true|none||none|
|
||||||
|
|»»» data|object|true|none||none|
|
||||||
|
|»»»» passwordConfirm|object|true|none||none|
|
||||||
|
|»»»»» code|string|true|none||none|
|
||||||
|
|»»»»» message|string|true|none||none|
|
||||||
|
|»»»» username|object|true|none||none|
|
||||||
|
|»»»»» code|string|true|none||none|
|
||||||
|
|»»»»» message|string|true|none||none|
|
||||||
|
|» name|string|true|none||none|
|
||||||
380
docs/src/content/docs/api-reference/waypoint.md
Normal file
@@ -0,0 +1,380 @@
|
|||||||
|
---
|
||||||
|
title: waypoint
|
||||||
|
---
|
||||||
|
|
||||||
|
## GET show
|
||||||
|
|
||||||
|
GET /waypoint/{id}
|
||||||
|
|
||||||
|
### Params
|
||||||
|
|
||||||
|
|Name|Location|Type|Required|Description|
|
||||||
|
|---|---|---|---|---|
|
||||||
|
|id|path|string| yes |none|
|
||||||
|
|
||||||
|
> Response Examples
|
||||||
|
|
||||||
|
> 200 Response
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"author": "string",
|
||||||
|
"collectionId": "string",
|
||||||
|
"collectionName": "string",
|
||||||
|
"created": "string",
|
||||||
|
"description": "string",
|
||||||
|
"icon": "string",
|
||||||
|
"id": "string",
|
||||||
|
"lat": 0,
|
||||||
|
"lon": 0,
|
||||||
|
"name": "string",
|
||||||
|
"photos": [
|
||||||
|
"string"
|
||||||
|
],
|
||||||
|
"updated": "string"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Responses
|
||||||
|
|
||||||
|
|HTTP Status Code |Meaning|Description|Data schema|
|
||||||
|
|---|---|---|---|
|
||||||
|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|OK|Inline|
|
||||||
|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Record Not Found|Inline|
|
||||||
|
|
||||||
|
### Responses Data Schema
|
||||||
|
|
||||||
|
HTTP Status Code **200**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» author|string|true|none||none|
|
||||||
|
|» collectionId|string|true|none||none|
|
||||||
|
|» collectionName|string|true|none||none|
|
||||||
|
|» created|string|true|none||none|
|
||||||
|
|» description|string|true|none||none|
|
||||||
|
|» icon|string|true|none||none|
|
||||||
|
|» id|string|true|none||none|
|
||||||
|
|» lat|integer|true|none||none|
|
||||||
|
|» lon|integer|true|none||none|
|
||||||
|
|» name|string|true|none||none|
|
||||||
|
|» photos|[string]|true|none||none|
|
||||||
|
|» updated|string|true|none||none|
|
||||||
|
|
||||||
|
HTTP Status Code **404**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» url|string|true|none||none|
|
||||||
|
|» status|integer|true|none||none|
|
||||||
|
|» response|object|true|none||none|
|
||||||
|
|»» code|integer|true|none||none|
|
||||||
|
|»» message|string|true|none||none|
|
||||||
|
|»» data|object|true|none||none|
|
||||||
|
|» isAbort|boolean|true|none||none|
|
||||||
|
|» originalError|object|true|none||none|
|
||||||
|
|»» url|string|true|none||none|
|
||||||
|
|»» status|integer|true|none||none|
|
||||||
|
|»» data|object|true|none||none|
|
||||||
|
|»»» code|integer|true|none||none|
|
||||||
|
|»»» message|string|true|none||none|
|
||||||
|
|»»» data|object|true|none||none|
|
||||||
|
|» name|string|true|none||none|
|
||||||
|
|
||||||
|
## POST update
|
||||||
|
|
||||||
|
POST /waypoint/{id}
|
||||||
|
|
||||||
|
> Body Parameters
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"name": "string"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Params
|
||||||
|
|
||||||
|
|Name|Location|Type|Required|Description|
|
||||||
|
|---|---|---|---|---|
|
||||||
|
|id|path|string| yes |none|
|
||||||
|
|Content-Type|header|string| yes |none|
|
||||||
|
|body|body|object| no |none|
|
||||||
|
|» name|body|string| yes |none|
|
||||||
|
|
||||||
|
> Response Examples
|
||||||
|
|
||||||
|
> 200 Response
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"author": "string",
|
||||||
|
"collectionId": "string",
|
||||||
|
"collectionName": "string",
|
||||||
|
"created": "string",
|
||||||
|
"description": "string",
|
||||||
|
"icon": "string",
|
||||||
|
"id": "string",
|
||||||
|
"lat": 0,
|
||||||
|
"lon": 0,
|
||||||
|
"name": "string",
|
||||||
|
"photos": [
|
||||||
|
"string"
|
||||||
|
],
|
||||||
|
"updated": "string"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Responses
|
||||||
|
|
||||||
|
|HTTP Status Code |Meaning|Description|Data schema|
|
||||||
|
|---|---|---|---|
|
||||||
|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|OK|Inline|
|
||||||
|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Record Not Found|Inline|
|
||||||
|
|
||||||
|
### Responses Data Schema
|
||||||
|
|
||||||
|
HTTP Status Code **200**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» author|string|true|none||none|
|
||||||
|
|» collectionId|string|true|none||none|
|
||||||
|
|» collectionName|string|true|none||none|
|
||||||
|
|» created|string|true|none||none|
|
||||||
|
|» description|string|true|none||none|
|
||||||
|
|» icon|string|true|none||none|
|
||||||
|
|» id|string|true|none||none|
|
||||||
|
|» lat|integer|true|none||none|
|
||||||
|
|» lon|integer|true|none||none|
|
||||||
|
|» name|string|true|none||none|
|
||||||
|
|» photos|[string]|true|none||none|
|
||||||
|
|» updated|string|true|none||none|
|
||||||
|
|
||||||
|
HTTP Status Code **404**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» url|string|true|none||none|
|
||||||
|
|» status|integer|true|none||none|
|
||||||
|
|» response|object|true|none||none|
|
||||||
|
|»» code|integer|true|none||none|
|
||||||
|
|»» message|string|true|none||none|
|
||||||
|
|»» data|object|true|none||none|
|
||||||
|
|» isAbort|boolean|true|none||none|
|
||||||
|
|» originalError|object|true|none||none|
|
||||||
|
|»» url|string|true|none||none|
|
||||||
|
|»» status|integer|true|none||none|
|
||||||
|
|»» data|object|true|none||none|
|
||||||
|
|»»» code|integer|true|none||none|
|
||||||
|
|»»» message|string|true|none||none|
|
||||||
|
|»»» data|object|true|none||none|
|
||||||
|
|» name|string|true|none||none|
|
||||||
|
|
||||||
|
## DELETE delete
|
||||||
|
|
||||||
|
DELETE /waypoint/{id}
|
||||||
|
|
||||||
|
### Params
|
||||||
|
|
||||||
|
|Name|Location|Type|Required|Description|
|
||||||
|
|---|---|---|---|---|
|
||||||
|
|id|path|string| yes |none|
|
||||||
|
|
||||||
|
> Response Examples
|
||||||
|
|
||||||
|
> 200 Response
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"acknowledged": true
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Responses
|
||||||
|
|
||||||
|
|HTTP Status Code |Meaning|Description|Data schema|
|
||||||
|
|---|---|---|---|
|
||||||
|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|OK|Inline|
|
||||||
|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Record Not Found|Inline|
|
||||||
|
|
||||||
|
### Responses Data Schema
|
||||||
|
|
||||||
|
HTTP Status Code **200**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» acknowledged|boolean|true|none||none|
|
||||||
|
|
||||||
|
HTTP Status Code **404**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» url|string|true|none||none|
|
||||||
|
|» status|integer|true|none||none|
|
||||||
|
|» response|object|true|none||none|
|
||||||
|
|»» code|integer|true|none||none|
|
||||||
|
|»» message|string|true|none||none|
|
||||||
|
|»» data|object|true|none||none|
|
||||||
|
|» isAbort|boolean|true|none||none|
|
||||||
|
|» originalError|object|true|none||none|
|
||||||
|
|»» url|string|true|none||none|
|
||||||
|
|»» status|integer|true|none||none|
|
||||||
|
|»» data|object|true|none||none|
|
||||||
|
|»»» code|integer|true|none||none|
|
||||||
|
|»»» message|string|true|none||none|
|
||||||
|
|»»» data|object|true|none||none|
|
||||||
|
|» name|string|true|none||none|
|
||||||
|
|
||||||
|
## GET list
|
||||||
|
|
||||||
|
GET /waypoint
|
||||||
|
|
||||||
|
> Response Examples
|
||||||
|
|
||||||
|
> 200 Response
|
||||||
|
|
||||||
|
```json
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"author": "string",
|
||||||
|
"collectionId": "string",
|
||||||
|
"collectionName": "string",
|
||||||
|
"created": "string",
|
||||||
|
"description": "string",
|
||||||
|
"icon": "string",
|
||||||
|
"id": "string",
|
||||||
|
"lat": 0,
|
||||||
|
"lon": 0,
|
||||||
|
"name": "string",
|
||||||
|
"photos": [
|
||||||
|
"string"
|
||||||
|
],
|
||||||
|
"updated": "string"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
### Responses
|
||||||
|
|
||||||
|
|HTTP Status Code |Meaning|Description|Data schema|
|
||||||
|
|---|---|---|---|
|
||||||
|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|OK|Inline|
|
||||||
|
|
||||||
|
### Responses Data Schema
|
||||||
|
|
||||||
|
HTTP Status Code **200**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» author|string|true|none||none|
|
||||||
|
|» collectionId|string|true|none||none|
|
||||||
|
|» collectionName|string|true|none||none|
|
||||||
|
|» created|string|true|none||none|
|
||||||
|
|» description|string|true|none||none|
|
||||||
|
|» icon|string|true|none||none|
|
||||||
|
|» id|string|true|none||none|
|
||||||
|
|» lat|number|true|none||none|
|
||||||
|
|» lon|number|true|none||none|
|
||||||
|
|» name|string|true|none||none|
|
||||||
|
|» photos|[string]|true|none||none|
|
||||||
|
|» updated|string|true|none||none|
|
||||||
|
|
||||||
|
## PUT create
|
||||||
|
|
||||||
|
PUT /waypoint
|
||||||
|
|
||||||
|
> Body Parameters
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"name": "string",
|
||||||
|
"description": "string",
|
||||||
|
"author": "string",
|
||||||
|
"lat": 0,
|
||||||
|
"lon": 0,
|
||||||
|
"icon": "string"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Params
|
||||||
|
|
||||||
|
|Name|Location|Type|Required|Description|
|
||||||
|
|---|---|---|---|---|
|
||||||
|
|body|body|object| no |none|
|
||||||
|
|» name|body|string| no |none|
|
||||||
|
|» description|body|string| no |none|
|
||||||
|
|» author|body|string| yes |none|
|
||||||
|
|» lat|body|integer| yes |none|
|
||||||
|
|» lon|body|integer| yes |none|
|
||||||
|
|» icon|body|string| no |none|
|
||||||
|
|
||||||
|
> Response Examples
|
||||||
|
|
||||||
|
> 200 Response
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"author": "string",
|
||||||
|
"collectionId": "string",
|
||||||
|
"collectionName": "string",
|
||||||
|
"created": "string",
|
||||||
|
"description": "string",
|
||||||
|
"icon": "string",
|
||||||
|
"id": "string",
|
||||||
|
"lat": 0,
|
||||||
|
"lon": 0,
|
||||||
|
"name": "string",
|
||||||
|
"photos": [
|
||||||
|
"string"
|
||||||
|
],
|
||||||
|
"updated": "string"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Responses
|
||||||
|
|
||||||
|
|HTTP Status Code |Meaning|Description|Data schema|
|
||||||
|
|---|---|---|---|
|
||||||
|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|OK|Inline|
|
||||||
|
|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Bad Request|Inline|
|
||||||
|
|
||||||
|
### Responses Data Schema
|
||||||
|
|
||||||
|
HTTP Status Code **200**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» author|string|true|none||none|
|
||||||
|
|» collectionId|string|true|none||none|
|
||||||
|
|» collectionName|string|true|none||none|
|
||||||
|
|» created|string|true|none||none|
|
||||||
|
|» description|string|true|none||none|
|
||||||
|
|» icon|string|true|none||none|
|
||||||
|
|» id|string|true|none||none|
|
||||||
|
|» lat|integer|true|none||none|
|
||||||
|
|» lon|integer|true|none||none|
|
||||||
|
|» name|string|true|none||none|
|
||||||
|
|» photos|[string]|true|none||none|
|
||||||
|
|» updated|string|true|none||none|
|
||||||
|
|
||||||
|
HTTP Status Code **400**
|
||||||
|
|
||||||
|
|Name|Type|Required|Restrictions|Title|description|
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
|» url|string|true|none||none|
|
||||||
|
|» status|integer|true|none||none|
|
||||||
|
|» response|object|true|none||none|
|
||||||
|
|»» code|integer|true|none||none|
|
||||||
|
|»» message|string|true|none||none|
|
||||||
|
|»» data|object|true|none||none|
|
||||||
|
|» isAbort|boolean|true|none||none|
|
||||||
|
|» originalError|object|true|none||none|
|
||||||
|
|»» url|string|true|none||none|
|
||||||
|
|»» status|integer|true|none||none|
|
||||||
|
|»» data|object|true|none||none|
|
||||||
|
|»»» code|integer|true|none||none|
|
||||||
|
|»»» message|string|true|none||none|
|
||||||
|
|»»» data|object|true|none||none|
|
||||||
|
|» name|string|true|none||none|
|
||||||
|
|
||||||
@@ -100,7 +100,7 @@ The standard configuration makes all three services publically available by forw
|
|||||||
By default, wanderer uses two volumes. One for meilisearch indices and one for all PocketBase data. In the default configuration, the data is stored in volumes. However, if you prefer to use bind mounts you can simply adapt the configuration accordingly.
|
By default, wanderer uses two volumes. One for meilisearch indices and one for all PocketBase data. In the default configuration, the data is stored in volumes. However, if you prefer to use bind mounts you can simply adapt the configuration accordingly.
|
||||||
|
|
||||||
### Environment
|
### Environment
|
||||||
The default configuration contains all necessary environment variables. However, there are more options that allow you to modify how the backend and index operate. For more details, you can take a look at the respective section of the [documentation](https://github.com/Flomp/wanderer/wiki/Configuration).
|
The default configuration contains all necessary environment variables. However, there are more options that allow you to modify how the backend and index operate. For more details, you can take a look at the respective section of the [documentation](/getting-started/configuration).
|
||||||
|
|
||||||
:::caution
|
:::caution
|
||||||
Ensure that you change the `MEILI_MASTER_KEY` to a different value if you plan to use wanderer in a production environment.
|
Ensure that you change the `MEILI_MASTER_KEY` to a different value if you plan to use wanderer in a production environment.
|
||||||
@@ -177,7 +177,7 @@ To update wanderer to the newest version simply run `git pull origin main` and r
|
|||||||
## Verify the installation
|
## Verify the installation
|
||||||
No matter which installation method you chose, you should now be able to access wanderer on localhost:3000.
|
No matter which installation method you chose, you should now be able to access wanderer on localhost:3000.
|
||||||
|
|
||||||
:::note[Bootstrapping]
|
:::note
|
||||||
On the first launch, wanderer will create a rather large city index with over 200,000 entries in meilisearch. This process happens automatically but can take up to 2 minutes to complete. During this time the search functionality might not yet work properly.
|
On the first launch, wanderer will create a rather large city index with over 200,000 entries in meilisearch. This process happens automatically but can take up to 2 minutes to complete. During this time the search functionality might not yet work properly.
|
||||||
:::
|
:::
|
||||||
|
|
||||||
|
|||||||
35
docs/src/content/docs/getting-started/configuration.md
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
---
|
||||||
|
title: Configuration
|
||||||
|
description: How to configure wanderer with environment variables
|
||||||
|
---
|
||||||
|
|
||||||
|
Global settings for wanderer can be adjusted via environment variables. If you depoloyed wanderer with docker you can change the environment variables directly in the `docker-compose.yaml`. If you deployed wanderer on bare-metal you can change the environment variables in the launch script.
|
||||||
|
|
||||||
|
## Common
|
||||||
|
These variables are shared between all three services.
|
||||||
|
|
||||||
|
| Environment Variable | Description | Default |
|
||||||
|
| -------------------- | ---------------------------------------------------------------- | ------------------------------------------- |
|
||||||
|
| MEILI_URL | IP or hostname (including the port) of your meilisearch instance | http://search:7700 |
|
||||||
|
| MEILI_MASTER_KEY | Master API key for your meilisearch instance | vODkljPcfFANYNepCHyDyGjzAMPcdHnrb6X5KyXQPWo |
|
||||||
|
|
||||||
|
## Meilisearch
|
||||||
|
Since we use an unmodified installation of meilisearch you can use all variables listed in meilisearch's documentation. You can find a full list over [here](https://www.meilisearch.com/docs/learn/configuration/instance_options).
|
||||||
|
|
||||||
|
| Environment Variable | Description | Default |
|
||||||
|
| -------------------- | ----------------------------- | ------- |
|
||||||
|
| MEILI_NO_ANALYTICS | Disable meilisearch telemetry | true |
|
||||||
|
|
||||||
|
|
||||||
|
## Frontend
|
||||||
|
|
||||||
|
| Environment Variable | Description | Default |
|
||||||
|
| --------------------- | -------------------------------------------------------------------- | ---------------------------------- |
|
||||||
|
| ORIGIN | Public IP or hostname (including the port) of your wanderer instance | http://localhost:3000 |
|
||||||
|
| BODY_SIZE_LIMIT | Maximum allowed upload size | Infinity |
|
||||||
|
| PUBLIC_POCKETBASE_URL | IP or hostname (including the port) of your wanderer instance | http://db:8090 |
|
||||||
|
| PUBLIC_DISABLE_SIGNUP | Disables signup option for new users | false |
|
||||||
|
| PUBLIC_VALHALLA_URL | Public IP or hostname (including the port) of a valhalla instance | https://valhalla1.openstreetmap.de |
|
||||||
|
| UPLOAD_FOLDER | Folder from which wanderer auto-uploads trails | /app/uploads |
|
||||||
|
| UPLOAD_USER | Username for the account with which wanderer auto-uploads trails | |
|
||||||
|
| UPLOAD_PASSWORD | Password for the account with which wanderer auto-uploads trails | |
|
||||||
68
docs/src/content/docs/getting-started/local-development.md
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
---
|
||||||
|
title: Local development
|
||||||
|
description: How to install wanderer for local development
|
||||||
|
---
|
||||||
|
|
||||||
|
If you would like to set up a development environment on your own machine to work on wanderer please first follow the bare-metal installation steps in the [installation guide](/getting-started/installation#from-source). We will slightly modify the launch script to launch a node server in development mode instead:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
trap "kill 0" EXIT
|
||||||
|
|
||||||
|
export ORIGIN=http://localhost:5173
|
||||||
|
export MEILI_URL=http://127.0.0.1:7700
|
||||||
|
export MEILI_MASTER_KEY=p2gYZAWODOrwTPr4AYoahCZ9CI8y9bUd0yQLGk-E3m8
|
||||||
|
export PUBLIC_POCKETBASE_URL=http://127.0.0.1:8090
|
||||||
|
export PUBLIC_VALHALLA_URL=https://valhalla1.openstreetmap.de
|
||||||
|
|
||||||
|
cd search && ./meilisearch --master-key $MEILI_MASTER_KEY &
|
||||||
|
cd db && ./pocketbase serve &
|
||||||
|
cd web && npm run dev &
|
||||||
|
|
||||||
|
wait
|
||||||
|
```
|
||||||
|
|
||||||
|
This will bring up a `meilisearch` instance on `http://127.0.0.1:7700`, a `PocketBase` instance on `http://127.0.0.1:8090`, and a `vite` server for the wanderer frontend on `http://localhost:5173`.
|
||||||
|
|
||||||
|
## Accessing the backend
|
||||||
|
|
||||||
|
Sometimes it can be useful to edit data directly in the database. `PocketBase` offers a convenient web UI to do so. Simply head over to `http://127.0.0.1:8090/_/`. If you access the admin panel for the first time you will be asked to create an admin account. Afterwards, you can create, read, update, and delete data in the respective tables. To learn more about `PocketBase` you can head over to their extensive [documentation](https://pocketbase.io/docs).
|
||||||
|
|
||||||
|
## Building
|
||||||
|
|
||||||
|
When you are done with development and would like to build wanderer for production there are some steps to follow.
|
||||||
|
|
||||||
|
### meilisearch
|
||||||
|
|
||||||
|
If you modified any attributes of one of the meilisearch indices (like filterable attributes), you will need to create a new dump that gets imported into wanderer on launch. To do so run
|
||||||
|
|
||||||
|
```bash
|
||||||
|
curl -X POST 'http://127.0.0.1:7700/dumps'
|
||||||
|
```
|
||||||
|
|
||||||
|
and overwrite the previous dump at `/search/migrations/migration.dump` with your updated one.
|
||||||
|
|
||||||
|
|
||||||
|
### PocketBase
|
||||||
|
|
||||||
|
If you modified code in any of the `*.go` files make sure to build an updated binary with `go build`. In case you only edited tables via the `PocketBase` admin panel you don't need to do anything. The database will be migrated automatically.
|
||||||
|
|
||||||
|
|
||||||
|
### Frontend
|
||||||
|
|
||||||
|
For the frontend there are no further caveats. Simply run `npm run build`.
|
||||||
|
|
||||||
|
### Docker
|
||||||
|
|
||||||
|
To create local docker images of wanderer simply run the script below. These will work as drop-in replacements for the ones hosted on docker hub. This will only work if you have already completed the steps above.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# search
|
||||||
|
docker build search/ --no-cache -t flomp/wanderer-search:latest
|
||||||
|
|
||||||
|
# db
|
||||||
|
docker build db/ --no-cache -t flomp/wanderer-db:latest
|
||||||
|
|
||||||
|
# web
|
||||||
|
docker build web/ --no-cache -t flomp/wanderer-web:latest
|
||||||
|
```
|
||||||
|
|
||||||
35
docs/src/content/docs/guides/api.md
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
---
|
||||||
|
title: wanderer API
|
||||||
|
description: How to use wanderer's API
|
||||||
|
---
|
||||||
|
|
||||||
|
wanderer comes with a fully functional RESTful API out of the box. It largely follows the CRUD conventions implemented by the [PocketBase backend](https://pocketbase.io/docs/api-records/#crud-actions). All endpoints are available at `http://<wanderer_host>/api/v1`. The full technical API documentation can be found at `http://<wanderer_host>/docs/api/index.html` and is also provided in the [API Reference](/api-reference/auth).
|
||||||
|
|
||||||
|
## Authentication
|
||||||
|
wanderer's API uses cookie-based authentication. To receive an auth cookie send a request to the `/auth/login` endpoint. The request must contain a JSON body in the following form:
|
||||||
|
```
|
||||||
|
{
|
||||||
|
username: string,
|
||||||
|
password: string
|
||||||
|
}
|
||||||
|
```
|
||||||
|
The cookie from the response can be sent in a subsequent request to authenticate it.
|
||||||
|
### Example
|
||||||
|
```bash
|
||||||
|
curl --header "Content-Type: application/json" --request POST \
|
||||||
|
--cookie-jar ./wanderer-credentials \
|
||||||
|
--data '{"username":"MyUser","password":"mysecretpassword"}' \
|
||||||
|
http://localhost:3000/api/v1/auth/login
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
## Upload trails
|
||||||
|
One common use case for wanderer's API is bulk uploading GPX files to create new trails. For that, the API provides a separate endpoint: `/trail/upload`. You must first log in to use the endpoint. Afterwards you can send a GPX file to the endpoint to let wanderer parse it an create a new trail in your collection. wanderer will try to infer as much information as possible from the file itself. All additional information can be added to the trail via the UPDATE [endpoint](/api-reference/trail#post-update).
|
||||||
|
|
||||||
|
### Example
|
||||||
|
```bash
|
||||||
|
curl --location --request PUT 'http://localhost:3000/api/v1/trail/upload' \
|
||||||
|
--header 'Content-Type: application/gpx+xml' \
|
||||||
|
--cookie './wanderer-credentials' \
|
||||||
|
--data-binary '@my_trail.gpx'
|
||||||
|
```
|
||||||
64
docs/src/content/docs/guides/authentication.md
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
---
|
||||||
|
title: Authentication
|
||||||
|
description: Authentication with email/password and OAuth
|
||||||
|
---
|
||||||
|
|
||||||
|
For the majority of wanderer's features you need an account to interact with them.
|
||||||
|
|
||||||
|
## Email/Username & Password
|
||||||
|
|
||||||
|
The quickest way to create an account is by heading over to `/register` and entering a username, a valid email address, and a password of your choice.
|
||||||
|
After registering you will be redirected to the homepage and can start creating your first trail.
|
||||||
|
|
||||||
|
:::note
|
||||||
|
The username must be at least 3 characters long, the password at least 8.
|
||||||
|
:::
|
||||||
|
|
||||||
|
## OAuth2
|
||||||
|
|
||||||
|
Alternatively, wanderer supports authenticating via OAuth2. The following providers are supported:
|
||||||
|
|
||||||
|
- GitHub
|
||||||
|
- Apple
|
||||||
|
- Google
|
||||||
|
- Microsoft
|
||||||
|
- Yandex
|
||||||
|
- Facebook
|
||||||
|
- Instagram
|
||||||
|
- GitLab
|
||||||
|
- Bitbucket
|
||||||
|
- Gitee
|
||||||
|
- Gitea
|
||||||
|
- Discord
|
||||||
|
- Twitter
|
||||||
|
- Kakao
|
||||||
|
- VK
|
||||||
|
- Spotify
|
||||||
|
- Twitch
|
||||||
|
- Patreon (v2)
|
||||||
|
- Strava
|
||||||
|
- LiveChat
|
||||||
|
- mailcow
|
||||||
|
- OpenID Connect
|
||||||
|
|
||||||
|
### Prerequisites
|
||||||
|
|
||||||
|
To set up OAuth support you will need to access the PocketBase backend. Make sure to forward port 8090 of the `wanderer-db` container. Access the PocketBase admin panel in your browser at `http://<your_pocketbase_url>:8090/_/` and create an admin account.
|
||||||
|
|
||||||
|
### Create an OAuth app
|
||||||
|
|
||||||
|
This step will vary wildly from provider to provider. Please refer to your provider's documentation for the specific steps.
|
||||||
|
|
||||||
|
No matter your provider, you will need a redirect URL. This redirect URL must have the following format: `$ORIGIN/login/redirect`. `$ORIGIN` refers to the `ORIGIN` environment variable that defines the public host at which your wanderer instance can be reached. So for the default installation, the redirect URL is `http://localhost:3000/login/redirect`.
|
||||||
|
|
||||||
|
In any case, once you have successfully created your OAuth app you will receive a Client ID and a Client Secret.
|
||||||
|
|
||||||
|
### Enable a provider in PocketBase
|
||||||
|

|
||||||
|
|
||||||
|
In the PocketBase admin panel navigate to `Settings -> Auth providers`. Click the gear icon next to your provider, fill in the Client ID and Client Secret from the step before and save your changes.
|
||||||
|
|
||||||
|
### Login using OAuth
|
||||||
|

|
||||||
|
|
||||||
|
That's it! You should now see your OAuth provider appear in wanderer's login form. Click the button, authorize wanderer, and wait for the authentication to finish. You are now logged in and can use wanderer like any other user.
|
||||||
58
docs/src/content/docs/guides/create-a-trail.md
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
---
|
||||||
|
title: Create a trail
|
||||||
|
description: How to create a trail by uploading or drawing a trail using Valhalla
|
||||||
|
---
|
||||||
|
|
||||||
|
## What is a trail?
|
||||||
|
|
||||||
|
In wanderer a trail is an object that contains both GPS data and various kinds of metadata (like a description, photos, waypoints etc.) that make it easily searchable.
|
||||||
|
|
||||||
|
## Create a trail
|
||||||
|
To create a new trail click the <button class="h-10 text-white rounded-lg px-4 py-2 mx-2 bg-primary font-semibold transition-all hover:bg-primary-hover focus:ring-4 ring-zinc-400 leading-none">+ New Trail</button> button in the top right corner.
|
||||||
|
|
||||||
|
### Provide a route
|
||||||
|
A route is the GPS data of a trail. There are two main ways that a user can provide a route.
|
||||||
|
|
||||||
|
#### Upload a file
|
||||||
|
|
||||||
|
Click the `Upload file` button and choose a file. The file must be either in GPX, TCX, or KML format. Once you have selected a file you will see a couple of things happen:
|
||||||
|
- the map will display and focus on your track.
|
||||||
|
- the elevation profile and speed charts (if your file contains that information) will be updated accordingly.
|
||||||
|
- in the left-hand panel information like the trail name, location, and distance will be displayed.
|
||||||
|
|
||||||
|
#### Draw a route
|
||||||
|
|
||||||
|
Instead of clicking the `Upload file` button, you can also click the `Draw a route` button. This will activate the drawing mode. Notice that your cursor is now a cross when hovering over the map. Clicking on the map in drawing mode will create a new waypoint. You can drag and drop it anywhere on the map to update its position. To delete it, click first on the waypoint and then on the red trashcan icon. Creating a second waypoint will create a route between it and the previous one.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
By default, wanderer uses the [valhalla routing engine](https://github.com/valhalla/valhalla) to calculate the route between the two points. Via the menu in the top-left corner of the map, you can choose your preferred mode of transport which will influence the route calculation. If you disable auto-routing wanderer will not use `valhalla`, but instead, simply draw a straight line between the two points.
|
||||||
|
|
||||||
|
When you are done with drawing click the `Stop drawing` button to deactivate the drawing mode.
|
||||||
|
|
||||||
|
:::tip
|
||||||
|
wanderer uses a public, free `valhalla` server by default. The server is financed by donations. Please consider donating at [https://www.fossgis.de/verein/spenden/](https://www.fossgis.de/verein/spenden/).
|
||||||
|
:::
|
||||||
|
|
||||||
|
### Basic Info
|
||||||
|
|
||||||
|
Most of the data in this section should be self-explanatory. The only required field is the name: every trail needs a name. If you created your route by uploading a file, wanderer tries to infer most of the information directly from the file. However, you are of course free to edit this information afterwards.
|
||||||
|
Toggling the public switch to on will make the trail visible for everyone even visitors who are not logged in.
|
||||||
|
|
||||||
|
### Waypoints
|
||||||
|
|
||||||
|
Waypoints mark points of interest along the route. A trail can have as many waypoints as you like. Click the `+ Add Waypoint` button to start. By default, a waypoint will be positioned in the center of the map. You can change the position either directly by entering a new latitude and longitude or simply moving the waypoint around on the map after saving it first.
|
||||||
|
|
||||||
|
Additionally, a waypoint has an icon that is displayed in the map marker. wanderer uses fontawsome icons, so any icon from this [list](https://fontawesome.com/search?q=share&o=r&m=free) is available. If you wish, you can also add photos to the waypoint to make it event more recognizable.
|
||||||
|
|
||||||
|
### Photos
|
||||||
|
|
||||||
|
You can also add photos to the trail itself. If you add more than one photo you can choose which one should be used as the thumbnail. It will be featured in the trail overview.
|
||||||
|
|
||||||
|
### Summit book
|
||||||
|
|
||||||
|
If you do the same trail multiple times but do not want to create a new trail every time, you can simply make a new entry in the summit book to log the completion of the trail.
|
||||||
|
|
||||||
|
## Save the trail
|
||||||
|
|
||||||
|
Once you are done creating your trail simply click the <button class="h-10 text-white rounded-lg px-4 py-2 mx-2 bg-primary font-semibold transition-all hover:bg-primary-hover focus:ring-4 ring-zinc-400 leading-none">Save Trail</button> button. This will save your trail to the database and create a new index entry to make ensure that you will find your trail in the future.
|
||||||
41
docs/src/content/docs/guides/import-export.md
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
---
|
||||||
|
title: Import/Export
|
||||||
|
description: How to import and export trails in wanderer
|
||||||
|
---
|
||||||
|
|
||||||
|
## Import
|
||||||
|
|
||||||
|
wanderer supports bulk uploading of trails via an auto-upload folder. A cronjob fetches all files from this folder and uploads them automatically every 15 minutes. This feature is currently only available for docker installations. If you want to replicate it in a bare metal installation you will need to create your own cronjob using the `web/cron.sh` script.
|
||||||
|
|
||||||
|
:::caution
|
||||||
|
Successfully uploaded files will be deleted from the auto-upload folder.
|
||||||
|
:::
|
||||||
|
|
||||||
|
:::note
|
||||||
|
Currently only GPX files are supported.
|
||||||
|
:::
|
||||||
|
### Configuration
|
||||||
|
|
||||||
|
The following environment variables must be present in the `wanderer-web` docker container and set to valid values.
|
||||||
|
|
||||||
|
| Environment Variable | Description | Default |
|
||||||
|
|----------------------|------------------------------------------------------------------------|--------------|
|
||||||
|
| UPLOAD_FOLDER | Path to the auto-upload folder | /app/uploads |
|
||||||
|
| UPLOAD_USER | Username of the account that will be the author of the uploaded trails | |
|
||||||
|
| UPLOAD_PASSWORD | Password of the account that will be the author of the uploaded trails | |
|
||||||
|
|
||||||
|
### Volume
|
||||||
|
Make sure to mount the upload folder as a volume to your host system. The default `docker-compose.yml` already includes this volume. Ensure that the mapped value matches the one in the `UPLOAD_FOLDER` environment variable.
|
||||||
|
|
||||||
|
### Manually run the upload job
|
||||||
|
In case you do not want to wait until the next scheduled execution you can also run the job manually:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker exec -it wanderer-web run-parts /etc/periodic/15min
|
||||||
|
```
|
||||||
|
|
||||||
|
## Export
|
||||||
|
|
||||||
|
Currently, wanderer supports exporting only for single trails. A bulk export feature is planned for the near future.
|
||||||
|
|
||||||
|
To export a trail head over to `/trails` and select the trail you want to export. From the ⋮ menu select "Export". You can export the route data either in GPX or in GeoJSON format. Furthermore, you can choose whether you want to include the photos and the summit book of the trail. In any case, wanderer will create a ZIP archive with all the data that is then downloaded.
|
||||||
20
docs/src/content/docs/guides/lists.md
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
---
|
||||||
|
title: Lists
|
||||||
|
description: What are lists and how can we use them?
|
||||||
|
---
|
||||||
|
|
||||||
|
Lists allow you to further organise your trails by bundling them in one place. Over at `/lists` you can create, update, and delete your custom lists. You can view all trails in a list either on a map or in a simple list.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## Create a list
|
||||||
|
|
||||||
|
Simply click the `+ Create new list` button and give your list a name. Optionally, you can also add an avatar and a short description.
|
||||||
|
|
||||||
|
## Add a trail
|
||||||
|
|
||||||
|
To add a trail to a list head over to `/trails` and click on the trail you want to add. From the ⋮ menu select "Add to list" and select the list you want to add the trail to. To remove the trail simply repeat this process.
|
||||||
|
|
||||||
|
## Edit & delete a list
|
||||||
|
|
||||||
|
To edit or delete a list simply select the respective entry from the ⋮ menu.
|
||||||
19
docs/src/content/docs/guides/share-trails.md
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
---
|
||||||
|
title: Share trails
|
||||||
|
description: How to share trails with other users
|
||||||
|
---
|
||||||
|
|
||||||
|
wanderer allows you to share your trails with other users. You can either publish you trail making it accessible for everyone or share it with specific users. To get started head over to `/trails` and select the trail you want to share or publish.
|
||||||
|
|
||||||
|
## Publish a trail
|
||||||
|
|
||||||
|
From the ⋮ menu select "Edit". In the panel on the right toggle the "Public" switch to on and save the trail. Your trail is now public and everyone can see it. Even people without an account.
|
||||||
|
|
||||||
|
|
||||||
|
## Share a trail
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
If you want to be more particular about who can see your trail you can instead share your trail. From the ⋮ menu select "Share". In the dialog, search for the user you want to share your trail with. You can now choose the permission the user should have. You can choose between "View" or "Edit". A user with "Edit" permission can change all data (including the route) of the trail.
|
||||||
|
|
||||||
|
If you no longer want to share the trail with a user, simply click the red trashcan icon next to their name.
|
||||||
@@ -29,7 +29,7 @@ import { Card, CardGrid } from '@astrojs/starlight/components';
|
|||||||
<Card title="Manage your trails" icon="pencil">
|
<Card title="Manage your trails" icon="pencil">
|
||||||
Upload your trails from multiple file formats (like GPX or TCX) or plan a new trail directly in <span class="-tracking-[0.075em] s-y_bCXRrkrYfP">wanderer</span> with the route drawing tool.
|
Upload your trails from multiple file formats (like GPX or TCX) or plan a new trail directly in <span class="-tracking-[0.075em] s-y_bCXRrkrYfP">wanderer</span> with the route drawing tool.
|
||||||
|
|
||||||
[Learn more →]()
|
[Learn more →](/guides/create-a-trail)
|
||||||
</Card>
|
</Card>
|
||||||
</div>
|
</div>
|
||||||
<Card title="Advanced filters and search" icon="magnifier">
|
<Card title="Advanced filters and search" icon="magnifier">
|
||||||
@@ -38,12 +38,12 @@ import { Card, CardGrid } from '@astrojs/starlight/components';
|
|||||||
<Card title="Automatic import" icon="seti:folder">
|
<Card title="Automatic import" icon="seti:folder">
|
||||||
Simply upload all your trails in one go with <span class="-tracking-[0.075em] s-y_bCXRrkrYfP">wanderer</span>'s automatic import feature.
|
Simply upload all your trails in one go with <span class="-tracking-[0.075em] s-y_bCXRrkrYfP">wanderer</span>'s automatic import feature.
|
||||||
|
|
||||||
[Learn more →]()
|
[Learn more →](/guides/import-export#import)
|
||||||
</Card>
|
</Card>
|
||||||
<Card title="Full API support" icon="seti:json">
|
<Card title="Full API support" icon="seti:json">
|
||||||
Use <span class="-tracking-[0.075em] s-y_bCXRrkrYfP">wanderer</span>'s API to interact with your trail data directly and automate the tasks you don't want to do manually.
|
Use <span class="-tracking-[0.075em] s-y_bCXRrkrYfP">wanderer</span>'s API to interact with your trail data directly and automate the tasks you don't want to do manually.
|
||||||
|
|
||||||
[API reference →]()
|
[API reference →](/api-reference/auth)
|
||||||
</Card>
|
</Card>
|
||||||
<Card title="Privacy friendly" icon="approve-check">
|
<Card title="Privacy friendly" icon="approve-check">
|
||||||
<span class="-tracking-[0.075em] s-y_bCXRrkrYfP">wanderer</span> is self-hosted and open-source. Your data stays on your machine and your machine only.
|
<span class="-tracking-[0.075em] s-y_bCXRrkrYfP">wanderer</span> is self-hosted and open-source. Your data stays on your machine and your machine only.
|
||||||
|
|||||||
@@ -1,11 +0,0 @@
|
|||||||
---
|
|
||||||
title: Example Reference
|
|
||||||
description: A reference page in my new Starlight docs site.
|
|
||||||
---
|
|
||||||
|
|
||||||
Reference pages are ideal for outlining how things work in terse and clear terms.
|
|
||||||
Less concerned with telling a story or addressing a specific use case, they should give a comprehensive outline of what your documenting.
|
|
||||||
|
|
||||||
## Further reading
|
|
||||||
|
|
||||||
- Read [about reference](https://diataxis.fr/reference/) in the Diátaxis framework
|
|
||||||
@@ -8,7 +8,7 @@ export const comments: Writable<Comment[]> = writable([])
|
|||||||
|
|
||||||
export async function comments_index(trail: Trail) {
|
export async function comments_index(trail: Trail) {
|
||||||
let r = await fetch('/api/v1/comment?' + new URLSearchParams({
|
let r = await fetch('/api/v1/comment?' + new URLSearchParams({
|
||||||
filter: `trail = ${trail.id}`,
|
filter: `trail="${trail.id}"`,
|
||||||
}), {
|
}), {
|
||||||
method: 'GET',
|
method: 'GET',
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ export async function GET(event: RequestEvent) {
|
|||||||
try {
|
try {
|
||||||
const r: Comment[] = await pb.collection('comments').getFullList<Comment>({
|
const r: Comment[] = await pb.collection('comments').getFullList<Comment>({
|
||||||
expand: "author",
|
expand: "author",
|
||||||
|
filter: filter,
|
||||||
sort: "-created",
|
sort: "-created",
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -254,7 +254,7 @@
|
|||||||
{/each}
|
{/each}
|
||||||
</ul>
|
</ul>
|
||||||
<div id="map" class="rounded-xl z-0" class:hidden={!showMap}></div>
|
<div id="map" class="rounded-xl z-0" class:hidden={!showMap}></div>
|
||||||
<div class:hidden={showMap}>
|
<div class="min-w-0" class:hidden={showMap}>
|
||||||
<TrailList
|
<TrailList
|
||||||
bind:filter
|
bind:filter
|
||||||
trails={$list.expand?.trails ?? []}
|
trails={$list.expand?.trails ?? []}
|
||||||
|
|||||||