Compare commits
14 commits
main
...
join_messa
Author | SHA1 | Date | |
---|---|---|---|
29a01ddaf1 | |||
2ab5172d35 | |||
6774bfd48d | |||
0aef04f737 | |||
72ad278226 | |||
4023fe96fc | |||
3136df3334 | |||
413de6286c | |||
511e65d6c6 | |||
0941cf1736 | |||
6f4fbc0c60 | |||
1a0ef37a68 | |||
8edfc5fcf9 | |||
8dd3c9e429 |
358 changed files with 4031 additions and 34628 deletions
19
.gitignore
vendored
19
.gitignore
vendored
|
@ -6,16 +6,17 @@ ansible/passwords/
|
|||
# docker build files
|
||||
docker/lemmy_mine.hjson
|
||||
docker/dev/env_deploy.sh
|
||||
docker/federation/volumes
|
||||
docker/federation-test/volumes
|
||||
docker/dev/volumes
|
||||
|
||||
# local build files
|
||||
build/
|
||||
ui/src/translations
|
||||
volumes
|
||||
|
||||
# ide config
|
||||
.idea/
|
||||
.vscode/
|
||||
.idea
|
||||
.vscode
|
||||
|
||||
# local build files
|
||||
target
|
||||
env_setup.sh
|
||||
query_testing/*.json
|
||||
query_testing/*.json.old
|
||||
|
||||
# API tests
|
||||
api_tests/node_modules
|
||||
|
|
0
server/.rustfmt.toml → .rustfmt.toml
vendored
0
server/.rustfmt.toml → .rustfmt.toml
vendored
7
server/Cargo.lock → Cargo.lock
generated
vendored
7
server/Cargo.lock → Cargo.lock
generated
vendored
|
@ -768,6 +768,12 @@ dependencies = [
|
|||
"time 0.1.43",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "cargo-husky"
|
||||
version = "1.5.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7b02b629252fe8ef6460461409564e2c21d0c8e77e0944f3d189ff06c4e932ad"
|
||||
|
||||
[[package]]
|
||||
name = "cc"
|
||||
version = "1.0.58"
|
||||
|
@ -1851,6 +1857,7 @@ dependencies = [
|
|||
"base64 0.12.3",
|
||||
"bcrypt",
|
||||
"captcha",
|
||||
"cargo-husky",
|
||||
"chrono",
|
||||
"diesel",
|
||||
"diesel_migrations",
|
5
server/Cargo.toml → Cargo.toml
vendored
5
server/Cargo.toml → Cargo.toml
vendored
|
@ -59,3 +59,8 @@ anyhow = "1.0.32"
|
|||
thiserror = "1.0.20"
|
||||
background-jobs = " 0.8.0-alpha.2"
|
||||
reqwest = { version = "0.10", features = ["json"] }
|
||||
|
||||
[dev-dependencies.cargo-husky]
|
||||
version = "1"
|
||||
default-features = false # Disable features which are enabled by default
|
||||
features = ["precommit-hook", "run-cargo-fmt", "run-cargo-clippy"]
|
2
ansible/templates/config.hjson
vendored
2
ansible/templates/config.hjson
vendored
|
@ -13,8 +13,6 @@
|
|||
hostname: "{{ domain }}"
|
||||
# json web token for authorization between server and client
|
||||
jwt_secret: "{{ jwt_password }}"
|
||||
# The location of the frontend
|
||||
front_end_dir: "/app/dist"
|
||||
# email sending configuration
|
||||
email: {
|
||||
# hostname of the smtp server
|
||||
|
|
22
ansible/templates/nginx.conf
vendored
22
ansible/templates/nginx.conf
vendored
|
@ -51,8 +51,9 @@ server {
|
|||
# Upload limit for pictrs
|
||||
client_max_body_size 20M;
|
||||
|
||||
location / {
|
||||
proxy_pass http://0.0.0.0:8536;
|
||||
# lemmy api
|
||||
location /api/v1 {
|
||||
proxy_pass http://0.0.0.0:8536/api/v1;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
|
@ -69,6 +70,23 @@ server {
|
|||
limit_req zone=lemmy_ratelimit burst=30 nodelay;
|
||||
}
|
||||
|
||||
# Docs
|
||||
location /docs {
|
||||
proxy_pass http://0.0.0.0:8536/docs;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
}
|
||||
|
||||
# lemmy-isomorphic-ui
|
||||
location / {
|
||||
proxy_pass http://0.0.0.0:1235;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
}
|
||||
|
||||
|
||||
# Redirect pictshare images to pictrs
|
||||
location ~ /pictshare/(.*)$ {
|
||||
return 301 /pictrs/image/$1;
|
||||
|
|
4
api_tests/jest.config.js
vendored
Normal file
4
api_tests/jest.config.js
vendored
Normal file
|
@ -0,0 +1,4 @@
|
|||
module.exports = {
|
||||
preset: 'ts-jest',
|
||||
testEnvironment: 'node',
|
||||
};
|
20
api_tests/package.json
vendored
Normal file
20
api_tests/package.json
vendored
Normal file
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"name": "api_tests",
|
||||
"version": "0.0.1",
|
||||
"description": "API tests for lemmy backend",
|
||||
"main": "index.js",
|
||||
"repository": "https://github.com/LemmyNet/lemmy",
|
||||
"author": "Dessalines",
|
||||
"license": "AGPL-3.0",
|
||||
"scripts": {
|
||||
"api-test": "jest src/ -i --verbose"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/jest": "^26.0.13",
|
||||
"jest": "^26.4.2",
|
||||
"lemmy-js-client": "^1.0.11",
|
||||
"node-fetch": "^2.6.1",
|
||||
"ts-jest": "^26.3.0",
|
||||
"typescript": "^4.0.2"
|
||||
}
|
||||
}
|
|
@ -1,3 +1,4 @@
|
|||
jest.setTimeout(120000);
|
||||
import {
|
||||
alpha,
|
||||
beta,
|
3659
api_tests/yarn.lock
vendored
Normal file
3659
api_tests/yarn.lock
vendored
Normal file
File diff suppressed because it is too large
Load diff
0
server/clean.sh → clean.sh
vendored
0
server/clean.sh → clean.sh
vendored
|
@ -33,8 +33,6 @@
|
|||
port: 8536
|
||||
# json web token for authorization between server and client
|
||||
jwt_secret: "changeme"
|
||||
# The location of the frontend
|
||||
front_end_dir: "../ui/dist"
|
||||
# address where pictrs is available
|
||||
pictrs_url: "http://pictrs:8080"
|
||||
# rate limits for various user actions, by user ip
|
0
server/db-init.sh → db-init.sh
vendored
0
server/db-init.sh → db-init.sh
vendored
0
server/diesel.toml → diesel.toml
vendored
0
server/diesel.toml → diesel.toml
vendored
39
docker/dev/Dockerfile
vendored
39
docker/dev/Dockerfile
vendored
|
@ -1,15 +1,3 @@
|
|||
FROM node:10-jessie as node
|
||||
|
||||
WORKDIR /app/ui
|
||||
|
||||
# Cache deps
|
||||
COPY ui/package.json ui/yarn.lock ./
|
||||
RUN yarn install --pure-lockfile
|
||||
|
||||
# Build
|
||||
COPY ui /app/ui
|
||||
RUN yarn build
|
||||
|
||||
FROM ekidd/rust-musl-builder:nightly-2020-05-07 as rust
|
||||
|
||||
# Cache deps
|
||||
|
@ -27,22 +15,22 @@ RUN mkdir -p lemmy_db/src/ \
|
|||
lemmy
|
||||
|
||||
# Copy the cargo tomls
|
||||
COPY server/Cargo.toml server/Cargo.lock ./
|
||||
COPY server/lemmy_db/Cargo.toml ./lemmy_db/
|
||||
COPY server/lemmy_utils/Cargo.toml ./lemmy_utils/
|
||||
COPY server/lemmy_api_structs/Cargo.toml ./lemmy_api_structs/
|
||||
COPY server/lemmy_rate_limit/Cargo.toml ./lemmy_rate_limit/
|
||||
COPY Cargo.toml Cargo.lock ./
|
||||
COPY lemmy_db/Cargo.toml ./lemmy_db/
|
||||
COPY lemmy_utils/Cargo.toml ./lemmy_utils/
|
||||
COPY lemmy_api_structs/Cargo.toml ./lemmy_api_structs/
|
||||
COPY lemmy_rate_limit/Cargo.toml ./lemmy_rate_limit/
|
||||
|
||||
# Cache the deps
|
||||
RUN cargo build-deps
|
||||
|
||||
# Copy the src folders
|
||||
COPY server/src ./src/
|
||||
COPY server/lemmy_db/src ./lemmy_db/src/
|
||||
COPY server/lemmy_utils/src/ ./lemmy_utils/src/
|
||||
COPY server/lemmy_api_structs/src/ ./lemmy_api_structs/src/
|
||||
COPY server/lemmy_rate_limit/src/ ./lemmy_rate_limit/src/
|
||||
COPY server/migrations ./migrations/
|
||||
COPY src ./src/
|
||||
COPY lemmy_db/src ./lemmy_db/src/
|
||||
COPY lemmy_utils/src/ ./lemmy_utils/src/
|
||||
COPY lemmy_api_structs/src/ ./lemmy_api_structs/src/
|
||||
COPY lemmy_rate_limit/src/ ./lemmy_rate_limit/src/
|
||||
COPY migrations ./migrations/
|
||||
|
||||
# Build for debug
|
||||
RUN cargo build
|
||||
|
@ -62,10 +50,9 @@ RUN apk add libpq
|
|||
RUN apk add espeak
|
||||
|
||||
# Copy resources
|
||||
COPY server/config/defaults.hjson /config/defaults.hjson
|
||||
COPY config/defaults.hjson /config/defaults.hjson
|
||||
COPY --from=rust /app/server/target/x86_64-unknown-linux-musl/debug/lemmy_server /app/lemmy
|
||||
COPY --from=docs /app/docs/book/ /app/dist/documentation/
|
||||
COPY --from=node /app/ui/dist /app/dist
|
||||
COPY --from=docs /app/docs/book/ /app/documentation/
|
||||
|
||||
RUN addgroup -g 1000 lemmy
|
||||
RUN adduser -D -s /bin/sh -u 1000 -G lemmy lemmy
|
||||
|
|
11
docker/dev/docker-compose.yml
vendored
11
docker/dev/docker-compose.yml
vendored
|
@ -15,6 +15,17 @@ services:
|
|||
- pictrs
|
||||
- postgres
|
||||
- iframely
|
||||
lemmy-isomorphic-ui:
|
||||
image: dessalines/lemmy-isomorphic-ui:v0.0.6
|
||||
# image: lemmy-isomorphic-ui:latest
|
||||
ports:
|
||||
- "1235:1234"
|
||||
environment:
|
||||
- LEMMY_INTERNAL_HOST=lemmy:8536
|
||||
- LEMMY_EXTERNAL_HOST=localhost:8536
|
||||
- LEMMY_HTTPS=false
|
||||
depends_on:
|
||||
- lemmy
|
||||
|
||||
postgres:
|
||||
image: postgres:12-alpine
|
||||
|
|
2
docker/lemmy.hjson
vendored
2
docker/lemmy.hjson
vendored
|
@ -30,8 +30,6 @@
|
|||
# host where postgres is running
|
||||
host: "postgres"
|
||||
}
|
||||
# The location of the frontend
|
||||
front_end_dir: "/app/dist"
|
||||
# # optional: email sending configuration
|
||||
# email: {
|
||||
# # hostname of the smtp server
|
||||
|
|
31
docker/prod/Dockerfile
vendored
31
docker/prod/Dockerfile
vendored
|
@ -10,17 +10,17 @@ WORKDIR /app
|
|||
RUN sudo chown -R rust:rust .
|
||||
RUN USER=root cargo new server
|
||||
WORKDIR /app/server
|
||||
COPY server/Cargo.toml server/Cargo.lock ./
|
||||
COPY server/lemmy_db ./lemmy_db
|
||||
COPY server/lemmy_utils ./lemmy_utils
|
||||
COPY server/lemmy_api_structs ./lemmy_api_structs
|
||||
COPY server/lemmy_rate_limit ./lemmy_rate_limit
|
||||
COPY Cargo.toml Cargo.lock ./
|
||||
COPY lemmy_db ./lemmy_db
|
||||
COPY lemmy_utils ./lemmy_utils
|
||||
COPY lemmy_api_structs ./lemmy_api_structs
|
||||
COPY lemmy_rate_limit ./lemmy_rate_limit
|
||||
RUN mkdir -p ./src/bin \
|
||||
&& echo 'fn main() { println!("Dummy") }' > ./src/bin/main.rs
|
||||
RUN cargo build --release
|
||||
RUN find target/$CARGO_BUILD_TARGET/$RUSTRELEASEDIR -type f -name "$(echo "lemmy_server" | tr '-' '_')*" -exec touch -t 200001010000 {} +
|
||||
COPY server/src ./src/
|
||||
COPY server/migrations ./migrations/
|
||||
COPY src ./src/
|
||||
COPY migrations ./migrations/
|
||||
|
||||
# build for release
|
||||
# workaround for https://github.com/rust-lang/rust/issues/62896
|
||||
|
@ -36,18 +36,6 @@ WORKDIR /app
|
|||
COPY --chown=rust:rust docs ./docs
|
||||
RUN mdbook build docs/
|
||||
|
||||
FROM node:12-buster as node
|
||||
|
||||
WORKDIR /app/ui
|
||||
|
||||
# Cache deps
|
||||
COPY ui/package.json ui/yarn.lock ./
|
||||
RUN yarn install --pure-lockfile --network-timeout 600000
|
||||
|
||||
# Build
|
||||
COPY ui /app/ui
|
||||
RUN yarn build
|
||||
|
||||
FROM alpine:3.12 as lemmy
|
||||
|
||||
# Install libpq for postgres
|
||||
|
@ -60,10 +48,9 @@ RUN addgroup -g 1000 lemmy
|
|||
RUN adduser -D -s /bin/sh -u 1000 -G lemmy lemmy
|
||||
|
||||
# Copy resources
|
||||
COPY --chown=lemmy:lemmy server/config/defaults.hjson /config/defaults.hjson
|
||||
COPY --chown=lemmy:lemmy config/defaults.hjson /config/defaults.hjson
|
||||
COPY --chown=lemmy:lemmy --from=rust /app/server/lemmy_server /app/lemmy
|
||||
COPY --chown=lemmy:lemmy --from=docs /app/docs/book/ /app/dist/documentation/
|
||||
COPY --chown=lemmy:lemmy --from=node /app/ui/dist /app/dist
|
||||
COPY --chown=lemmy:lemmy --from=docs /app/docs/book/ /app/documentation/
|
||||
|
||||
RUN chown lemmy:lemmy /app/lemmy
|
||||
USER lemmy
|
||||
|
|
4
docker/prod/deploy.sh
vendored
4
docker/prod/deploy.sh
vendored
|
@ -13,8 +13,8 @@ third_semver=$(echo $new_tag | cut -d "." -f 3)
|
|||
# Setting the version on the front end
|
||||
cd ../../
|
||||
# Setting the version on the backend
|
||||
echo "pub const VERSION: &str = \"$new_tag\";" > "server/src/version.rs"
|
||||
git add "server/src/version.rs"
|
||||
echo "pub const VERSION: &str = \"$new_tag\";" > "src/version.rs"
|
||||
git add "src/version.rs"
|
||||
# Setting the version for Ansible
|
||||
echo $new_tag > "ansible/VERSION"
|
||||
git add "ansible/VERSION"
|
||||
|
|
12
docker/prod/docker-compose.yml
vendored
12
docker/prod/docker-compose.yml
vendored
|
@ -25,6 +25,18 @@ services:
|
|||
- pictrs
|
||||
- iframely
|
||||
|
||||
lemmy-isomorphic-ui:
|
||||
image: dessalines/lemmy-isomorphic-ui:v0.0.6
|
||||
# image: lemmy-isomorphic-ui:latest
|
||||
ports:
|
||||
- "1235:1234"
|
||||
environment:
|
||||
- LEMMY_INTERNAL_HOST=lemmy:8536
|
||||
- LEMMY_EXTERNAL_HOST=localhost:8536
|
||||
- LEMMY_HTTPS=false
|
||||
depends_on:
|
||||
- lemmy
|
||||
|
||||
pictrs:
|
||||
image: asonix/pictrs:v0.1.13-r0
|
||||
ports:
|
||||
|
|
5
docker/travis/docker-compose.yml
vendored
5
docker/travis/docker-compose.yml
vendored
|
@ -35,7 +35,6 @@ services:
|
|||
- LEMMY_HOSTNAME=lemmy-alpha:8540
|
||||
- LEMMY_DATABASE_URL=postgres://lemmy:password@postgres_alpha:5432/lemmy
|
||||
- LEMMY_JWT_SECRET=changeme
|
||||
- LEMMY_FRONT_END_DIR=/app/dist
|
||||
- LEMMY_FEDERATION__ENABLED=true
|
||||
- LEMMY_FEDERATION__TLS_ENABLED=false
|
||||
- LEMMY_FEDERATION__ALLOWED_INSTANCES=lemmy-beta,lemmy-gamma,lemmy-delta,lemmy-epsilon
|
||||
|
@ -65,7 +64,6 @@ services:
|
|||
- LEMMY_HOSTNAME=lemmy-beta:8550
|
||||
- LEMMY_DATABASE_URL=postgres://lemmy:password@postgres_beta:5432/lemmy
|
||||
- LEMMY_JWT_SECRET=changeme
|
||||
- LEMMY_FRONT_END_DIR=/app/dist
|
||||
- LEMMY_FEDERATION__ENABLED=true
|
||||
- LEMMY_FEDERATION__TLS_ENABLED=false
|
||||
- LEMMY_FEDERATION__ALLOWED_INSTANCES=lemmy-alpha,lemmy-gamma,lemmy-delta,lemmy-epsilon
|
||||
|
@ -95,7 +93,6 @@ services:
|
|||
- LEMMY_HOSTNAME=lemmy-gamma:8560
|
||||
- LEMMY_DATABASE_URL=postgres://lemmy:password@postgres_gamma:5432/lemmy
|
||||
- LEMMY_JWT_SECRET=changeme
|
||||
- LEMMY_FRONT_END_DIR=/app/dist
|
||||
- LEMMY_FEDERATION__ENABLED=true
|
||||
- LEMMY_FEDERATION__TLS_ENABLED=false
|
||||
- LEMMY_FEDERATION__ALLOWED_INSTANCES=lemmy-alpha,lemmy-beta,lemmy-delta,lemmy-epsilon
|
||||
|
@ -126,7 +123,6 @@ services:
|
|||
- LEMMY_HOSTNAME=lemmy-delta:8570
|
||||
- LEMMY_DATABASE_URL=postgres://lemmy:password@postgres_delta:5432/lemmy
|
||||
- LEMMY_JWT_SECRET=changeme
|
||||
- LEMMY_FRONT_END_DIR=/app/dist
|
||||
- LEMMY_FEDERATION__ENABLED=true
|
||||
- LEMMY_FEDERATION__TLS_ENABLED=false
|
||||
- LEMMY_FEDERATION__ALLOWED_INSTANCES=lemmy-beta
|
||||
|
@ -157,7 +153,6 @@ services:
|
|||
- LEMMY_HOSTNAME=lemmy-epsilon:8580
|
||||
- LEMMY_DATABASE_URL=postgres://lemmy:password@postgres_epsilon:5432/lemmy
|
||||
- LEMMY_JWT_SECRET=changeme
|
||||
- LEMMY_FRONT_END_DIR=/app/dist
|
||||
- LEMMY_FEDERATION__ENABLED=true
|
||||
- LEMMY_FEDERATION__TLS_ENABLED=false
|
||||
- LEMMY_FEDERATION__BLOCKED_INSTANCES=lemmy-alpha
|
||||
|
|
2
docker/travis/run-tests.sh
vendored
2
docker/travis/run-tests.sh
vendored
|
@ -12,7 +12,7 @@ sudo docker build ../../ --file ../prod/Dockerfile --tag dessalines/lemmy:travis
|
|||
|
||||
sudo docker-compose up -d
|
||||
|
||||
pushd ../../ui
|
||||
pushd ../../api_tests
|
||||
echo "Waiting for Lemmy to start..."
|
||||
while [[ "$(curl -s -o /dev/null -w '%{http_code}' 'localhost:8540/api/v1/site')" != "200" ]]; do sleep 1; done
|
||||
while [[ "$(curl -s -o /dev/null -w '%{http_code}' 'localhost:8550/api/v1/site')" != "200" ]]; do sleep 1; done
|
||||
|
|
2
docs/src/administration_configuration.md
vendored
2
docs/src/administration_configuration.md
vendored
|
@ -1,7 +1,7 @@
|
|||
# Configuration
|
||||
|
||||
The configuration is based on the file
|
||||
[defaults.hjson](https://yerbamate.dev/LemmyNet/lemmy/src/branch/main/server/config/defaults.hjson).
|
||||
[defaults.hjson](https://yerbamate.dev/LemmyNet/lemmy/src/branch/main/config/defaults.hjson).
|
||||
This file also contains documentation for all the available options. To override the defaults, you
|
||||
can copy the options you want to change into your local `config.hjson` file.
|
||||
|
||||
|
|
8
docs/src/contributing_local_development.md
vendored
8
docs/src/contributing_local_development.md
vendored
|
@ -32,18 +32,10 @@ by the `cd` command.
|
|||
|
||||
### Build the backend (Rust)
|
||||
```
|
||||
cd server
|
||||
cargo build
|
||||
# for development, use `cargo check` instead)
|
||||
```
|
||||
|
||||
### Build the frontend (Typescript)
|
||||
```
|
||||
cd ui
|
||||
yarn
|
||||
yarn build
|
||||
```
|
||||
|
||||
### Setup postgresql
|
||||
#### Ubuntu
|
||||
```
|
||||
|
|
150
docs/src/contributing_websocket_http_api.md
vendored
150
docs/src/contributing_websocket_http_api.md
vendored
|
@ -28,214 +28,222 @@
|
|||
- [Request](#request-1)
|
||||
- [Response](#response-1)
|
||||
- [HTTP](#http-2)
|
||||
+ [Get User Details](#get-user-details)
|
||||
+ [Get Captcha](#get-captcha)
|
||||
- [Request](#request-2)
|
||||
- [Response](#response-2)
|
||||
- [HTTP](#http-3)
|
||||
+ [Save User Settings](#save-user-settings)
|
||||
+ [Get User Details](#get-user-details)
|
||||
- [Request](#request-3)
|
||||
- [Response](#response-3)
|
||||
- [HTTP](#http-4)
|
||||
+ [Get Replies / Inbox](#get-replies--inbox)
|
||||
+ [Save User Settings](#save-user-settings)
|
||||
- [Request](#request-4)
|
||||
- [Response](#response-4)
|
||||
- [HTTP](#http-5)
|
||||
+ [Get User Mentions](#get-user-mentions)
|
||||
+ [Get Replies / Inbox](#get-replies--inbox)
|
||||
- [Request](#request-5)
|
||||
- [Response](#response-5)
|
||||
- [HTTP](#http-6)
|
||||
+ [Mark User Mention as read](#mark-user-mention-as-read)
|
||||
+ [Get User Mentions](#get-user-mentions)
|
||||
- [Request](#request-6)
|
||||
- [Response](#response-6)
|
||||
- [HTTP](#http-7)
|
||||
+ [Get Private Messages](#get-private-messages)
|
||||
+ [Mark User Mention as read](#mark-user-mention-as-read)
|
||||
- [Request](#request-7)
|
||||
- [Response](#response-7)
|
||||
- [HTTP](#http-8)
|
||||
+ [Create Private Message](#create-private-message)
|
||||
+ [Get Private Messages](#get-private-messages)
|
||||
- [Request](#request-8)
|
||||
- [Response](#response-8)
|
||||
- [HTTP](#http-9)
|
||||
+ [Edit Private Message](#edit-private-message)
|
||||
+ [Create Private Message](#create-private-message)
|
||||
- [Request](#request-9)
|
||||
- [Response](#response-9)
|
||||
- [HTTP](#http-10)
|
||||
+ [Delete Private Message](#delete-private-message)
|
||||
+ [Edit Private Message](#edit-private-message)
|
||||
- [Request](#request-10)
|
||||
- [Response](#response-10)
|
||||
- [HTTP](#http-11)
|
||||
+ [Mark Private Message as Read](#mark-private-message-as-read)
|
||||
+ [Delete Private Message](#delete-private-message)
|
||||
- [Request](#request-11)
|
||||
- [Response](#response-11)
|
||||
- [HTTP](#http-12)
|
||||
+ [Mark All As Read](#mark-all-as-read)
|
||||
+ [Mark Private Message as Read](#mark-private-message-as-read)
|
||||
- [Request](#request-12)
|
||||
- [Response](#response-12)
|
||||
- [HTTP](#http-13)
|
||||
+ [Delete Account](#delete-account)
|
||||
+ [Mark All As Read](#mark-all-as-read)
|
||||
- [Request](#request-13)
|
||||
- [Response](#response-13)
|
||||
- [HTTP](#http-14)
|
||||
+ [Add admin](#add-admin)
|
||||
+ [Delete Account](#delete-account)
|
||||
- [Request](#request-14)
|
||||
- [Response](#response-14)
|
||||
- [HTTP](#http-15)
|
||||
+ [Ban user](#ban-user)
|
||||
+ [Add admin](#add-admin)
|
||||
- [Request](#request-15)
|
||||
- [Response](#response-15)
|
||||
- [HTTP](#http-16)
|
||||
* [Site](#site)
|
||||
+ [List Categories](#list-categories)
|
||||
+ [Ban user](#ban-user)
|
||||
- [Request](#request-16)
|
||||
- [Response](#response-16)
|
||||
- [HTTP](#http-17)
|
||||
+ [Search](#search)
|
||||
* [Site](#site)
|
||||
+ [List Categories](#list-categories)
|
||||
- [Request](#request-17)
|
||||
- [Response](#response-17)
|
||||
- [HTTP](#http-18)
|
||||
+ [Get Modlog](#get-modlog)
|
||||
+ [Search](#search)
|
||||
- [Request](#request-18)
|
||||
- [Response](#response-18)
|
||||
- [HTTP](#http-19)
|
||||
+ [Create Site](#create-site)
|
||||
+ [Get Modlog](#get-modlog)
|
||||
- [Request](#request-19)
|
||||
- [Response](#response-19)
|
||||
- [HTTP](#http-20)
|
||||
+ [Edit Site](#edit-site)
|
||||
+ [Create Site](#create-site)
|
||||
- [Request](#request-20)
|
||||
- [Response](#response-20)
|
||||
- [HTTP](#http-21)
|
||||
+ [Get Site](#get-site)
|
||||
+ [Edit Site](#edit-site)
|
||||
- [Request](#request-21)
|
||||
- [Response](#response-21)
|
||||
- [HTTP](#http-22)
|
||||
+ [Transfer Site](#transfer-site)
|
||||
+ [Get Site](#get-site)
|
||||
- [Request](#request-22)
|
||||
- [Response](#response-22)
|
||||
- [HTTP](#http-23)
|
||||
+ [Get Site Config](#get-site-config)
|
||||
+ [Transfer Site](#transfer-site)
|
||||
- [Request](#request-23)
|
||||
- [Response](#response-23)
|
||||
- [HTTP](#http-24)
|
||||
+ [Save Site Config](#save-site-config)
|
||||
+ [Get Site Config](#get-site-config)
|
||||
- [Request](#request-24)
|
||||
- [Response](#response-24)
|
||||
- [HTTP](#http-25)
|
||||
* [Community](#community)
|
||||
+ [Get Community](#get-community)
|
||||
+ [Save Site Config](#save-site-config)
|
||||
- [Request](#request-25)
|
||||
- [Response](#response-25)
|
||||
- [HTTP](#http-26)
|
||||
+ [Create Community](#create-community)
|
||||
* [Community](#community)
|
||||
+ [Get Community](#get-community)
|
||||
- [Request](#request-26)
|
||||
- [Response](#response-26)
|
||||
- [HTTP](#http-27)
|
||||
+ [List Communities](#list-communities)
|
||||
+ [Create Community](#create-community)
|
||||
- [Request](#request-27)
|
||||
- [Response](#response-27)
|
||||
- [HTTP](#http-28)
|
||||
+ [Ban from Community](#ban-from-community)
|
||||
+ [List Communities](#list-communities)
|
||||
- [Request](#request-28)
|
||||
- [Response](#response-28)
|
||||
- [HTTP](#http-29)
|
||||
+ [Add Mod to Community](#add-mod-to-community)
|
||||
+ [Ban from Community](#ban-from-community)
|
||||
- [Request](#request-29)
|
||||
- [Response](#response-29)
|
||||
- [HTTP](#http-30)
|
||||
+ [Edit Community](#edit-community)
|
||||
+ [Add Mod to Community](#add-mod-to-community)
|
||||
- [Request](#request-30)
|
||||
- [Response](#response-30)
|
||||
- [HTTP](#http-31)
|
||||
+ [Delete Community](#delete-community)
|
||||
+ [Edit Community](#edit-community)
|
||||
- [Request](#request-31)
|
||||
- [Response](#response-31)
|
||||
- [HTTP](#http-32)
|
||||
+ [Remove Community](#remove-community)
|
||||
+ [Delete Community](#delete-community)
|
||||
- [Request](#request-32)
|
||||
- [Response](#response-32)
|
||||
- [HTTP](#http-33)
|
||||
+ [Follow Community](#follow-community)
|
||||
+ [Remove Community](#remove-community)
|
||||
- [Request](#request-33)
|
||||
- [Response](#response-33)
|
||||
- [HTTP](#http-34)
|
||||
+ [Get Followed Communities](#get-followed-communities)
|
||||
+ [Follow Community](#follow-community)
|
||||
- [Request](#request-34)
|
||||
- [Response](#response-34)
|
||||
- [HTTP](#http-35)
|
||||
+ [Transfer Community](#transfer-community)
|
||||
+ [Get Followed Communities](#get-followed-communities)
|
||||
- [Request](#request-35)
|
||||
- [Response](#response-35)
|
||||
- [HTTP](#http-36)
|
||||
* [Post](#post)
|
||||
+ [Create Post](#create-post)
|
||||
+ [Transfer Community](#transfer-community)
|
||||
- [Request](#request-36)
|
||||
- [Response](#response-36)
|
||||
- [HTTP](#http-37)
|
||||
+ [Get Post](#get-post)
|
||||
* [Post](#post)
|
||||
+ [Create Post](#create-post)
|
||||
- [Request](#request-37)
|
||||
- [Response](#response-37)
|
||||
- [HTTP](#http-38)
|
||||
+ [Get Posts](#get-posts)
|
||||
+ [Get Post](#get-post)
|
||||
- [Request](#request-38)
|
||||
- [Response](#response-38)
|
||||
- [HTTP](#http-39)
|
||||
+ [Create Post Like](#create-post-like)
|
||||
+ [Get Posts](#get-posts)
|
||||
- [Request](#request-39)
|
||||
- [Response](#response-39)
|
||||
- [HTTP](#http-40)
|
||||
+ [Edit Post](#edit-post)
|
||||
+ [Create Post Like](#create-post-like)
|
||||
- [Request](#request-40)
|
||||
- [Response](#response-40)
|
||||
- [HTTP](#http-41)
|
||||
+ [Delete Post](#delete-post)
|
||||
+ [Edit Post](#edit-post)
|
||||
- [Request](#request-41)
|
||||
- [Response](#response-41)
|
||||
- [HTTP](#http-42)
|
||||
+ [Remove Post](#remove-post)
|
||||
+ [Delete Post](#delete-post)
|
||||
- [Request](#request-42)
|
||||
- [Response](#response-42)
|
||||
- [HTTP](#http-43)
|
||||
+ [Lock Post](#lock-post)
|
||||
+ [Remove Post](#remove-post)
|
||||
- [Request](#request-43)
|
||||
- [Response](#response-43)
|
||||
- [HTTP](#http-44)
|
||||
+ [Sticky Post](#sticky-post)
|
||||
+ [Lock Post](#lock-post)
|
||||
- [Request](#request-44)
|
||||
- [Response](#response-44)
|
||||
- [HTTP](#http-45)
|
||||
+ [Save Post](#save-post)
|
||||
+ [Sticky Post](#sticky-post)
|
||||
- [Request](#request-45)
|
||||
- [Response](#response-45)
|
||||
- [HTTP](#http-46)
|
||||
* [Comment](#comment)
|
||||
+ [Create Comment](#create-comment)
|
||||
+ [Save Post](#save-post)
|
||||
- [Request](#request-46)
|
||||
- [Response](#response-46)
|
||||
- [HTTP](#http-47)
|
||||
+ [Edit Comment](#edit-comment)
|
||||
* [Comment](#comment)
|
||||
+ [Create Comment](#create-comment)
|
||||
- [Request](#request-47)
|
||||
- [Response](#response-47)
|
||||
- [HTTP](#http-48)
|
||||
+ [Delete Comment](#delete-comment)
|
||||
+ [Edit Comment](#edit-comment)
|
||||
- [Request](#request-48)
|
||||
- [Response](#response-48)
|
||||
- [HTTP](#http-49)
|
||||
+ [Remove Comment](#remove-comment)
|
||||
+ [Delete Comment](#delete-comment)
|
||||
- [Request](#request-49)
|
||||
- [Response](#response-49)
|
||||
- [HTTP](#http-50)
|
||||
+ [Mark Comment as Read](#mark-comment-as-read)
|
||||
+ [Remove Comment](#remove-comment)
|
||||
- [Request](#request-50)
|
||||
- [Response](#response-50)
|
||||
- [HTTP](#http-51)
|
||||
+ [Save Comment](#save-comment)
|
||||
+ [Get Comments](#get-comments)
|
||||
- [Request](#request-51)
|
||||
- [Response](#response-51)
|
||||
- [HTTP](#http-52)
|
||||
+ [Create Comment Like](#create-comment-like)
|
||||
+ [Mark Comment as Read](#mark-comment-as-read)
|
||||
- [Request](#request-52)
|
||||
- [Response](#response-52)
|
||||
- [HTTP](#http-53)
|
||||
+ [Save Comment](#save-comment)
|
||||
- [Request](#request-53)
|
||||
- [Response](#response-53)
|
||||
- [HTTP](#http-54)
|
||||
+ [Create Comment Like](#create-comment-like)
|
||||
- [Request](#request-54)
|
||||
- [Response](#response-54)
|
||||
- [HTTP](#http-55)
|
||||
* [RSS / Atom feeds](#rss--atom-feeds)
|
||||
+ [All](#all)
|
||||
+ [Community](#community-1)
|
||||
|
@ -1787,6 +1795,38 @@ Only a mod or admin can remove the comment.
|
|||
|
||||
`POST /comment/remove`
|
||||
|
||||
#### Get Comments
|
||||
|
||||
Comment listing types are `All, Subscribed, Community`
|
||||
|
||||
##### Request
|
||||
```rust
|
||||
{
|
||||
op: "GetComments",
|
||||
data: {
|
||||
type_: String,
|
||||
sort: String,
|
||||
page: Option<i64>,
|
||||
limit: Option<i64>,
|
||||
community_id: Option<i32>,
|
||||
community_name: Option<String>,
|
||||
auth: Option<String>
|
||||
}
|
||||
}
|
||||
```
|
||||
##### Response
|
||||
```rust
|
||||
{
|
||||
op: "GetComments",
|
||||
data: {
|
||||
comments: Vec<CommentView>,
|
||||
}
|
||||
}
|
||||
```
|
||||
##### HTTP
|
||||
|
||||
`GET /comment/list`
|
||||
|
||||
#### Mark Comment as Read
|
||||
|
||||
Only the recipient can do this.
|
||||
|
|
2
install.sh
vendored
2
install.sh
vendored
|
@ -29,7 +29,7 @@ ask_to_init_db() {
|
|||
done
|
||||
if [ "$init_db_final" = 1 ]
|
||||
then
|
||||
source ./server/db-init.sh
|
||||
source ./db-init.sh
|
||||
read -n 1 -s -r -p "Press ANY KEY to continue execution of this script, press CTRL+C to quit..."
|
||||
echo
|
||||
fi
|
||||
|
|
|
@ -68,6 +68,7 @@ pub struct GetComments {
|
|||
pub page: Option<i64>,
|
||||
pub limit: Option<i64>,
|
||||
pub community_id: Option<i32>,
|
||||
pub community_name: Option<String>,
|
||||
pub auth: Option<String>,
|
||||
}
|
||||
|
|
@ -129,3 +129,13 @@ pub struct TransferCommunity {
|
|||
pub user_id: i32,
|
||||
pub auth: String,
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Debug)]
|
||||
pub struct CommunityJoin {
|
||||
pub community_id: i32,
|
||||
}
|
||||
|
||||
#[derive(Serialize, Clone)]
|
||||
pub struct CommunityJoinResponse {
|
||||
pub joined: bool,
|
||||
}
|
|
@ -103,3 +103,13 @@ pub struct SavePost {
|
|||
pub save: bool,
|
||||
pub auth: String,
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Debug)]
|
||||
pub struct PostJoin {
|
||||
pub post_id: i32,
|
||||
}
|
||||
|
||||
#[derive(Serialize, Clone)]
|
||||
pub struct PostJoinResponse {
|
||||
pub joined: bool,
|
||||
}
|
|
@ -235,5 +235,5 @@ pub struct UserJoin {
|
|||
|
||||
#[derive(Serialize, Clone)]
|
||||
pub struct UserJoinResponse {
|
||||
pub user_id: i32,
|
||||
pub joined: bool,
|
||||
}
|
|
@ -1,7 +1,7 @@
|
|||
use crate::{schema::activity, Crud};
|
||||
use diesel::{dsl::*, result::Error, *};
|
||||
use log::debug;
|
||||
use serde::{Serialize};
|
||||
use serde::Serialize;
|
||||
use serde_json::Value;
|
||||
use std::{
|
||||
fmt::Debug,
|
|
@ -3,7 +3,7 @@ use crate::{
|
|||
Crud,
|
||||
};
|
||||
use diesel::{dsl::*, result::Error, *};
|
||||
use serde::{Serialize};
|
||||
use serde::Serialize;
|
||||
|
||||
#[derive(Queryable, Identifiable, PartialEq, Debug, Serialize)]
|
||||
#[table_name = "category"]
|
|
@ -84,9 +84,7 @@ table! {
|
|||
}
|
||||
}
|
||||
|
||||
#[derive(
|
||||
Queryable, Identifiable, PartialEq, Debug, Serialize, QueryableByName, Clone,
|
||||
)]
|
||||
#[derive(Queryable, Identifiable, PartialEq, Debug, Serialize, QueryableByName, Clone)]
|
||||
#[table_name = "comment_fast_view"]
|
||||
pub struct CommentView {
|
||||
pub id: i32,
|
||||
|
@ -132,6 +130,7 @@ pub struct CommentQueryBuilder<'a> {
|
|||
listing_type: ListingType,
|
||||
sort: &'a SortType,
|
||||
for_community_id: Option<i32>,
|
||||
for_community_name: Option<String>,
|
||||
for_post_id: Option<i32>,
|
||||
for_creator_id: Option<i32>,
|
||||
search_term: Option<String>,
|
||||
|
@ -153,6 +152,7 @@ impl<'a> CommentQueryBuilder<'a> {
|
|||
listing_type: ListingType::All,
|
||||
sort: &SortType::New,
|
||||
for_community_id: None,
|
||||
for_community_name: None,
|
||||
for_post_id: None,
|
||||
for_creator_id: None,
|
||||
search_term: None,
|
||||
|
@ -188,6 +188,11 @@ impl<'a> CommentQueryBuilder<'a> {
|
|||
self
|
||||
}
|
||||
|
||||
pub fn for_community_name<T: MaybeOptional<String>>(mut self, for_community_name: T) -> Self {
|
||||
self.for_community_name = for_community_name.get_optional();
|
||||
self
|
||||
}
|
||||
|
||||
pub fn search_term<T: MaybeOptional<String>>(mut self, search_term: T) -> Self {
|
||||
self.search_term = search_term.get_optional();
|
||||
self
|
||||
|
@ -233,6 +238,10 @@ impl<'a> CommentQueryBuilder<'a> {
|
|||
query = query.filter(community_id.eq(for_community_id));
|
||||
}
|
||||
|
||||
if let Some(for_community_name) = self.for_community_name {
|
||||
query = query.filter(community_name.eq(for_community_name));
|
||||
}
|
||||
|
||||
if let Some(for_post_id) = self.for_post_id {
|
||||
query = query.filter(post_id.eq(for_post_id));
|
||||
};
|
|
@ -123,9 +123,7 @@ table! {
|
|||
}
|
||||
}
|
||||
|
||||
#[derive(
|
||||
Queryable, Identifiable, PartialEq, Debug, Serialize, QueryableByName, Clone,
|
||||
)]
|
||||
#[derive(Queryable, Identifiable, PartialEq, Debug, Serialize, QueryableByName, Clone)]
|
||||
#[table_name = "community_fast_view"]
|
||||
pub struct CommunityView {
|
||||
pub id: i32,
|
|
@ -1,6 +1,6 @@
|
|||
use crate::limit_and_offset;
|
||||
use diesel::{result::Error, *};
|
||||
use serde::{Serialize};
|
||||
use serde::Serialize;
|
||||
|
||||
table! {
|
||||
mod_remove_post_view (id) {
|
||||
|
@ -17,9 +17,7 @@ table! {
|
|||
}
|
||||
}
|
||||
|
||||
#[derive(
|
||||
Queryable, Identifiable, PartialEq, Debug, Serialize, QueryableByName, Clone,
|
||||
)]
|
||||
#[derive(Queryable, Identifiable, PartialEq, Debug, Serialize, QueryableByName, Clone)]
|
||||
#[table_name = "mod_remove_post_view"]
|
||||
pub struct ModRemovePostView {
|
||||
pub id: i32,
|
||||
|
@ -77,9 +75,7 @@ table! {
|
|||
}
|
||||
}
|
||||
|
||||
#[derive(
|
||||
Queryable, Identifiable, PartialEq, Debug, Serialize, QueryableByName, Clone,
|
||||
)]
|
||||
#[derive(Queryable, Identifiable, PartialEq, Debug, Serialize, QueryableByName, Clone)]
|
||||
#[table_name = "mod_lock_post_view"]
|
||||
pub struct ModLockPostView {
|
||||
pub id: i32,
|
||||
|
@ -136,9 +132,7 @@ table! {
|
|||
}
|
||||
}
|
||||
|
||||
#[derive(
|
||||
Queryable, Identifiable, PartialEq, Debug, Serialize, QueryableByName, Clone,
|
||||
)]
|
||||
#[derive(Queryable, Identifiable, PartialEq, Debug, Serialize, QueryableByName, Clone)]
|
||||
#[table_name = "mod_sticky_post_view"]
|
||||
pub struct ModStickyPostView {
|
||||
pub id: i32,
|
||||
|
@ -200,9 +194,7 @@ table! {
|
|||
}
|
||||
}
|
||||
|
||||
#[derive(
|
||||
Queryable, Identifiable, PartialEq, Debug, Serialize, QueryableByName, Clone,
|
||||
)]
|
||||
#[derive(Queryable, Identifiable, PartialEq, Debug, Serialize, QueryableByName, Clone)]
|
||||
#[table_name = "mod_remove_comment_view"]
|
||||
pub struct ModRemoveCommentView {
|
||||
pub id: i32,
|
||||
|
@ -264,9 +256,7 @@ table! {
|
|||
}
|
||||
}
|
||||
|
||||
#[derive(
|
||||
Queryable, Identifiable, PartialEq, Debug, Serialize, QueryableByName, Clone,
|
||||
)]
|
||||
#[derive(Queryable, Identifiable, PartialEq, Debug, Serialize, QueryableByName, Clone)]
|
||||
#[table_name = "mod_remove_community_view"]
|
||||
pub struct ModRemoveCommunityView {
|
||||
pub id: i32,
|
||||
|
@ -320,9 +310,7 @@ table! {
|
|||
}
|
||||
}
|
||||
|
||||
#[derive(
|
||||
Queryable, Identifiable, PartialEq, Debug, Serialize, QueryableByName, Clone,
|
||||
)]
|
||||
#[derive(Queryable, Identifiable, PartialEq, Debug, Serialize, QueryableByName, Clone)]
|
||||
#[table_name = "mod_ban_from_community_view"]
|
||||
pub struct ModBanFromCommunityView {
|
||||
pub id: i32,
|
||||
|
@ -381,9 +369,7 @@ table! {
|
|||
}
|
||||
}
|
||||
|
||||
#[derive(
|
||||
Queryable, Identifiable, PartialEq, Debug, Serialize, QueryableByName, Clone,
|
||||
)]
|
||||
#[derive(Queryable, Identifiable, PartialEq, Debug, Serialize, QueryableByName, Clone)]
|
||||
#[table_name = "mod_ban_view"]
|
||||
pub struct ModBanView {
|
||||
pub id: i32,
|
||||
|
@ -435,9 +421,7 @@ table! {
|
|||
}
|
||||
}
|
||||
|
||||
#[derive(
|
||||
Queryable, Identifiable, PartialEq, Debug, Serialize, QueryableByName, Clone,
|
||||
)]
|
||||
#[derive(Queryable, Identifiable, PartialEq, Debug, Serialize, QueryableByName, Clone)]
|
||||
#[table_name = "mod_add_community_view"]
|
||||
pub struct ModAddCommunityView {
|
||||
pub id: i32,
|
||||
|
@ -492,9 +476,7 @@ table! {
|
|||
}
|
||||
}
|
||||
|
||||
#[derive(
|
||||
Queryable, Identifiable, PartialEq, Debug, Serialize, QueryableByName, Clone,
|
||||
)]
|
||||
#[derive(Queryable, Identifiable, PartialEq, Debug, Serialize, QueryableByName, Clone)]
|
||||
#[table_name = "mod_add_view"]
|
||||
pub struct ModAddView {
|
||||
pub id: i32,
|
|
@ -1,7 +1,7 @@
|
|||
use super::post_view::post_fast_view::BoxedQuery;
|
||||
use crate::{fuzzy_search, limit_and_offset, ListingType, MaybeOptional, SortType};
|
||||
use diesel::{dsl::*, pg::Pg, result::Error, *};
|
||||
use serde::{Serialize};
|
||||
use serde::Serialize;
|
||||
|
||||
// The faked schema since diesel doesn't do views
|
||||
table! {
|
||||
|
@ -106,9 +106,7 @@ table! {
|
|||
}
|
||||
}
|
||||
|
||||
#[derive(
|
||||
Queryable, Identifiable, PartialEq, Debug, Serialize, QueryableByName, Clone,
|
||||
)]
|
||||
#[derive(Queryable, Identifiable, PartialEq, Debug, Serialize, QueryableByName, Clone)]
|
||||
#[table_name = "post_fast_view"]
|
||||
pub struct PostView {
|
||||
pub id: i32,
|
|
@ -1,6 +1,6 @@
|
|||
use crate::{limit_and_offset, MaybeOptional};
|
||||
use diesel::{pg::Pg, result::Error, *};
|
||||
use serde::{Serialize};
|
||||
use serde::Serialize;
|
||||
|
||||
// The faked schema since diesel doesn't do views
|
||||
table! {
|
||||
|
@ -28,9 +28,7 @@ table! {
|
|||
}
|
||||
}
|
||||
|
||||
#[derive(
|
||||
Queryable, Identifiable, PartialEq, Debug, Serialize, QueryableByName, Clone,
|
||||
)]
|
||||
#[derive(Queryable, Identifiable, PartialEq, Debug, Serialize, QueryableByName, Clone)]
|
||||
#[table_name = "private_message_view"]
|
||||
pub struct PrivateMessageView {
|
||||
pub id: i32,
|
|
@ -1,5 +1,5 @@
|
|||
use diesel::{result::Error, *};
|
||||
use serde::{Serialize};
|
||||
use serde::Serialize;
|
||||
|
||||
table! {
|
||||
site_view (id) {
|
||||
|
@ -24,9 +24,7 @@ table! {
|
|||
}
|
||||
}
|
||||
|
||||
#[derive(
|
||||
Queryable, Identifiable, PartialEq, Debug, Serialize, QueryableByName, Clone,
|
||||
)]
|
||||
#[derive(Queryable, Identifiable, PartialEq, Debug, Serialize, QueryableByName, Clone)]
|
||||
#[table_name = "site_view"]
|
||||
pub struct SiteView {
|
||||
pub id: i32,
|
|
@ -6,7 +6,7 @@ use crate::{
|
|||
};
|
||||
use bcrypt::{hash, DEFAULT_COST};
|
||||
use diesel::{dsl::*, result::Error, *};
|
||||
use serde::{Serialize};
|
||||
use serde::Serialize;
|
||||
|
||||
#[derive(Clone, Queryable, Identifiable, PartialEq, Debug, Serialize)]
|
||||
#[table_name = "user_"]
|
|
@ -1,6 +1,6 @@
|
|||
use crate::{limit_and_offset, MaybeOptional, SortType};
|
||||
use diesel::{dsl::*, pg::Pg, result::Error, *};
|
||||
use serde::{Serialize};
|
||||
use serde::Serialize;
|
||||
|
||||
// The faked schema since diesel doesn't do views
|
||||
table! {
|
||||
|
@ -83,9 +83,7 @@ table! {
|
|||
}
|
||||
}
|
||||
|
||||
#[derive(
|
||||
Queryable, Identifiable, PartialEq, Debug, Serialize, QueryableByName, Clone,
|
||||
)]
|
||||
#[derive(Queryable, Identifiable, PartialEq, Debug, Serialize, QueryableByName, Clone)]
|
||||
#[table_name = "user_mention_fast_view"]
|
||||
pub struct UserMentionView {
|
||||
pub id: i32,
|
|
@ -1,7 +1,7 @@
|
|||
use super::user_view::user_fast::BoxedQuery;
|
||||
use crate::{fuzzy_search, limit_and_offset, MaybeOptional, SortType};
|
||||
use diesel::{dsl::*, pg::Pg, result::Error, *};
|
||||
use serde::{Serialize};
|
||||
use serde::Serialize;
|
||||
|
||||
table! {
|
||||
user_view (id) {
|
||||
|
@ -51,9 +51,7 @@ table! {
|
|||
}
|
||||
}
|
||||
|
||||
#[derive(
|
||||
Queryable, Identifiable, PartialEq, Debug, Serialize, QueryableByName, Clone,
|
||||
)]
|
||||
#[derive(Queryable, Identifiable, PartialEq, Debug, Serialize, QueryableByName, Clone)]
|
||||
#[table_name = "user_fast"]
|
||||
pub struct UserView {
|
||||
pub id: i32,
|
|
@ -13,7 +13,6 @@ pub struct Settings {
|
|||
pub bind: IpAddr,
|
||||
pub port: u16,
|
||||
pub jwt_secret: String,
|
||||
pub front_end_dir: String,
|
||||
pub pictrs_url: String,
|
||||
pub rate_limit: RateLimitConfig,
|
||||
pub email: Option<EmailConfig>,
|
||||
|
@ -88,7 +87,7 @@ impl Settings {
|
|||
/// added to the config.
|
||||
///
|
||||
/// Note: The env var `LEMMY_DATABASE_URL` is parsed in
|
||||
/// `server/lemmy_db/src/lib.rs::get_database_url_from_env()`
|
||||
/// `lemmy_db/src/lib.rs::get_database_url_from_env()`
|
||||
fn init() -> Result<Self, ConfigError> {
|
||||
let mut s = Config::new();
|
||||
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue