Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[backend] feat:enable AEM export from a list of Missions #402

Open
wants to merge 6 commits into
base: main
Choose a base branch
from

Conversation

aleckvincent
Copy link
Collaborator

No description provided.

@aleckvincent aleckvincent added enhancement New feature or request java Pull requests that update Java code labels Oct 15, 2024
Copy link

github-actions bot commented Oct 15, 2024

Coverage Report for frontend

Status Category Percentage Covered / Total
🟢 Lines 77.02% (🎯 50%) 1948 / 2529
🟢 Statements 76.87% (🎯 50%) 2028 / 2638
🟢 Functions 73.54% (🎯 50%) 506 / 688
🟢 Branches 70.06% (🎯 50%) 866 / 1236
File CoverageNo changed files found.
Generated in workflow #1257 for commit d078f8b by the Vitest Coverage Report Action

Copy link

@it-docdocjob it-docdocjob left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@aleckvincent - essaie de checker les 2 scenarios, tu couvres pas encore tout :

  • un unique fichier agrégé
  • multiple fichiers séparés (probablement bundled en .zip)

A mon retour, je vais bosser sur les missions inter-services et j'aurai les 2 cas de figure à gérer, cad agrégé et séparé.
Tu peux voir les designs sur la homepage: https://xd.adobe.com/view/eec9382f-b6b5-4644-b965-81f5d6ba8b07-bb9a/

Comment on lines +52 to +64
fun fromMissionList(missions: List<MissionEntity>): List<AEMTableExport> {
val tableExports = mutableListOf<AEMTableExport>()

for (mission in missions) {
if (mission.actions != null) {
val tableExport = fromMissionAction(mission.actions ?: listOf(), mission.endDateTimeUtc)
tableExport.sovereignProtect?.nbrOfRecognizedVessel = mission.generalInfo?.nbrOfRecognizedVessel?.toDouble()
tableExports.add(tableExport)
}
}

return tableExports
}

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ca c'est bien si on veut exporter plusieurs fichiers séparés, ce qu'il nous faudra donc il faut garder ce bout de code.
Pour exporter un fichier agrégé, il nous faudrait une étape en plus qui zip toute cette List et retourne just un AEMTableExport. Je sais plus le nom de la fonction qui permet de passer d'une liste à une valeur agrégée, c;est genre zip, fold ou similaire.

donc en gros, 2 fonctions:

  • fun fromMissionList(missions: List<MissionEntity>): List<AEMTableExport> pour les fichiers séparés
  • fun aggregateMissionList(missions: List<MissionEntity>): AEMTableExport : return zip(fromMissionList)

import java.nio.file.StandardCopyOption

@UseCase
class ExportMissionListAEM(

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Je suis pas convaincu de l'utilité de cette classe en l'état

Dans le cas d'un fichier agrégé, si tu ajoutes la fonction qui agrège qui retourne un AEMTableExport (cf mon commentaire précédent), je pense que tu peux réutiliser ExportMissionAEM sans souci, non ?

Dans le cas de multiple fichiers séparés, je pense que cette classe doit être retravaillée. Il faudrait créer plusieurs fichiers et puis en faire un .zip parce que le navigateur ne pourra télécharger qu'un seul fichier si je me trompe pas.

@lwih
Copy link
Collaborator

lwih commented Oct 18, 2024

déso, j'ai posté la review avec mon autre compte github mais c'est moi

@lwih
Copy link
Collaborator

lwih commented Oct 30, 2024

Je pense que tu peux simplifier encore ton code car il y a 3 usecases qui font presque la même chose.
Pour l'instant, il y a :

  • ExportMissionAEM(missionId: Int)
  • ExportMissionListAEM(missions: List<MissionEntity>) - sensiblement la même chose mais avec une for loop en plus
  • ZipExportMissionListAEM - qui fait l'équivalent de ExportMissionAEM et zip tout ca ensemble

Je pense qu'on peut entierement virer ExportMissionAEM et n'utiliser que ExportMissionListAEM et ensuite :

  • là où on utilisais ExportMissionAEM, tu peux juste utiliser ExportMissionListAEM(listOf(une_seule_mission)
  • dans la for loop dans ZipExportMissionListAEM, tu peux appeler ExportMissionListAEM(listOf(une_seule_mission) aussi, comme ça tu peux réutiliser du code et zipper le tout par la suite.

Et derniere chose, je suis pas contre renommer ZipExportMissionListAEM en genre ExportZipMissionListAEM, hiustoire qu'on ait tous les exports rangés ensemble

Copy link

Overall Project 42.44% -0.2%
Files changed 82.25% 🍏

File Coverage
AEMTableExport.kt 94.72% -3.87% 🍏
ExportZipMissionsAEM.kt 94.47% -5.53% 🍏
ExcelODSUtils.kt 89.01% -10.99% 🍏
ExportMissionsAEM.kt 87.13% -12.87% 🍏
MissionExportController.kt 0% -66.67%
MissionController.kt 0% -4.08%
MissionAEMExportInput.kt 0% -68.42%

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request java Pull requests that update Java code
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants