Commit graph

432 commits

Author SHA1 Message Date
Paul Chavard
b0e179300b
Merge pull request #9075 from colinux/fix-sentry-dolist-contact
ETQ exploitant je veux faire remonter les contacts Dolist en erreur dans sentry
2023-05-24 08:06:10 +00:00
Colin Darie
ac70eb00af fix(dolist): unfilter email field in sentry, because we want it 2023-05-22 17:34:51 +02:00
Paul Chavard
2ec0d405f7 chore(recovery): import/export revision 2023-05-19 11:19:15 +02:00
Martin
80fd029e0a amelioration(recovery:import): fait que la tache soit re-entrante, ameliore les logs 2023-05-16 17:34:14 +02:00
Martin
32088512ff amelioration(importer): evite de re-importer un dossier pointant vers un parent qui est maintenant detruit 2023-05-16 17:00:34 +02:00
Martin
f76e52cc97 tech(tache.recovery): ajoute une tache pour re-importer des dossiers venant d'un backup
Update app/lib/recovery/exporter.rb

Co-authored-by: Colin Darie <colin@darie.eu>
2023-05-16 14:49:36 +02:00
simon lehericey
9d1d523cf6 remove life_cycle 2023-05-16 14:49:36 +02:00
simon lehericey
06b6663662 import more stuff 2023-05-16 14:49:36 +02:00
Martin
e9115b10b5 correctif(data.kc): re-import les données kc 2023-05-16 14:49:36 +02:00
Christophe Robillard
53dd2955e4 add tchap hs adapter 2023-05-16 09:40:53 +02:00
Colin Darie
21df038056
fix(dolist): notify us when contact status is not found 2023-05-11 09:45:32 +02:00
Colin Darie
5c648664d5 fix(entreprise): accepts "C" as value for "closed" 2023-05-10 18:08:23 +02:00
Colin Darie
049219a4a2
fix(dolist): don't fail on error when contact does not exist yet 2023-05-09 11:06:48 +02:00
Colin Darie
5be8865675
fix(export): sanitize filename containing unsafe chars for storage
Pourrait fixer des problèmes de dezip sous windows de zip.
2023-05-04 14:36:44 +02:00
Colin Darie
f615facbba
fix(export): don't fail when trying to write a file name > 255 bytes 2023-05-04 14:36:33 +02:00
Paul Chavard
99abdf45e7 fix(api-entreprise): use new status endpoint 2023-04-27 22:39:44 +02:00
Colin Darie
5cc2712873
refactor(dolist): drop smtp deliver method 2023-04-27 10:09:29 +02:00
Colin Darie
f7a80eb905
fix: dolist module/class mismatch 2023-04-27 10:09:00 +02:00
Colin Darie
fb54ca1469 fix(markdown): don't convert underscore within urls or emails 2023-04-21 14:07:10 +02:00
Colin Darie
9728493bda
Merge pull request #8924 from colinux/rubocop-upgrades
Tech: update rubocop, active nouveaux cops Rails/*
2023-04-19 13:37:10 +00:00
Colin Darie
3317f19323
chore(rubocop): fix Rails/ContentTag 2023-04-19 12:55:12 +02:00
Martin
534ce34f87 amelioration(Dolist::ApiSender): lève une Dolist::IgnorableError afin de l'inscrire dans l'historique des EmailEvent 2023-04-19 11:22:13 +02:00
Martin
8fa2bbb67d amelioration(dolist): ne log erreurs pas les erreurs dans sentry lorsque le contact chez dolist est injoingable ou hardbounce 2023-04-19 11:22:13 +02:00
Martin
a47b19bee9 amelioration(dolist): desactive le tracking http 2023-04-14 10:11:09 +02:00
Paul Chavard
d1d5bc2e67 fix(api-entreprise): do not crash when siret not found 2023-04-05 18:38:13 +02:00
Colin Darie
a62bb210aa
Merge pull request #8820 from colinux/fix-autolink-renderer
Fix: autolink manuellement les liens qui ne sont pas des urls
2023-03-29 12:23:31 +00:00
Colin Darie
95315788f6
fix: handle all autolinks manually
On ne peut pas appeler super() qui est en méthode en C, pas en ruby.
Donc on doit gérer manuellement les cas possibles.
2023-03-29 13:57:41 +02:00
Martin
c6e9674de2 correctif(export.pdf): ETQ expert, lorsque j'exporte un dossier au format PDF, celui ci contenient les avis non confidentiels ainsi que mes avis 2023-03-28 17:16:34 +02:00
Colin Darie
40a303f6a6 fix(a11y): add a title in simple renderer links and autolinks
Closes #8095
2023-03-22 14:05:06 +01:00
Martin
4d8b4e078b amelioration(a11y): extrait un nouveau composant pour rendre du texte saisi par un humain accessible 2023-02-23 15:23:20 +01:00
Colin Darie
6fa692d22e
fix(dolist): don't delivery by API emails having bcc 2023-02-07 16:51:44 +01:00
Martin
1ee67d511d amelioration(mails): permet a nos mails d'inclure des balises <a> pour faciliter l'usage des mail envoyés 2023-02-06 11:01:28 +01:00
Martin
f952e42ad1 amelioration(BalancerDeliveryMethod): evite d'envoyer les mails av PJ car pour le moment c'est une fonction payante chez Dolist 🤯 2023-02-03 17:19:36 +01:00
Colin Darie
6b011b8b44 chore(dolist): helper so we know if mail is sendable by API 2023-02-02 16:11:52 +01:00
Colin Darie
6a3de1b57a chore(dolist): cache sender_id so we don't request it at each send 2023-02-02 16:02:27 +01:00
Colin Darie
9641a40ea7 chore(mailer): MailDeliveryError with original exception backtrace 2023-02-02 15:59:18 +01:00
Colin Darie
61cd9aa8c7 feat(dolist): send mail having attachments 2023-02-02 15:52:20 +01:00
Colin Darie
41c196f2ec
feat(dolist): send email from API
Co-authored-by: mfo <mfo@users.noreply.github.com>
2023-02-02 14:52:33 +01:00
Colin Darie
ef864021f7 refactor(pj_service): explicit options with_{bills,champs_private} because expert & instructeurs does not need the same 2023-01-30 18:04:09 +01:00
simon lehericey
84d08d4d24 fix(expert_export): an expert export excludes annotation and avis 2023-01-19 12:09:16 +01:00
Colin Darie
784b0458fe feat(dolist): consolidate dispatched events with delivered emails 2023-01-18 09:56:40 +01:00
Colin Darie
ce7e674159 feat(mailer): make errors interceptable by jobs so they will retry
Comme on intercepte chaque `StandardError` pour le monitoring des mails
en erreur, l'erreur n'était plus visible par le job, et les emails
étaient perdus.

A la place on re-raise une autre erreur pour que le job échoue afin de
retry plus tard. Pour ne pas être "avalée" par le rescue_from,
cette erreur doit héritée d'`Exception` plutôt que `StandardError`.

NB: il faudrait parvenir à écrire un test pour vérifier ce comportement.

Pour être vérifié en dev, il faut activer `raise_delivery_errors`
comme en production.
2023-01-17 14:26:11 +01:00
Martin
733ba01695 amelioration(balancer_delivery_method): implemente le fait de forcer la methode de delivery au niveau de notre balancer de fournisseur demail 2023-01-11 17:13:05 +01:00
Lisa Durand
8ba13cb685 humanize raison sociale from api_entreprise in adapter 2023-01-11 14:42:38 +01:00
Colin Darie
e63e4fc975 fix(sentry/rna): add error context when RNA schema failed 2023-01-11 12:30:02 +01:00
François Vantomme
08d276472b refactor(links): use localized FAQ URLs 2023-01-11 11:28:03 +01:00
Colin Darie
05b517a847
fix(mailer): observers on balancer and balanced delivery methods
- Les observers doivent être déclarés *avant*
  le chargement de nos delivery methods (Sendinblue & Dolist),
  sinon ils seront ignorés par ces derniers

- dans le balancer, on ne peut pas appeler `.deliver` une seconde fois,
  sinon les observers (et interceptors) sont invoqués deux fois.
2023-01-11 00:57:16 +01:00
Colin Darie
1f51267b25 chore(manager): link email users to events 2023-01-10 16:07:35 +01:00
Paul Chavard
c4a30084fe refactor(virus_scan): remove lock 2023-01-04 12:12:11 +01:00
Paul Chavard
6e18090fb3 refactor(virus_scan_result): use column instead of metadata on blob 2023-01-04 12:12:11 +01:00
simon lehericey
172a9d5599 feat(timestamp): add certigna 2022-12-07 19:28:01 +01:00
Paul Chavard
d306583a7b refactor(active_storage): PiecesJustificativesService::FakeAttachment -> ActiveStorage::FakeAttachment 2022-11-22 18:05:26 +01:00
Martin
2cd74d1010 amelioration(archives): positionne le fichier des reporting des erreurs en tête de l'arborescence 2022-10-20 15:14:57 +02:00
Damien Le Thiec
73f6063c87
Merge branch 'main' into feature/add_rna_type_de_champs 2022-10-11 15:36:46 +02:00
Colin Darie
073656342e fix(api_address): support Adresse BAN without postcode
Des adresses n'ont pas de code postal (dans certains TOM par exemple).
On fallback sur un string vide plutôt que nil pour limiter les effets de bord.
2022-10-11 12:25:12 +02:00
Damien Le Thiec
0d9f02c88d First draft autofetch data for RNA 2022-10-04 22:11:01 +02:00
Damien Le Thiec
ecd54de854 Extend RNA adapter while keeping depreciated version 2022-10-04 19:59:39 +02:00
Damien Le Thiec
542c5b518f Improve and connect RNA Adapter 2022-09-22 17:13:53 +02:00
Colin Darie
95a4e8a907
feat(api_entreprise): create etablissement with fallback when API is down
On créé l'établissement uniquement avec le SIRET, sans que ce soit bloquant
pour compléter le dossier. On demande à l'utilisateur de vérifier
lui-même la concordance du SIRET avec son entreprise.

Cf #7766
2022-09-16 10:43:59 +02:00
Colin Darie
d1c06aa92e feat(api_entreprise): add service api_up?, connected to their status page 2022-09-15 18:46:53 +02:00
Martin
cbe77dd2f6 bug(instructeurs/dossiers#telecharger_pjs): zipline does not play well with not available active storage attachments 2022-09-08 11:05:24 +02:00
Colin Darie
8762acc0b5 chore(services): fetch etablissement adresse from API Entreprise 2022-09-06 09:23:52 +02:00
Colin Darie
b75cff2fc3 refactor: API Entreprise instancified, more flexible for various input params
En fonction des resources, l'API est appelée :

- dans le contexte d'une Procedure ou non
- avec ou sans token injecté
- avec ou sans siret/siren
- avec ou sans user
2022-09-06 09:23:52 +02:00
Colin Darie
be965e4fdd fix(api_entreprise): don't fail with entreprise without date_creation 2022-09-05 15:52:06 +02:00
Kara Diaby
d18d89b41b modify Lib Datagouv API 2022-07-29 11:17:22 +02:00
Colin Darie
f05e9331a7 chore(entreprises): save etat_administratif from API 2022-07-25 10:58:02 +02:00
Christophe Robillard
e3206f3eec rename datagouv env var 2022-07-21 21:54:15 +02:00
Christophe Robillard
77a9a2ba12 can upload file to datagouv 2022-07-21 21:54:15 +02:00
simon lehericey
9c73bf1932 batch it 2022-07-20 15:48:16 +02:00
Colin Darie
d3232a28cd chore(api_entreprise): intercept token expiration for a more contextual frontend message
Auparavant le service échouait silencieusement et ne retournait rien,
ce qui dans les implémentations du front aboutissait au message que
l'établissement/l'entreprise n'a pas été trouvé.

Un type d'erreur spécifique sur l'expiration du token permet d'afficher
le message lié à un problème temporaire de récupération d'infos.
2022-07-18 09:57:19 +02:00
simon lehericey
14f841cdf2 show dolist logs to manager 2022-04-28 15:48:54 +02:00
Martin
55d77e33ed feat(ApiEntreprise.recipient): always use SIRET of dinum
Update config/env.example

Co-authored-by: LeSim <mail@simon.lehericey.net>
2022-04-27 14:30:50 +02:00
Paul Chavard
433c01b1e6 Revert "Merge pull request #7137 from betagouv/faster_pdf"
This reverts commit 9da44bd913, reversing
changes made to ebac71796c.
2022-04-12 19:22:07 +02:00
simon lehericey
4d3412daf5 batch it 2022-04-12 11:56:56 +02:00
simon lehericey
e1afb35ca2 fetch pjs_for_dossier by dossiers
put all bills in bills folder
2022-04-07 12:06:13 +02:00
simon lehericey
34b0578d70 pj_and_path only take dossier id 2022-04-07 12:06:13 +02:00
simon lehericey
7ac1288905 pj_service take a dossier collection ! 2022-04-07 12:06:13 +02:00
simon lehericey
51a6145d96 put dossier_pdf apart 2022-04-07 12:06:13 +02:00
simon lehericey
d5241381eb extract pj_path method 2022-04-07 12:06:13 +02:00
simon lehericey
97443e2ff6 inline create_list_from_dossier into caller 2022-04-07 12:06:13 +02:00
simon lehericey
51b71aaa01 always call create_list_from_dossiers 2022-04-07 12:06:13 +02:00
simon lehericey
cf79e340ef remove unused method 2022-04-07 12:06:13 +02:00
simon lehericey
3f7693ae13 style remove blank line 2022-04-07 12:06:13 +02:00
simon lehericey
bd0b88a410 move create_list_of_attachments 2022-04-05 11:55:14 +02:00
Martin
e765ef16fd fix(parallel_download_queue): appending content to file in those circumstances does not lead to good result. for now write response.body directly to the attachment [may lead to RAM overhead in case of big file... but i do not have another quick fix idea] 2022-04-01 18:22:28 +02:00
simon lehericey
31d52d2483 do not open all fd at once 2022-03-17 22:44:53 +01:00
Pierre de La Morinerie
3a16235868 db: Add a delete_orphans db helper 2022-03-08 14:47:43 +01:00
Pierre de La Morinerie
847abca122 config: simplify mailer configuration again
Move everything to initializers, and replace the email settings
interceptor by a BalancerDeliveryMethod.

It has the advantage that it can be configured entirely from the
`config/environment.rb` file, without an extra file to look at.
2022-02-08 12:44:43 +01:00
Pierre de La Morinerie
04cfc8ed9d config: use alternate delivery methods to configure ActionMailer
Previously `SENDINBLUE_BALANCING` was used only when
`SENDINBLUE_ENABLED` was *disabled* (otherwise only SendInBlue was ever
used).

This commit:

- Ensure that `SENDINBLUE_BALANCING` is used only when SendInBlue is
  *enabled* (which is more intuitive).
- Make it easier to add other delivery methods.
2022-02-08 12:44:43 +01:00
Pierre de La Morinerie
68fd3aea39 config: rename SOURCE to LOGRAGE_SOURCE 2022-01-19 15:43:44 +01:00
Martin
383a92bcd9 fix(parallel_download_queue): tophoeus does not like raise from a request handler [crash straight to first frame] 2022-01-07 14:24:37 +01:00
Martin
3eb1c1a421 feat(async_backend): switch to typhoeus 2022-01-04 16:27:23 +01:00
Martin
ce1b189dcd refactor(DownloadManager): extract parallel download in dedicated class. move error management in custom class for procedure exports using the didicated class 2022-01-04 16:17:03 +01:00
Martin
2ed9cccba0 extract download all attachments in dedicated class using async/async-http for better perf 2022-01-04 16:17:03 +01:00
François Vantomme
14e0c68266 feat(api particulier): add MESRI field 2021-12-16 16:45:18 +01:00
François Vantomme
115adbec70 style(api particulier): harmonize pole emploi resource name constant 2021-12-16 16:45:17 +01:00
François Vantomme
3d81d4b541 feat(api particulier): add MESRI adapter 2021-12-16 16:45:17 +01:00
François Vantomme
66a9109cd7 feat(api particulier): add MESRI support to sources service 2021-12-16 16:45:17 +01:00
simon lehericey
f0b0e7fd9a Switch to usage of zip unix binary to create archive. Also use a dedicated queue for DelayedJob
use dedicated archives queue

As the used disk space will increase, we want a fined grain control

move zip logic in dedicated method

zip

wip

wip

fix(spec): pass spec in green

tech(improvements): avoid File.delete(folder), favor FileUtils.remove_entry_secure which is safer. Also wrap most of code that open file within blocks so it is cleaned when the block ends. Lastly use  attachement.download to avoid big memory pressure [download in chunk, write in chunk] otherwise big file [124>1GO] are loaded in memory. what if we run multiple jobs/download in parallel ?

fix(spec): try to retry with grace

clean(procedure_archive_service_spec.rb): better retry [avoid to rewrite on open file]

lint(things): everything
2021-12-13 16:37:04 +01:00
Paul Chavard
b67818e425 feat(helpscout): add a tag to messages submited through contact form 2021-12-09 11:47:13 +01:00