Starting content to test deployment

This commit is contained in:
shockrah 2021-02-13 17:14:41 -08:00
parent cf490419a2
commit 4b346c60e6
6 changed files with 131 additions and 0 deletions

4
.gitignore vendored
View File

@ -8,3 +8,7 @@ server-api/.vscode/launch.json
tui/example-config.json
bin/
# Genereated in pipelines only
docs/resources
docs/public/

View File

@ -1,6 +1,7 @@
image: shockrah/freechat:0.4
stages:
- docs
- build
- test
@ -49,3 +50,16 @@ test-json-api:
expire_in: 1 week
name: json-api
build-wiki:
only: [ "docs" ]
stage: docs
script:
- cd docs/
- hugo
- cp public/ ../
artifacts:
paths:
- public

View File

@ -0,0 +1,6 @@
---
title: "{{ replace .Name "-" " " | title }}"
date: {{ .Date }}
draft: true
---

7
docs/config.toml Normal file
View File

@ -0,0 +1,7 @@
baseURL = "https://freechat.shockrah.xyz"
languageCode = "en-us"
theme = "kraiklyn"
title = "Freechat Reference"
[params]
externalTitle = "Freechat docs"

View File

@ -0,0 +1,97 @@
# Structures
This section details what kind of data structures are returned by the json-api.
**IMPORTANT**: All structures are returned in [JSON form](https://www.json.org/json-en.html).
## General Data Notation
* u64
* Unsigned 64 bit integer
* i64
* Signed 64 bit integer
* String
## Channels
Channels are made up of the following components
Name | Type
:------:|:--------:
id | `u64`
name | `String`
kind | `i32`
Channels have two valid types or (more semantically) `kind` values:
* Voice Channel = 1
* Text Channel = 2
## Users
### Personal User
If you need to get your own user data, with `/users/me` then the data received on success has the following fields:
Name | Type
:------:|:-----:
id | `u64`
secret | `String`
joindate| `i64`
status | `i32`
permissions| `u64`
### JWT
This data is retrieved after a sucessful `/login` hit.
Name | Type
:-----:|:------:
jwt | `String`
### Full Public User
Name | Type
:-----:|:-----:
id | `u64`
name | `String`
joindate| `i64`
status | `i32`
permissions| `u64`
For users _without_ the `USER_FETCH` permission the only two fields with actual data is `id` and `name`. The other fields will be set to 0.
## Messages
Name | Type
:-----:|:-----:
id | `u64`
time | `i64`
content | `String`
type | `String`
author_id | `u64`
channel_id | `u64`
Acceptable values
## Invites
When requesting a code from `/invite/create` successful data contains:
Name | Type
:-----:|:-----:
id | `i64`
uses | `null|i64`
expires| `bool`
Most clients should format this code for usage as `https://domain.net:port/join?code=<id>`. The other data is merely for tracking the server's end.

View File

@ -0,0 +1,3 @@
<div>
From shockrah with <3
</div>