Skip to content

Commit

Permalink
story #12069 feat(archive-search): add archive unit edit mode
Browse files Browse the repository at this point in the history
  • Loading branch information
Regzox committed Mar 6, 2024
1 parent 7706ddb commit 327ed8f
Show file tree
Hide file tree
Showing 67 changed files with 5,135 additions and 1,217 deletions.
6 changes: 4 additions & 2 deletions api/api-gateway/src/main/resources/application-dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -210,13 +210,15 @@ spring:
predicates:
- >
Path=
/archive-search-api/archive-search/**
/archive-search-api/archive-search/**,
/archive-search-api/archive-units/**
filters:
# Archive search API
- RewritePath=/archive-search-api/archive-search/searchcriteriahistory,/searchcriteriahistory,
- RewritePath=/archive-search-api/archive-search/filingholdingscheme,/archives-search/filling-holding-schema,
- RewritePath=/archive-search-api/archive-search/(?<segment>.*),/archives-search/$\{segment}
- RewritePath=/archive-search-api/archive-search/(?<segment>.*),/archives-search/$\{segment},
- RewritePath=/archive-search-api/archive-units/(?<segment>.*),/archives-units/$\{segment}

- id: pastis-external-service
uri: https://localhost:8015 # URL PASTIS EXTERNAL
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,10 @@
import java.util.Objects;

public enum Cardinality {
ZERO_OR_ONE("0-1"),
ZERO_OR_MORE("0-N"),
ONE_OR_ONE("1-1"),
ONE_OR_MORE("1-N");
ONE("0-1"),
MANY("0-N"),
ONE_REQUIRED("1-1"),
MANY_REQUIRED("1-N");

private final String cardinality;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -246,13 +246,15 @@ spring:
predicates:
- >
Path=
/archive-search-api/archive-search/**
/archive-search-api/archive-search/**,
/archive-search-api/archive-units/**

filters:
# Archive search API
- RewritePath=/archive-search-api/archive-search/searchcriteriahistory,/searchcriteriahistory,
- RewritePath=/archive-search-api/archive-search/filingholdingscheme,/archives-search/filling-holding-schema,
- RewritePath=/archive-search-api/archive-search/(?<segment>.*),/archives-search/$\{segment}
- RewritePath=/archive-search-api/archive-search/(?<segment>.*),/archives-search/$\{segment},
- RewritePath=/archive-search-api/archive-units/(?<segment>.*),/archives-units/$\{segment}

- id: pastis-external-service
uri: {{ 'https' if vitamui.pastis_external.secure | default(secure) | bool else 'http' }}://{{ vitamui.pastis_external.host }}:{{ vitamui.pastis_external.port_service }}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
/*
* Copyright French Prime minister Office/SGMAP/DINSIC/Vitam Program (2015-2022)
*
* contact.vitam@culture.gouv.fr
*
* This software is a computer program whose purpose is to implement a digital archiving back-office system managing
* high volumetry securely and efficiently.
*
* This software is governed by the CeCILL 2.1 license under French law and abiding by the rules of distribution of free
* software. You can use, modify and/ or redistribute the software under the terms of the CeCILL 2.1 license as
* circulated by CEA, CNRS and INRIA at the following URL "https://cecill.info".
*
* As a counterpart to the access to the source code and rights to copy, modify and redistribute granted by the license,
* users are provided only with a limited warranty and the software's author, the holder of the economic rights, and the
* successive licensors have only limited liability.
*
* In this respect, the user's attention is drawn to the risks associated with loading, using, modifying and/or
* developing or reproducing the software by the user in light of its specific status of free software, that may mean
* that it is complicated to manipulate, and that also therefore means that it is reserved for developers and
* experienced professionals having in-depth computer knowledge. Users are therefore encouraged to load and test the
* software's suitability as regards their requirements in conditions enabling the security of their systems and/or data
* to be ensured and, more generally, to use and operate it in the same conditions as regards security.
*
* The fact that you are presently reading this means that you have had knowledge of the CeCILL 2.1 license and that you
* accept its terms.
*
*
*/

import { HttpClient, HttpHeaders } from '@angular/common/http';
import { Inject, Injectable } from '@angular/core';
import { Observable } from 'rxjs';
import { BaseHttpClient } from '../base-http-client';
import { BASE_URL } from '../injection-tokens';
import { Ontology } from '../models';
import { ArchiveUnit } from './models/archive-unit';
import { JsonPatchDto, MultiJsonPatchDto } from './models/json-patch';

@Injectable({
providedIn: 'root',
})
export class ArchiveUnitApiService extends BaseHttpClient<Ontology> {
constructor(http: HttpClient, @Inject(BASE_URL) baseUrl: string) {
super(http, baseUrl);
}

/**
* Updates many archive units asynchronously in one Vitam operation.
* Can perform only add or replace operations on current archive units.
*
* @param archiveUnits archive units to update.
* @param headers optionnal headers.
* @returns a wrapped operation id.
*/
asyncPartialUpdateArchiveUnits(archiveUnits: ArchiveUnit[], headers?: HttpHeaders): Observable<{ operationId: String }> {
return this.http.patch<{ operationId: String }>(`${this.apiUrl}/archive-units`, archiveUnits, { headers });
}

/**
* Updates one archive unit asynchronously by using a jsonPatch in one Vitam operation.
*
* @param jsonPatchDto a jsonPatchDto.
* @param headers optionnal headers.
* @returns a wrapped operation id.
*/
asyncPartialUpdateArchiveUnitByCommands(jsonPatchDto: JsonPatchDto, headers?: HttpHeaders): Observable<{ operationId: String }> {
return this.http.patch<{ operationId: String }>(`${this.apiUrl}/archive-units/update/single`, jsonPatchDto, { headers });
}

/**
* Updates many archive unit asynchronously by using jsonPatches in one Vitam operation.
*
* @param multiJsonPatchDto a list of jsonPatchDto.
* @param headers optionnal headers.
* @returns a wrapped operation id.
*/
asyncPartialUpdateArchiveUnitsByCommands(multiJsonPatchDto: MultiJsonPatchDto, headers?: HttpHeaders) {
return this.http.patch<{ operationId: String }>(`${this.apiUrl}/archive-units/update/multiple`, multiJsonPatchDto, { headers });
}
}
Loading

0 comments on commit 327ed8f

Please sign in to comment.