diff --git a/.env.docker.sample b/.env.docker.sample index 62bc552..49d49ea 100644 --- a/.env.docker.sample +++ b/.env.docker.sample @@ -1,6 +1,6 @@ JWT_SECRET=NULqYIzgt28bTiyziCd7IOO7b6LnWDW! -DB_MAIN_NAME=textsender_db -DB_MAIN_USER=textsender +DB_MAIN_NAME=schedtxt_db +DB_MAIN_USER=schedtxt DB_MAIN_PASSWORD=password DB_MAIN_HOST=main_db DB_MAIN_PORT=5432 @@ -10,5 +10,5 @@ TWILIO_AUTH_SID=9M438C93R943U4329MCU43C34U TWILIO_SERVICE_SID=9M4J3X8439U398NUVT3342MC349C348T TWILIO_AUTH_TOKEN="MA08HJp9tYtkfs72m8JIIROofRVm74oR0ixEYBHGYpB9" TWILIO_PHONE_NUMBER=+10123456789 -ALLOWED_ORIGINS="http://textsender.com,http://localhost:5173,http://localhost:9080,http://localhost:9081" +ALLOWED_ORIGINS="http://schedtxt.com,http://localhost:5173,http://localhost:9080,http://localhost:9081" APP_ENV=production diff --git a/.env.local.sample b/.env.local.sample index 492efa4..aeb547a 100644 --- a/.env.local.sample +++ b/.env.local.sample @@ -1,6 +1,6 @@ JWT_SECRET=NULqYIzgt28bTiyziCd7IOO7b6LnWDW! -DB_MAIN_NAME=textsender_db -DB_MAIN_USER=textsender +DB_MAIN_NAME=schedtxt_db +DB_MAIN_USER=schedtxt DB_MAIN_PASSWORD=password DB_MAIN_HOST=localhost DB_MAIN_PORT=5432 @@ -10,5 +10,5 @@ TWILIO_AUTH_SID=9M438C93R943U4329MCU43C34U TWILIO_SERVICE_SID=9M4J3X8439U398NUVT3342MC349C348T TWILIO_AUTH_TOKEN="MA08HJp9tYtkfs72m8JIIROofRVm74oR0ixEYBHGYpB9" TWILIO_PHONE_NUMBER=+10123456789 -ALLOWED_ORIGINS="http://textsender.com,http://localhost:5173,http://localhost:9080,http://localhost:9081" +ALLOWED_ORIGINS="http://schedtxt.com,http://localhost:5173,http://localhost:9080,http://localhost:9081" APP_ENV=production diff --git a/.gitea/workflows/pr.yml b/.gitea/workflows/pr.yml index fdb429b..77502a9 100644 --- a/.gitea/workflows/pr.yml +++ b/.gitea/workflows/pr.yml @@ -1,4 +1,4 @@ -name: textsender_api PR +name: schedtxt_api PR on: pull_request: @@ -21,12 +21,12 @@ jobs: - uses: Swatinem/rust-cache@v2 - run: | mkdir -p ~/.ssh - echo "${{ secrets.MYREPO_TOKEN }}" > ~/.ssh/textsender-models_deploy_key - chmod 600 ~/.ssh/textsender-models_deploy_key + echo "${{ secrets.MYREPO_TOKEN }}" > ~/.ssh/schedtxt-models_deploy_key + chmod 600 ~/.ssh/schedtxt-models_deploy_key ssh-keyscan ${{ secrets.MY_HOST }} >> ~/.ssh/known_hosts eval $(ssh-agent -s) - ssh-add -v ~/.ssh/textsender-models_deploy_key + ssh-add -v ~/.ssh/schedtxt-models_deploy_key cargo check @@ -42,12 +42,12 @@ jobs: - uses: Swatinem/rust-cache@v2 - run: | mkdir -p ~/.ssh - echo "${{ secrets.MYREPO_TOKEN }}" > ~/.ssh/textsender-models_deploy_key - chmod 600 ~/.ssh/textsender-models_deploy_key + echo "${{ secrets.MYREPO_TOKEN }}" > ~/.ssh/schedtxt-models_deploy_key + chmod 600 ~/.ssh/schedtxt-models_deploy_key ssh-keyscan ${{ secrets.MY_HOST }} >> ~/.ssh/known_hosts eval $(ssh-agent -s) - ssh-add -v ~/.ssh/textsender-models_deploy_key + ssh-add -v ~/.ssh/schedtxt-models_deploy_key cargo fmt --all -- --check clippy: @@ -62,10 +62,10 @@ jobs: - uses: Swatinem/rust-cache@v2 - run: | mkdir -p ~/.ssh - echo "${{ secrets.MYREPO_TOKEN }}" > ~/.ssh/textsender-models_deploy_key - chmod 600 ~/.ssh/textsender-models_deploy_key + echo "${{ secrets.MYREPO_TOKEN }}" > ~/.ssh/schedtxt-models_deploy_key + chmod 600 ~/.ssh/schedtxt-models_deploy_key ssh-keyscan ${{ secrets.MY_HOST }} >> ~/.ssh/known_hosts eval $(ssh-agent -s) - ssh-add -v ~/.ssh/textsender-models_deploy_key + ssh-add -v ~/.ssh/schedtxt-models_deploy_key cargo clippy -- -D warnings diff --git a/.gitea/workflows/tests.yml b/.gitea/workflows/tests.yml index 9aa1477..997aed1 100644 --- a/.gitea/workflows/tests.yml +++ b/.gitea/workflows/tests.yml @@ -1,4 +1,4 @@ -name: textsender_api Test +name: schedtxt_api Test on: pull_request: @@ -61,12 +61,12 @@ jobs: ENABLE_REGISTRATION: 'TRUE' run: | mkdir -p ~/.ssh - echo "${{ secrets.MYREPO_TOKEN }}" > ~/.ssh/textsender-models_deploy_key - chmod 600 ~/.ssh/textsender-models_deploy_key + echo "${{ secrets.MYREPO_TOKEN }}" > ~/.ssh/schedtxt-models_deploy_key + chmod 600 ~/.ssh/schedtxt-models_deploy_key ssh-keyscan ${{ secrets.MY_HOST }} >> ~/.ssh/known_hosts eval $(ssh-agent -s) - ssh-add -v ~/.ssh/textsender-models_deploy_key + ssh-add -v ~/.ssh/schedtxt-models_deploy_key cargo test @@ -82,10 +82,10 @@ jobs: - uses: Swatinem/rust-cache@v2 - run: | mkdir -p ~/.ssh - echo "${{ secrets.MYREPO_TOKEN }}" > ~/.ssh/textsender-models_deploy_key - chmod 600 ~/.ssh/textsender-models_deploy_key + echo "${{ secrets.MYREPO_TOKEN }}" > ~/.ssh/schedtxt-models_deploy_key + chmod 600 ~/.ssh/schedtxt-models_deploy_key ssh-keyscan ${{ secrets.MY_HOST }} >> ~/.ssh/known_hosts eval $(ssh-agent -s) - ssh-add -v ~/.ssh/textsender-models_deploy_key + ssh-add -v ~/.ssh/schedtxt-models_deploy_key cargo fmt --all -- --check diff --git a/.gitea/workflows/workflow.yml b/.gitea/workflows/workflow.yml index 13621fc..8a06bb9 100644 --- a/.gitea/workflows/workflow.yml +++ b/.gitea/workflows/workflow.yml @@ -1,4 +1,4 @@ -name: textsender_api Build +name: schedtxt_api Build on: push: @@ -22,12 +22,12 @@ jobs: - uses: Swatinem/rust-cache@v2 - run: | mkdir -p ~/.ssh - echo "${{ secrets.MYREPO_TOKEN }}" > ~/.ssh/textsender-models_deploy_key - chmod 600 ~/.ssh/textsender-models_deploy_key + echo "${{ secrets.MYREPO_TOKEN }}" > ~/.ssh/schedtxt-models_deploy_key + chmod 600 ~/.ssh/schedtxt-models_deploy_key ssh-keyscan ${{ secrets.MY_HOST }} >> ~/.ssh/known_hosts eval $(ssh-agent -s) - ssh-add -v ~/.ssh/textsender-models_deploy_key + ssh-add -v ~/.ssh/schedtxt-models_deploy_key cargo check @@ -81,12 +81,12 @@ jobs: ENABLE_REGISTRATION: 'TRUE' run: | mkdir -p ~/.ssh - echo "${{ secrets.MYREPO_TOKEN }}" > ~/.ssh/textsender-models_deploy_key - chmod 600 ~/.ssh/textsender-models_deploy_key + echo "${{ secrets.MYREPO_TOKEN }}" > ~/.ssh/schedtxt-models_deploy_key + chmod 600 ~/.ssh/schedtxt-models_deploy_key ssh-keyscan ${{ secrets.MY_HOST }} >> ~/.ssh/known_hosts eval $(ssh-agent -s) - ssh-add -v ~/.ssh/textsender-models_deploy_key + ssh-add -v ~/.ssh/schedtxt-models_deploy_key cargo test @@ -102,12 +102,12 @@ jobs: - uses: Swatinem/rust-cache@v2 - run: | mkdir -p ~/.ssh - echo "${{ secrets.MYREPO_TOKEN }}" > ~/.ssh/textsender-models_deploy_key - chmod 600 ~/.ssh/textsender-models_deploy_key + echo "${{ secrets.MYREPO_TOKEN }}" > ~/.ssh/schedtxt-models_deploy_key + chmod 600 ~/.ssh/schedtxt-models_deploy_key ssh-keyscan ${{ secrets.MY_HOST }} >> ~/.ssh/known_hosts eval $(ssh-agent -s) - ssh-add -v ~/.ssh/textsender-models_deploy_key + ssh-add -v ~/.ssh/schedtxt-models_deploy_key cargo fmt --all -- --check clippy: @@ -122,12 +122,12 @@ jobs: - uses: Swatinem/rust-cache@v2 - run: | mkdir -p ~/.ssh - echo "${{ secrets.MYREPO_TOKEN }}" > ~/.ssh/textsender-models_deploy_key - chmod 600 ~/.ssh/textsender-models_deploy_key + echo "${{ secrets.MYREPO_TOKEN }}" > ~/.ssh/schedtxt-models_deploy_key + chmod 600 ~/.ssh/schedtxt-models_deploy_key ssh-keyscan ${{ secrets.MY_HOST }} >> ~/.ssh/known_hosts eval $(ssh-agent -s) - ssh-add -v ~/.ssh/textsender-models_deploy_key + ssh-add -v ~/.ssh/schedtxt-models_deploy_key cargo clippy -- -D warnings build: @@ -141,10 +141,10 @@ jobs: - uses: Swatinem/rust-cache@v2 - run: | mkdir -p ~/.ssh - echo "${{ secrets.MYREPO_TOKEN }}" > ~/.ssh/textsender-models_deploy_key - chmod 600 ~/.ssh/textsender-models_deploy_key + echo "${{ secrets.MYREPO_TOKEN }}" > ~/.ssh/schedtxt-models_deploy_key + chmod 600 ~/.ssh/schedtxt-models_deploy_key ssh-keyscan ${{ secrets.MY_HOST }} >> ~/.ssh/known_hosts eval $(ssh-agent -s) - ssh-add -v ~/.ssh/textsender-models_deploy_key + ssh-add -v ~/.ssh/schedtxt-models_deploy_key cargo build --release diff --git a/Cargo.lock b/Cargo.lock index b0a1aff..d2533b4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -228,9 +228,9 @@ checksum = "fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04" [[package]] name = "cc" -version = "1.2.66" +version = "1.2.67" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5d6cac793997bd970000024b2934968efe83b382de4fdcf4fcb46b6ee4ad996" +checksum = "e17dd265a7d0f31ef544e1b20e03add05d3b45b491b633b10d67145d2acc1a38" dependencies = [ "find-msvc-tools", "jobserver", @@ -1020,9 +1020,9 @@ dependencies = [ [[package]] name = "http-body" -version = "1.0.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" +checksum = "ca2a8f2913ee65f60facd6a5905613afaa448497a0230cc41ce022d93290bc2c" dependencies = [ "bytes", "http", @@ -1030,9 +1030,9 @@ dependencies = [ [[package]] name = "http-body-util" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" +checksum = "e9f41fd6a08e4d4ec69df65976da761afd5ad5e58a9d4acb46bd1c953a9e3ff2" dependencies = [ "bytes", "futures-core", @@ -1352,7 +1352,7 @@ dependencies = [ "p256", "p384", "pem", - "rand 0.8.6", + "rand 0.8.7", "rsa", "serde", "serde_json", @@ -1491,9 +1491,9 @@ dependencies = [ [[package]] name = "mio" -version = "1.2.1" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02bd0af71c67b473010cbbc60715ee815645a4dc942899111f494b4b737d6fda" +checksum = "30d65c71f1ce40ab09135ce117d742b9f8a19ff91a41a8b57ed50bc2de59c427" dependencies = [ "libc", "wasi", @@ -1564,7 +1564,7 @@ dependencies = [ "num-integer", "num-iter", "num-traits", - "rand 0.8.6", + "rand 0.8.7", "smallvec", "zeroize", ] @@ -1880,9 +1880,9 @@ checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" [[package]] name = "rand" -version = "0.8.6" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ca0ecfa931c29007047d1bc58e623ab12e5590e8c7cc53200d5202b69266d8a" +checksum = "22f6172bdec972074665ed81ed53b71da00bfc44b65a753cfde883ec4c702a1a" dependencies = [ "libc", "rand_chacha", @@ -2127,9 +2127,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.41" +version = "0.23.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b92b125634d9b795e7beca796cc790df15a7fb38323bf3196fda83292d06b1f" +checksum = "3c54fcab019b409d04215d3a17cb438fd7fbf192ee61461f20f4fe18704bc138" dependencies = [ "aws-lc-rs", "once_cell", @@ -2230,6 +2230,46 @@ dependencies = [ "windows-sys 0.61.2", ] +[[package]] +name = "schedtxt_api" +version = "0.2.4" +dependencies = [ + "axum", + "axum-extra", + "josekit", + "jsonwebtoken", + "schedtxt_models", + "serde", + "serde_json", + "sqlx", + "swoosh", + "time", + "tokio", + "tower", + "tower-http 0.7.0", + "tracing-subscriber", + "url", + "utoipa", + "utoipa-swagger-ui", + "uuid", +] + +[[package]] +name = "schedtxt_models" +version = "0.5.3" +source = "git+ssh://git@git.kundeng.us/phoenix/schedtxt_models.git?tag=v0.5.3#597af4e84c082bb437cc94817bb19592614681a5" +dependencies = [ + "const_format", + "dotenvy", + "josekit", + "serde", + "serde_json", + "sqlx", + "time", + "utoipa", + "uuid", +] + [[package]] name = "scopeguard" version = "1.2.0" @@ -2465,9 +2505,9 @@ dependencies = [ [[package]] name = "socket2" -version = "0.6.4" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52d1cfed4120b4d927bf7c0f86d2087a4a7d6027c906d9f9d525a80573b9be51" +checksum = "c3d1e2c7f27f8d4cb10542a02c49005dbd6e93095799d6f3be745fae9f8fedd4" dependencies = [ "libc", "windows-sys 0.61.2", @@ -2475,9 +2515,9 @@ dependencies = [ [[package]] name = "spin" -version = "0.9.8" +version = "0.9.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +checksum = "3763264f6b73151db08c50ff20d7d8a0b8796e021cdea7ceedad07b80155fa0e" dependencies = [ "lock_api", ] @@ -2697,14 +2737,14 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "swoosh" -version = "0.5.3" -source = "git+ssh://git@git.kundeng.us/phoenix/swoosh.git?tag=v0.5.3#1c49242bdfe8fe487ea751c89bcbf545c4b8ac3f" +version = "0.5.4" +source = "git+ssh://git@git.kundeng.us/phoenix/swoosh.git?tag=v0.5.4#84ba4c21ec721662d76bb21ef67062d51f31f719" dependencies = [ "base64-ng", "reqwest", + "schedtxt_models", "serde", "serde_json", - "textsender_models", "time", ] @@ -2773,46 +2813,6 @@ dependencies = [ "windows-sys 0.61.2", ] -[[package]] -name = "textsender_api" -version = "0.2.4" -dependencies = [ - "axum", - "axum-extra", - "josekit", - "jsonwebtoken", - "serde", - "serde_json", - "sqlx", - "swoosh", - "textsender_models", - "time", - "tokio", - "tower", - "tower-http 0.7.0", - "tracing-subscriber", - "url", - "utoipa", - "utoipa-swagger-ui", - "uuid", -] - -[[package]] -name = "textsender_models" -version = "0.5.2" -source = "git+ssh://git@git.kundeng.us/phoenix/textsender_models.git?tag=v0.5.2#02061bf7a380657b7bc76d64d1824388bef8e55a" -dependencies = [ - "const_format", - "dotenvy", - "josekit", - "serde", - "serde_json", - "sqlx", - "time", - "utoipa", - "uuid", -] - [[package]] name = "thiserror" version = "2.0.18" @@ -3204,9 +3204,9 @@ dependencies = [ [[package]] name = "uuid" -version = "1.23.4" +version = "1.23.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf80a72845275afea99e7f2b434723d3bc7e38470fcd1c7ed39a599c73319a53" +checksum = "ea5fab0d6c3c01ae70085a09cb03d4c7a1d6314e2b3e075392783396d724ca0a" dependencies = [ "getrandom 0.4.3", "js-sys", @@ -3631,9 +3631,9 @@ checksum = "b142a20ec14a91d5bc708c1dc21b080c550113d8aa77afa29635673a65dd02c5" [[package]] name = "zmij" -version = "1.0.21" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" +checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b" [[package]] name = "zopfli" diff --git a/Cargo.toml b/Cargo.toml index a28efa2..0c487f4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "textsender_api" +name = "schedtxt_api" version = "0.2.4" edition = "2024" rust-version = "1.97" @@ -12,14 +12,14 @@ serde_json = { version = "1.0.150" } tokio = { version = "1.52.3", features = ["full"] } tower-http = { version = "0.7.0", features = ["cors", "timeout"] } tracing-subscriber = "0.3.23" -uuid = { version = "1.23.4", features = ["v4", "serde"] } +uuid = { version = "1.23.5", features = ["v4", "serde"] } sqlx = { version = "0.9.0", features = ["runtime-tokio", "tls-native-tls", "postgres", "time", "uuid"] } time = { version = "0.3.53", features = ["formatting", "macros", "parsing", "serde"] } jsonwebtoken = { version = "10.4.0", features = ["rust_crypto"] } utoipa = { version = "5.5.0", features = ["axum_extras"] } utoipa-swagger-ui = { version = "9.0.2", features = ["axum"] } -textsender_models = { git = "ssh://git@git.kundeng.us/phoenix/textsender_models.git", tag = "v0.5.2" } -swoosh = { git = "ssh://git@git.kundeng.us/phoenix/swoosh.git", tag = "v0.5.3" } +schedtxt_models = { git = "ssh://git@git.kundeng.us/phoenix/schedtxt_models.git", tag = "v0.5.3" } +swoosh = { git = "ssh://git@git.kundeng.us/phoenix/swoosh.git", tag = "v0.5.4" } [dev-dependencies] tower = { version = "0.5.3", features = ["full"] } diff --git a/Dockerfile b/Dockerfile index 7986c13..9dc7793 100644 --- a/Dockerfile +++ b/Dockerfile @@ -21,7 +21,7 @@ COPY Cargo.toml Cargo.lock ./ RUN --mount=type=ssh mkdir src && \ echo "fn main() {println!(\"if you see this, the build broke\")}" > src/main.rs && \ cargo build --release --quiet && \ - rm -rf src target/release/deps/textsender_api* + rm -rf src target/release/deps/schedtxt_api* # Copy the actual source code COPY src ./src @@ -39,7 +39,7 @@ RUN apt-get update && apt-get install -y ca-certificates libssl-dev libssl3 && r # Set the working directory WORKDIR /usr/local/bin -COPY --from=builder /usr/src/app/target/release/textsender_api . +COPY --from=builder /usr/src/app/target/release/schedtxt_api . COPY --from=builder /usr/src/app/.env . COPY --from=builder /usr/src/app/migrations ./migrations @@ -47,4 +47,4 @@ COPY --from=builder /usr/src/app/migrations ./migrations EXPOSE 9081 # Set the command to run your application -CMD ["./textsender_api"] +CMD ["./schedtxt_api"] diff --git a/README.md b/README.md index 3153136..d22c268 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,14 @@ # Getting started Fastest way to get started is with docker. Make sure that is installed before moving forward. -This application requires `textsender_auth` and `catapult` repositories to be located in the +This application requires `schedtxt_auth` and `catapult` repositories to be located in the parent directory. ``` . .. -- textsender_auth/ -- textsender_api/ +- schedtxt_auth/ +- schedtxt_api/ - catapult/ ``` @@ -18,10 +18,10 @@ Copy over the `.env.docker.sample` to `.env` to get started. ### Token service The `JWT_SECRET` environment variable should be the same variable as `SECRET_MAIN_KEY` in -`textsender_auth`. +`schedtxt_auth`. ### Messaging configuration -textsender uses `twilio` as the service to send the messages. You will need to sign up with +schedtxt uses `twilio` as the service to send the messages. You will need to sign up with them and be provided an account SID, service SID, auth token, and phone number. Update the corresponding `TWILIO_*` variables. diff --git a/docker-compose.yml b/docker-compose.yml index bf5112b..95483ee 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -6,7 +6,7 @@ services: build: context: . ssh: ["default"] - container_name: textsender_api + container_name: schedtxt_api ports: - "9081:9081" env_file: @@ -15,13 +15,13 @@ services: main_db: condition: service_healthy networks: - - textsender_api-network + - schedtxt_api-network restart: unless-stopped # --- Auth API --- auth_api: build: - context: ../textsender_auth + context: ../schedtxt_auth ssh: ["default"] dockerfile: Dockerfile container_name: auth_api @@ -29,12 +29,12 @@ services: ports: - "9080:9080" env_file: - - ../textsender_auth/.env + - ../schedtxt_auth/.env depends_on: auth_db: condition: service_healthy networks: - - textsender_api-network + - schedtxt_api-network # --- catapult service --- catapult: @@ -52,18 +52,18 @@ services: - auth_api - auth_db networks: - - textsender_api-network + - schedtxt_api-network # PostgreSQL Database Service main_db: image: postgres:18.4-alpine - container_name: textsender_api_db + container_name: schedtxt_api_db environment: # These MUST match the user, password, and database name in the DATABASE_URL above - POSTGRES_USER: ${DB_MAIN_USER:-textsender_api} + POSTGRES_USER: ${DB_MAIN_USER:-schedtxt_api} POSTGRES_PASSWORD: ${DB_MAIN_PASSWORD:-password} - POSTGRES_DB: ${DB_MAIN_NAME:-textsender_api_db} + POSTGRES_DB: ${DB_MAIN_NAME:-schedtxt_api_db} volumes: - postgres_data:/var/lib/postgresql ports: @@ -77,17 +77,17 @@ services: start_period: 10s restart: always networks: - - textsender_api-network + - schedtxt_api-network - # --- textsender_api web auth api db --- + # --- schedtxt_api web auth api db --- auth_db: image: postgres:18.4-alpine - container_name: textsender_api_auth_db + container_name: schedtxt_api_auth_db environment: # These MUST match the user, password, and database name in the DATABASE_URL above - POSTGRES_USER: ${DB_AUTH_USER:-textsender_auth} + POSTGRES_USER: ${DB_AUTH_USER:-schedtxt_auth} POSTGRES_PASSWORD: ${DB_AUTH_PASSWORD:-password} - POSTGRES_DB: ${DB_AUTH_NAME:-textsender_auth_db} + POSTGRES_DB: ${DB_AUTH_NAME:-schedtxt_auth_db} volumes: # Persist database data using a named volume - postgres_data_auth:/var/lib/postgresql @@ -102,7 +102,7 @@ services: start_period: 10s restart: always networks: - - textsender_api-network + - schedtxt_api-network volumes: postgres_data: @@ -111,5 +111,5 @@ volumes: driver: local networks: - textsender_api-network: + schedtxt_api-network: driver: bridge diff --git a/src/auth/mod.rs b/src/auth/mod.rs index df20507..5acb75e 100644 --- a/src/auth/mod.rs +++ b/src/auth/mod.rs @@ -36,11 +36,11 @@ pub async fn auth( (StatusCode::UNAUTHORIZED, Json(json_error)) })?; - let secret_key = textsender_models::envy::environment::get_secret_main_key().value; + let secret_key = schedtxt_models::envy::environment::get_secret_main_key().value; let mut validation = Validation::new(jsonwebtoken::Algorithm::HS256); - validation.set_audience(&["textsender"]); // Must match exactly what's in the token - let _claims = decode::( + validation.set_audience(&["schedtxt"]); // Must match exactly what's in the token + let _claims = decode::( &token, &DecodingKey::from_secret(secret_key.as_ref()), &validation, diff --git a/src/caller/contact.rs b/src/caller/contact.rs index 6093df5..eb2cd76 100644 --- a/src/caller/contact.rs +++ b/src/caller/contact.rs @@ -49,7 +49,7 @@ pub mod response { #[derive(Debug, Default, Deserialize, Serialize, ToSchema)] pub struct AddContactResponse { pub message: String, - pub data: Vec, + pub data: Vec, } pub use AddContactResponse as GetContactResponse; @@ -69,19 +69,9 @@ pub mod response { pub new_lastname: Option, pub new_nickname: Option, } - - /* - #[derive(Debug, Default, Deserialize, Serialize, ToSchema)] - pub struct GetContactResponse { - pub message: String, - pub data: Vec, - } - */ } pub mod endpoint { - // use axum::{Json, response::IntoResponse}; - use crate::repo::contact as contact_repo; /// Endpoint to create Contact @@ -126,7 +116,7 @@ pub mod endpoint { sqlx::Error::RowNotFound => { println!("Good to create"); // Put code here - let mut contact = textsender_models::contact::Contact { + let mut contact = schedtxt_models::contact::Contact { firstname: payload.firstname, lastname: payload.lastname, phone_number: payload.phone_number, diff --git a/src/caller/instant.rs b/src/caller/instant.rs index baef59d..f904dd4 100644 --- a/src/caller/instant.rs +++ b/src/caller/instant.rs @@ -23,7 +23,7 @@ pub mod response { #[derive(Debug, Default, Deserialize, Serialize, ToSchema)] pub struct InstantMessageResponse { pub message: String, - pub data: Vec, + pub data: Vec, } } @@ -57,7 +57,7 @@ pub mod endpoint { let mut response = super::response::InstantMessageResponse::default(); if payload.is_valid() { - let mut contacts: Vec = Vec::new(); + let mut contacts: Vec = Vec::new(); for contact_id in &payload.contact_ids { match contact_repo::get(&pool, contact_id).await { @@ -81,7 +81,7 @@ pub mod endpoint { match message_repo::get(&pool, &payload.message_id).await { Ok(message) => { println!("Valid message"); - let t_config = match textsender_models::config::auxiliary::load_config() { + let t_config = match schedtxt_models::config::auxiliary::load_config() { Ok(config) => config, Err(err) => { eprintln!("Error: {err:?}"); @@ -93,7 +93,7 @@ pub mod endpoint { } }; let mut results: Vec< - textsender_models::message::event::MessageEventResponse, + schedtxt_models::message::event::MessageEventResponse, > = Vec::new(); let pp = swoosh::twilio::types::Parameters { schedule: false, @@ -114,11 +114,11 @@ pub mod endpoint { match sendmsg.send_message(&pp).await { Ok(result) => { let val = swoosh::twilio::api::response_to_json(result).await; - let mer = textsender_models::message::event::MessageEventResponse { + let mer = schedtxt_models::message::event::MessageEventResponse { user_id: payload.user_id, // TODO: Make this more accurate sent: Some(time::OffsetDateTime::now_utc()), - status: String::from(textsender_models::message::event::MESSAGE_EVENT_RESPONSE_STATUS_INSTANT), + status: String::from(schedtxt_models::message::event::MESSAGE_EVENT_RESPONSE_STATUS_INSTANT), contact_id: contact.id.unwrap(), message_id: message.id.unwrap(), response: val, diff --git a/src/caller/message/event.rs b/src/caller/message/event.rs index a3b79c4..0e40bc2 100644 --- a/src/caller/message/event.rs +++ b/src/caller/message/event.rs @@ -40,7 +40,7 @@ pub mod response { #[derive(Debug, Default, Deserialize, Serialize, ToSchema)] pub struct RecordMessageEventResponse { pub message: String, - pub data: Vec, + pub data: Vec, } pub use RecordMessageEventResponse as GetMERResponse; @@ -74,7 +74,7 @@ pub mod endpoint { let mut response = super::response::RecordMessageEventResponse::default(); if payload.is_valid() { - let mut mer = textsender_models::message::event::MessageEventResponse { + let mut mer = schedtxt_models::message::event::MessageEventResponse { scheduled_message_event_id: Some(payload.scheduled_message_event_id), user_id: payload.user_id, sent: payload.sent, diff --git a/src/caller/message/mod.rs b/src/caller/message/mod.rs index 5f1ba57..ac7d434 100644 --- a/src/caller/message/mod.rs +++ b/src/caller/message/mod.rs @@ -31,7 +31,7 @@ pub mod response { #[derive(Debug, Default, Deserialize, Serialize, ToSchema)] pub struct AddMessageResponse { pub message: String, - pub data: Vec, + pub data: Vec, } pub use AddMessageResponse as GetMessageResponse; @@ -65,7 +65,7 @@ pub mod endpoint { let mut response = super::response::AddMessageResponse::default(); if payload.is_valid() { - let mut msg = textsender_models::message::Message { + let mut msg = schedtxt_models::message::Message { content: payload.content, user_id: Some(payload.user_id), ..Default::default() diff --git a/src/caller/message/scheduling.rs b/src/caller/message/scheduling.rs index d146889..7f8e827 100644 --- a/src/caller/message/scheduling.rs +++ b/src/caller/message/scheduling.rs @@ -52,10 +52,10 @@ pub mod request { impl UpdateScheduledMessageStatusRequest { pub fn is_valid(&self) -> bool { if !self.status.is_empty() || !self.scheduled_message_id.is_nil() { - self.status == textsender_models::message::scheduling::PENDING - || self.status == textsender_models::message::scheduling::READY - || self.status == textsender_models::message::scheduling::PROCESSING - || self.status == textsender_models::message::scheduling::DONE + self.status == schedtxt_models::message::scheduling::PENDING + || self.status == schedtxt_models::message::scheduling::READY + || self.status == schedtxt_models::message::scheduling::PROCESSING + || self.status == schedtxt_models::message::scheduling::DONE } else { false } @@ -70,19 +70,19 @@ pub mod response { #[derive(Debug, Default, Deserialize, Serialize, ToSchema)] pub struct ScheduleMessageResponse { pub message: String, - pub data: Vec, + pub data: Vec, } #[derive(Debug, Default, Deserialize, Serialize, ToSchema)] pub struct GetScheduledMessageResponse { pub message: String, - pub data: Vec, + pub data: Vec, } #[derive(Debug, Default, Deserialize, Serialize, ToSchema)] pub struct CreateScheduleMessageEventResponse { pub message: String, - pub data: Vec, + pub data: Vec, } pub use CreateScheduleMessageEventResponse as GetScheduledMessageEventResponse; @@ -133,13 +133,13 @@ pub mod endpoint { let mut response = super::response::ScheduleMessageResponse::default(); if payload.is_valid() { - if payload.status != textsender_models::message::scheduling::PENDING { + if payload.status != schedtxt_models::message::scheduling::PENDING { response.message = String::from("scheduled message must be pending"); (axum::http::StatusCode::BAD_REQUEST, axum::Json(response)) } else { if can_schedule(&payload.scheduled) { let mut scheduled_message = - textsender_models::message::scheduling::ScheduledMessage { + schedtxt_models::message::scheduling::ScheduledMessage { scheduled: payload.scheduled, status: payload.status, ..Default::default() @@ -402,7 +402,7 @@ pub mod endpoint { } } - let mut scme = textsender_models::message::scheduling::ScheduledMessageEvent { + let mut scme = schedtxt_models::message::scheduling::ScheduledMessageEvent { contact_id: payload.contact_id, message_id: payload.message_id, scheduled_message_id: payload.scheduled_message_id, diff --git a/src/config/mod.rs b/src/config/mod.rs index 3e01e57..cd69570 100644 --- a/src/config/mod.rs +++ b/src/config/mod.rs @@ -46,12 +46,12 @@ pub mod init { .max_age(std::time::Duration::from_secs(3600)); // Cache the preflight response for 1 hour:cite[2] // Dynamically set the allowed origin based on the environment - match std::env::var(textsender_models::envy::keys::APP_ENV).as_deref() { + match std::env::var(schedtxt_models::envy::keys::APP_ENV).as_deref() { Ok("production") => { // In production, allow only your specific, trusted origins let allowed_origins_env = - textsender_models::envy::environment::get_allowed_origins(); - match textsender_models::envy::utility::delimitize(&allowed_origins_env) { + schedtxt_models::envy::environment::get_allowed_origins(); + match schedtxt_models::envy::utility::delimitize(&allowed_origins_env) { Ok(alwd) => { let allowed_origins: Vec = alwd .into_iter() @@ -93,7 +93,7 @@ pub mod init { event_responses::RecordMessageEventResponse )), tags( - (name = "textsender API", description = "Web API to manage texting") + (name = "schedtxt API", description = "Web API to manage texting") ) )] struct ApiDoc; diff --git a/src/db/mod.rs b/src/db/mod.rs index a852536..9bd4a61 100644 --- a/src/db/mod.rs +++ b/src/db/mod.rs @@ -5,7 +5,7 @@ pub mod connection_settings { } pub async fn create_pool() -> Result { - let database_url = textsender_models::envy::environment::get_db_url().value; + let database_url = schedtxt_models::envy::environment::get_db_url().value; println!("Database url: {database_url}"); PgPoolOptions::new() diff --git a/src/main.rs b/src/main.rs index a6e5f5f..5a46270 100644 --- a/src/main.rs +++ b/src/main.rs @@ -3,10 +3,10 @@ async fn main() { // initialize tracing tracing_subscriber::fmt::init(); - match tokio::net::TcpListener::bind(textsender_api::config::host::get_full()).await { + match tokio::net::TcpListener::bind(schedtxt_api::config::host::get_full()).await { Ok(listener) => { // build our application with routes - let app = textsender_api::config::init::app().await; + let app = schedtxt_api::config::init::app().await; axum::serve(listener, app).await.unwrap(); } Err(err) => { diff --git a/src/repo/contact.rs b/src/repo/contact.rs index 5902aed..6dc6e17 100644 --- a/src/repo/contact.rs +++ b/src/repo/contact.rs @@ -2,7 +2,7 @@ use sqlx::Row; pub async fn insert( pool: &sqlx::PgPool, - contact: &textsender_models::contact::Contact, + contact: &schedtxt_models::contact::Contact, ) -> Result { match sqlx::query( r#" @@ -29,7 +29,7 @@ pub async fn insert( pub async fn get( pool: &sqlx::PgPool, id: &uuid::Uuid, -) -> Result { +) -> Result { match sqlx::query( r#" SELECT id, firstname, lastname, nickname, phone_number, user_id FROM "contacts" @@ -46,7 +46,7 @@ pub async fn get( let phone_number: String = row.try_get("phone_number")?; let user_id: uuid::Uuid = row.try_get("user_id")?; - Ok(textsender_models::contact::Contact { + Ok(schedtxt_models::contact::Contact { id: Some(id), firstname: match row.try_get("firstname") { Ok(val) => val, @@ -81,7 +81,7 @@ pub async fn get_with_user_id_and_phone( pool: &sqlx::PgPool, user_id: &uuid::Uuid, phone_number: &str, -) -> Result { +) -> Result { match sqlx::query( r#" SELECT id, firstname, lastname, nickname, phone_number, user_id FROM "contacts" @@ -103,7 +103,7 @@ pub async fn get_with_user_id_and_phone( let phone_number: String = row.try_get("phone_number")?; let user_id: uuid::Uuid = row.try_get("user_id")?; println!("Found"); - Ok(textsender_models::contact::Contact { + Ok(schedtxt_models::contact::Contact { id: Some(id), firstname: Some(firstname), lastname: Some(lastname), @@ -122,7 +122,7 @@ pub async fn get_with_user_id_and_phone( pub async fn get_with_user_id( pool: &sqlx::PgPool, user_id: &uuid::Uuid, -) -> Result, sqlx::Error> { +) -> Result, sqlx::Error> { match sqlx::query( r#" SELECT id, firstname, lastname, nickname, phone_number, user_id FROM "contacts" @@ -135,13 +135,13 @@ pub async fn get_with_user_id( .await { Ok(rows) => { - let mut contacts: Vec = Vec::new(); + let mut contacts: Vec = Vec::new(); for row in rows { let id: uuid::Uuid = row.try_get("id")?; let phone_number: String = row.try_get("phone_number")?; let user_id: uuid::Uuid = row.try_get("user_id")?; - let contact = textsender_models::contact::Contact { + let contact = schedtxt_models::contact::Contact { id: Some(id), firstname: match row.try_get("firstname") { Ok(val) => val, diff --git a/src/repo/message/event.rs b/src/repo/message/event.rs index a8bcfb6..7ba98fa 100644 --- a/src/repo/message/event.rs +++ b/src/repo/message/event.rs @@ -2,7 +2,7 @@ use sqlx::Row; pub async fn insert( pool: &sqlx::PgPool, - event: &textsender_models::message::event::MessageEventResponse, + event: &schedtxt_models::message::event::MessageEventResponse, ) -> Result { match sqlx::query( r#" @@ -31,7 +31,7 @@ pub async fn insert( pub async fn get( pool: &sqlx::PgPool, id: &uuid::Uuid, -) -> Result { +) -> Result { match sqlx::query( r#" SELECT id, scheduled_message_event_id, response, user_id, sent, contact_id, message_id, status FROM "message_event_responses" @@ -54,7 +54,7 @@ pub async fn get( pub async fn get_with_user_id( pool: &sqlx::PgPool, user_id: &uuid::Uuid, -) -> Result, sqlx::Error> { +) -> Result, sqlx::Error> { match sqlx::query( r#" SELECT id, scheduled_message_event_id, response, user_id, sent, contact_id, message_id, status FROM "message_event_responses" @@ -67,7 +67,7 @@ pub async fn get_with_user_id( .await { Ok(rows) => { - let mut events: Vec = + let mut events: Vec = Vec::new(); for row in rows { match parse_row(&row).await { @@ -88,7 +88,7 @@ pub async fn get_with_user_id( async fn parse_row( row: &sqlx::postgres::PgRow, -) -> Result { +) -> Result { println!("Parsing MER"); let id: uuid::Uuid = row.try_get("id")?; let response: serde_json::Value = row.try_get("response")?; @@ -101,7 +101,7 @@ async fn parse_row( .unwrap_or_default(); let user_id: uuid::Uuid = row.try_get("user_id")?; - Ok(textsender_models::message::event::MessageEventResponse { + Ok(schedtxt_models::message::event::MessageEventResponse { id, response, contact_id, diff --git a/src/repo/message/mod.rs b/src/repo/message/mod.rs index 09b0414..df459ad 100644 --- a/src/repo/message/mod.rs +++ b/src/repo/message/mod.rs @@ -5,7 +5,7 @@ use sqlx::Row; pub async fn insert( pool: &sqlx::PgPool, - message: &textsender_models::message::Message, + message: &schedtxt_models::message::Message, user_id: &uuid::Uuid, ) -> Result { match sqlx::query( @@ -30,7 +30,7 @@ pub async fn insert( pub async fn get( pool: &sqlx::PgPool, id: &uuid::Uuid, -) -> Result { +) -> Result { match sqlx::query( r#" SELECT id, content, user_id FROM "messages" @@ -47,7 +47,7 @@ pub async fn get( let content: String = row.try_get("content")?; let user_id: uuid::Uuid = row.try_get("user_id")?; - Ok(textsender_models::message::Message { + Ok(schedtxt_models::message::Message { id: Some(id), content, user_id: Some(user_id), @@ -60,7 +60,7 @@ pub async fn get( pub async fn get_with_user_id( pool: &sqlx::PgPool, user_id: &uuid::Uuid, -) -> Result, sqlx::Error> { +) -> Result, sqlx::Error> { match sqlx::query( r#" SELECT id, content, user_id FROM "messages" @@ -73,13 +73,13 @@ pub async fn get_with_user_id( .await { Ok(rows) => { - let mut messages: Vec = Vec::new(); + let mut messages: Vec = Vec::new(); for row in rows { let id: uuid::Uuid = row.try_get("id")?; let content: String = row.try_get("content")?; let user_id: uuid::Uuid = row.try_get("user_id")?; - let message = textsender_models::message::Message { + let message = schedtxt_models::message::Message { id: Some(id), content, user_id: Some(user_id), diff --git a/src/repo/message/scheduling.rs b/src/repo/message/scheduling.rs index 1604350..6e5490e 100644 --- a/src/repo/message/scheduling.rs +++ b/src/repo/message/scheduling.rs @@ -2,7 +2,7 @@ use sqlx::Row; pub async fn insert( pool: &sqlx::PgPool, - scheduled_message: &textsender_models::message::scheduling::ScheduledMessage, + scheduled_message: &schedtxt_models::message::scheduling::ScheduledMessage, user_id: &uuid::Uuid, ) -> Result<(uuid::Uuid, time::OffsetDateTime), sqlx::Error> { match sqlx::query( @@ -29,7 +29,7 @@ pub async fn insert( pub async fn get( pool: &sqlx::PgPool, id: &uuid::Uuid, -) -> Result { +) -> Result { match sqlx::query( r#" SELECT id, scheduled, created, status, user_id FROM "scheduled_messages" @@ -52,7 +52,7 @@ pub async fn get( pub async fn get_with_user_id( pool: &sqlx::PgPool, user_id: &uuid::Uuid, -) -> Result, sqlx::Error> { +) -> Result, sqlx::Error> { match sqlx::query( r#" SELECT id, scheduled, created, status, user_id FROM "scheduled_messages" @@ -65,7 +65,7 @@ pub async fn get_with_user_id( .await { Ok(rows) => { - let mut messages: Vec = + let mut messages: Vec = Vec::new(); for row in rows { match parse_row(&row).await { @@ -86,7 +86,7 @@ pub async fn get_with_user_id( pub async fn fetch( pool: &sqlx::PgPool, -) -> Result { +) -> Result { match sqlx::query( r#" UPDATE "scheduled_messages" @@ -101,8 +101,8 @@ pub async fn fetch( RETURNING id, scheduled, created, status, user_id "#, ) - .bind(textsender_models::message::scheduling::PROCESSING) - .bind(textsender_models::message::scheduling::READY) + .bind(schedtxt_models::message::scheduling::PROCESSING) + .bind(schedtxt_models::message::scheduling::READY) .fetch_one(pool) .await { @@ -136,14 +136,14 @@ pub async fn update_status( async fn parse_row( row: &sqlx::postgres::PgRow, -) -> Result { +) -> Result { let id: uuid::Uuid = row.try_get("id")?; let scheduled: time::OffsetDateTime = row.try_get("scheduled")?; let status: String = row.try_get("status")?; let created: time::OffsetDateTime = row.try_get("created")?; let user_id: uuid::Uuid = row.try_get("user_id")?; - Ok(textsender_models::message::scheduling::ScheduledMessage { + Ok(schedtxt_models::message::scheduling::ScheduledMessage { id, scheduled: Some(scheduled), created: Some(created), @@ -157,7 +157,7 @@ pub mod sched_msg_event { pub async fn insert( pool: &sqlx::PgPool, - scheduled_message_event: &textsender_models::message::scheduling::ScheduledMessageEvent, + scheduled_message_event: &schedtxt_models::message::scheduling::ScheduledMessageEvent, ) -> Result<(uuid::Uuid, time::OffsetDateTime), sqlx::Error> { match sqlx::query( r#" @@ -183,7 +183,7 @@ pub mod sched_msg_event { pub async fn get( pool: &sqlx::PgPool, id: &uuid::Uuid, - ) -> Result { + ) -> Result { match sqlx::query( r#" SELECT id, contact_id, message_id, scheduled_message_id, created FROM "scheduled_message_events" @@ -206,8 +206,7 @@ pub mod sched_msg_event { pub async fn get_with_scheduled_message_id( pool: &sqlx::PgPool, scheduled_message_id: &uuid::Uuid, - ) -> Result, sqlx::Error> - { + ) -> Result, sqlx::Error> { match sqlx::query( r#" SELECT id, contact_id, message_id, scheduled_message_id, created FROM "scheduled_message_events" @@ -220,7 +219,7 @@ pub mod sched_msg_event { .await { Ok(rows) => { - let mut scheduled_message_events: Vec = + let mut scheduled_message_events: Vec = Vec::new(); for row in rows { match parse_row(&row).await { @@ -241,7 +240,7 @@ pub mod sched_msg_event { pub async fn delete( pool: &sqlx::PgPool, - scheduled_message_event: &textsender_models::message::scheduling::ScheduledMessageEvent, + scheduled_message_event: &schedtxt_models::message::scheduling::ScheduledMessageEvent, ) -> Result<(), sqlx::Error> { match sqlx::query( r#" @@ -260,7 +259,7 @@ pub mod sched_msg_event { async fn parse_row( row: &sqlx::postgres::PgRow, - ) -> Result { + ) -> Result { let id: uuid::Uuid = row.try_get("id")?; let contact_id: uuid::Uuid = row.try_get("contact_id")?; let message_id: uuid::Uuid = row.try_get("message_id")?; @@ -268,7 +267,7 @@ pub mod sched_msg_event { let created: time::OffsetDateTime = row.try_get("created")?; Ok( - textsender_models::message::scheduling::ScheduledMessageEvent { + schedtxt_models::message::scheduling::ScheduledMessageEvent { id, contact_id, message_id, diff --git a/tests/test.rs b/tests/test.rs index 4a63a09..915cc0e 100644 --- a/tests/test.rs +++ b/tests/test.rs @@ -1,4 +1,4 @@ -use textsender_api::db; +use schedtxt_api::db; mod db_mgr { use std::str::FromStr; @@ -6,7 +6,7 @@ mod db_mgr { pub const LIMIT: usize = 6; pub async fn get_pool() -> Result { - let tm_db_url = textsender_models::envy::environment::get_db_url().value; + let tm_db_url = schedtxt_models::envy::environment::get_db_url().value; let tm_options = sqlx::postgres::PgConnectOptions::from_str(&tm_db_url).unwrap(); sqlx::PgPool::connect_with(tm_options).await } @@ -18,7 +18,7 @@ mod db_mgr { } pub async fn connect_to_db(db_name: &str) -> Result { - let db_url = textsender_models::envy::environment::get_db_url().value; + let db_url = schedtxt_models::envy::environment::get_db_url().value; let options = sqlx::postgres::PgConnectOptions::from_str(&db_url)?.database(db_name); sqlx::PgPool::connect_with(options).await } @@ -77,7 +77,7 @@ mod db_mgr { } pub async fn get_database_name() -> Result> { - let database_url = textsender_models::envy::environment::get_db_url().value; + let database_url = schedtxt_models::envy::environment::get_db_url().value; let parsed_url = url::Url::parse(&database_url)?; if parsed_url.scheme() == "postgres" || parsed_url.scheme() == "postgresql" { @@ -101,7 +101,7 @@ mod db_mgr { mod init { pub async fn app(pool: sqlx::PgPool) -> axum::Router { - textsender_api::config::init::routes() + schedtxt_api::config::init::routes() .await .layer(axum::Extension(pool)) .layer(axum::extract::DefaultBodyLimit::max(1024 * 1024 * 1024)) @@ -136,8 +136,8 @@ mod util { pub fn token_fields() -> (String, String, String) { ( String::from("What a twist!"), - String::from("textsender_test"), - String::from("textsender"), + String::from("schedtxt_test"), + String::from("schedtxt"), ) } @@ -185,17 +185,17 @@ pub fn test_mer_response() -> serde_json::Value { } pub async fn test_token() -> Result { - let key: String = textsender_models::envy::environment::get_secret_main_key().value; + let key: String = schedtxt_models::envy::environment::get_secret_main_key().value; let (message, issuer, audience) = token_fields(); - let token_resource = textsender_models::token::TokenResource { + let token_resource = schedtxt_models::token::TokenResource { message: message, issuer: issuer, audiences: vec![audience], user_id: TEST_USER_ID, }; - match textsender_models::token::create_token(&key, token_resource, time::Duration::hours(1)) { + match schedtxt_models::token::create_token(&key, token_resource, time::Duration::hours(1)) { Ok(access_token) => Ok(access_token.access_token), Err(err) => Err(err), } @@ -239,7 +239,7 @@ mod request { match run_post( Some(&payload), - textsender_api::caller::endpoints::ADD_CONTACT, + schedtxt_api::caller::endpoints::ADD_CONTACT, axum::http::Method::POST, true, ) @@ -257,11 +257,7 @@ mod request { app: &axum::Router, id: &uuid::Uuid, ) -> Result { - let uri = format!( - "{}?id={}", - textsender_api::caller::endpoints::GET_CONTACT, - id - ); + let uri = format!("{}?id={}", schedtxt_api::caller::endpoints::GET_CONTACT, id); match run_post(None, &uri, axum::http::Method::GET, false).await { Ok(req) => match app.clone().oneshot(req).await { @@ -289,7 +285,7 @@ mod request { match run_post( Some(&payload), - textsender_api::caller::endpoints::UPDATE_CONTACT_NAME, + schedtxt_api::caller::endpoints::UPDATE_CONTACT_NAME, axum::http::Method::PATCH, true, ) @@ -316,7 +312,7 @@ mod request { match super::run_post( Some(&payload), - textsender_api::caller::endpoints::ADD_MESSAGE, + schedtxt_api::caller::endpoints::ADD_MESSAGE, axum::http::Method::POST, true, ) @@ -334,11 +330,7 @@ mod request { app: &axum::Router, id: &uuid::Uuid, ) -> Result { - let uri = format!( - "{}?id={}", - textsender_api::caller::endpoints::GET_MESSAGE, - id - ); + let uri = format!("{}?id={}", schedtxt_api::caller::endpoints::GET_MESSAGE, id); match super::run_post(None, &uri, axum::http::Method::GET, false).await { Ok(req) => match app.clone().oneshot(req).await { @@ -372,14 +364,14 @@ mod request { "response": super::super::super::test_mer_response(), "user_id": user_id, "sent": sent, - "status": textsender_models::message::event::MESSAGE_EVENT_RESPONSE_STATUS_SCHEDULED, + "status": schedtxt_models::message::event::MESSAGE_EVENT_RESPONSE_STATUS_SCHEDULED, "contact_id": contact_id, "message_id": message_id }); match super::super::run_post( Some(&payload), - textsender_api::caller::endpoints::RECORD_MESSAGE_EVENT_RESPONSE, + schedtxt_api::caller::endpoints::RECORD_MESSAGE_EVENT_RESPONSE, axum::http::Method::POST, true, ) @@ -399,7 +391,7 @@ mod request { ) -> Result { let uri = format!( "{}?id={}", - textsender_api::caller::endpoints::GET_MESSAGE_EVENT_RESPONSE, + schedtxt_api::caller::endpoints::GET_MESSAGE_EVENT_RESPONSE, id ); @@ -430,13 +422,13 @@ mod request { let payload = serde_json::json!({ "scheduled": scheduled, - "status": textsender_models::message::scheduling::PENDING, + "status": schedtxt_models::message::scheduling::PENDING, "user_id": super::super::super::TEST_USER_ID, }); match super::super::run_post( Some(&payload), - textsender_api::caller::endpoints::SCHEDULE_MESSAGE, + schedtxt_api::caller::endpoints::SCHEDULE_MESSAGE, axum::http::Method::POST, true, ) @@ -456,7 +448,7 @@ mod request { ) -> Result { let uri = format!( "{}?id={}", - textsender_api::caller::endpoints::GET_SCHEDULE_MESSAGE, + schedtxt_api::caller::endpoints::GET_SCHEDULE_MESSAGE, id ); @@ -474,7 +466,7 @@ mod request { ) -> Result { match super::super::run_post( None, - textsender_api::caller::endpoints::FETCH_SCHEDULED_MESSAGE, + schedtxt_api::caller::endpoints::FETCH_SCHEDULED_MESSAGE, axum::http::Method::GET, false, ) @@ -493,7 +485,7 @@ mod request { id: &uuid::Uuid, updated_status: &str, ) -> Result { - let uri = textsender_api::caller::endpoints::UPDATE_SCHEDULED_MESSAGE_STATUS; + let uri = schedtxt_api::caller::endpoints::UPDATE_SCHEDULED_MESSAGE_STATUS; let payload = serde_json::json!({ "scheduled_message_id": id, "status": updated_status @@ -526,7 +518,7 @@ mod request { match super::super::run_post( Some(&payload), - textsender_api::caller::endpoints::CREATE_SCHEDULED_MESSAGE_EVENT, + schedtxt_api::caller::endpoints::CREATE_SCHEDULED_MESSAGE_EVENT, axum::http::Method::POST, true, ) @@ -546,7 +538,7 @@ mod request { ) -> Result { let uri = format!( "{}?scheduled_message_id={}", - textsender_api::caller::endpoints::GET_SCHEDULED_MESSAGE_EVENT, + schedtxt_api::caller::endpoints::GET_SCHEDULED_MESSAGE_EVENT, scheduled_message_id ); @@ -564,7 +556,7 @@ mod request { scheduled_message_event_id: &uuid::Uuid, ) -> Result { let uri = super::super::super::util::format_url_with_value( - textsender_api::caller::endpoints::DELETE_SCHEDULED_MESSAGE_EVENT, + schedtxt_api::caller::endpoints::DELETE_SCHEDULED_MESSAGE_EVENT, scheduled_message_event_id, ) .await; @@ -624,7 +616,7 @@ async fn test_create_contact() { match request::create_contact(&app).await { Ok(response) => { let resp = util::get_resp_data::< - textsender_api::caller::contact::response::AddContactResponse, + schedtxt_api::caller::contact::response::AddContactResponse, >(response) .await; assert_eq!(false, resp.data.is_empty(), "Should not be empty"); @@ -646,7 +638,7 @@ async fn test_get_contact() { match request::create_contact(&app).await { Ok(response) => { let resp = util::get_resp_data::< - textsender_api::caller::contact::response::AddContactResponse, + schedtxt_api::caller::contact::response::AddContactResponse, >(response) .await; assert_eq!(false, resp.data.is_empty(), "Should not be empty"); @@ -656,7 +648,7 @@ async fn test_get_contact() { match request::get_contact(&app, &id).await { Ok(response) => { let resp = util::get_resp_data::< - textsender_api::caller::contact::response::GetContactResponse, + schedtxt_api::caller::contact::response::GetContactResponse, >(response) .await; assert_eq!( @@ -683,13 +675,13 @@ async fn test_update_contact_names() { let (tm_pool, db_name, pool) = db_mgr::get_database_ready().await; let app = init::app(pool).await; - let mut opt_contact: Option = None; + let mut opt_contact: Option = None; // Send request match request::create_contact(&app).await { Ok(response) => { let resp = util::get_resp_data::< - textsender_api::caller::contact::response::AddContactResponse, + schedtxt_api::caller::contact::response::AddContactResponse, >(response) .await; assert_eq!(false, resp.data.is_empty(), "Should not be empty"); @@ -699,7 +691,7 @@ async fn test_update_contact_names() { match request::get_contact(&app, &id).await { Ok(response) => { let resp = util::get_resp_data::< - textsender_api::caller::contact::response::GetContactResponse, + schedtxt_api::caller::contact::response::GetContactResponse, >(response) .await; assert_eq!( @@ -737,7 +729,7 @@ async fn test_update_contact_names() { { Ok(response) => { let resp = util::get_resp_data::< - textsender_api::caller::contact::response::UpdateContactNamesResponse, + schedtxt_api::caller::contact::response::UpdateContactNamesResponse, >(response) .await; assert_eq!(false, resp.data.is_empty(), "Error updating Contact names"); @@ -764,7 +756,7 @@ async fn test_create_message() { match request::message::create_message(&app).await { Ok(response) => { let resp = util::get_resp_data::< - textsender_api::caller::message::response::AddMessageResponse, + schedtxt_api::caller::message::response::AddMessageResponse, >(response) .await; assert_eq!(false, resp.data.is_empty(), "Should not be empty"); @@ -786,13 +778,13 @@ async fn test_create_message() { async fn test_get_message() { let (tm_pool, db_name, pool) = db_mgr::get_database_ready().await; let app = init::app(pool).await; - let mut message_result: Option = None; + let mut message_result: Option = None; // Send request match request::message::create_message(&app).await { Ok(response) => { let resp = util::get_resp_data::< - textsender_api::caller::message::response::AddMessageResponse, + schedtxt_api::caller::message::response::AddMessageResponse, >(response) .await; assert_eq!(false, resp.data.is_empty(), "Should not be empty"); @@ -815,7 +807,7 @@ async fn test_get_message() { match request::message::get_message(&app, &message_id).await { Ok(response) => { let resp = util::get_resp_data::< - textsender_api::caller::message::response::GetMessageResponse, + schedtxt_api::caller::message::response::GetMessageResponse, >(response) .await; assert_eq!(false, resp.data.is_empty(), "Should not be empty"); @@ -836,7 +828,7 @@ async fn test_schedule_message() { match request::message::scheduling::create_scheduled_message(&app).await { Ok(response) => { let resp = util::get_resp_data::< - textsender_api::caller::message::scheduling::response::ScheduleMessageResponse, + schedtxt_api::caller::message::scheduling::response::ScheduleMessageResponse, >(response) .await; assert_eq!(false, resp.data.is_empty(), "Should not be empty"); @@ -859,7 +851,7 @@ async fn test_get_scheduled_message() { match request::message::scheduling::create_scheduled_message(&app).await { Ok(response) => { let resp = util::get_resp_data::< - textsender_api::caller::message::scheduling::response::ScheduleMessageResponse, + schedtxt_api::caller::message::scheduling::response::ScheduleMessageResponse, >(response) .await; assert_eq!(false, resp.data.is_empty(), "Should not be empty"); @@ -875,7 +867,7 @@ async fn test_get_scheduled_message() { match request::message::scheduling::get_scheduled_messages(&app, &parsed_id).await { Ok(response) => { let resp = util::get_resp_data::< - textsender_api::caller::message::scheduling::response::GetScheduledMessageResponse, + schedtxt_api::caller::message::scheduling::response::GetScheduledMessageResponse, >(response) .await; assert_eq!(false, resp.data.is_empty(), "Should not be empty"); @@ -903,7 +895,7 @@ async fn test_create_scheduled_message_event() { match request::create_contact(&app).await { Ok(response) => { let resp = util::get_resp_data::< - textsender_api::caller::contact::response::AddContactResponse, + schedtxt_api::caller::contact::response::AddContactResponse, >(response) .await; assert_eq!(false, resp.data.is_empty(), "Should not be empty"); @@ -917,7 +909,7 @@ async fn test_create_scheduled_message_event() { match request::message::create_message(&app).await { Ok(response) => { let resp = util::get_resp_data::< - textsender_api::caller::message::response::AddMessageResponse, + schedtxt_api::caller::message::response::AddMessageResponse, >(response) .await; assert_eq!(false, resp.data.is_empty(), "Should not be empty"); @@ -932,7 +924,7 @@ async fn test_create_scheduled_message_event() { match request::message::scheduling::create_scheduled_message(&app).await { Ok(response) => { let resp = util::get_resp_data::< - textsender_api::caller::message::scheduling::response::ScheduleMessageResponse, + schedtxt_api::caller::message::scheduling::response::ScheduleMessageResponse, >(response) .await; assert_eq!(false, resp.data.is_empty(), "Should not be empty"); @@ -953,7 +945,7 @@ async fn test_create_scheduled_message_event() { { Ok(response) => { let resp = util::get_resp_data::< - textsender_api::caller::message::scheduling::response::CreateScheduleMessageEventResponse, + schedtxt_api::caller::message::scheduling::response::CreateScheduleMessageEventResponse, >(response) .await; assert_eq!(false, resp.data.is_empty(), "Should not be empty"); @@ -978,7 +970,7 @@ async fn test_get_scheduled_message_event() { match request::create_contact(&app).await { Ok(response) => { let resp = util::get_resp_data::< - textsender_api::caller::contact::response::AddContactResponse, + schedtxt_api::caller::contact::response::AddContactResponse, >(response) .await; assert_eq!(false, resp.data.is_empty(), "Should not be empty"); @@ -992,7 +984,7 @@ async fn test_get_scheduled_message_event() { match request::message::create_message(&app).await { Ok(response) => { let resp = util::get_resp_data::< - textsender_api::caller::message::response::AddMessageResponse, + schedtxt_api::caller::message::response::AddMessageResponse, >(response) .await; assert_eq!(false, resp.data.is_empty(), "Should not be empty"); @@ -1007,7 +999,7 @@ async fn test_get_scheduled_message_event() { match request::message::scheduling::create_scheduled_message(&app).await { Ok(response) => { let resp = util::get_resp_data::< - textsender_api::caller::message::scheduling::response::ScheduleMessageResponse, + schedtxt_api::caller::message::scheduling::response::ScheduleMessageResponse, >(response) .await; assert_eq!(false, resp.data.is_empty(), "Should not be empty"); @@ -1028,7 +1020,7 @@ async fn test_get_scheduled_message_event() { { Ok(response) => { let resp = util::get_resp_data::< - textsender_api::caller::message::scheduling::response::CreateScheduleMessageEventResponse, + schedtxt_api::caller::message::scheduling::response::CreateScheduleMessageEventResponse, >(response) .await; assert_eq!(false, resp.data.is_empty(), "Should not be empty"); @@ -1043,7 +1035,7 @@ async fn test_get_scheduled_message_event() { { Ok(response) => { let resp = util::get_resp_data::< - textsender_api::caller::message::scheduling::response::GetScheduledMessageEventResponse, + schedtxt_api::caller::message::scheduling::response::GetScheduledMessageEventResponse, >(response) .await; assert_eq!(false, resp.data.is_empty(), "Should not be empty"); @@ -1068,7 +1060,7 @@ async fn test_delete_scheduled_message_event() { match request::create_contact(&app).await { Ok(response) => { let resp = util::get_resp_data::< - textsender_api::caller::contact::response::AddContactResponse, + schedtxt_api::caller::contact::response::AddContactResponse, >(response) .await; assert_eq!(false, resp.data.is_empty(), "Should not be empty"); @@ -1082,7 +1074,7 @@ async fn test_delete_scheduled_message_event() { match request::message::create_message(&app).await { Ok(response) => { let resp = util::get_resp_data::< - textsender_api::caller::message::response::AddMessageResponse, + schedtxt_api::caller::message::response::AddMessageResponse, >(response) .await; assert_eq!(false, resp.data.is_empty(), "Should not be empty"); @@ -1097,7 +1089,7 @@ async fn test_delete_scheduled_message_event() { match request::message::scheduling::create_scheduled_message(&app).await { Ok(response) => { let resp = util::get_resp_data::< - textsender_api::caller::message::scheduling::response::ScheduleMessageResponse, + schedtxt_api::caller::message::scheduling::response::ScheduleMessageResponse, >(response) .await; assert_eq!(false, resp.data.is_empty(), "Should not be empty"); @@ -1118,7 +1110,7 @@ async fn test_delete_scheduled_message_event() { { Ok(response) => { let resp = util::get_resp_data::< - textsender_api::caller::message::scheduling::response::CreateScheduleMessageEventResponse, + schedtxt_api::caller::message::scheduling::response::CreateScheduleMessageEventResponse, >(response) .await; assert_eq!(false, resp.data.is_empty(), "Should not be empty"); @@ -1133,7 +1125,7 @@ async fn test_delete_scheduled_message_event() { { Ok(response) => { let resp = util::get_resp_data::< - textsender_api::caller::message::scheduling::response::GetScheduledMessageEventResponse, + schedtxt_api::caller::message::scheduling::response::GetScheduledMessageEventResponse, >(response) .await; assert_eq!(false, resp.data.is_empty(), "Should not be empty"); @@ -1146,7 +1138,7 @@ async fn test_delete_scheduled_message_event() { { Ok(response) => { let resp = util::get_resp_data::< - textsender_api::caller::message::scheduling::response::DeleteScheduledMessageEventResponse, + schedtxt_api::caller::message::scheduling::response::DeleteScheduledMessageEventResponse, >(response) .await; assert_eq!(false, resp.data.is_empty(), "Should not be empty"); @@ -1176,7 +1168,7 @@ async fn test_update_scheduled_message_status() { match request::create_contact(&app).await { Ok(response) => { let resp = util::get_resp_data::< - textsender_api::caller::contact::response::AddContactResponse, + schedtxt_api::caller::contact::response::AddContactResponse, >(response) .await; assert_eq!(false, resp.data.is_empty(), "Should not be empty"); @@ -1190,7 +1182,7 @@ async fn test_update_scheduled_message_status() { match request::message::create_message(&app).await { Ok(response) => { let resp = util::get_resp_data::< - textsender_api::caller::message::response::AddMessageResponse, + schedtxt_api::caller::message::response::AddMessageResponse, >(response) .await; assert_eq!(false, resp.data.is_empty(), "Should not be empty"); @@ -1205,7 +1197,7 @@ async fn test_update_scheduled_message_status() { match request::message::scheduling::create_scheduled_message(&app).await { Ok(response) => { let resp = util::get_resp_data::< - textsender_api::caller::message::scheduling::response::ScheduleMessageResponse, + schedtxt_api::caller::message::scheduling::response::ScheduleMessageResponse, >(response) .await; assert_eq!(false, resp.data.is_empty(), "Should not be empty"); @@ -1226,7 +1218,7 @@ async fn test_update_scheduled_message_status() { { Ok(response) => { let resp = util::get_resp_data::< - textsender_api::caller::message::scheduling::response::CreateScheduleMessageEventResponse, + schedtxt_api::caller::message::scheduling::response::CreateScheduleMessageEventResponse, >(response) .await; assert_eq!(false, resp.data.is_empty(), "Should not be empty"); @@ -1239,13 +1231,13 @@ async fn test_update_scheduled_message_status() { match request::message::scheduling::update_scheduled_message_status( &app, &scheduled_message_id, - textsender_models::message::scheduling::READY, + schedtxt_models::message::scheduling::READY, ) .await { Ok(response) => { let resp = util::get_resp_data::< - textsender_api::caller::message::scheduling::response::UpdateScheduledMessageStatusResponse, + schedtxt_api::caller::message::scheduling::response::UpdateScheduledMessageStatusResponse, >(response) .await; assert_eq!(false, resp.data.is_empty(), "Should not be empty"); @@ -1270,7 +1262,7 @@ async fn test_fetch_scheduled_message() { match request::create_contact(&app).await { Ok(response) => { let resp = util::get_resp_data::< - textsender_api::caller::contact::response::AddContactResponse, + schedtxt_api::caller::contact::response::AddContactResponse, >(response) .await; assert_eq!(false, resp.data.is_empty(), "Should not be empty"); @@ -1284,7 +1276,7 @@ async fn test_fetch_scheduled_message() { match request::message::create_message(&app).await { Ok(response) => { let resp = util::get_resp_data::< - textsender_api::caller::message::response::AddMessageResponse, + schedtxt_api::caller::message::response::AddMessageResponse, >(response) .await; assert_eq!(false, resp.data.is_empty(), "Should not be empty"); @@ -1299,7 +1291,7 @@ async fn test_fetch_scheduled_message() { match request::message::scheduling::create_scheduled_message(&app).await { Ok(response) => { let resp = util::get_resp_data::< - textsender_api::caller::message::scheduling::response::ScheduleMessageResponse, + schedtxt_api::caller::message::scheduling::response::ScheduleMessageResponse, >(response) .await; assert_eq!(false, resp.data.is_empty(), "Should not be empty"); @@ -1320,7 +1312,7 @@ async fn test_fetch_scheduled_message() { { Ok(response) => { let resp = util::get_resp_data::< - textsender_api::caller::message::scheduling::response::CreateScheduleMessageEventResponse, + schedtxt_api::caller::message::scheduling::response::CreateScheduleMessageEventResponse, >(response) .await; assert_eq!(false, resp.data.is_empty(), "Should not be empty"); @@ -1333,13 +1325,13 @@ async fn test_fetch_scheduled_message() { match request::message::scheduling::update_scheduled_message_status( &app, &scheduled_message_id, - textsender_models::message::scheduling::READY, + schedtxt_models::message::scheduling::READY, ) .await { Ok(response) => { let resp = util::get_resp_data::< - textsender_api::caller::message::scheduling::response::UpdateScheduledMessageStatusResponse, + schedtxt_api::caller::message::scheduling::response::UpdateScheduledMessageStatusResponse, >(response) .await; assert_eq!(false, resp.data.is_empty(), "Should not be empty"); @@ -1352,7 +1344,7 @@ async fn test_fetch_scheduled_message() { match request::message::scheduling::fetch_scheduled_message(&app).await { Ok(response) => { let resp = util::get_resp_data::< - textsender_api::caller::message::scheduling::response::FetchScheduledMessageResponse, + schedtxt_api::caller::message::scheduling::response::FetchScheduledMessageResponse, >(response) .await; assert_eq!(false, resp.data.is_empty(), "Should not be empty"); @@ -1378,7 +1370,7 @@ async fn test_record_message_event_response() { match request::create_contact(&app).await { Ok(response) => { let resp = util::get_resp_data::< - textsender_api::caller::contact::response::AddContactResponse, + schedtxt_api::caller::contact::response::AddContactResponse, >(response) .await; assert_eq!(false, resp.data.is_empty(), "Should not be empty"); @@ -1392,7 +1384,7 @@ async fn test_record_message_event_response() { match request::message::create_message(&app).await { Ok(response) => { let resp = util::get_resp_data::< - textsender_api::caller::message::response::AddMessageResponse, + schedtxt_api::caller::message::response::AddMessageResponse, >(response) .await; assert_eq!(false, resp.data.is_empty(), "Should not be empty"); @@ -1407,7 +1399,7 @@ async fn test_record_message_event_response() { match request::message::scheduling::create_scheduled_message(&app).await { Ok(response) => { let resp = util::get_resp_data::< - textsender_api::caller::message::scheduling::response::ScheduleMessageResponse, + schedtxt_api::caller::message::scheduling::response::ScheduleMessageResponse, >(response) .await; assert_eq!(false, resp.data.is_empty(), "Should not be empty"); @@ -1428,7 +1420,7 @@ async fn test_record_message_event_response() { { Ok(response) => { let resp = util::get_resp_data::< - textsender_api::caller::message::scheduling::response::CreateScheduleMessageEventResponse, + schedtxt_api::caller::message::scheduling::response::CreateScheduleMessageEventResponse, >(response) .await; assert_eq!(false, resp.data.is_empty(), "Should not be empty"); @@ -1443,13 +1435,13 @@ async fn test_record_message_event_response() { match request::message::scheduling::update_scheduled_message_status( &app, &scheduled_message_id, - textsender_models::message::scheduling::READY, + schedtxt_models::message::scheduling::READY, ) .await { Ok(response) => { let resp = util::get_resp_data::< - textsender_api::caller::message::scheduling::response::UpdateScheduledMessageStatusResponse, + schedtxt_api::caller::message::scheduling::response::UpdateScheduledMessageStatusResponse, >(response) .await; assert_eq!(false, resp.data.is_empty(), "Should not be empty"); @@ -1462,7 +1454,7 @@ async fn test_record_message_event_response() { match request::message::scheduling::fetch_scheduled_message(&app).await { Ok(response) => { let resp = util::get_resp_data::< - textsender_api::caller::message::scheduling::response::FetchScheduledMessageResponse, + schedtxt_api::caller::message::scheduling::response::FetchScheduledMessageResponse, >(response) .await; assert_eq!(false, resp.data.is_empty(), "Should not be empty"); @@ -1489,7 +1481,7 @@ async fn test_record_message_event_response() { { Ok(response) => { let resp = util::get_resp_data::< - textsender_api::caller::message::event::response::RecordMessageEventResponse, + schedtxt_api::caller::message::event::response::RecordMessageEventResponse, >(response) .await; assert_eq!(false, resp.data.is_empty(), "Should not be empty"); @@ -1515,7 +1507,7 @@ async fn test_get_message_event_response() { match request::create_contact(&app).await { Ok(response) => { let resp = util::get_resp_data::< - textsender_api::caller::contact::response::AddContactResponse, + schedtxt_api::caller::contact::response::AddContactResponse, >(response) .await; assert_eq!(false, resp.data.is_empty(), "Should not be empty"); @@ -1529,7 +1521,7 @@ async fn test_get_message_event_response() { match request::message::create_message(&app).await { Ok(response) => { let resp = util::get_resp_data::< - textsender_api::caller::message::response::AddMessageResponse, + schedtxt_api::caller::message::response::AddMessageResponse, >(response) .await; assert_eq!(false, resp.data.is_empty(), "Should not be empty"); @@ -1544,7 +1536,7 @@ async fn test_get_message_event_response() { match request::message::scheduling::create_scheduled_message(&app).await { Ok(response) => { let resp = util::get_resp_data::< - textsender_api::caller::message::scheduling::response::ScheduleMessageResponse, + schedtxt_api::caller::message::scheduling::response::ScheduleMessageResponse, >(response) .await; assert_eq!(false, resp.data.is_empty(), "Should not be empty"); @@ -1565,7 +1557,7 @@ async fn test_get_message_event_response() { { Ok(response) => { let resp = util::get_resp_data::< - textsender_api::caller::message::scheduling::response::CreateScheduleMessageEventResponse, + schedtxt_api::caller::message::scheduling::response::CreateScheduleMessageEventResponse, >(response) .await; assert_eq!(false, resp.data.is_empty(), "Should not be empty"); @@ -1580,13 +1572,13 @@ async fn test_get_message_event_response() { match request::message::scheduling::update_scheduled_message_status( &app, &scheduled_message_id, - textsender_models::message::scheduling::READY, + schedtxt_models::message::scheduling::READY, ) .await { Ok(response) => { let resp = util::get_resp_data::< - textsender_api::caller::message::scheduling::response::UpdateScheduledMessageStatusResponse, + schedtxt_api::caller::message::scheduling::response::UpdateScheduledMessageStatusResponse, >(response) .await; assert_eq!(false, resp.data.is_empty(), "Should not be empty"); @@ -1599,7 +1591,7 @@ async fn test_get_message_event_response() { match request::message::scheduling::fetch_scheduled_message(&app).await { Ok(response) => { let resp = util::get_resp_data::< - textsender_api::caller::message::scheduling::response::FetchScheduledMessageResponse, + schedtxt_api::caller::message::scheduling::response::FetchScheduledMessageResponse, >(response) .await; assert_eq!(false, resp.data.is_empty(), "Should not be empty"); @@ -1626,7 +1618,7 @@ async fn test_get_message_event_response() { { Ok(response) => { let resp = util::get_resp_data::< - textsender_api::caller::message::event::response::RecordMessageEventResponse, + schedtxt_api::caller::message::event::response::RecordMessageEventResponse, >(response) .await; assert_eq!(false, resp.data.is_empty(), "Should not be empty"); @@ -1634,7 +1626,7 @@ async fn test_get_message_event_response() { match request::message::event::get_message_event_response(&app, &mer.id).await { Ok(response) => { let resp = util::get_resp_data::< - textsender_api::caller::message::event::response::GetMERResponse, + schedtxt_api::caller::message::event::response::GetMERResponse, >(response) .await; assert_eq!(false, resp.data.is_empty(), "Should not be empty");