• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

pulibrary / tigerdata-app / e091d009-5a3a-4ffa-a23a-daa4e1d7e0e7

21 Oct 2025 09:38PM UTC coverage: 79.122% (-8.2%) from 87.292%
e091d009-5a3a-4ffa-a23a-daa4e1d7e0e7

push

circleci

web-flow
Bump vite from 5.4.20 to 5.4.21 in the npm_and_yarn group across 1 directory (#2062)

Bumps the npm_and_yarn group with 1 update in the / directory:
[vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite).

Updates `vite` from 5.4.20 to 5.4.21
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/vitejs/vite/releases">vite's
releases</a>.</em></p>
<blockquote>
<h2>v5.4.21</h2>
<p>Please refer to <a
href="https://github.com/vitejs/vite/blob/v5.4.21/packages/vite/CHANGELOG.md">CHANGELOG.md</a>
for details.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/vitejs/vite/blob/v5.4.21/packages/vite/CHANGELOG.md">vite's
changelog</a>.</em></p>
<blockquote>
<h2><!-- raw HTML omitted -->5.4.21 (2025-10-20)<!-- raw HTML omitted
--></h2>
<ul>
<li>fix(dev): trim trailing slash before <code>server.fs.deny</code>
check (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/20968">#20968</a>)
(<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/20970">#20970</a>)
(<a
href="https://github.com/vitejs/vite/commit/<a class=hub.com/pulibrary/tigerdata-app/commit/cad1d31d0635dd8fd4ddfe6e5a92eb9ff13cd06c">cad1d31d0<a href="https://github.com/pulibrary/tigerdata-app/commit/b45666a26476ff4bf99d2a0465a0b5ebbdf98838">&quot;&gt;cad1d31&lt;/a&gt;),
closes &lt;a
href=&quot;https://redirect.github.com/vitejs/vite/issues/20968&quot;&gt;#20968&lt;/a&gt;
&lt;a
href=&quot;https://redirect.github.com/vitejs/vite/issues/20970">#20970</a></li>
<li>chore: update CHANGELOG (<a
href="https://github.com/vitejs/vite/commit/<a class="double-link" href="https://github.com/pulibrary/tigerdata-app/commit/ca88ed7398288ce0c60176ac9a6392f10654c67c">ca88ed739</a><a href="https://github.com/pulibrary/tigerdata-app/commit/b45666a26476ff4bf99d2a0465a0b5ebbdf98838">&quot;&gt;ca88ed7&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;/details&gt;
&lt;details&gt;
&lt;summary&gt;Commits&lt;/summary&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a
href=&quot;https://github.com/vitejs/vite/commit/</a><a class="double-link" href="https://github.com/pulibrary/tigerdata-app/commit/adce3c22c64cc9d44cc8f45cc92b543e3e4bf385">adce3c22c">adce3c2
release: v5.4.21
  • cad1d31 fix(dev): trim trailing slash before server.fs.deny check (
  • 2380 of 3008 relevant lines covered (79.12%)

    148.71 hits per line

    Source File
    Press 'n' to go to next uncovered line, 'b' for previous

    87.5
    /app/operations/project_create.rb
    1
    # frozen_string_literal: true
    
    2
    class ProjectCreate < Dry::Operation
    
    2✔
    3
      class ProjectCreateError < StandardError; end
    
    2✔
    4
    
    
    5
      def call(request:, approver:)
    
    2✔
    6
        project = step create_project_from_request(request)
    
    30✔
    7
        mediaflux_id = step persist_in_mediaflux(project, approver)
    
    30✔
    8
        step update_project_with_mediaflux_info(mediaflux_id:, project:)
    
    28✔
    9
        step persist_users_in_mediaflux(project, approver)
    
    28✔
    10
        step activate_project(project, approver)
    
    28✔
    11
      end
    
    12
    
    
    13
      private
    
    2✔
    14
        def create_project_from_request(request)
    
    2✔
    15
          # Create the project in the Rails database
    
    16
          project_metadata_json = RequestProjectMetadata.convert(request)
    
    30✔
    17
          # Link the request to the project
    
    18
          project = Project.create!({ metadata_json: project_metadata_json })
    
    30✔
    19
          request.project_id = project.id
    
    30✔
    20
          project.draft_doi
    
    30✔
    21
          project.save!
    
    30✔
    22
    
    
    23
          # Return Success(attrs) or Failure(error)
    
    24
          Success project
    
    30✔
    25
        rescue => ex
    
    26
          Failure("Error creating the project: #{ex}")
    
    ×
    27
        end
    
    28
    
    
    29
        def persist_in_mediaflux(project, current_user)
    
    2✔
    30
          # Create the project in Mediaflux
    
    31
          mediaflux_request = Mediaflux::ProjectCreateServiceRequest.new(session_token: current_user.mediaflux_session, project: project)
    
    30✔
    32
          mediaflux_request.resolve
    
    30✔
    33
    
    
    34
          mediaflux_id = mediaflux_request.mediaflux_id
    
    30✔
    35
    
    
    36
          if mediaflux_id.to_i == 0
    
    30✔
    37
            debug_output = "Error saving project #{project.id} to Mediaflux: #{mediaflux_request.response_error}. Debug output: #{mediaflux_request.debug_output}"
    
    2✔
    38
            Rails.logger.error debug_output
    
    2✔
    39
            Failure debug_output
    
    2✔
    40
          else
    
    41
            ProvenanceEvent.generate_approval_events(project: project, user: current_user, debug_output: mediaflux_request.debug_output.to_s)
    
    28✔
    42
            Success(mediaflux_id)
    
    28✔
    43
          end
    
    44
        # TODO:  What kind of error are we expecting here?  This will capture the session errors, but maybe we should not be doing this.
    
    45
        #        I could not figure out a way in tests to hit this error...
    
    46
        rescue => ex
    
    47
          Failure("Error saving project #{project.id} to Mediaflux: #{ex}")
    
    ×
    48
        end
    
    49
    
    
    50
        def update_project_with_mediaflux_info(mediaflux_id:, project:)
    
    2✔
    51
          project.mediaflux_id = mediaflux_id
    
    28✔
    52
          project.metadata_model.status = Project::APPROVED_STATUS
    
    28✔
    53
          project.save!
    
    28✔
    54
          Success(project)
    
    28✔
    55
        rescue => ex
    
    56
          # TODO: It was saved in mediaflux, so maybe a retry here?  I don't want to destroy the project
    
    57
          Failure("Setting the mediaflux id the project(#{project.id}) : #{ex}")
    
    ×
    58
        end
    
    59
    
    
    60
        def persist_users_in_mediaflux(project, current_user)
    
    2✔
    61
          # Do nothing if there are no users to persist
    
    62
          return Success(project) if (project.metadata_model.ro_users + project.metadata_model.rw_users).empty?
    
    28✔
    63
    
    
    64
          # Add the data users to the project in Mediaflux
    
    65
          add_users_request = Mediaflux::ProjectUserAddRequest.new(session_token: current_user.mediaflux_session, project: project)
    
    2✔
    66
          add_users_request.resolve
    
    2✔
    67
    
    
    68
          if add_users_request.error?
    
    2✔
    69
            # TODO: what should we do with the project in this case?  It got all the way to mediaflux, but the users were not added
    
    70
            Failure("Error adding users to mediaflux project #{project.mediaflux_id} #{add_users_request.response_error}")
    
    ×
    71
          else
    
    72
            user_debug = add_users_request.debug_output.to_s
    
    2✔
    73
            Rails.logger.debug { "Project #{project.id} users have been added to MediaFlux: #{user_debug}" }
    
    4✔
    74
            Success project
    
    2✔
    75
          end
    
    76
        # TODO:  What kind of error are we expecting here?  This will capture the session errors, but maybe we should not be doing this.
    
    77
        #        I could not figure out a way in tests to hit this error...
    
    78
        rescue => ex
    
    79
          Failure("Exception adding users to mediaflux project #{project.mediaflux_id}: #{ex}")
    
    ×
    80
        end
    
    81
    
    
    82
        def activate_project(project, approver)
    
    2✔
    83
          project.activate(current_user: approver)
    
    28✔
    84
          Success(project)
    
    28✔
    85
        rescue => ex
    
    86
          Failure("Error activate project #{project.id}: #{ex}")
    
    ×
    87
        end
    
    88
    end
    
    STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
    ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

    © 2025 Coveralls, Inc