<!-- 
RSS generated by JIRA (1001.0.0-SNAPSHOT#100246-sha1:7a5c50119eb0633d306e14180817ddef5e80c75d) at Thu Feb 08 22:31:55 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary add field=key&field=summary to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>FOLIO Jira</title>
    <link>https://folio-org.atlassian.net</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>1001.0.0-SNAPSHOT</version>
        <build-number>100246</build-number>
        <build-date>07-02-2024</build-date>
    </build-info>

<item>
            <title>[MODMARCMIG-9] Implement POST Endpoint for Data-Saving Step in MARC Migration Operation</title>
                <link>https://folio-org.atlassian.net/browse/MODMARCMIG-9</link>
                <project id="10268" key="MODMARCMIG">mod-marc-migrations</project>
                    <description>&lt;p&gt;&lt;b&gt;Overview:&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Following the completion of the data mapping process for chunked records in the MARC migration operation, this story focuses on implementing a POST endpoint to trigger the subsequent data-saving step. The endpoint, when called, will initiate the data-saving process for already processed mapping chunk steps within the operation.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Requirements/Scope:&lt;/b&gt;&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;Create a new POST endpoint (&lt;tt&gt;POST /marc-migrations/&amp;lt;id&amp;gt;/steps&lt;/tt&gt;) dedicated to triggering the data-saving step for previously processed mapping chunk steps in the MARC migration operation.&lt;/li&gt;
	&lt;li&gt;Implement logic to update the operation status to &quot;DATA_SAVING&quot; upon endpoint invocation and handle the data-saving process for chunks.&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;&lt;b&gt;Approach:&lt;/b&gt;&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;&lt;b&gt;Implement Data-Saving Endpoint:&lt;/b&gt;
	&lt;ul&gt;
		&lt;li&gt;Develop a new endpoint (e.g., POST /marc-migrations/&amp;lt;id&amp;gt;/steps) responsible for triggering the data-saving step for processed chunk_steps.&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
	&lt;li&gt;&lt;b&gt;Update Operation Status and Return Response:&lt;/b&gt;
	&lt;ul&gt;
		&lt;li&gt;Upon invoking the endpoint, modify the operation status to &quot;DATA_SAVING&quot; and return an acknowledgment response.&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
	&lt;li&gt;&lt;b&gt;Process Chunks for Data Saving:&lt;/b&gt;
	&lt;ul&gt;
		&lt;li&gt;Initiate asynchronous processing for chunks within the operation.&lt;/li&gt;
		&lt;li&gt;For each chunk:
		&lt;ul&gt;
			&lt;li&gt;Create a new step in the database table to track the data-saving process.&lt;/li&gt;
			&lt;li&gt;Send a request to mod-entities-links, triggering an endpoint with the filename containing mapped entities.&lt;/li&gt;
			&lt;li&gt;Process the response received, which will include error chunk file names, and update chunk_step and chunk entities accordingly.&lt;/li&gt;
		&lt;/ul&gt;
		&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
	&lt;li&gt;&lt;b&gt;Update Operation Status Based on Chunk Processing:&lt;/b&gt;
	&lt;ul&gt;
		&lt;li&gt;After processing all chunks, update the operation entity status to &quot;DATA_SAVING_COMPLETED&quot; or &quot;DATA_SAVING_FAILED&quot; based on the outcomes of the processed chunks.&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;&lt;b&gt;Request Body Example:&lt;/b&gt;&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
{
  &lt;span class=&quot;code-quote&quot;&gt;&quot;operationStepType&quot;&lt;/span&gt;: {
    &lt;span class=&quot;code-quote&quot;&gt;&quot;type&quot;&lt;/span&gt;: &lt;span class=&quot;code-quote&quot;&gt;&quot;string&quot;&lt;/span&gt;,
    &lt;span class=&quot;code-quote&quot;&gt;&quot;&lt;span class=&quot;code-keyword&quot;&gt;enum&lt;/span&gt;&quot;&lt;/span&gt;: [&lt;span class=&quot;code-quote&quot;&gt;&quot;DATA_SAVING&quot;&lt;/span&gt;]
  }
}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&lt;b&gt;Acceptance Criteria:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;The new POST endpoint (&lt;tt&gt;POST /marc-migrations/&amp;lt;id&amp;gt;/steps&lt;/tt&gt;) for triggering the data-saving step in the MARC migration operation is successfully implemented.&lt;/li&gt;
	&lt;li&gt;Upon invoking the endpoint with the correct payload, the operation status transitions to &quot;DATA_SAVING&quot;.&lt;/li&gt;
	&lt;li&gt;The endpoint effectively initiates the data-saving process for chunks that were processed during the mapping phase.&lt;/li&gt;
	&lt;li&gt;Covered by unit tests&lt;/li&gt;
&lt;/ul&gt;
</description>
                <environment></environment>
        <key id="79267">MODMARCMIG-9</key>
            <summary>Implement POST Endpoint for Data-Saving Step in MARC Migration Operation</summary>
                <type id="10005" iconUrl="https://folio-org.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10309?size=medium">Story</type>
                            <parent id="79273">MODMARCMIG-10</parent>
                                    <priority id="10002" iconUrl="https://dev.folio.org/assets/jira-priority/jira-p3.svg">P3</priority>
                        <status id="1" iconUrl="https://folio-org.atlassian.net/images/icons/statuses/open.png" description="The issue is open and ready for the assignee to start work on it.">Open</status>
                    <statusCategory id="2" key="new" colorName="blue-gray"/>
                                    <resolution id="-1">Unresolved</resolution>
                                                        <assignee accountid="-1">Unassigned</assignee>
                                                                <reporter accountid="5eb44b5a96bbcb0b8585c98d">Pavlo Smahin</reporter>
                                    <labels>
                            <label>back-end</label>
                            <label>epam-spitfire</label>
                    </labels>
                <created>Tue, 12 Dec 2023 13:48:12 +0000</created>
                <updated>Wed, 31 Jan 2024 09:11:35 +0000</updated>
                                                            <fixVersion>1.0.0</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>2</watches>
                                                                <comments>
                                                            <comment id="188130" author="712020:5a7f6289-a5b2-41a9-ad26-18a61419c15c" created="Thu, 4 Jan 2024 09:17:13 +0000"  >&lt;p&gt;QA note:&lt;br/&gt;
Check request/response/statuses&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10006">
                    <name>Gantt End to Start</name>
                                                                <inwardlinks description="has to be done after">
                                        <issuelink>
            <issuekey id="79274">MODMARCMIG-7</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="34819">MODELINKS-173</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10003">
                    <name>Relates</name>
                                                                <inwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="13764">UXPROD-4082</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10000" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummarycf">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10057" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Development Team</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10180"><![CDATA[Spitfire]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10014" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue key="$xmlutils.escape($text)">Authority remapping</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10063" key="com.atlassian.jira.plugin.system.customfieldtypes:float">
                        <customfieldname>PO Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10019" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|hzx0gu:001wi</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10046" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Release</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10079"><![CDATA[Quesnelia (R1 2024)]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10020" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="1111">Spitfire Sprint 185</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10044" key="com.atlassian.jira.plugin.system.customfieldtypes:float">
                        <customfieldname>Story Points</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>5.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10024" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>[CHART] Date of First Response</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Thu, 4 Jan 2024 09:17:13 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                </customfields>
    </item>
</channel>
</rss>