Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release Version 3.0.0-alpha.1 #347

Merged
merged 474 commits into from
Oct 15, 2023
Merged

Release Version 3.0.0-alpha.1 #347

merged 474 commits into from
Oct 15, 2023
This pull request is big! We’re only showing the most recent 250 commits.

Commits on May 19, 2023

  1. refactor: [#157] extract service for user registration

    Decoupling services from actix-web framework.
    josecelano committed May 19, 2023
    Configuration menu
    Copy the full SHA
    2eb0f7c View commit details
    Browse the repository at this point in the history

Commits on May 22, 2023

  1. refactor: [#157] extract service to ban users

    Decoupling services from actix-web framework.
    josecelano committed May 22, 2023
    Configuration menu
    Copy the full SHA
    8101048 View commit details
    Browse the repository at this point in the history
  2. refactor: [#157] extract authentication service

    Decoupling services from actix-web framework.
    josecelano committed May 22, 2023
    Configuration menu
    Copy the full SHA
    5396301 View commit details
    Browse the repository at this point in the history
  3. Merge #160: Decouple services from actix-web

    5396301 refactor: [#157] extract authentication service (Jose Celano)
    8101048 refactor: [#157] extract service to ban users (Jose Celano)
    2eb0f7c refactor: [#157] extract service for user registration (Jose Celano)
    1abcc4d refactor: [#157] extract service: torrent (Jose Celano)
    0387b97 refactor: [#157] extract service: settings (Jose Celano)
    c9fb249 refactor: [#157] extract service: proxy (Jose Celano)
    d58f3cc refactor: [#157] extract service: category (Jose Celano)
    baa4c7e refactor: [#157] extract service: about (Jose Celano)
    
    Pull request description:
    
      - [x] Extract `about` service.
      - [x] Extract `category` service.
      - [x] Extract `proxy` service.
      - [x] Extract `settings` service.
      - [x] Extract `torrent` service.
      - [x] Extract `user` registration service.
      - [x] Extract `user` ban service.
      - [x] Extract `user` authentication service.
    
    ACKs for top commit:
      josecelano:
        ACK 5396301
    
    Tree-SHA512: b63a45f3eb8aaab0d51c885793c94e85979273128d9cb94e36a4ed7577a399105e9dcef9624077b4ae07c8aac03f6520eb1823944e2b44554d1bd85ad8c9e281
    josecelano committed May 22, 2023
    Configuration menu
    Copy the full SHA
    8748f93 View commit details
    Browse the repository at this point in the history

Commits on May 24, 2023

  1. feat: torrent tags

    mickvandijke committed May 24, 2023
    Configuration menu
    Copy the full SHA
    7ce3d5e View commit details
    Browse the repository at this point in the history
  2. fix: sql queries

    mickvandijke committed May 24, 2023
    Configuration menu
    Copy the full SHA
    a1bd92f View commit details
    Browse the repository at this point in the history

Commits on May 25, 2023

  1. Configuration menu
    Copy the full SHA
    9ca7341 View commit details
    Browse the repository at this point in the history

Commits on May 29, 2023

  1. Merge #165: API documentation on docs.rs

    9ca7341 docs(api): [#163] API documentation on docs.rs (Jose Celano)
    
    Pull request description:
    
      API documentation on [docs.rs](https://docs.rs/torrust-index-backend).
    
      API Contexts:
    
      - [x] `about`
      - [x] `category`
      - [x] `proxy`
      - [x] `settings`
      - [x] `torrent`
      - [x] `user`
    
    ACKs for top commit:
      josecelano:
        ACK 9ca7341
    
    Tree-SHA512: a630056d9d9ce6e21f60538e1fdaabfb3c3fc1efd23e2d4e03408b0a32711a8f75d2b154d5b70a211e93d944f7a8386cb851b48cae593e45a3fc11df1763aef7
    josecelano committed May 29, 2023
    Configuration menu
    Copy the full SHA
    25aad49 View commit details
    Browse the repository at this point in the history

Commits on Jun 1, 2023

  1. Configuration menu
    Copy the full SHA
    4286ba9 View commit details
    Browse the repository at this point in the history

Commits on Jun 5, 2023

  1. Configuration menu
    Copy the full SHA
    9baedfb View commit details
    Browse the repository at this point in the history
  2. Merge #167: Installation and configurations docs

    9baedfb docs: [#166] installation and configuration (Jose Celano)
    
    Pull request description:
    
      Move installation and configuration docs to Rust [Documentation Comments](https://doc.rust-lang.org/book/ch14-02-publishing-to-crates-io.html#making-useful-documentation-comments).
    
    Top commit has no ACKs.
    
    Tree-SHA512: 4667d630446b45e1b73485f8c64b0dc4aa59e980aa4896f96b77dff9c13a1e84b5308428fd8ffa00708b1500401ab0c52cce96ecf08e26abd99c96a3ac8b9b91
    josecelano committed Jun 5, 2023
    Configuration menu
    Copy the full SHA
    29d87de View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    93d1b64 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    5485589 View commit details
    Browse the repository at this point in the history

Commits on Jun 6, 2023

  1. Merge #170: Documentation: statistics importer console command

    5485589 refactor: remove unneeded code (Jose Celano)
    93d1b64 docs: [#168] statistics importer console command (Jose Celano)
    
    Pull request description:
    
    Top commit has no ACKs.
    
    Tree-SHA512: 1d5f8b787ae94b418aaea50bee045fa080f8b200cac1f22e514c8a9a4c3548d504f9c92a1eabbc4658530522d798a139ea07d6f012d3167cc70728f0e921f322
    josecelano committed Jun 6, 2023
    Configuration menu
    Copy the full SHA
    2626f9f View commit details
    Browse the repository at this point in the history
  2. docs: [#169] app upgrader documentation

    Documentation for the command to upgrade the application.
    josecelano committed Jun 6, 2023
    Configuration menu
    Copy the full SHA
    d7f51fa View commit details
    Browse the repository at this point in the history
  3. Merge #171: App upgrader documentation

    d7f51fa docs: [#169] app upgrader documentation (Jose Celano)
    
    Pull request description:
    
      Documentation for the command to upgrade the application.
    
    Top commit has no ACKs.
    
    Tree-SHA512: 1c1aa1876fe28836a12c77ff7a76f5877dd443fd98f12ffd3d2ddc603f73dec7776b120370a5ddf8039f98b8c4f272e769a4aa4f24d67f42c02ce0bcad57b660
    josecelano committed Jun 6, 2023
    Configuration menu
    Copy the full SHA
    ba1c37c View commit details
    Browse the repository at this point in the history
  4. feat(api): [#174] new cargo dependencies: axum, hyper

    We decided to migrate from Actix Web to Axum. The main reason was we are
    also using Axum on the Tracker and it will be easier for us to mantain
    only one framework. And apparently there are no drawbacks.
    
    This commit adds the new dependencies.
    josecelano committed Jun 6, 2023
    Configuration menu
    Copy the full SHA
    7347fee View commit details
    Browse the repository at this point in the history
  5. feat: disable sqlx logging for all statements

    When the loggin level is set to INFO sqlx logs all SQL statements like
    this:
    
    ```
    2023-06-06T17:19:52.639651375+01:00 [sqlx::query][INFO] SELECT version FROM _sqlx_migrations …; rows affected: 0, rows returned: 0, elapsed: 58.361µs
    
    SELECT
      version
    FROM
      _sqlx_migrations
    WHERE
      success = false
    ORDER BY
      version
    LIMIT
      1
    ```
    
    This commits makes sqlc to log only failed statements as errors and slow
    statements (>1 second) as warnings.
    josecelano committed Jun 6, 2023
    Configuration menu
    Copy the full SHA
    7bcf20e View commit details
    Browse the repository at this point in the history

Commits on Jun 8, 2023

  1. chore: cargo fmt

    mickvandijke committed Jun 8, 2023
    Configuration menu
    Copy the full SHA
    a6cf184 View commit details
    Browse the repository at this point in the history
  2. chore: clippy errors

    mickvandijke committed Jun 8, 2023
    Configuration menu
    Copy the full SHA
    4730afd View commit details
    Browse the repository at this point in the history
  3. refactor(api): [#174] Axum API scaffolding

    Basic changes needed to run the Axum API implementation in parallel with the current one with ActixWeb.
    
    For the time being, we will be only useinf the Auxm implementation for testing until all endpoints are migrated.
    josecelano committed Jun 8, 2023
    Configuration menu
    Copy the full SHA
    d08f70e View commit details
    Browse the repository at this point in the history
  4. Merge #175: Axum API scaffolding

    d08f70e refactor(api): [#174] Axum API scaffolding (Jose Celano)
    7bcf20e feat: disable sqlx logging for all statements (Jose Celano)
    7347fee feat(api): [#174] new cargo dependencies: axum, hyper (Jose Celano)
    
    Pull request description:
    
      Basic changes which are needed to run the Axum API implementation in parallel with the current one with ActixWeb. For the time being the Axum implementation will be only used for testing until all endpoints are migrated.
    
    Top commit has no ACKs.
    
    Tree-SHA512: 6d0b8ed20329e91ba92bf5d78caf366b1fb61c2048040154b68da876878cd73f5de372be0955c492b82f307cbe8786d702ce86dbfa201900d6d98ea1913ba85b
    josecelano committed Jun 8, 2023
    Configuration menu
    Copy the full SHA
    a47c99b View commit details
    Browse the repository at this point in the history
  5. docs: [#97] update README

    josecelano committed Jun 8, 2023
    Configuration menu
    Copy the full SHA
    3edd507 View commit details
    Browse the repository at this point in the history
  6. Merge #173: Update README

    3edd507 docs: [#97] update README (Jose Celano)
    
    Pull request description:
    
    Top commit has no ACKs.
    
    Tree-SHA512: cb0002a0733e9ae5e2648d3bff3ad0fbb020f385caec68b77fac74f54af249504fd9e8ad4ff499e223bbdc8f653061b8916580ed7ea51d077c1e057e358b93c0
    josecelano committed Jun 8, 2023
    Configuration menu
    Copy the full SHA
    937d4d9 View commit details
    Browse the repository at this point in the history
  7. feat: [#177] new config option for log level

    ```toml
    log_level = "info"
    ```
    
    The level can be:
    
    - `off`
    - `error`
    - `warn`
    - `info`
    - `debug`
    - `trace`
    josecelano committed Jun 8, 2023
    Configuration menu
    Copy the full SHA
    0264e5c View commit details
    Browse the repository at this point in the history
  8. refactor: disable logging for testing

    The log has some errors we need to fix. See:
    
    #176
    josecelano committed Jun 8, 2023
    Configuration menu
    Copy the full SHA
    68e2132 View commit details
    Browse the repository at this point in the history
  9. Merge #184: New config option for log level

    68e2132 refactor: disable logging for testing (Jose Celano)
    0264e5c feat: [#177] new config option for log level (Jose Celano)
    
    Pull request description:
    
      ```toml
      log_level = "info"
      ```
    
      The level can be:
    
      - `off`
      - `error`
      - `warn`
      - `info`
      - `debug`
      - `trace`
    
      It's optional. The default value is `info`.
    
    Top commit has no ACKs.
    
    Tree-SHA512: 7bb55827fefa093bf5a64295047fe237b23e76c239c9385793a73e11570e1eecd73d5c07e09625ac5d4236a46f149bff0ff462d3b54779cd836bbe3921a8232b
    josecelano committed Jun 8, 2023
    Configuration menu
    Copy the full SHA
    488cd07 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    1924365 View commit details
    Browse the repository at this point in the history
  11. Merge #185: Axum API: about context

    1924365 refactor(api): [#178] axum API, 'about' context migrated (Jose Celano)
    
    Pull request description:
    
    Top commit has no ACKs.
    
    Tree-SHA512: bfa8d3ce6b1d5f59fdf6f35619c0e0a552ce49df7a9cb89081dc7f29e3f6dfb18216dde9c722e3f3610079987dcc68664c062eaff4c7d3948ff9aa243d1add56
    josecelano committed Jun 8, 2023
    Configuration menu
    Copy the full SHA
    9e40be6 View commit details
    Browse the repository at this point in the history

Commits on Jun 9, 2023

  1. Merge #162: 76 add tags to torrents

    4730afd chore: clippy errors (Warm Beer)
    a6cf184 chore: cargo fmt (Warm Beer)
    4286ba9 feat: added filtering torrents on tags (Warm Beer)
    a1bd92f fix: sql queries (Warm Beer)
    7ce3d5e feat: torrent tags (Warm Beer)
    
    Pull request description:
    mickvandijke committed Jun 9, 2023
    Configuration menu
    Copy the full SHA
    e766b4c View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    b97698a View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    f693a02 View commit details
    Browse the repository at this point in the history
  4. Merge #191: Refactor API: extract tag service

    f693a02 refactor: [#187] extract tag::Service (Jose Celano)
    b97698a test(api): [#187] add tests for new 'tag' context (Jose Celano)
    
    Pull request description:
    
      A new API context was created, `tag`, but the code is in the ActixWeb handler. [We were migrating that code to services](#157).
    
    Top commit has no ACKs.
    
    Tree-SHA512: 8cf608d2d3b5517f971e836feddc4bfc29391adde2f68221ee5000e5fbea532c49cb5d33f31c99f2e95c650b25bf16496df7c8beb591a735cb6647af1ba47960
    josecelano committed Jun 9, 2023
    Configuration menu
    Copy the full SHA
    fbac73a View commit details
    Browse the repository at this point in the history
  5. fix: [#189] make 'Development checks' workflow fail if E2E tests fail

    The workflow "Development checks" is not failing if E2E tests fail. This
    fixes that problem.
    josecelano committed Jun 9, 2023
    Configuration menu
    Copy the full SHA
    b4c43da View commit details
    Browse the repository at this point in the history
  6. Merge #192: Make development checks workflow fail if E2E test fails

    b4c43da fix: [#189] make 'Development checks' workflow fail if E2E tests fail (Jose Celano)
    
    Pull request description:
    
      The workflow "Development checks" is not failing if E2E tests fail. This fixes that problem.
    
    Top commit has no ACKs.
    
    Tree-SHA512: ab4b21a495f7f25c0a3172ed08fe31ccf398598053a1384bc4d707a28c6c99066113bd2d6e9868ca162cefd67944674767460e8afae3bb7a5017a6402d623cf5
    josecelano committed Jun 9, 2023
    Configuration menu
    Copy the full SHA
    8737e92 View commit details
    Browse the repository at this point in the history
  7. fix: [#190] SQL error in SQLite

    The SQL query:
    
    ```
    SELECT
      COUNT(*) as count
    FROM
      (
        SELECT
          tt.torrent_id,
          tp.username AS uploader,
          tt.info_hash,
          ti.title,
          ti.description,
          tt.category_id,
          DATE_FORMAT(tt.date_uploaded, '%Y-%m-%d %H:%i:%s') AS date_uploaded,
          tt.size AS file_size,
          CAST(COALESCE(sum(ts.seeders), 0) as signed) as seeders,
          CAST(COALESCE(sum(ts.leechers), 0) as signed) as leechers
        FROM
          torrust_torrents tt
          INNER JOIN torrust_user_profiles tp ON tt.uploader_id = tp.user_id
          INNER JOIN torrust_torrent_info ti ON tt.torrent_id = ti.torrent_id
          LEFT JOIN torrust_torrent_tracker_stats ts ON tt.torrent_id = ts.torrent_id
        WHERE
          title LIKE ?
        GROUP BY
          tt.torrent_id
      ) AS count_table
    ```
    
    should not use the `DATE_FORMAT` function in SQLite.
    josecelano committed Jun 9, 2023
    Configuration menu
    Copy the full SHA
    6023b96 View commit details
    Browse the repository at this point in the history
  8. Merge #193: Fix SQL error in SQLite

    6023b96 fix: [#190] SQL error in SQLite (Jose Celano)
    
    Pull request description:
    
      The SQL query:
    
      ```sql
      SELECT
        COUNT(*) as count
      FROM
        (
          SELECT
            tt.torrent_id,
            tp.username AS uploader,
            tt.info_hash,
            ti.title,
            ti.description,
            tt.category_id,
            DATE_FORMAT(tt.date_uploaded, '%Y-%m-%d %H:%i:%s') AS date_uploaded,
            tt.size AS file_size,
            CAST(COALESCE(sum(ts.seeders), 0) as signed) as seeders,
            CAST(COALESCE(sum(ts.leechers), 0) as signed) as leechers
          FROM
            torrust_torrents tt
            INNER JOIN torrust_user_profiles tp ON tt.uploader_id = tp.user_id
            INNER JOIN torrust_torrent_info ti ON tt.torrent_id = ti.torrent_id
            LEFT JOIN torrust_torrent_tracker_stats ts ON tt.torrent_id = ts.torrent_id
          WHERE
            title LIKE ?
          GROUP BY
            tt.torrent_id
        ) AS count_table
      ```
    
      should not use the `DATE_FORMAT` function in SQLite.
    
    Top commit has no ACKs.
    
    Tree-SHA512: 44de35f013c0209bd51ce241fbf53bbf4745ecf37883c1af73bd2a80ae484074a93d8e5ea9d480da8ee8699828bf232dfdc2cd1cfe1649b49c8e0ab8667d5563
    josecelano committed Jun 9, 2023
    Configuration menu
    Copy the full SHA
    9f8832b View commit details
    Browse the repository at this point in the history

Commits on Jun 13, 2023

  1. Configuration menu
    Copy the full SHA
    79682a5 View commit details
    Browse the repository at this point in the history
  2. feat: add cargo dependency tower-http

    With the new Axum implementation for the API the browser does not make
    request to the API becuase of the Cross-Origin Resource Sharing (CORS)
    policy. By default there is no header `Access-Control-Allow-Origin` and
    it does not allow the request.
    
    You can be permissive by adding a layer to the router:
    
    ```
    Router::new().nest("/v1", api_routes).layer(CorsLayer::permissive())
    ```
    
    For the time being you need to change that line manually when you want
    to setup a dev env with the banckend and the frontend using different
    ports.
    josecelano committed Jun 13, 2023
    Configuration menu
    Copy the full SHA
    91522f4 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    a341e38 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    3f639b3 View commit details
    Browse the repository at this point in the history

Commits on Jun 14, 2023

  1. Configuration menu
    Copy the full SHA
    b15616c View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    9564dec View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    d3b5b15 View commit details
    Browse the repository at this point in the history
  4. Merge #196: Axum API: user context

    d3b5b15 refactor(api): [#183] Axum API, user context, ban user (Jose Celano)
    9564dec refactor(api): [#183] Axum API, user context, renew JWT (Jose Celano)
    b15616c refactor(api): [#183] Axum API, user context, verify JWT (Jose Celano)
    3f639b3 refactor(api): [#183] Axum API, user context, login (Jose Celano)
    a341e38 refactor(api): [#183] Axum API, user context, email verification (Jose Celano)
    91522f4 feat: add cargo dependency tower-http (Jose Celano)
    79682a5 refactor(api): [#183] Axum API, user context, registration (Jose Celano)
    
    Pull request description:
    
      API migration to Axum for `user` context.
    
    Top commit has no ACKs.
    
    Tree-SHA512: efd396039246739428c9b80ff942b8672bcf115a5d4dcac1ef18fb960de1d2dfd8d86bf1d490b6d6b8294f0fd9d3f92b9f89814c781d632a8533074cccca08b0
    josecelano committed Jun 14, 2023
    Configuration menu
    Copy the full SHA
    03dba5c View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    6f9c1a2 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    bb6d9bf View commit details
    Browse the repository at this point in the history

Commits on Jun 15, 2023

  1. Configuration menu
    Copy the full SHA
    f63bf05 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    b4a7ea6 View commit details
    Browse the repository at this point in the history
  3. Merge #195: Axum API: category context

    b4a7ea6 refactor(api): [#179] Axum API, category context, delete category (Jose Celano)
    f63bf05 refactor(api): [#179] Axum API, category context, add category (Jose Celano)
    bb6d9bf refactor(api): [#179] Axum API, category context, get all categories (Jose Celano)
    6f9c1a2 refactor: API category context tetests (Jose Celano)
    
    Pull request description:
    
      API migration to Axum for `category` context.
    
    Top commit has no ACKs.
    
    Tree-SHA512: 01a983f5e2f8c1a547aea5145cb7133b572dbf4569cb84db1b4272b03cdcd283d44ce4b4a1c1a3618c145242bc0e019bb3c02805e4b1cbf6ee558c9be80462cf
    josecelano committed Jun 15, 2023
    Configuration menu
    Copy the full SHA
    9a277e8 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    878bb7b View commit details
    Browse the repository at this point in the history
  5. Merge #199: Axum API: root enpoints

    878bb7b refactor(api): [#198] Axum API, root endpoints (Jose Celano)
    
    Pull request description:
    
      API migration to Axum for root endpoints.
    
    Top commit has no ACKs.
    
    Tree-SHA512: 66db7642c3bb9c66a757369e25005d0a31fe1086509b0072c2063fbe002ae5ec47f94544b4a17cbfbea1cd751d2960551e2f83dabf1a752545e8417b7b912a0a
    josecelano committed Jun 15, 2023
    Configuration menu
    Copy the full SHA
    cbd70b6 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    b53ce8d View commit details
    Browse the repository at this point in the history
  7. Merge #200: Axum API: tag context

    b53ce8d refactor(api): [#198] Axum API, tag context (Jose Celano)
    
    Pull request description:
    
      API migration to Axum for `tag` context.
    
    Top commit has no ACKs.
    
    Tree-SHA512: 8d14fa225fa87d54d3aba217a942510113864aff5e98f08e391f50aba304ff79ff65482fb2751e62f2e4bb9153367512dc859948bb2467b03e3999ba0e366fef
    josecelano committed Jun 15, 2023
    Configuration menu
    Copy the full SHA
    0c26aaa View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    dc469c4 View commit details
    Browse the repository at this point in the history
  9. Merge #201: Axum API: settings context

    dc469c4 refactor(api): [#181] Axum API, settings contex (Jose Celano)
    
    Pull request description:
    
      API migration to Axum for `settings` context.
    
    Top commit has no ACKs.
    
    Tree-SHA512: 0f6522a66b49278d92502363e787fd2da5431bb4bde1541ddb572d033050e52e0e594ba10c9e600afc3bf38c42bca07a20b41a0bf4be1d5bf797018b3b48b9f2
    josecelano committed Jun 15, 2023
    Configuration menu
    Copy the full SHA
    619cc33 View commit details
    Browse the repository at this point in the history
  10. feat(api): add multipart feature for Axum package

    We are migrating the API to Axum. We need the `multipart` feature to
    handle the upload torrent file POST.
    josecelano committed Jun 15, 2023
    Configuration menu
    Copy the full SHA
    d7f1e34 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    538ebcc View commit details
    Browse the repository at this point in the history

Commits on Jun 16, 2023

  1. Configuration menu
    Copy the full SHA
    ed533b7 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    b998a16 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    4bed98a View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    ca257ff View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    24394ea View commit details
    Browse the repository at this point in the history
  6. Merge #202: Axum API: torrent context

    24394ea refactor(api): [#182] Axum API, torrent context, delete torrent info (Jose Celano)
    ca257ff refactor(api): [#182] Axum API, torrent context, update torrent info (Jose Celano)
    4bed98a refactor(api): [#182] Axum API, torrent context, get torrent info (Jose Celano)
    b998a16 refactor(api): [#182] Axum API, torrent context, search for torrents (Jose Celano)
    ed533b7 refactor(api): [#182] Axum API, torrent context, download torrent file (Jose Celano)
    538ebcc refactor(api): [#182] Axum API, torrent context, upload torrent file (Jose Celano)
    d7f1e34 feat(api): add multipart feature for Axum package (Jose Celano)
    
    Pull request description:
    
      API migration to Axum for `torrent` context.
    
      Torrent files:
    
      - [x] Upload torrent file
      - [x] Download torrent file
    
      Indexed torrents:
    
      - [x] Search for torrents
      - [x] Get torrent info
      - [x] Update torrent
      - [x] Delete torrent
    
    Top commit has no ACKs.
    
    Tree-SHA512: 7f943127dc73d534a49f4091007ab7fef32f089b6bdd852b3fe68bd7a579e83be1d578db4ccad16706884045b37fa924f5f73e2578fc6d0cd3a1e9156d3360cf
    josecelano committed Jun 16, 2023
    Configuration menu
    Copy the full SHA
    032b57f View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    0af2cb7 View commit details
    Browse the repository at this point in the history
  8. Merge #205: Axum API: proxy context

    0af2cb7 refactor(api): [#180] Axum API, proxy context (Jose Celano)
    
    Pull request description:
    
      API migration to Axum for `proxy` context.
    
    Top commit has no ACKs.
    
    Tree-SHA512: 7519335e6b49f098b2df913ba32574d86c99953ec66892d6227d7d2f9b695801c08d3a36bdd9c0239e9bcf6d35af2fbaaa8348d1531ed9a8a15e6e1acbd83580
    josecelano committed Jun 16, 2023
    Configuration menu
    Copy the full SHA
    48b27ea View commit details
    Browse the repository at this point in the history

Commits on Jun 19, 2023

  1. fix(api): Axum API, fix delete tag response

    Response after deleting a tag should be:
    
    ```
    {
      data: 1
    }
    ```
    
    not:
    
    ```
    {
      data: "1"
    }
    ```
    
    where 1 (`i64`) is the tag ID.
    josecelano committed Jun 19, 2023
    Configuration menu
    Copy the full SHA
    34db879 View commit details
    Browse the repository at this point in the history
  2. test(api): fix test for empty categories

    The application allows adding empty categories. The test cannot be
    executed in a shared env because it would fail the second tie is
    executed becuase the category already exists.
    josecelano committed Jun 19, 2023
    Configuration menu
    Copy the full SHA
    b4744e7 View commit details
    Browse the repository at this point in the history
  3. fix(api): Axum API, error should return a 500 status code

    If the handlers return an error Axum does not automatically return an
    error HTTP code. See
    https://docs.rs/axum/latest/axum/error_handling/index.html. You have to
    convert the error into an error response.
    josecelano committed Jun 19, 2023
    Configuration menu
    Copy the full SHA
    b73d864 View commit details
    Browse the repository at this point in the history
  4. refactor: move funtion get_optional_logged_in_user

    This function could be used by many other handlers.
    josecelano committed Jun 19, 2023
    Configuration menu
    Copy the full SHA
    a6881e3 View commit details
    Browse the repository at this point in the history
  5. refector(api): move API_VERSION const out of ActixWeb implementation

    We are going to remove the ActixWeb implementation after enabling the
    new Axum implementaion. WE are moving generic things in ActixWeb
    implementations that are not going to be removed.
    josecelano committed Jun 19, 2023
    Configuration menu
    Copy the full SHA
    9591239 View commit details
    Browse the repository at this point in the history
  6. refactor(api): move Create struct

    It's been used also in Axum implementation and ActixWeb implementation
    will be removed.
    josecelano committed Jun 19, 2023
    Configuration menu
    Copy the full SHA
    d8b2104 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    ff8816f View commit details
    Browse the repository at this point in the history
  8. refactor(api): move auth logic to web api

    It depends on the web framework (request).
    josecelano committed Jun 19, 2023
    Configuration menu
    Copy the full SHA
    f0017ae View commit details
    Browse the repository at this point in the history
  9. Merge #206: Axum API: fix errors and minor refactorings

    f0017ae refactor(api): move auth logic to web api (Jose Celano)
    ff8816f refactor(api): rename structs (Jose Celano)
    d8b2104 refactor(api): move Create struct (Jose Celano)
    9591239 refector(api): move API_VERSION const out of ActixWeb implementation (Jose Celano)
    a6881e3 refactor: move funtion get_optional_logged_in_user (Jose Celano)
    b73d864 fix(api): Axum API, error should return a 500 status code (Jose Celano)
    b4744e7 test(api): fix test for empty categories (Jose Celano)
    34db879 fix(api): Axum API, fix delete tag response (Jose Celano)
    
    Pull request description:
    
      Before enabling Auxm API, there are some minor changes and fixes to do.
    
    Top commit has no ACKs.
    
    Tree-SHA512: 5f02553f58aa9cebe98fe500577b6bfe235bafa40b04835a5a2a8527fd519ddfc1004a1272548e96ae2e611589de05dac39e3533c587312b61aea4fe46d2dcce
    josecelano committed Jun 19, 2023
    Configuration menu
    Copy the full SHA
    a662f9c View commit details
    Browse the repository at this point in the history

Commits on Jun 20, 2023

  1. Configuration menu
    Copy the full SHA
    6fc6872 View commit details
    Browse the repository at this point in the history
  2. Merge #207: Axum API: make it the default implementation

    6fc6872 refactor(api): [#197] make Axum implementation the default one (Jose Celano)
    
    Pull request description:
    
      This makes the Axum implementation the default one for the API.
    
    Top commit has no ACKs.
    
    Tree-SHA512: 353db42a19e98eaed3ab417a55865240d070ef834d89501d053cd01ba39cb4c5b3b35b5ac519136730fe49862d267fc11ace9414b7b6bf637bb1e6e80c6e6760
    josecelano committed Jun 20, 2023
    Configuration menu
    Copy the full SHA
    0f2ed68 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    44c799e View commit details
    Browse the repository at this point in the history
  4. refactor(api): [#208] use API impementation enum for API versioning

    We've removed the ActixWeb implementation for the API. We can use the
    enum for implementations for versioning the API. Currently there is only
    one version `v1` but i'ts ready to add the verion `v2`.
    josecelano committed Jun 20, 2023
    Configuration menu
    Copy the full SHA
    717cdaa View commit details
    Browse the repository at this point in the history
  5. Merge #209: Remove ActixWeb implementation

    717cdaa refactor(api): [#208] use API impementation enum for API versioning (Jose Celano)
    44c799e refator(api): [#208] remove ActixWeb implementation (Jose Celano)
    
    Pull request description:
    
      Remove ActixWeb implementation.
    
    Top commit has no ACKs.
    
    Tree-SHA512: 62e9724aabaf06c7ef1d2be3f8fe9e8a45ffe667ea96aa52018829231fc5ae80c7957e946040db43eccefeb544b685466e86c665d33ade50bef50727440ad116
    josecelano committed Jun 20, 2023
    Configuration menu
    Copy the full SHA
    dffec12 View commit details
    Browse the repository at this point in the history
  6. release: v2.0.0-alpha.2

    josecelano committed Jun 20, 2023
    Configuration menu
    Copy the full SHA
    6b94f77 View commit details
    Browse the repository at this point in the history
  7. chore: format toml files

    josecelano committed Jun 20, 2023
    Configuration menu
    Copy the full SHA
    910a419 View commit details
    Browse the repository at this point in the history

Commits on Jun 26, 2023

  1. feat: add env var to set permissive CORS policy

    Running the backend with:
    
    ```
    TORRUST_IDX_BACK_CORS_PERMISSIVE=true cargo run
    ```
    
    will make the CORS policy to be permissive, which means you can use a
    different port for the API and serving the frontend app. It's intented
    for development purposes.
    josecelano committed Jun 26, 2023
    Configuration menu
    Copy the full SHA
    f998d9d View commit details
    Browse the repository at this point in the history
  2. Merge #218: Add environment variable to set permissive CORS policy

    f998d9d feat: add env var to set permissive CORS policy (Jose Celano)
    
    Pull request description:
    
      Running the backend with:
    
      ```
      TORRUST_IDX_BACK_CORS_PERMISSIVE=true cargo run
      ```
    
      will make the CORS policy to be permissive, which means you can use a different port for the API and serving the frontend app. It's intented for development purposes.
    
    Top commit has no ACKs.
    
    Tree-SHA512: eda45426fb6e6aeceb7213066354a3d9b83de6a3d3e757788e5500c84c2900f6d15f16c95c1b82ae763c487847827c9592859e206a41feb37eec4755a9ea8ff9
    josecelano committed Jun 26, 2023
    Configuration menu
    Copy the full SHA
    5568bd0 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    b4ea3d5 View commit details
    Browse the repository at this point in the history
  4. Merge #219: Allow updating torrent category after upload

    b4ea3d5 fix: [#216] allow updating torrent category after upload (Jose Celano)
    
    Pull request description:
    
      Allow updating torrent category after upload.
    
    Top commit has no ACKs.
    
    Tree-SHA512: c97b8cc2c8d2c1fb25db58d5eda456bf893d48350c9b909f1672d69555cc2aea9404fa905d2b85ab1e1f0b47d9ecf8d4e9650876b1c44e5fc3d8003c1f7bdd57
    josecelano committed Jun 26, 2023
    Configuration menu
    Copy the full SHA
    6bef948 View commit details
    Browse the repository at this point in the history
  5. test: [#194] remove database tests

    Because:
    
    - They are hard to maintain because of the table's dependencies.
    - They are duplicated in E2E tests. And it's easier to set the state you want to test with E2E tests.
    
    TODO: runt the E2E test using MySQL to ensure queries are OK. Currently, E2E tests are only executed with SQLite.
    josecelano committed Jun 26, 2023
    Configuration menu
    Copy the full SHA
    7a06fe8 View commit details
    Browse the repository at this point in the history
  6. fix: [#194] add missing tables to truncate when reseting the DB

    When you upgrade from v1.0.0 to v2.0.0 you can run an upgrader which
    will truncate all the tables in the target database. There were some
    missing tables in the list. Probably, there wre tables added after
    creting the upgrader command.
    josecelano committed Jun 26, 2023
    Configuration menu
    Copy the full SHA
    986d2f8 View commit details
    Browse the repository at this point in the history
  7. Merge #220: Fix: missing tables in Database::delete_all_database_rows…

    … function
    
    986d2f8 fix: [#194] add missing tables to truncate when reseting the DB (Jose Celano)
    7a06fe8 test: [#194] remove database tests (Jose Celano)
    
    Pull request description:
    
      Fix the function `delete_all_database_rows` to delete all tables.
    
      Besides, remove database tests because:
    
      - They are hard to maintain because of the table's dependencies.
      - They are duplicated in E2E tests. And it's easier to set the state you want to test with E2E tests.
    
      TODO: runt the E2E test using MySQL to ensure queries are OK. Currently, E2E tests are only executed with SQLite.
    
    Top commit has no ACKs.
    
    Tree-SHA512: 102b366c5c3be399a4f9801ea3a888c2c17219f0c9f72313441a677458ac18249872798e339cc0781c784610534de711c102aa10416d3cdb60bf71aefb668fc2
    josecelano committed Jun 26, 2023
    Configuration menu
    Copy the full SHA
    f0e28a6 View commit details
    Browse the repository at this point in the history
  8. feat!: [#144] don't allow to update settings

    Without restarting the application. This feature was using the `config.toml` file. That approach is not good for theses reasons:
    
    - If you use env vars to inject the settings, there is no `config.toml` file.
    - In dockerized (clouds) envs it's harder to mount a file than injecting env vars. Sometimes it's only allowed to mount a single file.
    josecelano committed Jun 26, 2023
    Configuration menu
    Copy the full SHA
    f85e153 View commit details
    Browse the repository at this point in the history
  9. Merge #221: Don't allow to update settings

    f85e153 feat!: [#144] don't allow to update settings (Jose Celano)
    
    Pull request description:
    
      Without restarting the application. This feature was using the `config.toml` file. That approach is not good for theses reasons:
    
      - If you use env vars to inject the settings, there is no `config.toml` file.
      - In dockerized (clouds) envs it's harder to mount a file than injecting env vars. Sometimes it's only allowed to mount a single file.
    
    Top commit has no ACKs.
    
    Tree-SHA512: 6d20384acb520d314cf5eb9a0f114f5209a72d60fd9804bccc8a914a7f9beaaff040fe15e556c2e61f99686406b401d52175fe280ccf4451c671ee8e3e31440e
    josecelano committed Jun 26, 2023
    Configuration menu
    Copy the full SHA
    c687aa3 View commit details
    Browse the repository at this point in the history

Commits on Jun 27, 2023

  1. feat!: [#215] return 404 when torrent is not found

    The endpoint to get the torrent info details returns a 404 HTTP status
    code instead of a 400, when the provided infohash does not exist in the
    database.
    
    The endpoint to download a torrent file is also changed.
    josecelano committed Jun 27, 2023
    Configuration menu
    Copy the full SHA
    21ee689 View commit details
    Browse the repository at this point in the history
  2. Merge #222: Return 404 when torrent is not found

    21ee689 feat!: [#215] return 404 when torrent is not found (Jose Celano)
    
    Pull request description:
    
      The [endpoint to get the torrent info details](https://github.com/torrust/torrust-index-backend/blob/develop/src/web/api/v1/contexts/torrent/handlers.rs#L112-L128) returns a `404` HTTP status code instead of a `400` when the provided infohash does not exist in the database.
    
      The [endpoint to download the torrent file](https://github.com/torrust/torrust-index-backend/blob/develop/src/web/api/v1/contexts/torrent/handlers.rs#L66-L86) is also changed.
    
    Top commit has no ACKs.
    
    Tree-SHA512: c3e39e9e7742691f98d71f3485632ca0fcf481114c90dc9173e65623bdf38f197714f91a0d476ae2ddfbeb8f5ee5ff5cd007f62c68007066db8ce34f2b8813a1
    josecelano committed Jun 27, 2023
    Configuration menu
    Copy the full SHA
    c27a5a9 View commit details
    Browse the repository at this point in the history
  3. feat!: [#97] make torrent category optional

    The JSON response can now contain a `null` value for the `category`:
    
    ```json
    {
        "data": {
            "torrent_id": 1,
            "uploader": "josecelano",
            "info_hash": "E8564469C258B1373BC2D5749FB83B1BF83D68A0",
            "title": "Ubuntu",
            "description": null,
            "category": null,
            "upload_date": "2023-06-27 11:35:09",
            "file_size": 1261707713,
            "seeders": 0,
            "leechers": 0,
            "files": [
                {
                    "path": [
                        "NNN.url"
                    ],
                    "length": 114,
                    "md5sum": null
                },
                {
                    "path": [
                        "XXX.url"
                    ],
                    "length": 121,
                    "md5sum": null
                },
                {
                    "path": [
                        "XXX.avi"
                    ],
                    "length": 1261707478,
                    "md5sum": null
                }
            ],
            "trackers": [
                "udp://tracker:6969",
            ],
            "magnet_link": "magnet:?xt=urn:btih:E8564469C258B1373BC2D5749FB83B1BF83D68A0&dn=Ubuntu&tr=udp%3A%2F%2Ftracker%3A6969e",
            "tags": []
        }
    }
    ```
    josecelano committed Jun 27, 2023
    Configuration menu
    Copy the full SHA
    21a1f16 View commit details
    Browse the repository at this point in the history
  4. Merge #225: Make torrent category optional

    21a1f16 feat!: [#97] make torrent category optional (Jose Celano)
    
    Pull request description:
    
      The JSON response can now contain a `null` value for the `category`:
    
      ```json
      {
          "data": {
              "torrent_id": 1,
              "uploader": "josecelano",
              "info_hash": "E8564469C258B1373BC2D5749FB83B1BF83D68A0",
              "title": "Ubuntu",
              "description": null,
              "category": null,
              "upload_date": "2023-06-27 11:35:09",
              "file_size": 1261707713,
              "seeders": 0,
              "leechers": 0,
              "files": [
                  {
                      "path": [
                          "NNN.url"
                      ],
                      "length": 114,
                      "md5sum": null
                  },
                  {
                      "path": [
                          "XXX.url"
                      ],
                      "length": 121,
                      "md5sum": null
                  },
                  {
                      "path": [
                          "XXX.avi"
                      ],
                      "length": 1261707478,
                      "md5sum": null
                  }
              ],
              "trackers": [
                  "udp://tracker:6969",
              ],
              "magnet_link": "magnet:?xt=urn:btih:E8564469C258B1373BC2D5749FB83B1BF83D68A0&dn=Ubuntu&tr=udp%3A%2F%2Ftracker%3A6969e",
              "tags": []
          }
      }
      ```
    
    Top commit has no ACKs.
    
    Tree-SHA512: 1b0ad7e616de6af544aa37b7c3357e6ca351e8d2d3999ac83abd9f61e1b686810979fa23e117a2432e2755e00c284b8ac939c949293a5815c08c76fc149ca459
    josecelano committed Jun 27, 2023
    Configuration menu
    Copy the full SHA
    9133910 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    7803d5a View commit details
    Browse the repository at this point in the history
  6. Merge #226: Lowercase infohashes

    7803d5a feat!: [#217] lowercase infohashes (Jose Celano)
    
    Pull request description:
    
      [We decided to use lowercase infohashes](https://github.com/torrust/torrust-index-backend/blob/develop/adrs/20230510152112_lowercas_infohashes.md).
    
    Top commit has no ACKs.
    
    Tree-SHA512: b4c73373f7240a08cf87a70510a7486f71e724297e1f694b2cdff426b002bf34e40b3e99d787eb151fdbc1ab6c9bba7c9e2c903062086b18a812a10a9b4f5f1c
    josecelano committed Jun 27, 2023
    Configuration menu
    Copy the full SHA
    f20a8de View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    acf5728 View commit details
    Browse the repository at this point in the history
  8. fix: [#227] load error images in image proxy before serving them

    Error images in image proxy were not been loaded before serving them,
    resulting in not sending the iamge data to the frontend.
    josecelano committed Jun 27, 2023
    Configuration menu
    Copy the full SHA
    802df10 View commit details
    Browse the repository at this point in the history
  9. Merge #228: fix: load error images in image proxy before serving them

    802df10 fix: [#227] load error images in image proxy before serving them (Jose Celano)
    
    Pull request description:
    
      Error images in image proxy were not been loaded before serving them, resulting in not sending the iamge data to the frontend.
    
    Top commit has no ACKs.
    
    Tree-SHA512: 780ae15f40d7a5705c62d40f4a49c401a0eb30605af9fef0b749a07424c1215e58bba2aa49669c4c1b70aed1fcebafc4351f21e3e6cb9053b60f0715a032abad
    josecelano committed Jun 27, 2023
    Configuration menu
    Copy the full SHA
    31d63e3 View commit details
    Browse the repository at this point in the history

Commits on Jun 28, 2023

  1. feat!: change default API port to 3001

    To avoid conflict with the frontend default port for nuxt.
    josecelano committed Jun 28, 2023
    Configuration menu
    Copy the full SHA
    ba8b2c2 View commit details
    Browse the repository at this point in the history
  2. Merge #233: Change default API port to 3001

    ba8b2c2 feat!: change default API port to 3001 (Jose Celano)
    
    Pull request description:
    
      To avoid conflict with the frontend default port for [nuxt](https://nuxt.com/).
    
    Top commit has no ACKs.
    
    Tree-SHA512: 307ab75dbb58be506c62b9d4d47da12b945c1efd780132297f3e5cd909844122f67b4a84f22b501f37aee117084901085722144f005dabdad0336eadb7581dd4
    josecelano committed Jun 28, 2023
    Configuration menu
    Copy the full SHA
    96f17c7 View commit details
    Browse the repository at this point in the history

Commits on Jul 3, 2023

  1. chore: udpate rust toolchain 1.72.0-nightly

    Fixing cargo fmt and clipply errors and warnings
    josecelano committed Jul 3, 2023
    Configuration menu
    Copy the full SHA
    fe25778 View commit details
    Browse the repository at this point in the history
  2. fix: [#230] make sure user exist in upload torrent endpoint

    We get the user ID from the Json Web Token, but that does not mean the user actually exists. The session could be valid, but the user could have been removed from the database.
    josecelano committed Jul 3, 2023
    Configuration menu
    Copy the full SHA
    a534e38 View commit details
    Browse the repository at this point in the history
  3. Merge #234: Make sure user exist in upload torrent endpoint

    a534e38 fix: [#230] make sure user exist in upload torrent endpoint (Jose Celano)
    fe25778 chore: udpate rust toolchain 1.72.0-nightly (Jose Celano)
    
    Pull request description:
    
      We get the user ID from the Json Web Token, but that does not mean the user actually exists. The session could be valid, but the user could have been removed from the database.
    
    Top commit has no ACKs.
    
    Tree-SHA512: 48052dcb59c3eaeb31777c1831966b9a239489648b193fd25e3eab8a0a24f2d79e7c29f57e41dee55cf1584e68da9086f39b8c8f785112c12dc0141eccdfb3bc
    josecelano committed Jul 3, 2023
    Configuration menu
    Copy the full SHA
    277a905 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    db1612c View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    b069421 View commit details
    Browse the repository at this point in the history
  6. Merge #235: Upload coverage report to codecov

    b069421 chore: normalize workflow names (Jose Celano)
    db1612c ci: add upload coverage report to codecov (Jose Celano)
    
    Pull request description:
    
      Upload coverage report to [codecov](https://about.codecov.io/).
    
    Top commit has no ACKs.
    
    Tree-SHA512: aa36de60214a4f55fc4a67bf38d79ed70069d4b6fb646f243cf2db4d03e5e637d98d01c2ceae71149321291967c486b64a9765d4cd8655b2915295401168373b
    josecelano committed Jul 3, 2023
    Configuration menu
    Copy the full SHA
    11c64e1 View commit details
    Browse the repository at this point in the history

Commits on Jul 7, 2023

  1. feat: add cargo dependency: email_address

    To validate emails.
    josecelano committed Jul 7, 2023
    Configuration menu
    Copy the full SHA
    734e6cb View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    e627ef9 View commit details
    Browse the repository at this point in the history

Commits on Jul 10, 2023

  1. Merge #236: Email validation with third-party library

    e627ef9 refactor: use a third party package for email valildation (Jose Celano)
    734e6cb feat: add cargo dependency: email_address (Jose Celano)
    
    Pull request description:
    
      We were using a regexp. See the issue for details.
    
    Top commit has no ACKs.
    
    Tree-SHA512: c425af843c0c5ce376e086325f12c9c2ac64d8164616d14c31c22675daf8ce786f5e91c4272302c44a7008bddcc0ca61b017936ce5d86224921c8a6f6f989836
    josecelano committed Jul 10, 2023
    Configuration menu
    Copy the full SHA
    f507ef9 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    6347cdb View commit details
    Browse the repository at this point in the history
  3. ci: fix cargo publish command

    Copy/paste error. The command to publish crates wsa copied from the
    Tracker which has more than one package (cargo workspace).
    josecelano committed Jul 10, 2023
    Configuration menu
    Copy the full SHA
    6bf1b19 View commit details
    Browse the repository at this point in the history

Commits on Jul 29, 2023

  1. Configuration menu
    Copy the full SHA
    946ea97 View commit details
    Browse the repository at this point in the history

Commits on Jul 31, 2023

  1. Configuration menu
    Copy the full SHA
    a15af48 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    7db0275 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    1828883 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    f739657 View commit details
    Browse the repository at this point in the history
  5. Merge #239: Add minimum length in Torrent Title

    f739657 #72: Change MIN_TORRENT_TITLE_LENGTH type from u32 to usize for Rust compatibility (Alex Wellnitz)
    1828883 #72: Constant added so you can easily adjust the value (Alex Wellnitz)
    7db0275 Remove referencing the reference (Alex Wellnitz)
    a15af48 #72: Specific error code added (Alex Wellnitz)
    946ea97 #72: Add minimum length in Torrent Title (Alex Wellnitz)
    
    Pull request description:
    
      - Torrent title is checked that the title has at least 3 characters
      - If the title is smaller, a service error is issued
    
    ACKs for top commit:
      josecelano:
        ACK f739657
    
    Tree-SHA512: d68bca436dfd721bfabade4d7ba04dc4f56fe20cb87f2253127219f08f4778434f6e39f6847ef0525e2e398a48c75bb352e2dee610479e46f693f2fff7a4b4ff
    josecelano committed Jul 31, 2023
    Configuration menu
    Copy the full SHA
    4415144 View commit details
    Browse the repository at this point in the history
  6. chore: add dependencies: hex, uuid

    We need them to generate random torrents. We use an UUID for the torrent
    name and contents and we nned the hex package to generate the torrent
    file "pieces" field.
    josecelano committed Jul 31, 2023
    Configuration menu
    Copy the full SHA
    dd1dc0c View commit details
    Browse the repository at this point in the history
  7. feat: new endpoint to generate random torrents

    For now, it will be used only for testing purposes.
    
    We need to generate random torrent in Cypress in the Index Frontend app.
    josecelano committed Jul 31, 2023
    Configuration menu
    Copy the full SHA
    30bf79e View commit details
    Browse the repository at this point in the history
  8. feat!: change random torrent generator endpoint

    The new enpopint is:
    
    `http://0.0.0.0:3001/v1/torrent/meta-info/random/:uuid`
    
    The segments have changed to differenciate the indexed torrent from the torrent file (meta-indo).
    
    An indexed torrent is a torrent file (meta-info file) with some extra
    classification metadata: title, description, category and tags.
    
    There is also a new PATH param `:uuid` which is an UUID to identify the
    generated torrent file. The UUID is used for:
    
    - The torrent file name
    - The sample contents for a text file ffrom which we generate the
      torrent file.
    josecelano committed Jul 31, 2023
    Configuration menu
    Copy the full SHA
    b269ecb View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    dfa260e View commit details
    Browse the repository at this point in the history
  10. refactor: extract torrent file service

    to generate random torrent files. It was moved from the handler.
    josecelano committed Jul 31, 2023
    Configuration menu
    Copy the full SHA
    b2870b9 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    40c4df0 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    4b6f25c View commit details
    Browse the repository at this point in the history

Commits on Aug 1, 2023

  1. refactor: invert the dependency between Torrent named constructors

    The constructor to hidrate the object from the database should depeden
    on the other to create a new Torrent from scracth. In fact, the
    `torrent_id` and `info_hash` in the `DbTorrentInfo` are not needed.
    josecelano committed Aug 1, 2023
    Configuration menu
    Copy the full SHA
    0f163cf View commit details
    Browse the repository at this point in the history
  2. Merge #237: Endpoint to create random torrents

    0f163cf refactor: invert the dependency between Torrent named constructors (Jose Celano)
    4b6f25c test: add test for random torrent file generator service (Jose Celano)
    40c4df0 refactor: extract hasher service (Jose Celano)
    b2870b9 refactor: extract torrent file service (Jose Celano)
    dfa260e fix: clippy warnings alter updating clippy to clippy 0.1.73 (Jose Celano)
    b269ecb feat!: change random torrent generator endpoint (Jose Celano)
    30bf79e feat: new endpoint to generate random torrents (Jose Celano)
    dd1dc0c chore: add dependencies: hex, uuid (Jose Celano)
    
    Pull request description:
    
      Relates to: torrust/torrust-index-gui#185
    
      Sometimes we need to generate a random torrent for testing purposes.
    
      We need to generate test torrents for the frontend application. With this new endpoint, you can get a random torrent:
    
      http://0.0.0.0:3001/v1/torrents/random
    
      The torrent is a single-file torrent using a UUID for its name and the original data file contents.
    
      In this repo, we use the `imdl` command to generate random torrents but in the frontend we are using cypress, and it seems the best option is [to make a request to an endpoint](https://docs.cypress.io/api/commands/request) to obtain dynamic fixtures like random (or customized in the future) torrents.
    
      torrust/torrust-index-gui#185
    
      ### TODO
    
      - [x] Generate the random ID
      - [x] Calculate the correct value for the "pieces" field in the torrent file (sha1 hash of the contents).
      - [x] Refactor: extract service. Remove the domain code from the handler.
      - [ ] Refactor: add a new named the constructor for the `Torrent` instead of using the `from_db_info_files_and_announce_urls`. We do not need the `torrent_id`, for example.
    
      Other things that we could implement:
    
      - [ ] Add an env var to enable this endpoint only for development/testing environments.
      - [x] Add an URL parameter with the UUDI: `v1/torrents/random/:uuid`. We use the UUID for the torrent name (torrent file name: `name.torrent`).
    
    Top commit has no ACKs.
    
    Tree-SHA512: 3740a628b177303e60dac78969c786088c5c4391f7e1936fe6634031e533f38dea67a2aa7b876966456fb649f749773c43961d686c2c120ae62a2705be35c041
    josecelano committed Aug 1, 2023
    Configuration menu
    Copy the full SHA
    e2a0ed4 View commit details
    Browse the repository at this point in the history

Commits on Aug 2, 2023

  1. feat: add a custom header with infohash to the download endpoints

    Endpoint where you can download a torrent file have now a custom header
    containing the torrent infohash:
    
    The name of the header is: "x-torrust-torrent-infohash"
    
    It is added becuase in the frontend we need the infohash in a cypress
    test and this way we do not need to parse the downloaded torrent which
    is faster and simpler.
    josecelano committed Aug 2, 2023
    Configuration menu
    Copy the full SHA
    414c6c1 View commit details
    Browse the repository at this point in the history
  2. fix: clippy warning

    josecelano committed Aug 2, 2023
    Configuration menu
    Copy the full SHA
    f7f76ff View commit details
    Browse the repository at this point in the history
  3. Merge #243: Add a custom header with info-hash to the download endpoints

    f7f76ff fix: clippy warning (Jose Celano)
    414c6c1 feat: add a custom header with infohash to the download endpoints (Jose Celano)
    
    Pull request description:
    
      Endpoints, where you can download a torrent file, have now a custom header containing the torrent infohash. The name of the header is: `x-torrust-torrent-infohash`.
    
      It is added because [in the frontend we need the infohash in a cypress test](torrust/torrust-index-gui#185) and this way we do not need to parse the downloaded torrent which is faster and simpler.
    
    ACKs for top commit:
      da2ce7:
        ACK f7f76ff
    
    Tree-SHA512: 4be7ff27cbf96098a6e8d42f4f5064866bc0f8c5f02b58e5d70ed65c0cac17ecb1df9b3795d4b9e6af684dbd81ef1037cf1a056395e2d46bad0df7e109bfb26a
    da2ce7 committed Aug 2, 2023
    Configuration menu
    Copy the full SHA
    cf4fb22 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    9de7aa7 View commit details
    Browse the repository at this point in the history

Commits on Aug 3, 2023

  1. Merge #244: Tighten Linter (Check and Clippy)

    9de7aa7 dev: tighten lint for build and clippy (Cameron Garnham)
    
    Pull request description:
    
    ACKs for top commit:
      josecelano:
        ACK 9de7aa7
    
    Tree-SHA512: 4a08d2ee9b2ed067809dd62c1821244d6578a2d72e6fa53671126f2f5bf201344cc817cca756d6273cf7b1a58e1ffaf057c7d518cc2ff2636e66dfb31cf616d4
    josecelano committed Aug 3, 2023
    Configuration menu
    Copy the full SHA
    070aed8 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    2e6fe12 View commit details
    Browse the repository at this point in the history
  3. Merge #245: Overhaul Coverage Workflow

    2e6fe12 ci: overhaul coverage workflow (Cameron Garnham)
    
    Pull request description:
    
    ACKs for top commit:
      da2ce7:
        ACK 2e6fe12
    
    Tree-SHA512: 17856c5cde0cd553ea1805eeb6efe3295a048c42ab182420850c0bc266e91de7838bb6d166e4d99bee7e06b1cd055fcb39f177611ea946c12292c680142063d7
    da2ce7 committed Aug 3, 2023
    Configuration menu
    Copy the full SHA
    27354a4 View commit details
    Browse the repository at this point in the history

Commits on Aug 4, 2023

  1. fix: [#242] wrong infohash when info dict contains source field

    When you define a "source" field value in the "info" dictionary inside
    the torrent file the field changes the infohash value. We did not
    save that field in the database and in the in-memory struct
    `TorrentInfo` so the calculated infohash was wrong becuase this field
    belongs to the `info` key.
    josecelano committed Aug 4, 2023
    Configuration menu
    Copy the full SHA
    c3e61ea View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    6fc4050 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    bc04231 View commit details
    Browse the repository at this point in the history
  4. fix: clippy warning

    josecelano committed Aug 4, 2023
    Configuration menu
    Copy the full SHA
    8fe0955 View commit details
    Browse the repository at this point in the history

Commits on Aug 7, 2023

  1. Merge #249: fix: Wrong infohash when info dict contains source field

    8fe0955 fix: clippy warning (Jose Celano)
    bc04231 doc: [#242] improve infohash generation documentaion (Jose Celano)
    6fc4050 test: [#242] add tests for infohash calculation (Jose Celano)
    c3e61ea fix: [#242] wrong infohash when info dict contains source field (Jose Celano)
    
    Pull request description:
    
      When you define a "source" field value in the "info" dictionary inside the torrent file, that field changes the torrent infohash value. We did not save that field in the database and in the in-memory struct `TorrentInfo`, so the calculated infohash was wrong because this field belongs to the `info` key.
    
      This PR adds the missing field.
    
      ### TODO
    
      - [x] Test with MySQL
      - [x] Update the documentation about how infohashes are calculated
    
      ### Improvements
    
      - [x] Add tests for the infohash calculation with different examples of `TorrentInfo` values.
      - [ ] The `TorrentInfo` struct should be explicit about the two types of torrents: single file or multiple file. See:
      https://wiki.theory.org/BitTorrentSpecification#Info_in_Single_File_Mode
    
      ### Other considerations
    
      I have not found any BEP describing this source key in the info dictionary. There could be more non-official fields. Maybe instead of adding a hardcoded field in the `torrust_torrent` table, we should add a `json` value or something that allows us to save all the extra non-official fields, but I have not seen any other. What do you think @da2ce7?
    
      ### Extra
    
      Info dict key with a single file:
    
      ```json
      {
            "length": 172204,
            "name": "mandelbrot_2048x2048.png",
            "piece length": 16384,
            "pieces": "<hex>7D 91 71 0D 9D 4D BA 88 9B 54 20 54 D5 26 72 8D 5A 86 3F E1 21 DF 77 C7 F7 BB 6C 77 96 21 66 25 38 C5 D9 CD AB 8B 08 EF 8C 24 9B B2 F5 C4 CD 2A DF 0B C0 0C F0 AD DF 72 90 E5 B6 41 4C 23 6C 47 9B 8E 9F 46 AA 0C 0D 8E D1 97 FF EE 68 8B 5F 34 A3 87 D7 71 C5 A6 F9 8E 2E A6 31 7C BD F0 F9 E2 23 F9 CC 80 AF 54 00 04 F9 85 69 1C 77 89 C1 76 4E D6 AA BF 61 A6 C2 80 99 AB B6 5F 60 2F 40 A8 25 BE 32 A3 3D 9D 07 0C 79 68 98 D4 9D 63 49 AF 20 58 66 26 6F 98 6B 6D 32 34 CD 7D 08 15 5E 1A D0 00 09 57 AB 30 3B 20 60 C1 DC 12 87 D6 F3 E7 45 4F 70 67 09 36 31 55 F2 20 F6 6C A5 15 6F 2C 89 95 69 16 53 81 7D 31 F1 B6 BD 37 42 CC 11 0B B2 FC 2B 49 A5 85 B6 FC 76 74 44 93</hex>",
            "private": 1,
            "source": "Source"
         }
      ```
    
      Info dict key with a multiple files:
    
      ```json
      {
            "files": [
               {
                  "length": 37,
                  "path": [
                     "file-425ef9ca-014d-403f-8f15-3ece9e3fad38.txt"
                  ]
               },
               {
                  "length": 37,
                  "path": [
                     "file-deeafa50-2e25-4f38-bec0-92865ca6bb1d.txt"
                  ]
               }
            ],
            "name": "dir-839a49f0-cabc-4efb-ad5f-b6fb15f8a467",
            "piece length": 16384,
            "pieces": "<hex>8E 47 18 74 52 8E 68 92 DD 86 66 F0 0B DD AD B1 08 DC 69 44</hex>",
            "private": 1,
            "source": "Source"
         }
      ```
    
    ACKs for top commit:
      josecelano:
        ACK 8fe0955
    
    Tree-SHA512: edbe69114ad971ce66161090243dca10ab43505c0eccc71caa9630b27e14d11df37d17e671c8767b9f95d01109ab486c18fbb7996b04744c8ea17fa4406a6d2a
    josecelano committed Aug 7, 2023
    Configuration menu
    Copy the full SHA
    5465e0c View commit details
    Browse the repository at this point in the history

Commits on Aug 9, 2023

  1. test: [#223] run E2E with MySQL too

    E2E tests are only executed with SQLite.
    josecelano committed Aug 9, 2023
    Configuration menu
    Copy the full SHA
    c6346a5 View commit details
    Browse the repository at this point in the history
  2. fix: [#223] HTTP error status code trying to insert duplicate categor…

    …y in MySQL
    
    Using MySQL the endpoint to inser categories returns a different HTTP
    status code. It should return a 400 and It was returning a 500.
    
    The reason is we parse the error message and for MySQL the error message
    is not the same as SQLite:
    
    MySQL:
    
    ```
    Error: Duplicate entry 'category name 118802' for key 'torrust_categories.name'
    ```
    
    It has been changed but we should now rely on concrete error messages.
    Besides we should not relay on the database contrains, mahybe we should
    check in the handler that the category does not exist.
    josecelano committed Aug 9, 2023
    Configuration menu
    Copy the full SHA
    22b8f8a View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    0b29678 View commit details
    Browse the repository at this point in the history
  4. Merge #252: Run E2E tests also using MySQL

    0b29678 refactor(ci): reorganize E2E testing scripts (Jose Celano)
    22b8f8a fix: [#223] HTTP error status code trying to insert duplicate category in MySQL (Jose Celano)
    c6346a5 test: [#223] run E2E with MySQL too (Jose Celano)
    
    Pull request description:
    
      E2E tests are only executed with SQLite.
    
    Top commit has no ACKs.
    
    Tree-SHA512: 07e0197e9fd8e5341511ed3097ef364e6148bf282bd09382bdbda878eeaaa6d4f331d683cb15a7eadfa4cb7fe51df45e2424ddb3514c990d98875717c755588f
    josecelano committed Aug 9, 2023
    Configuration menu
    Copy the full SHA
    4d6ab95 View commit details
    Browse the repository at this point in the history

Commits on Aug 21, 2023

  1. feat: increase max request body size to 10MB

    Torrent files containing a lot of files (for example datasets) are big. In the future, this
    should be a config option.
    josecelano committed Aug 21, 2023
    Configuration menu
    Copy the full SHA
    35a5430 View commit details
    Browse the repository at this point in the history
  2. fix: clippy errors

    josecelano committed Aug 21, 2023
    Configuration menu
    Copy the full SHA
    a8aad7a View commit details
    Browse the repository at this point in the history
  3. Merge #258: Increase max request body size to 10MB

    a8aad7a fix: clippy errors (Jose Celano)
    35a5430 feat: increase max request body size to 10MB (Jose Celano)
    
    Pull request description:
    
      Torrent files containing a lot of files (for example datasets) are big. In the future, this should be a config option.
    
    Top commit has no ACKs.
    
    Tree-SHA512: 8f27439bc8bf51975f340d705159d6afcff3ff2fdec4c2a9666cbbef8cd2903be2652cfb67bbbe4e9b7e6db9a6f6856509427e373369605a71c1720cb8768e0e
    josecelano committed Aug 21, 2023
    Configuration menu
    Copy the full SHA
    022e2c5 View commit details
    Browse the repository at this point in the history
  4. feat: [#257] improve bad request error message for uploading

    Add a custom error for each case so that the Bad Request response
    constains a descriptive error message.
    josecelano committed Aug 21, 2023
    Configuration menu
    Copy the full SHA
    ce50f26 View commit details
    Browse the repository at this point in the history

Commits on Aug 23, 2023

  1. Merge #259: Improve Bad Request error message for uploading

    ce50f26 feat: [#257] improve bad request error message for uploading (Jose Celano)
    
    Pull request description:
    
      Add a custom error for each case so that the Bad Request response constains a descriptive error message.
    
    Top commit has no ACKs.
    
    Tree-SHA512: 70659460ad69a694da21e66416bb51d2a42b743f6ed16a0d15fb460197b98b71921de740b707a50e73ce9e0d7239f22e92cd252b97a87af0bf3975d4043dd757
    josecelano committed Aug 23, 2023
    Configuration menu
    Copy the full SHA
    2cf80bc View commit details
    Browse the repository at this point in the history

Commits on Aug 25, 2023

  1. ci: overhaul testing workflow

    da2ce7 committed Aug 25, 2023
    Configuration menu
    Copy the full SHA
    354cb7d View commit details
    Browse the repository at this point in the history
  2. Merge #246: Overhaul Testing Workflow

    354cb7d ci: overhaul testing workflow (Cameron Garnham)
    
    Pull request description:
    
      Rework Testing Workflow
    
    ACKs for top commit:
      da2ce7:
        ACK 354cb7d
    
    Tree-SHA512: c645ae9ff954cefbf301fc758355f57ef71d813190c97db522f86bf536f7d036f5a363b9738a8e63b83ae05b2d12ac03c4728a600a6b8ea2ea5c51c18409b358
    da2ce7 committed Aug 25, 2023
    Configuration menu
    Copy the full SHA
    5d73608 View commit details
    Browse the repository at this point in the history
  3. fix: type for parsed torrent metadata using intermodal console app

    The announce_list is an array of arrays in the intermodal JSON output:
    
    ```
    "announce-list": [
          [
             "https://academictorrents.com/announce.php"
          ],
          [
             "https://ipv6.academictorrents.com/announce.php"
          ],
          [
             "udp://tracker.opentrackr.org:1337/announce"
          ],
          [
             "udp://tracker.openbittorrent.com:80/announce"
          ],
          [
             "http://bt1.archive.org:6969/announce"
          ],
          [
             "http://bt2.archive.org:6969/announce"
          ]
       ],
    ```
    
    Not an array of strings.
    josecelano committed Aug 25, 2023
    Configuration menu
    Copy the full SHA
    05141fd View commit details
    Browse the repository at this point in the history
  4. test: [#256] uploaded torrent inhohash changes when contains custom f…

    …ields
    
    in the `info` key dictionary. For example:
    
    ```json
    {
       "announce": "https://academictorrents.com/announce.php",
       "announce-list": [
          [
             "https://academictorrents.com/announce.php"
          ],
          [
             "https://ipv6.academictorrents.com/announce.php"
          ],
          [
             "udp://tracker.opentrackr.org:1337/announce"
          ],
          [
             "udp://tracker.openbittorrent.com:80/announce"
          ],
          [
             "http://bt1.archive.org:6969/announce"
          ],
          [
             "http://bt2.archive.org:6969/announce"
          ]
       ],
       "comment": "This content hosted at the Internet Archive at https://archive.org/details/rapppid-weights.tar\nFiles may have changed, which prevents torrents from downloading correctly or completely; please check for an updated torrent at https://archive.org/download/rapppid-weights.tar/rapppid-weights.tar_archive.torrent\nNote: retrieval usually requires a client that supports webseeding (GetRight style).\nNote: many Internet Archive torrents contain a 'pad file' directory. This directory and the files within it may be erased once retrieval completes.\nNote: the file rapppid-weights.tar_meta.xml contains metadata about this torrent's contents.",
       "created by": "ia_make_torrent",
       "creation date": 1689273787,
       "info": {
          "collections": [
             "org.archive.rapppid-weights.tar"
          ],
          "files": [
             {
                "crc32": "57d33fcc",
                "length": 11528324,
                "md5": "e91bb4ba82695161be68f8b33ae76142",
                "mtime": "1689273730",
                "path": [
                   "RAPPPID Weights.tar.gz"
                ],
                "sha1": "45970ef33cb3049a7a8629e40c8f5e5268d1dc53"
             },
             {
                "crc32": "c658fd4f",
                "length": 20480,
                "md5": "a782b2a53ba49f0d45f3dd6e35e0d593",
                "mtime": "1689273783",
                "path": [
                   "rapppid-weights.tar_meta.sqlite"
                ],
                "sha1": "bcb06b3164f1d2aba22ef6046eb80f65264e9fba"
             },
             {
                "crc32": "8140a5c7",
                "length": 1044,
                "md5": "1bab21e50e06ab42d3a77d872bf252e5",
                "mtime": "1689273763",
                "path": [
                   "rapppid-weights.tar_meta.xml"
                ],
                "sha1": "b2f0f2bbec34aa9140fb9ac3fcb190588a496aa3"
             }
          ],
          "name": "rapppid-weights.tar",
          "piece length": 524288,
          "pieces": "<hex>AB EC 55 6E 0F 7B E7 D3 30 0C F6 68 8C 90 6D 99 0C 3E 32 B5 2C F2 B6 7C 0C 32 52 BC 72 6F 07 1E 73 AB 76 F1 BC 32 2B FC 21 D4 7F 1A E9 72 35 40 7E C3 B4 89 09 2B ED 4B D8 B0 6C 65 8C 27 58 AE FB 72 75 73 44 37 88 28 20 D2 94 BD A4 6A F8 D2 A6 FD 02 65 1C 1C DF B8 56 6D 3A D2 7E A7 3D CA E2 49 F7 36 8D 17 77 6E 32 AD EF A5 44 C2 8F B6 9C 24 56 AD E8 FB 7B A6 71 C0 81 E5 43 03 91 D4 4F B0 A6 64 CA 29 1B 0D 1D 40 7D 39 4E 76 96 EB 01 18 F3 F5 50 8E 2F FA 54 FC 49 66 85 D8 38 87 78 9B 0A 8F 7A A3 2C 8F 72 36 AD 6D 74 0B FC C5 57 71 86 FB F3 CF CA C9 DA EC 61 62 A2 2A 1B A7 85 89 91 8F AA C0 C0 CB 0D 57 D8 B7 E7 64 4D F2 84 73 76 98 FB 3A 17 48 D7 9C 01 FE CA 6D 1F C5 97 34 05 54 39 DA C2 6E 17 41 11 69 F3 46 D1 7D 16 D3 C0 87 3B C3 B2 0C 1D E0 E2 49 C3 05 D2 4C 00 5A 5B 78 01 12 3E BF 52 43 49 6D 1A EE 23 79 D2 0E 28 B6 84 7E C5 ED 79 DE 64 02 ED 47 71 3D 93 16 C4 A2 76 18 77 54 C5 31 48 96 3A 51 C1 4A 92 90 91 F3 CF 48 5B 24 86 55 A8 EB 0C C6 2D 86 E2 29 56 09 2C 38 0B CD C1 CA 45 E6 64 6A 47 FE BB 2E 47 9A 77 45 29 E9 72 19 20 6F 42 79 2B 37 B9 53 25 ED 0F 29 04 D5 E2 96 F1 DE CF 99 BE 32 AA B8 0A 1D 0B 9F B9 D6 AB 5C 50 43 78 85 41 09 01 24 CF E0 89 76 5B 4D A9 CA 72 C0 DF 92 47 0F 0D CE CA 96 C6 7E A5 41 5F 2B A7 BB 04 CC F7 44 7F 94 1E 24 D2 1B 17 CA 18 79 90 A3 D6 20 75 A2 96 68 06 58 5A DE F5 2C 1A 90 22 72 33 8E D5 B2 A8 FA E5 E9 E7 69 62 02 7C 09 B3 4C</hex>"
       },
       "locale": "en",
       "title": "rapppid-weights.tar",
       "url-list": [
          "https://archive.org/download/",
          "http://ia902702.us.archive.org/22/items/",
          "http://ia802702.us.archive.org/22/items/"
       ]
    }
    ```
    
    Notice the `collections` array inside `info` key.
    josecelano committed Aug 25, 2023
    Configuration menu
    Copy the full SHA
    77a7f8a View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    941694e View commit details
    Browse the repository at this point in the history
  6. feat: [#2560] new function to calculate the original torrent infohash

    We can change the final torrent infohash becuase we do not extract/parse
    non standard fields in the info dictionary. We want to keep a copy of
    the original uploaded torrent's infohash. Si we need to calcuylate the
    infohash with all the fields in the info dictionary.
    
    We will sotre it in the database and warn users in the UI  when the infohash
    changes.
    josecelano committed Aug 25, 2023
    Configuration menu
    Copy the full SHA
    0cb63dc View commit details
    Browse the repository at this point in the history
  7. feat: [#256] store the original infohash in the database

    Torrent InfoHash migth change after uploading it becuase we do not
    extract/store all the fields in the info dictionary. We store a copy of
    the original infohash in the database field
    `torrust_torrents::original_info_hash`.
    josecelano committed Aug 25, 2023
    Configuration menu
    Copy the full SHA
    d7c9d93 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    7c047e2 View commit details
    Browse the repository at this point in the history
  9. feat: [#256] add original infohash to upload torrent response

    ```json
    {
        "data": {
            "torrent_id": 174,
            "info_hash": "8aa01a4c816332045ffec83247ccbc654547fedf",
            "original_info_hash": "6c690018c5786dbbb00161f62b0712d69296df97"
        }
    }
    ```
    
    `original_info_hash` contains the infohash of the original uploaded
    torrent file. It migth change if the torrent contained custom fields in
    the info dictionary.
    josecelano committed Aug 25, 2023
    Configuration menu
    Copy the full SHA
    9bb8578 View commit details
    Browse the repository at this point in the history
  10. Merge #260: Documentation for info-hash change behavior

    9bb8578 feat: [#256] add original infohash to upload torrent response (Jose Celano)
    7c047e2 refactor: [#256] extract struct AddTorrentResponse (Jose Celano)
    d7c9d93 feat: [#256] store the original infohash in the database (Jose Celano)
    0cb63dc feat: [#2560] new function to calculate the original torrent infohash (Jose Celano)
    941694e docs: [#256] add ADR for custom info dcit fields (Jose Celano)
    77a7f8a test: [#256] uploaded torrent inhohash changes when contains custom fields (Jose Celano)
    05141fd fix: type for parsed torrent metadata using intermodal console app (Jose Celano)
    
    Pull request description:
    
      If you upload a torrent with custom fields in the `info` key dictionary, the torrent infohash changes because we do not parse/store custom fields.
    
      - [x] Add test
      - [x] Add ADR
      - [x] Store original info-hash in the database (`torrust_torrents` table)
      - [ ] ~~Show a warning to the user after uploading the torrent if the info-hash changes~~. ([frontend task](torrust/torrust-index-gui#242)).
    
    ACKs for top commit:
      da2ce7:
        ACK 9bb8578
    
    Tree-SHA512: 7fbd6f3e50aa85031c3df9c3ec2f08369e93b8e569e7584b0cb54aa3bd6afb183925a3fabd36b60530666455f56d29c96913f5a9ad7c8ce8369025543343f195
    josecelano committed Aug 25, 2023
    Configuration menu
    Copy the full SHA
    79ff3cc View commit details
    Browse the repository at this point in the history

Commits on Aug 26, 2023

  1. Configuration menu
    Copy the full SHA
    bf3f66f View commit details
    Browse the repository at this point in the history

Commits on Aug 30, 2023

  1. Merge #263: #262: Add tower-http compression middleware

    bf3f66f #262: Add tower-http compression middleware (Alex Wellnitz)
    
    Pull request description:
    
      **Modified:**
      I have added the tower-http compression to the router.
      One test fails, but this did not work before my changes.
    
    ACKs for top commit:
      josecelano:
        ACK bf3f66f
    
    Tree-SHA512: 61cca63d79972d3f6033a04b04940c7354fe65a3842d8ea3e9a2f1f6ac92b8bdb3cac4537cc855abc51b3ae7de2f3823060acf3d0119062b332f9835cc653c65
    josecelano committed Aug 30, 2023
    Configuration menu
    Copy the full SHA
    b3fe7f9 View commit details
    Browse the repository at this point in the history

Commits on Sep 2, 2023

  1. feat: [#264] Added torrent name to list and detail endpoints

    The list and detail torrent endpoints now contain the torrent name:
    
    For example:
    
    {
        "data": {
            "torrent_id": 175,
            "uploader": "admin",
            "info_hash": "124f00ff15f00ae19d7b939950090cb42ab6e852",
            "title": "www",
            "description": "www",
            "category": {
                "category_id": 63,
                "name": "Paper",
                "num_torrents": 4
            },
            "upload_date": "2023-08-26 20:02:27",
            "file_size": 639140,
            "seeders": 0,
            "leechers": 0,
            "files": [
                {
                    "path": [
                        "mandelbrot_set_07"
                    ],
                    "length": 639140,
                    "md5sum": null
                }
            ],
            "trackers": [
                "udp://localhost:6969",
                "udp://localhost:6969"
            ],
            "magnet_link": "magnet:?xt=urn:btih:124f00ff15f00ae19d7b939950090cb42ab6e852&dn=www&tr=udp%3A%2F%2Flocalhost%3A6969&tr=udp%3A%2F%2Flocalhost%3A6969",
            "tags": [],
            "name": "mandelbrot_set_07"
        }
    }
    
    Notice the last field `name`. That field is in the table column `torrust_torrents::name`.
    
    It's going to be used in the frontend to set the name for the downloaded torrent file.
    MMelchor committed Sep 2, 2023
    Configuration menu
    Copy the full SHA
    f2369b4 View commit details
    Browse the repository at this point in the history

Commits on Sep 11, 2023

  1. test: [#264] Added torrent name to list and detail endpoints

    Added the field name to the TorrentDetails, ListItem structs used in the response
    from the API calls (list and detail endpoints) in the tests.
    
    Some minor refactoring was also applied so the code used to test that the torrents info
    is retrieve correctly and match the expected result.
    MMelchor committed Sep 11, 2023
    Configuration menu
    Copy the full SHA
    7c4b530 View commit details
    Browse the repository at this point in the history
  2. fix: docker compose with the new tracker container image

    The Torrust Tracker container image has changed. Upgrade the
    configuration to use the latest version.
    josecelano committed Sep 11, 2023
    Configuration menu
    Copy the full SHA
    bf95d85 View commit details
    Browse the repository at this point in the history
  3. Merge #270: Fix docker compose configuration with the new tracker c…

    …ontainer image
    
    bf95d85 fix: docker compose with the new tracker container image (Jose Celano)
    
    Pull request description:
    
      The [Torrust Tracker container image has changed](torrust/torrust-tracker@7d133ae).
    
      We have to upgrade the configuration to use the latest version.
    
      Integration tests fail for pull requests because the tracker container cannot start.
    
      The significant changes introduced were:
    
      - Rename some env vars: TORRUST_TRACKER_API_TOKEN->TORRUST_TRACKER_API_ADMIN_TOKEN
      - Database folder was moved to a new location
    
    Top commit has no ACKs.
    
    Tree-SHA512: 397ba6dbcd99ca38a6dd9d932e899303ea8e67068fdb2180bcf313887bea1972353f5017ca30139b9e48a79a7f746f29dc644e2c7ecf32a12597adbe6a7c5f62
    josecelano committed Sep 11, 2023
    Configuration menu
    Copy the full SHA
    158757b View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    891a744 View commit details
    Browse the repository at this point in the history
  5. Merge #274: Clean sqlite bash commands

    891a744 fix: clean sqlite bash commands (Jose Celano)
    
    Pull request description:
    
      I forgot some changes in the previous [PR](#270).
    
    Top commit has no ACKs.
    
    Tree-SHA512: 5a44e6f8979db9109650341cf510162c9a0dee786fc5baca2fa4d9f80fe8c920b4004829b4d36fc5be1b8c728c0130ec2766ba07f62e6a94eef1edb4c1badd6a
    josecelano committed Sep 11, 2023
    Configuration menu
    Copy the full SHA
    f493964 View commit details
    Browse the repository at this point in the history
  6. Merge #265: Add torrent name to torrent list an detail endpoints

    7c4b530 test: [#264] Added torrent name to list and detail endpoints (MMelchor)
    f2369b4 feat: [#264] Added torrent name to list and detail endpoints (MMelchor)
    
    Pull request description:
    
      Resolves #264
    
    ACKs for top commit:
      josecelano:
        ACK 7c4b530
    
    Tree-SHA512: 77f2b6fde32d9b077c633866ce22d628ed54d5d8bf9a54b794b6f6defab8fd69a4be8022112721de9586bfb4d9b3454ee12df1601c7f0cceec6ff9bc45e204e9
    josecelano committed Sep 11, 2023
    Configuration menu
    Copy the full SHA
    9ba65cc View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    d9cdd65 View commit details
    Browse the repository at this point in the history
  8. Merge #267: New binary to parse torrent files (only for debugging pur…

    …poses)
    
    d9cdd65 feat: new binary to par torrent files (Jose Celano)
    
    Pull request description:
    
      I'm trying to fix bug #266
    
      When I try to upload this torrent:
    
      https://academictorrents.com/details/3cd18ff2d3eec881207dcc5ca5a2c3a2a3afe462
    
      I get this error trying to parse it:
    
      ```
      InvalidType("Invalid Type: sequence (expected: `field identifier`)")
      ```
    
      I've tried to reproduce the error with a clean project:
    
      https://github.com/torrust/torrust-parse-torrent
    
      But It works.
    
      I've added a binary to reproduce the error in this project. You can run it with:
    
      ```
      cargo run --bin parse_torrent ./tests/fixtures/torrents/MC_GRID.zip-3cd18ff2d3eec881207dcc5ca5a2c3a2a3afe462.torrent
      ```
    
      Output:
    
      ```s
      Reading the torrent file ...
      Decoding torrent with standard serde implementation ...
      InvalidType("Invalid Type: sequence (expected: `field identifier`)")
      Error: Custom { kind: Other, error: "Error: invalid torrent!. Invalid Type: sequence (expected: `field identifier`)" }
      ```
    
      I need more ideas about how to solve this bug. I've checked the dependencies, and It does not work even if I use the same "serde" dependencies in this project.
    
      The torrent only has two different things:
    
      - The "pieces" field is big.
      - It has an extra field from BEP 19.
    
      I only have two more things to test:
    
      - ~~Create another torrent with a big "pieces" field. Only to check if the size is the problem~~. DONE.
      - Clone the "serve" crate and try to debug the code. I think the error is thrown [here](https://github.com/serde-rs/serde/blob/dad15b9fd0bef97b7a7c90a8a165b6ffbc682cae/serde/src/de/mod.rs#L1646). It seems the deserializer is expecting a file identifier (I guess for a Dictionary) and is getting a sequence.
    
    Top commit has no ACKs.
    
    Tree-SHA512: c9f02021801d492e34b7550662cfb6747bbf81f3724c3afdd3d92e22061066c400b721f35e80100d3253ff79fbda10d0bf0f7ea29df964f57ee97a1607b50fd3
    josecelano committed Sep 11, 2023
    Configuration menu
    Copy the full SHA
    08f0b86 View commit details
    Browse the repository at this point in the history
  9. feat: [#261] store original infohashes

    When you upload a torrent, the infohash might change if the `info` dictionary contains non-standard fields because we remove them. That leads to a different infohash. We store the
     original infohash in a new table so that we can know if the torrent was previously uploaded.
    
    If we do not store the original infohash we could reject uploads producing the same canonical infohash. Still, there is no way for the user to ask if a torrent exists with a given original infohash. They only would be able to interact with the API with the canonical infohash.
    
    Sometimes it's useful to use the original infohash, for instance, if you are importing torrents from an external source and you want to check if the original torrent (with the original infohash) was already uploaded.
    josecelano committed Sep 11, 2023
    Configuration menu
    Copy the full SHA
    3b7a762 View commit details
    Browse the repository at this point in the history

Commits on Sep 12, 2023

  1. test: [#261]: do not allow uploading two torrents with the same canon…

    …ical infohash
    
    If you upload a torrent, the infohash migth change if the `info`
    dictionary contains custom fields. The Index removes non-standard custom
    fields, and that generates a new infohash for the torrent.
    
    If you upload a second torrent which is different from a previous one
    only in the custom fields, the same canonical infohash will be
    generated, so the torrent will be rejected as duplicated. The new
    original infohash will be stored in the database.
    josecelano committed Sep 12, 2023
    Configuration menu
    Copy the full SHA
    110e159 View commit details
    Browse the repository at this point in the history
  2. Merge #269: feat: [#261] store original info-hashes

    110e159 test: [#261]: do not allow uploading two torrents with the same canonical infohash (Jose Celano)
    3b7a762 feat: [#261] store original infohashes (Jose Celano)
    
    Pull request description:
    
      When you upload a torrent, the infohash might change if the `info` dictionary contains non-standard fields because we remove them. That leads to a different infohash. We store the
       original infohash in a new table so that we can know if the torrent was previously uploaded.
    
      If we do not store the original infohash we could reject uploads producing the same canonical infohash. Still, there is no way for the user to ask if a torrent exists with a given original infohash. They only would be able to interact with the API with the canonical infohash.
    
      Sometimes it's useful to use the original infohash, for instance, if you are importing torrents from an external source and you want to check if the original torrent (with the original infohash) was already uploaded.
    
    ACKs for top commit:
      josecelano:
        ACK 110e159
    
    Tree-SHA512: 867ef055d51b43f602006df1d7ea9054918505b1603c572eb717bb6a98740ecea3c83f3dcd7c505e70b98a6fb70b5f22b83c8a7e0a4424e130ab1f17aa450dcc
    josecelano committed Sep 12, 2023
    Configuration menu
    Copy the full SHA
    a5f0fcc View commit details
    Browse the repository at this point in the history
  3. fix: [#279] rename tracker container env var TORRUST_TRACKER_DATABASE…

    …_DRIVER
    
    It was renamed in the Tracker container.
    josecelano committed Sep 12, 2023
    Configuration menu
    Copy the full SHA
    05a4977 View commit details
    Browse the repository at this point in the history
  4. Merge #280: Rename tracker container env var `TORRUST_TRACKER_DATABAS…

    …E_DRIVER`
    
    05a4977 fix: [#279] rename tracker container env var TORRUST_TRACKER_DATABASE_DRIVER (Jose Celano)
    
    Pull request description:
    
      [It was renamed in the Tracker container](torrust/torrust-tracker@7996a9d).
    
    Top commit has no ACKs.
    
    Tree-SHA512: 6ae43cf6cbc81fbab0131ec97b1681da2e9dd7a0dd10d7c47f7ab4303122a1398bf2bb6346c4e82f0a1d0e36062b577a995f40b2f6e3646d6d3ce1ad1163575c
    josecelano committed Sep 12, 2023
    Configuration menu
    Copy the full SHA
    b73e19e View commit details
    Browse the repository at this point in the history

Commits on Sep 13, 2023

  1. test: [#282] compare uploaded and downloaded torrent info-hashes

    The test for downloading a torrent now compares the uplaoded torrent
    info-hash with the downloaded one. It fails becuasse the Index adds the
    `private` field in the `info` dictioanry always, changing the info-hash.
    josecelano committed Sep 13, 2023
    Configuration menu
    Copy the full SHA
    b34c7d8 View commit details
    Browse the repository at this point in the history
  2. fix: [#282] downloaded torrent info-hash matches uploaded one

    NOTICE: They only matche when the index doesn't change it becuase it
    removs non-standard fields from the `info` key dictionary. They should
    match if the uploaded torrent does not have any non-stanrdard field in
    the `info` dictionary key.
    josecelano committed Sep 13, 2023
    Configuration menu
    Copy the full SHA
    6ff3600 View commit details
    Browse the repository at this point in the history
  3. refactor: [#282] tests

    josecelano committed Sep 13, 2023
    Configuration menu
    Copy the full SHA
    d7cc040 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    5e2ae68 View commit details
    Browse the repository at this point in the history
  5. Merge #286: Fix different info-hashes for uploaded and downloaded tor…

    …rents
    
    d7cc040 refactor: [#282] tests (Jose Celano)
    6ff3600 fix: [#282] downloaded torrent info-hash matches uploaded one (Jose Celano)
    b34c7d8 test: [#282] compare uploaded and downloaded torrent info-hashes (Jose Celano)
    
    Pull request description:
    
      If you upload a torrent and you download it, the downloaded torrent info-hash is not the same if the origin one didn't contain the `private` field in the `info` dictionary. The Index always includes that field in the response because it always stores a `TRUE` or `FALSE` value in the database, even when the field is not in the original torrent file.
    
      - [x] Fix the test. It was passing with a different info-hash for no reason. It should fail with the current implementation.
      - [x] Change the handler to set `private` to `NULL` when not in the original torrent. And do not include it in the response when it's `NULL` in the database.
      - [x] Refactor all tests using the `e2e::web::api::v1::contexts::torrent::asserts::expected_torrent` function to compare the info-hashes.
    
    ACKs for top commit:
      josecelano:
        ACK d7cc040
    
    Tree-SHA512: 126e628326430b0d36ef84adaded7fcbee7cb31b70ee866a42164ebefa111c55dc7b43638a4d3b59f4bc84fe20aba19ac4137acc5f03fe7269bd0f8728f1ea61
    josecelano committed Sep 13, 2023
    Configuration menu
    Copy the full SHA
    92e844c View commit details
    Browse the repository at this point in the history
  6. Merge #287: Enable rust cache for integration tests

    5e2ae68 ci: enable rust cache for integration test (Jose Celano)
    
    Pull request description:
    
      This should make integration tests faster as we can mount the rust dependencies cache inside the container.
    
    Top commit has no ACKs.
    
    Tree-SHA512: 5b36ca58531e3a13a1373f8c3cb46ee2d0e46e2c8b4ae7b47e13af433251bd7927f190633217c1f05bd7bdb428aa32e09807616726039dd07ea10fbdf23aacdb
    josecelano committed Sep 13, 2023
    Configuration menu
    Copy the full SHA
    48202ec View commit details
    Browse the repository at this point in the history
  7. feat: [#278] redirect to URL with canonical infohash

    For endpoints using a GET param with an infohash:
    
    - GET /v1/torrent/CANONICAL_INFO_HASH
    - GET /v1/torrent/download/CANONICAL_INFO_HASH
    
    Suppose the URL contains an info-hash, which is not canonical but belongs to a canonical info-hash group. In that case, the response will be a redirection (307) to the same URL but using the canonical info-hash.
    josecelano committed Sep 13, 2023
    Configuration menu
    Copy the full SHA
    83d31f2 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    05b67c7 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    2a73f10 View commit details
    Browse the repository at this point in the history
  10. Merge #281: Redirect to URL with canonical info-hash

    2a73f10 test: [#278] allow using non canonical info-hash to download a torrent (Jose Celano)
    05b67c7 test: [#278] use non canonical info-hash to get torrent details (Jose Celano)
    83d31f2 feat: [#278] redirect to URL with canonical infohash (Jose Celano)
    
    Pull request description:
    
      For endpoints using a GET param with an infohash:
    
      - `GET /v1/torrent/INFO_HASH`
      - `GET /v1/torrent/download/INFO_HASH`
    
      That param must be the canonical infohash so far. This PR allows users to use the original info-hash.
    
      Suppose the URL contains an info-hash, which is not canonical but belongs to a canonical info-hash group. In that case, the response will be a redirection (307) to the same URL but using the canonical info-hash.
    
      ### Subtasks
    
      - [x] Refactor: use the new domain concept `Canonical Infohash Group`.
      - [x] Add the redirection.
      - [x] Add test for torrent details URL redirection.
      - [x] Add test for download torrent URL redirection.
    
    ACKs for top commit:
      josecelano:
        ACK 2a73f10
    
    Tree-SHA512: 4dbc455fdc5cdf5c558642a78cfcad74a44f02ebb385a29429489ed1abb820ae0a82c308710884f70b96bf3816b0626e79bd2b3443353788fc21b0be03d4f083
    josecelano committed Sep 13, 2023
    Configuration menu
    Copy the full SHA
    f904f14 View commit details
    Browse the repository at this point in the history

Commits on Sep 14, 2023

  1. Configuration menu
    Copy the full SHA
    022692e View commit details
    Browse the repository at this point in the history
  2. Merge #291: Add tags to torrent details in test responses

    022692e fix: [#273] add tags to torrent details in test responses (Jose Celano)
    
    Pull request description:
    
      In the **tests** the struct:
    
      ```rust
      pub struct TorrentDetails {
          pub torrent_id: Id,
          pub uploader: String,
          pub info_hash: String,
          pub title: String,
          pub description: String,
          pub category: Category,
          pub upload_date: UtcDateTime,
          pub file_size: u64,
          pub seeders: u64,
          pub leechers: u64,
          pub files: Vec<File>,
          pub trackers: Vec<String>,
          pub magnet_link: String,
      }
      ```
    
      did not contain the torrent tags, so tests were not asserting that the tags were the expected ones.
    
    ACKs for top commit:
      josecelano:
        ACK 022692e
    
    Tree-SHA512: 01b155c68931321f9934931acec347c838462a9f1d6795bf2a092d9a607a940e112176ce819caefa0fe9ade48c22bec5dd0c8b8830c5a52e20f82823696e1a71
    josecelano committed Sep 14, 2023
    Configuration menu
    Copy the full SHA
    cbe1fc3 View commit details
    Browse the repository at this point in the history
  3. feat!: [#288] do not allow empty category names

    It was allowed to use an empty string like "" or " " for a category name.
    
    From now on, it's not allowed.
    
    If there were some empty names in the database, they were not renamed. Admins must optionally do that. Names were anyway UNIQUE.
    
    A migration to rename empty names was not added because there can be more than one category, for example:
    
    - ""
    - " "
    - "  "
    - Etcetera
    
    We could have generated names like "no category 1", "no category 2", but it's not likely that admins have created empty categories.
    josecelano committed Sep 14, 2023
    Configuration menu
    Copy the full SHA
    c2b7488 View commit details
    Browse the repository at this point in the history
  4. Merge #292: Do not allow empty category names

    c2b7488 feat!: [#288] do not allow empty category names (Jose Celano)
    
    Pull request description:
    
      It was allowed to use an empty string like "" or " " for a category name.
    
      From now on, it's not allowed.
    
      If there were some empty names in the database, they were not renamed. Admins must optionally do that. Names were anyway UNIQUE.
    
      A migration to rename empty names was not added because there can be more than one category, for example:
    
      - ""
      - " "
      - "  "
      - Etcetera
    
      We could have generated names like "no category 1", "no category 2", but it's not likely that admins have created empty categories.
    
    ACKs for top commit:
      josecelano:
        ACK c2b7488
    
    Tree-SHA512: 72a2b41d3757b6bf54178448f14644e0449765b3afede9c1e4a080270ac91ba00742072431091a767322ffa5b4f89f4df42a2ae4b77523005b300319bc7e71d7
    josecelano committed Sep 14, 2023
    Configuration menu
    Copy the full SHA
    15ac77d View commit details
    Browse the repository at this point in the history
  5. feat!: [#289] do not allow empty tag names

          It was allowed to use an empty strings like "" or " " for a tag name.
    
          From now on, it's not allowed.
    
          If there are some empty names in the database, they are not renamed.
    
          A migration to rename empty names was not added because there can be more than one tag, for example:
    
          - ""
          - " "
          - "  "
          - Etcetera
    
          We could have generated names like "no tag 1", "no tag 2", but it's not likely that admins have created empty tags.
    josecelano committed Sep 14, 2023
    Configuration menu
    Copy the full SHA
    01a7d2e View commit details
    Browse the repository at this point in the history
  6. feat!: [#289] do not allow duplicate tags

    Duplicate tag names were allowed. This introduce unique constrains.
    If there were duyplicate tags they are updated appeding the id as a suffix.
    For example, having two tags:
    
    ```json
    [
      {
        tag_id: 1,
        name: "fractal"
      },
      {
        tag_id: 2,
        name: "fractal"
      }
    ]
    ```
    
    They would be renamed to:
    
    ```json
    [
      {
        tag_id: 1,
        name: "fractal_1"
      },
      {
        tag_id: 2,
        name: "fractal_2"
      }
    ]
    ```
    
    From now on, duplicate tags are not allowed.
    josecelano committed Sep 14, 2023
    Configuration menu
    Copy the full SHA
    7fedf15 View commit details
    Browse the repository at this point in the history
  7. Merge #293: Do not allow empty or duplicate tag names

    7fedf15 feat!: [#289] do not allow duplicate tags (Jose Celano)
    01a7d2e feat!: [#289] do not allow empty tag names (Jose Celano)
    
    Pull request description:
    
      ### Do not allow empty tag names
    
      It was allowed to use empty strings like "" or " " for a tag name.
    
      After merging this PR, it will not be allowed anymore.
    
      If there are some empty names in the database, they are not renamed.
    
      A migration to rename empty names was not added because there can be more than one tag, for example:
    
      - ""
      - " "
      - "  "
      - Etcetera
    
      We could have generated names like "no tag 1", "no tag 2", but it's not likely that admins have created empty tags.
    
      ### Do not allow duplicate tag names
    
      It was allowed to use empty strings like "" or " " for a tag name. And It was also allowed to have duplicate tags.
    
      After merging this PR, it will not be allowed anymore.
    
      If there are duplicate tag names, the duplication is removed by appending the tag id as a suffix to the tag name.
    
    ACKs for top commit:
      josecelano:
        ACK 7fedf15
    
    Tree-SHA512: 79200e9048a500a5b268a32db43e64f071042dee94f4200d6f7bfc3199120d1b30f2a2fd07d4d1b8ed01a438d4687261cc988cb9c372716579094be4ad43100c
    josecelano committed Sep 14, 2023
    Configuration menu
    Copy the full SHA
    52926a3 View commit details
    Browse the repository at this point in the history

Commits on Sep 15, 2023

  1. Configuration menu
    Copy the full SHA
    50cef81 View commit details
    Browse the repository at this point in the history
  2. test: add two more test torrents

    One of them produces an error while parsing it which is described here:
    
    toby/serde-bencode#32
    josecelano committed Sep 15, 2023
    Configuration menu
    Copy the full SHA
    3cf9c44 View commit details
    Browse the repository at this point in the history
  3. Merge #295: Update config for debugging in VSCode

    3cf9c44 test: add two more test torrents (Jose Celano)
    50cef81 chore: update config for debuggin in Visual Studio Code (Jose Celano)
    
    Pull request description:
    
      Updated configuration for debugging in Visual Studio Code following this guide:
    
      https://www.forrestthewoods.com/blog/how-to-debug-rust-with-visual-studio-code/
    
      by @forrestthewoods
    
      Thank you very much @forrestthewoods!
    
      I've also added a minimal torrent to reproduce a bug described [here](#266).
    
    ACKs for top commit:
      josecelano:
        ACK 3cf9c44
    
    Tree-SHA512: 6a093101ca3172727610cd49abc94ef9a4bde20edb5d9bc7a718f105511d9c1a709ed39b132f3301b46e4a6c52120ffe4390bcf259d3a97b3fcb5b6f08cabcfd
    josecelano committed Sep 15, 2023
    Configuration menu
    Copy the full SHA
    bf989a1 View commit details
    Browse the repository at this point in the history

Commits on Sep 18, 2023

  1. Configuration menu
    Copy the full SHA
    eb26c8d View commit details
    Browse the repository at this point in the history
  2. feat: [#296] persist torrent comment

    and add it to the API responses.
    
    - Torrent details endpoint
    - Torrent list endpoint
    - Include the comment in the downloaded torrent
    josecelano committed Sep 18, 2023
    Configuration menu
    Copy the full SHA
    e9476fc View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    f0ad6a4 View commit details
    Browse the repository at this point in the history

Commits on Sep 19, 2023

  1. Configuration menu
    Copy the full SHA
    b6fe36b View commit details
    Browse the repository at this point in the history
  2. refactor: [#296] rename vars

    to follow type name.
    josecelano committed Sep 19, 2023
    Configuration menu
    Copy the full SHA
    1660fd5 View commit details
    Browse the repository at this point in the history
  3. refator: [#296] move logic to service layer

    The service should know the model but the model should not know the
    service. The dependency should be only on one way.
    josecelano committed Sep 19, 2023
    Configuration menu
    Copy the full SHA
    dfdac19 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    8821346 View commit details
    Browse the repository at this point in the history
  5. Merge #298: Persist torrent comment

    8821346 doc: add some comments for BEP 30 implementation (Jose Celano)
    dfdac19 refator: [#296] move logic to service layer (Jose Celano)
    1660fd5 refactor: [#296] rename vars (Jose Celano)
    b6fe36b refactor: [#296] extract duplicate code (Jose Celano)
    f0ad6a4 refactor: rename structs and reorganize mods (Jose Celano)
    e9476fc feat: [#296] persist torrent comment (Jose Celano)
    eb26c8d fix: tag name for random tag in tests (Jose Celano)
    
    Pull request description:
    
      And add it to the API responses.
    
      - Torrent details endpoint
      - Torrent list endpoint
      - Include the `comment` in the downloaded torrent
    
    ACKs for top commit:
      josecelano:
        ACK 8821346
    
    Tree-SHA512: d2203d759ab6a8eaeca413928b580d5be26ebb4041d9f11067a223a187cfd606c4d4380f41e935c3516d635a6225534abba88d5696f18f5c17d72e899d69291f
    josecelano committed Sep 19, 2023
    Configuration menu
    Copy the full SHA
    ef38ac6 View commit details
    Browse the repository at this point in the history
  6. chore: cargo update

    josecelano committed Sep 19, 2023
    Configuration menu
    Copy the full SHA
    378d19b View commit details
    Browse the repository at this point in the history
  7. chore: remove unused dependencies

    The API was migrated from Axum to ActixWeb but the dependency was not
    removed.
    josecelano committed Sep 19, 2023
    Configuration menu
    Copy the full SHA
    2cb0ade View commit details
    Browse the repository at this point in the history
  8. Merge #304: Review dependencies

    2cb0ade chore: remove unused dependencies (Jose Celano)
    378d19b chore: cargo update (Jose Celano)
    
    Pull request description:
    
      - Update dependencies: `cargo update`
      - Removed unused dependencies: `actix-web`, `actix-multipart`, `actix-cors`. The [API was migrated to Auxm](#156), but [the dependency was not removed](#208).
    
    Top commit has no ACKs.
    
    Tree-SHA512: 4b974d2bcb29c6202b2bc5a96e4115dd1aa1e7b11bf09c64d49eb29363869b9f4e2b7c9f46c32d35f49c09101cb5c542c52185cbbdf459d9de76349d7bbce2fc
    josecelano committed Sep 19, 2023
    Configuration menu
    Copy the full SHA
    76338b1 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    7d50a17 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    a302c22 View commit details
    Browse the repository at this point in the history

Commits on Sep 20, 2023

  1. refactor: [#276] move metadata format validation to Metadata struct

    And other minor changes.
    josecelano committed Sep 20, 2023
    Configuration menu
    Copy the full SHA
    ca6e97c View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    a46d300 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    329485f View commit details
    Browse the repository at this point in the history
  4. feat!: [#276] upload torrent returns 400 instead of empty response

    when the original info-hash of the upload torrent cannot be calculated.
    
    The API should not return empty responses, so "panic" should not be use
    for common problems that we should notify to the user.
    josecelano committed Sep 20, 2023
    Configuration menu
    Copy the full SHA
    4cc97c7 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    bbadd59 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    6a75c54 View commit details
    Browse the repository at this point in the history
  7. feat!: [#276] do not persist uploaded torrent if it cannot persit tags

    When you upload a torrent the transaction wraps all the persisted data.
    
    Before this change, if tags can't be stored in the database the rest of
    the indexed data is stored anyway.
    josecelano committed Sep 20, 2023
    Configuration menu
    Copy the full SHA
    fbb42ad View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    f19e801 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    275231a View commit details
    Browse the repository at this point in the history
  10. Merge #305: Refactor: the function `services::torrent::Index::add_tor…

    …rent`
    
    275231a doc: [#276] add comment for upload torrent secondary tasks (Jose Celano)
    f19e801 refactor: [#276] extract fn Torrent::import_torrent_statistics_from_tracker (Jose Celano)
    fbb42ad feat!: [#276] do not persist uploaded torrent if it cannot persit tags (Jose Celano)
    6a75c54 refactor: [#276] extract fn Torrent::canonical_info_hash_group_checks (Jose Celano)
    bbadd59 refactor: [#276] extract fn Torrent::customize_announcement_info_for (Jose Celano)
    4cc97c7 feat!: [#276] upload torrent returns 400 instead of empty response (Jose Celano)
    329485f refactor: [#276] extract fn parse_torrent::decode_and_validate_torrent_file (Jose Celano)
    a46d300 refactor: [#276] extract function Torrent::validate_and_build_metadata (Jose Celano)
    ca6e97c refactor: [#276] move metadata format validation to Metadata struct (Jose Celano)
    a302c22 test: [#276] add more tests for torrent upload (Jose Celano)
    7d50a17 refactor: reorganize test mods for torrent contract (Jose Celano)
    
    Pull request description:
    
      - [x] Reorganize tests in torrent context contract.
      - [x] Add more tests before the refactoring.
      - [x] Refactorings.
    
    ACKs for top commit:
      josecelano:
        ACK 275231a
    
    Tree-SHA512: 46397926dbd9def23e2ad233fe0eec40f5c16a008a8ef14ad3803776b351faf291c89560536a9d67d20490a9030a3f6c9a5a01b6ef1e9a750388c6dbc79a4847
    josecelano committed Sep 20, 2023
    Configuration menu
    Copy the full SHA
    0d7d72f View commit details
    Browse the repository at this point in the history

Commits on Sep 27, 2023

  1. Configuration menu
    Copy the full SHA
    8304bf6 View commit details
    Browse the repository at this point in the history

Commits on Oct 3, 2023

  1. Merge #317: Rename yml extension to yaml

    8304bf6 chore: [#247] rename yml extension to yaml (postmeback)
    
    Pull request description:
    
      Rework of #314 just to sign the commit.
    
    ACKs for top commit:
      josecelano:
        ACK 8304bf6
    
    Tree-SHA512: 0d67476e2454ae915b4e968926ef49c46739585f88d1e00c0303d13f4499d929ab912e08b7ec1f56a7c6215892eae2bf40872dc867d5ddd181f376e7e02a25b0
    josecelano committed Oct 3, 2023
    Configuration menu
    Copy the full SHA
    537c79f View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    e6dcbb1 View commit details
    Browse the repository at this point in the history

Commits on Oct 9, 2023

  1. Merge #319: Update dependencies

    e6dcbb1 chore: update dependencies (Jose Celano)
    
    Pull request description:
    
    ACKs for top commit:
      josecelano:
        ACK e6dcbb1
    
    Tree-SHA512: 9b56db01301fdf44c8ebab3f0b18cf62452220ad58628302805aa56a7721301ef6931ac7f12238be3508b69551adc4c49aa13e4f6bffa574a5b4a0f3435b1515
    josecelano committed Oct 9, 2023
    Configuration menu
    Copy the full SHA
    7754d4e View commit details
    Browse the repository at this point in the history

Commits on Oct 12, 2023

  1. github: add codeowners file

    da2ce7 committed Oct 12, 2023
    Configuration menu
    Copy the full SHA
    41be37a View commit details
    Browse the repository at this point in the history
  2. ci: add dependabot file

    da2ce7 committed Oct 12, 2023
    Configuration menu
    Copy the full SHA
    4100d8d View commit details
    Browse the repository at this point in the history
  3. ci: add labels sync workflow

    da2ce7 committed Oct 12, 2023
    Configuration menu
    Copy the full SHA
    ca05034 View commit details
    Browse the repository at this point in the history
  4. Merge #320: Workflow Updates

    ca05034 ci: add labels sync workflow (Cameron Garnham)
    4100d8d ci: add dependabot file (Cameron Garnham)
    41be37a github: add codeowners file (Cameron Garnham)
    
    Pull request description:
    
      Some basic workflow updates to match the torrust-tracker repo.
    
    ACKs for top commit:
      da2ce7:
        ACK ca05034
    
    Tree-SHA512: fa5584bb4e464c8a62d3ab392fdbfd1594ebab7088d0418e04425418d1a8a4f7251e2bdac2b37005629c32725811c88e037fd2dec99cae43b0c6479a945a898b
    da2ce7 committed Oct 12, 2023
    Configuration menu
    Copy the full SHA
    e3775d8 View commit details
    Browse the repository at this point in the history
  5. ci: small fixes

    da2ce7 committed Oct 12, 2023
    Configuration menu
    Copy the full SHA
    5495658 View commit details
    Browse the repository at this point in the history
  6. chore: update cargo lockfile

    da2ce7 committed Oct 12, 2023
    Configuration menu
    Copy the full SHA
    4dc795f View commit details
    Browse the repository at this point in the history
  7. ci: update testing workflow

    da2ce7 committed Oct 12, 2023
    Configuration menu
    Copy the full SHA
    f59b16e View commit details
    Browse the repository at this point in the history
  8. Merge #331: vairous chores and small improvements

    f59b16e ci: update testing workflow (Cameron Garnham)
    4dc795f chore: update cargo lockfile (Cameron Garnham)
    5495658 ci: small fixes (Cameron Garnham)
    
    Pull request description:
    
    ACKs for top commit:
      da2ce7:
        ACK f59b16e
    
    Tree-SHA512: e99bd3808ddaa7818a4507841ec066647a83d070fb98553e7370677c0342b2b84ab1d7761bbb1e653e4bd33feaa1282c45360ee8e5ba66d7ffe1921773b9cbac
    da2ce7 committed Oct 12, 2023
    Configuration menu
    Copy the full SHA
    f43da9e View commit details
    Browse the repository at this point in the history

Commits on Oct 13, 2023

  1. various: change name to torrust-index

    small changes included:
    - move to deployment workflow
    - move copyright to readme
    - remove common license files
    da2ce7 committed Oct 13, 2023
    Configuration menu
    Copy the full SHA
    b6cfcc3 View commit details
    Browse the repository at this point in the history
  2. Merge #336: various: change name to torrust-index

    b6cfcc3 various: change name to `torrust-index` (Cameron Garnham)
    
    Pull request description:
    
      small changes included:
      - move to deployment workflow
      - move copyright to readme
      - remove common license files
    
    ACKs for top commit:
      da2ce7:
        ACK b6cfcc3
    
    Tree-SHA512: 5481623bb6320971ef53f359f2684f9200ba133ded0946572b4028e6a0ebf642bf3e63df69db54e8a540f0117a3b558acd9509a3d2bf066758697f19be9a9811
    da2ce7 committed Oct 13, 2023
    Configuration menu
    Copy the full SHA
    272c384 View commit details
    Browse the repository at this point in the history
  3. chore: update deps

    da2ce7 committed Oct 13, 2023
    Configuration menu
    Copy the full SHA
    b7448e8 View commit details
    Browse the repository at this point in the history
  4. Merge #337: chore: update deps

    b7448e8 chore: update deps (Cameron Garnham)
    
    Pull request description:
    
    ACKs for top commit:
      da2ce7:
        ACK b7448e8
    
    Tree-SHA512: b1927066b2b481814db51d443d3e0b1abc3453ccc43af99d6956a833af92e974aaa4dda84b94b82c6d1e8ec159c065fb247ae5ef96901c73c60ac02fc828da19
    da2ce7 committed Oct 13, 2023
    Configuration menu
    Copy the full SHA
    c5f11a1 View commit details
    Browse the repository at this point in the history

Commits on Oct 14, 2023

  1. ci: avoid rust cargo check bug

    da2ce7 committed Oct 14, 2023
    Configuration menu
    Copy the full SHA
    67555d9 View commit details
    Browse the repository at this point in the history
  2. Merge #339: ci: avoid rust cargo check bug

    67555d9 ci: avoid rust `cargo check` bug (Cameron Garnham)
    
    Pull request description:
    
    ACKs for top commit:
      da2ce7:
        ACK 67555d9
    
    Tree-SHA512: 217ea4d4f690bf920f9dd0a6ad5b41f7ef370f5e2641a872e858a3d0c138172b5586ffe8b381e4668e66183daa351306cd4c9302adb0eaa87b3d02a9569cad96
    da2ce7 committed Oct 14, 2023
    Configuration menu
    Copy the full SHA
    5c8b74f View commit details
    Browse the repository at this point in the history
  3. ci: temp: clean before build

    da2ce7 committed Oct 14, 2023
    Configuration menu
    Copy the full SHA
    047359d View commit details
    Browse the repository at this point in the history
  4. Merge #340: ci: temp: clean before build

    047359d ci: temp: clean before build (Cameron Garnham)
    
    Pull request description:
    
    ACKs for top commit:
      da2ce7:
        ACK 047359d
    
    Tree-SHA512: 6a0eee04cddf50e4c9e7ca63049cb0dd144abbea2503539c7d7effa6daff48fba76f6b66cc252d2f64ce74261b89c1ce137d9a78fa20c415e477ffb1bca0446a
    da2ce7 committed Oct 14, 2023
    Configuration menu
    Copy the full SHA
    0491148 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    f610b92 View commit details
    Browse the repository at this point in the history
  6. chore: format cargo file

    da2ce7 committed Oct 14, 2023
    Configuration menu
    Copy the full SHA
    b0f2913 View commit details
    Browse the repository at this point in the history
  7. Merge #341: dev: replace sailfish with tera

    b0f2913 chore: format cargo file (Cameron Garnham)
    f610b92 dev: replace sailfish with tera (Cameron Garnham)
    
    Pull request description:
    
    ACKs for top commit:
      da2ce7:
        ACK b0f2913
    
    Tree-SHA512: fff077574765d135fd2cbc038da2df83b4e7b2cd4846a7750d5edd71ae56b90335e52cceb154514ce634403e1cf5efb1c28e7511fe45872919dbd6425751b21e
    da2ce7 committed Oct 14, 2023
    Configuration menu
    Copy the full SHA
    aec16e6 View commit details
    Browse the repository at this point in the history
  8. dev: upgrade containers

    many copy-paste from torrust-tracker
    
    - intergration tests are disabled for now.
    da2ce7 committed Oct 14, 2023
    Configuration menu
    Copy the full SHA
    1f5351d View commit details
    Browse the repository at this point in the history
  9. Merge #338: dev: upgrade containers

    1f5351d dev: upgrade containers (Cameron Garnham)
    
    Pull request description:
    
      many copy-paste from torrust-tracker
    
      - intergration tests are disabled for now.
    
    ACKs for top commit:
      da2ce7:
        ACK 1f5351d
    
    Tree-SHA512: 0bde3200efcde1ee914608e8d5aed322b7f763dacd7757bf5d0bffd98b2b26470cec6fe2ee1a8831322f57090373891cb7bdf86410200960af258d04ab63cdc5
    da2ce7 committed Oct 14, 2023
    Configuration menu
    Copy the full SHA
    9d4eab1 View commit details
    Browse the repository at this point in the history
  10. chore(deps): bump indexmap from 1.9.3 to 2.0.2

    Bumps [indexmap](https://github.com/bluss/indexmap) from 1.9.3 to 2.0.2.
    - [Changelog](https://github.com/bluss/indexmap/blob/master/RELEASES.md)
    - [Commits](indexmap-rs/indexmap@1.9.3...2.0.2)
    
    ---
    updated-dependencies:
    - dependency-name: indexmap
      dependency-type: direct:production
      update-type: version-update:semver-major
    ...
    
    Signed-off-by: dependabot[bot] <[email protected]>
    dependabot[bot] authored Oct 14, 2023
    Configuration menu
    Copy the full SHA
    9dc540b View commit details
    Browse the repository at this point in the history

Commits on Oct 15, 2023

  1. Configuration menu
    Copy the full SHA
    812b65b View commit details
    Browse the repository at this point in the history
  2. various: work on readme

    da2ce7 committed Oct 15, 2023
    Configuration menu
    Copy the full SHA
    3a9954e View commit details
    Browse the repository at this point in the history
  3. Merge #344: various: work on readme

    3a9954e various: work on readme (Cameron Garnham)
    
    Pull request description:
    
    ACKs for top commit:
      da2ce7:
        ACK 3a9954e
    
    Tree-SHA512: cf62723ce1999b84665421b1c8ed099ba907b86816bdf88e867df5b640ea96ba8f05e9953efacd1bc52de027a0288eb9c0da1f23e1cb0f7c5be2f625926760d4
    da2ce7 committed Oct 15, 2023
    Configuration menu
    Copy the full SHA
    f0662e0 View commit details
    Browse the repository at this point in the history
  4. docs: add release process

    da2ce7 committed Oct 15, 2023
    Configuration menu
    Copy the full SHA
    e93e5cd View commit details
    Browse the repository at this point in the history
  5. Merge #346: docs: add release process

    e93e5cd docs: add release process (Cameron Garnham)
    
    Pull request description:
    
    ACKs for top commit:
      da2ce7:
        ACK e93e5cd
    
    Tree-SHA512: 85c3af184402a32a4700db2477025c85009acf197893842785e2e64f1587f6794a3bba49753bcb3fce03fe1c0153b68b37e6a82a4cd580b2bb393f073a87a88f
    da2ce7 committed Oct 15, 2023
    Configuration menu
    Copy the full SHA
    11ef88a View commit details
    Browse the repository at this point in the history
  6. release: version 3.0.0-alpha.1

    da2ce7 committed Oct 15, 2023
    Configuration menu
    Copy the full SHA
    27afd4e View commit details
    Browse the repository at this point in the history