Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion packages/api/server/controllers/majic/get/majic.owner.get.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,9 @@ import { AuthUser } from '#server/middlewares/authMiddleware';
const ERROR_RESPONSES = {
permission_denied: { code: 403 },
log_insert_failed: { code: 400 },
parcel_fetch_error: { code: 400 },
parcel_fetch_failed: { code: 400 },
owner_fetch_failed: { code: 400 },
owners_fetch_error: { code: 400 },
owners_fetch_failed: { code: 400 },
undefined: { code: 500, message: 'Une erreur inconnue est survenue' },
};
Expand All @@ -29,6 +30,7 @@ export default async (req: MajicParcelGetRequest, res: Response, next: NextFunct
const { code } = ERROR_RESPONSES[error?.code] ?? ERROR_RESPONSES.undefined;

res.status(code).send({
code: error?.code,
user_message: `${error.nativeError?.message ?? error.message ?? 'Une erreur inconnue est survenue'}`,
});
return next(error.nativeError ?? error);
Expand Down
17 changes: 7 additions & 10 deletions packages/api/server/services/majic/majicOwners/find.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,26 +40,23 @@ export default async (parcelId: string, departementId: string, user: AuthUser) =
let parcel: RawParcel;
try {
parcel = await majicModel.findParcel(parcelId, dept, schema, shortParcelTableName, parcelTableName);
if (!parcel) {
throw new ServiceError('parcel_fetch_failed', new Error('Impossible de retrouver la parcelle en base de données.'));
}
} catch (parcelError) {
if (parcelError.code === 'parcel_fetch_failed') {
throw parcelError;
}
throw new ServiceError('parcel_fetch_failed', new Error(`Parcelle ${parcelId} introuvable dans la base des propriétaires fonciers.`));
} catch {
throw new ServiceError('parcel_fetch_error', new Error(`Une erreur s'est produite lors de la recherche de la parcelle ${parcelId}.`));
}
if (!parcel) {
throw new ServiceError('parcel_fetch_failed', new Error(`Parcelle ${parcelId} introuvable.`));
}

// Récupérer la liste des propriétaires de la parcelle
let owners: RawOwner[];
try {
owners = await majicModel.findOwners(parcel.idcom, parcel.dnupro, dept, schema, shortOwnerTableName, ownerTableName);
} catch {
throw new ServiceError('owners_fetch_failed', new Error(`Une erreur s'est produite lors de la recherche des propriétaires de la parcelle ${parcelId}.`));
throw new ServiceError('owners_fetch_error', new Error(`Une erreur s'est produite lors de la recherche des propriétaires de la parcelle ${parcelId}.`));
}

if (!owners) {
throw new ServiceError('owner_fetch_failed', new Error(`Propriétaire de la parcelle ${parcelId} introuvable dans la base des propriétaires fonciers.`));
throw new ServiceError('owners_fetch_failed', new Error(`Propriétaire de la parcelle ${parcelId} introuvable.`));
}

// Envoyer le mail
Expand Down
4 changes: 1 addition & 3 deletions packages/api/server/services/shantytownParcelOwner/update.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,7 @@ export default async (user: AuthUser, shantytown: Shantytown, owners: ParcelOwne
let actualOwners: RawParcelOwner[] = [];
try {
actualOwners = await shantytownParcelOwner.findAll(user, shantytown.id, transaction);
} catch (error) {
// eslint-disable-next-line no-console
console.error('Erreur lors de la récupération des propriétaires existants :', error);
} catch {
throw new ServiceError('parcel_owner_fetch_failed', new Error('Erreur lors de la récupération des propriétaires existants'));
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -146,11 +146,19 @@ async function fetchParcelOwners() {
"Les informations ont été envoyées à l'adresse renseignée dans votre profil. Cette demande est tracée."
);
} catch (e) {
notificationStore.error(
"Une erreur est survenue",
const errorMessage =
e?.user_message ||
`Nous n'avons pu récupérer les informations relatives au propriétaire de la parcelle ${parcel.value}.`
);
`Nous n'avons pu récupérer les informations relatives au propriétaire de la parcelle ${parcel.value}.`;

const isNotFoundError =
e?.code === "parcel_fetch_failed" ||
e?.code === "owners_fetch_failed";

if (isNotFoundError) {
notificationStore.info("Information introuvable", errorMessage);
} else {
notificationStore.error("Une erreur est survenue", errorMessage);
}
}
modale.value.close();
loading.value = false;
Expand Down
Loading