-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1 from bmrlab/dev
init
- Loading branch information
Showing
58 changed files
with
1,112 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
[alias] | ||
loco = "run --" | ||
playground = "run --example playground" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
POSTGRES_DB=loco_app | ||
POSTGRES_USER=loco | ||
POSTGRES_PASSWORD=loco | ||
DATABASE_URL=postgres://loco:loco@db:5432/loco_app | ||
REDIS_URL=redis://redis:6379 | ||
MAILER_HOST=mailer |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
FROM mcr.microsoft.com/vscode/devcontainers/rust:0-1 | ||
|
||
RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \ | ||
&& apt-get -y install --no-install-recommends postgresql-client \ | ||
&& cargo install sea-orm-cli cargo-insta \ | ||
&& chown -R vscode /usr/local/cargo | ||
|
||
COPY .env /.env |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
{ | ||
"name": "Loco", | ||
"dockerComposeFile": "docker-compose.yml", | ||
"service": "app", | ||
"workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}", | ||
"forwardPorts": [ | ||
3000 | ||
] | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
version: "3" | ||
|
||
services: | ||
app: | ||
build: | ||
context: . | ||
dockerfile: Dockerfile | ||
command: sleep infinity | ||
networks: | ||
- db | ||
- redis | ||
- mailer | ||
volumes: | ||
- ../..:/workspaces:cached | ||
env_file: | ||
- .env | ||
db: | ||
image: postgres:15.3-alpine | ||
restart: unless-stopped | ||
ports: | ||
- 5432:5432 | ||
networks: | ||
- db | ||
volumes: | ||
- postgres-data:/var/lib/postgresql/data | ||
env_file: | ||
- .env | ||
redis: | ||
image: redis:latest | ||
restart: unless-stopped | ||
ports: | ||
- 6379:6379 | ||
networks: | ||
- redis | ||
mailer: | ||
image: mailtutan/mailtutan:latest | ||
restart: unless-stopped | ||
ports: | ||
- 1080:1080 | ||
- 1025:1025 | ||
networks: | ||
- mailer | ||
|
||
volumes: | ||
postgres-data: | ||
|
||
networks: | ||
db: | ||
redis: | ||
mailer: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,107 @@ | ||
name: CI | ||
on: | ||
push: | ||
branches: | ||
- master | ||
- main | ||
pull_request: | ||
|
||
env: | ||
RUST_TOOLCHAIN: stable | ||
TOOLCHAIN_PROFILE: minimal | ||
|
||
jobs: | ||
rustfmt: | ||
name: Check Style | ||
runs-on: ubuntu-latest | ||
|
||
permissions: | ||
contents: read | ||
|
||
steps: | ||
- name: Checkout the code | ||
uses: actions/checkout@v4 | ||
- uses: actions-rs/toolchain@v1 | ||
with: | ||
profile: ${{ env.TOOLCHAIN_PROFILE }} | ||
toolchain: ${{ env.RUST_TOOLCHAIN }} | ||
override: true | ||
components: rustfmt | ||
- name: Run cargo fmt | ||
uses: actions-rs/cargo@v1 | ||
with: | ||
command: fmt | ||
args: --all -- --check | ||
|
||
clippy: | ||
name: Run Clippy | ||
runs-on: ubuntu-latest | ||
|
||
permissions: | ||
contents: read | ||
|
||
steps: | ||
- name: Checkout the code | ||
uses: actions/checkout@v4 | ||
- uses: actions-rs/toolchain@v1 | ||
with: | ||
profile: ${{ env.TOOLCHAIN_PROFILE }} | ||
toolchain: ${{ env.RUST_TOOLCHAIN }} | ||
override: true | ||
- name: Setup Rust cache | ||
uses: Swatinem/rust-cache@v2 | ||
- name: Run cargo clippy | ||
uses: actions-rs/cargo@v1 | ||
with: | ||
command: clippy | ||
args: --all-features -- -D warnings -W clippy::pedantic -W clippy::nursery -W rust-2018-idioms | ||
|
||
test: | ||
name: Run Tests | ||
runs-on: ubuntu-latest | ||
|
||
permissions: | ||
contents: read | ||
|
||
services: | ||
redis: | ||
image: redis | ||
options: >- | ||
--health-cmd "redis-cli ping" | ||
--health-interval 10s | ||
--health-timeout 5s | ||
--health-retries 5 | ||
ports: | ||
- "6379:6379" | ||
postgres: | ||
image: postgres | ||
env: | ||
POSTGRES_DB: postgress_test | ||
POSTGRES_USER: postgress | ||
POSTGRES_PASSWORD: postgress | ||
ports: | ||
- "5432:5432" | ||
# Set health checks to wait until postgres has started | ||
options: --health-cmd pg_isready | ||
--health-interval 10s | ||
--health-timeout 5s | ||
--health-retries 5 | ||
|
||
steps: | ||
- name: Checkout the code | ||
uses: actions/checkout@v4 | ||
- uses: actions-rs/toolchain@v1 | ||
with: | ||
profile: ${{ env.TOOLCHAIN_PROFILE }} | ||
toolchain: ${{ env.RUST_TOOLCHAIN }} | ||
override: true | ||
- name: Setup Rust cache | ||
uses: Swatinem/rust-cache@v2 | ||
- name: Run cargo test | ||
uses: actions-rs/cargo@v1 | ||
with: | ||
command: test | ||
args: --all-features --all | ||
env: | ||
REDIS_URL: redis://localhost:${{job.services.redis.ports[6379]}} | ||
DATABASE_URL: postgres://postgress:postgress@localhost:5432/postgress_test |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
**/config/local.yaml | ||
**/config/*.local.yaml | ||
|
||
# Generated by Cargo | ||
# will have compiled files and executables | ||
debug/ | ||
target/ | ||
|
||
# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries | ||
# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html | ||
Cargo.lock | ||
|
||
# These are backup files generated by rustfmt | ||
**/*.rs.bk | ||
|
||
# MSVC Windows builds of rustc generate these, which store debugging information | ||
*.pdb |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
max_width = 100 | ||
comment_width = 80 | ||
wrap_comments = true | ||
imports_granularity = "Crate" | ||
use_small_heuristics = "Default" | ||
group_imports = "StdExternalCrate" | ||
format_strings = true |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
[workspace] | ||
|
||
[package] | ||
name = "muse_integrator" | ||
version = "0.1.0" | ||
edition = "2021" | ||
|
||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html | ||
|
||
[dependencies] | ||
|
||
loco-rs = { version = "0.3.1" } | ||
migration = { path = "migration" } | ||
|
||
serde = { version = "1", features = ["derive"] } | ||
serde_json = "1" | ||
eyre = "0.6" | ||
tokio = { version = "1.33.0", default-features = false } | ||
async-trait = "0.1.74" | ||
tracing = "0.1.40" | ||
chrono = "0.4" | ||
validator = { version = "0.16" } | ||
sea-orm = { version = "1.0.0-rc.1", features = [ | ||
"sqlx-sqlite", | ||
"sqlx-postgres", | ||
"runtime-tokio-rustls", | ||
"macros", | ||
] } | ||
|
||
axum = "0.7.1" | ||
include_dir = "0.7" | ||
uuid = { version = "1.6.0", features = ["v4"] } | ||
tracing-subscriber = { version = "0.3.17", features = ["env-filter", "json"] } | ||
|
||
[[bin]] | ||
name = "muse_integrator-cli" | ||
path = "src/bin/main.rs" | ||
required-features = [] | ||
|
||
[dev-dependencies] | ||
serial_test = "2.0.0" | ||
rstest = "0.18.2" | ||
loco-rs = { version = "0.3.1", features = ["testing"] } | ||
insta = { version = "1.34.0", features = ["redactions", "yaml", "filters"] } |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,3 @@ | ||
# muse-integrator | ||
|
||
积分账户模块中的积分交易处理,账单信息模块 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,122 @@ | ||
# Loco configuration file documentation | ||
|
||
# Application logging configuration | ||
logger: | ||
# Enable or disable logging. | ||
enable: true | ||
# Enable pretty backtrace (sets RUST_BACKTRACE=1) | ||
pretty_backtrace: true | ||
# Log level, options: trace, debug, info, warn or error. | ||
level: debug | ||
# Define the logging format. options: compact, pretty or Json | ||
format: compact | ||
# By default the logger has filtering only logs that came from your code or logs that came from `loco` framework. to see all third party libraries | ||
# Uncomment the line below to override to see all third party libraries you can enable this config and override the logger filters. | ||
# override_filter: trace | ||
|
||
# Web server configuration | ||
server: | ||
# Port on which the server will listen. the server binding is 0.0.0.0:{PORT} | ||
port: 3000 | ||
# The UI hostname or IP address that mailers will point to. | ||
host: http://localhost | ||
# Out of the box middleware configuration. to disable middleware you can changed the `enable` field to `false` of comment the middleware block | ||
middlewares: | ||
# Enable Etag cache header middleware | ||
etag: | ||
enable: true | ||
# Allows to limit the payload size request. payload that bigger than this file will blocked the request. | ||
limit_payload: | ||
# Enable/Disable the middleware. | ||
enable: true | ||
# the limit size. can be b,kb,kib,mb,mib,gb,gib | ||
body_limit: 5mb | ||
# Generating a unique request ID and enhancing logging with additional information such as the start and completion of request processing, latency, status code, and other request details. | ||
logger: | ||
# Enable/Disable the middleware. | ||
enable: true | ||
# when your code is panicked, the request still returns 500 status code. | ||
catch_panic: | ||
# Enable/Disable the middleware. | ||
enable: true | ||
# Timeout for incoming requests middleware. requests that take more time from the configuration will cute and 408 status code will returned. | ||
timeout_request: | ||
# Enable/Disable the middleware. | ||
enable: false | ||
# Duration time in milliseconds. | ||
timeout: 5000 | ||
cors: | ||
enable: true | ||
# Set the value of the [`Access-Control-Allow-Origin`][mdn] header | ||
# allow_origins: | ||
# - https://loco.rs | ||
# Set the value of the [`Access-Control-Allow-Headers`][mdn] header | ||
# allow_headers: | ||
# - Content-Type | ||
# Set the value of the [`Access-Control-Allow-Methods`][mdn] header | ||
# allow_methods: | ||
# - POST | ||
# Set the value of the [`Access-Control-Max-Age`][mdn] header in seconds | ||
# max_age: 3600 | ||
|
||
# Worker Configuration | ||
workers: | ||
# specifies the worker mode. Options: | ||
# - BackgroundQueue - Workers operate asynchronously in the background, processing queued. | ||
# - ForegroundBlocking - Workers operate in the foreground and block until tasks are completed. | ||
# - BackgroundAsync - Workers operate asynchronously in the background, processing tasks with async capabilities. | ||
mode: BackgroundQueue | ||
|
||
# Mailer Configuration. | ||
mailer: | ||
# SMTP mailer configuration. | ||
smtp: | ||
# Enable/Disable smtp mailer. | ||
enable: true | ||
# SMTP server host. e.x localhost, smtp.gmail.com | ||
host: {{ get_env(name="MAILER_HOST", default="localhost") }} | ||
# SMTP server port | ||
port: 1025 | ||
# Use secure connection (SSL/TLS). | ||
secure: false | ||
# auth: | ||
# user: | ||
# password: | ||
|
||
# Database Configuration | ||
database: | ||
# Database connection URI | ||
uri: {{ get_env(name="DATABASE_URL", default="mysql://root:123456@localhost:3306/muse_integrator") }} | ||
# When enabled, the sql query will be logged. | ||
enable_logging: false | ||
# Set the timeout duration when acquiring a connection. | ||
connect_timeout: 500 | ||
# Set the idle duration before closing a connection. | ||
idle_timeout: 500 | ||
# Minimum number of connections for a pool. | ||
min_connections: 1 | ||
# Maximum number of connections for a pool. | ||
max_connections: 1 | ||
# Run migration up when application loaded | ||
auto_migrate: true | ||
# Truncate database when application loaded. This is a dangerous operation, make sure that you using this flag only on dev environments or test mode | ||
dangerously_truncate: false | ||
# Recreating schema when application loaded. This is a dangerous operation, make sure that you using this flag only on dev environments or test mode | ||
dangerously_recreate: false | ||
|
||
# Redis Configuration | ||
redis: | ||
# Redis connection URI | ||
uri: {{ get_env(name="REDIS_URL", default="redis://127.0.0.1") }} | ||
# Dangerously flush all data in Redis on startup. dangerous operation, make sure that you using this flag only on dev environments or test mode | ||
dangerously_flush: false | ||
|
||
# Authentication Configuration | ||
auth: | ||
# JWT authentication | ||
jwt: | ||
# Secret key for token generation and verification | ||
secret: 6m0Zspduvb2gozN49CP6 | ||
# Token expiration time in seconds | ||
expiration: 604800 # 7 days | ||
|
Empty file.
Oops, something went wrong.