Skip to content

Commit

Permalink
Enlève les dépendances yaml (non maintenues)
Browse files Browse the repository at this point in the history
  • Loading branch information
niladic committed Oct 14, 2024
1 parent f150561 commit 459c1d8
Show file tree
Hide file tree
Showing 4 changed files with 198 additions and 143 deletions.
55 changes: 38 additions & 17 deletions app/models/Organisation.scala
Original file line number Diff line number Diff line change
Expand Up @@ -55,22 +55,47 @@ object Organisation {
def byId(id: Id): Option[Organisation] = byIdMap.get(id)

val association: Organisation = Organisation("Association", "Association")
val bdf: Organisation = Organisation("BDF", "Banque de France")
val cafId: Id = Organisation.Id("CAF")
val caf: Organisation = Organisation(cafId, "CAF", "Caisse d’allocations familiales")
val carsatId: Id = Organisation.Id("CARSAT")

val carsat: Organisation =
Organisation(carsatId, "CARSAT", "Caisse d'assurance retraite et de la santé au travail")

val ccas: Organisation = Organisation("CCAS", "Centre communal d'action sociale")
val cpamId: Id = Organisation.Id("CPAM")
val cpam: Organisation = Organisation(cpamId, "CPAM", "Caisse primaire d'assurance maladie")
val cnavId: Id = Organisation.Id("CNAV")
val cnav: Organisation = Organisation(cnavId, "CNAV", "Caisse nationale d'assurance vieillesse")
val cnamId: Id = Organisation.Id("CNAM")
val cramId: Id = Organisation.Id("CRAM")
val cram: Organisation = Organisation(cramId, "CRAM", "Caisse régionale d'assurance maladie")
val ddfipId: Id = Organisation.Id("DDFIP")

val ddfip: Organisation = Organisation(
ddfipId,
"DDFIP",
"Direction départementale des Finances publiques"
)

val departement: Organisation = Organisation("Département", "Conseil départemental")
val drfipId: Id = Organisation.Id("DRFIP")

val drfip: Organisation =
Organisation(drfipId, "DRFIP", "Direction régionale des Finances publiques")

val franceServicesId: Id = Organisation.Id("MFS")
val franceServices: Organisation = Organisation(franceServicesId, "FS", "France Services")
val mairie: Organisation = Organisation("Mairie", "Mairie")
val mdph: Organisation = Organisation("MDPH", "Maison départementale des personnes handicapées")
val missionLocale: Organisation = Organisation("Mission locale", "Mission locale")
val msaId: Id = Organisation.Id("MSA")
val msa: Organisation = Organisation(msaId, "MSA", "Mutualité sociale agricole")
val msap: Organisation = Organisation("MSAP", "Maison de services au public")
val hopital: Organisation = Organisation("Hôpital", "Hôpital")
val poleEmploiId: Id = Organisation.Id("Pôle emploi")
val poleEmploi: Organisation = Organisation(poleEmploiId, "Pôle emploi", "Pôle emploi")
val prefId: Id = Organisation.Id("Préf")
val pref: Organisation = Organisation(prefId, "Préf", "Préfecture")
val sousPrefId: Id = Organisation.Id("Sous-Préf")
Expand All @@ -87,33 +112,29 @@ object Organisation {
Organisation("ANAH", "Agence nationale de l'habitat"),
Organisation("ANTS", "Agence nationale des titres sécurisés"),
association,
Organisation("BDF", "Banque de France"),
bdf,
caf, // Département
Organisation(carsatId, "CARSAT", "Caisse d'assurance retraite et de la santé au travail"),
Organisation("CCAS", "Centre communal d'action sociale"), // Ville
carsat,
ccas, // Ville
Organisation("CDAD", "Conseils départementaux d'accès au droit"), // Département
Organisation("Chèque énergie", "Chèque énergie"),
Organisation(cnavId, "CNAV", "Caisse nationale d'assurance vieillesse"), // Département
cnav, // Département
cpam, // Département
Organisation(cnamId, "CNAM", "Caisse nationale d'assurance maladie"),
Organisation(cramId, "CRAM", "Caisse régionale d'assurance maladie"), // Région
Organisation(
ddfipId,
"DDFIP",
"Direction départementale des Finances publiques"
), // Département
Organisation("Département", "Conseil départemental"),
Organisation(drfipId, "DRFIP", "Direction régionale des Finances publiques"), // Région
cram, // Région
ddfip, // Département
departement,
drfip, // Région
hopital, // Ville
Organisation("OFPRA", "Office français de protection des réfugiés et apatrides"), // Nationale
Organisation("La Poste", "La Poste"),
Organisation("Mairie", "Mairie"), // Ville
Organisation("MDPH", "Maison départementale des personnes handicapées"),
mairie, // Ville
mdph,
franceServices,
Organisation("Mission locale", "Mission locale"), // Ville
Organisation(msaId, "MSA", "Mutualité sociale agricole"),
missionLocale, // Ville
msa,
msap, // Ville
Organisation(poleEmploiId, "Pôle emploi", "Pôle emploi"),
poleEmploi,
pref, // Département
sousPref,
Organisation(
Expand Down
198 changes: 160 additions & 38 deletions app/services/OrganisationService.scala
Original file line number Diff line number Diff line change
Expand Up @@ -2,42 +2,13 @@ package services

import cats.syntax.all._
import com.github.tototoshi.csv.{CSVReader, DefaultCSVFormat}
import javax.inject.Singleton
import models.Organisation
import models.Organisation.{Category, Subject}
import net.jcazevedo.moultingyaml.{
deserializationError,
DefaultYamlProtocol,
PimpedString,
YamlFormat,
YamlString,
YamlValue
}
import models.Organisation.Category
import scala.io.Source

object OrganisationService {

private object CustomYaml extends DefaultYamlProtocol {

implicit object organisationFormat extends YamlFormat[Organisation] {

def write(x: Organisation): YamlString = {
require(x ne null)
YamlString(x.shortName)
}

def read(value: YamlValue): Organisation =
value match {
case YamlString(x) => Organisation.fromShortName(x).get
case x =>
deserializationError("Expected String as YamlString, but got " + x)
}

}

implicit val subjectFormat: YamlFormat[Subject] = yamlFormat2(Subject.apply)
implicit val categoryFormat: YamlFormat[Category] = yamlFormat4(Category.apply)
}

implicit private object fsCsvFormat extends DefaultCSVFormat {
override val delimiter = ';'
}
Expand All @@ -59,16 +30,10 @@ object OrganisationService {

}

@javax.inject.Singleton
@Singleton
class OrganisationService {

import OrganisationService._
import CustomYaml._

val categories: List[Category] = {
val yaml = Source.fromFile("data/categories.yaml").getLines().mkString("\n")
yaml.parseYaml.convertTo[List[Category]]
}

val franceServiceInfos: FranceServiceInfos = {
// To see what we extend, see:
Expand Down Expand Up @@ -108,4 +73,161 @@ class OrganisationService {
FranceServiceInfos(lines)
}

val categories: List[Category] = {
import Organisation._
List(
Category(
name = "Social / Famille",
description = "Allocations familiales, aides et prestations sociales, etc.",
defaultOrganisations = Seq(caf, msa),
subjects = Seq(
Subject(
subject = "Trop perçu à la suite d'un contrôle",
organisations = Seq(caf, msa)
),
Subject(
subject = "Délai d'étude ou de versement d'une aide anormalement long",
organisations = Seq(caf, msa)
),
Subject(
subject = "Accompagnement pour la naissance ou le décès d'un proche",
organisations = Seq(caf, msa, cpam, cram)
)
)
),
Category(
name = "Santé / Handicap",
description = "Sécurité sociale, CSS, AME, etc.",
defaultOrganisations = Seq(cpam, cram, msa, mdph),
subjects = Seq(
Subject(
subject = "Première inscription à la Sécurité Sociale",
organisations = Seq(cpam, cram, msa)
),
Subject(
subject = "Remboursement de soins médicaux",
organisations = Seq(cpam, cram, msa)
),
Subject(
subject = "Renouvellement CSS (anciennement CMU-C et ACS)",
organisations = Seq(cpam, cram, msa)
),
Subject(
subject = "Aide médicale de l'État (AME) pour les personnes en situation irrégulière",
organisations = Seq(cpam, cram)
),
Subject(
subject = "Reconnaissance Handicap",
organisations = Seq(mdph)
)
)
),
Category(
name = "Emploi / Formation",
description = "Démarches Pôle emploi, allocations chômage, etc.",
defaultOrganisations = Seq(poleEmploi, missionLocale),
subjects = Seq(
Subject(
subject = "Inscription à Pôle Emploi",
organisations = Seq(poleEmploi)
),
Subject(
subject = "Suivi d'un dossier Pôle Emploi complexe",
organisations = Seq(poleEmploi)
),
Subject(
subject = "Radiation de Pôle Emploi",
organisations = Seq(poleEmploi)
),
Subject(
subject = "Demande et suivi de formation",
organisations = Seq(poleEmploi, missionLocale)
)
)
),
Category(
name = "Logement",
description = "Allocations logement, hébergement d'urgence, etc.",
defaultOrganisations = Seq(caf, msa, pref, sousPref, mairie),
subjects = Seq(
Subject(
subject = "Demande d'une allocation logement (APL, ALS, ALF)",
organisations = Seq(caf, msa)
),
Subject(
subject = "Demande d'un hébergement d'urgence",
organisations = Seq(mairie, ccas, departement)
),
Subject(
subject = "Expulsion du logement",
organisations = Seq(mairie, pref, sousPref)
)
)
),
Category(
name = "Retraite",
description = "Droits et demande de retraite, ASPA, pension de réversion, etc.",
defaultOrganisations = Seq(cnav, carsat, msa),
subjects = Seq(
Subject(
subject = "Préparation de la retraite et première demande",
organisations = Seq(cnav, carsat, msa)
),
Subject(
subject = "Demande de l'allocation de solidarité aux personnes âgées (ASPA)",
organisations = Seq(cnav, carsat, msa)
),
Subject(
subject = "Versement de la pension de retraite",
organisations = Seq(cnav, carsat, msa)
),
Subject(
subject = "Pension de réversion",
organisations = Seq(cnav, carsat, msa)
)
)
),
Category(
name = "Impôts / Argent",
description = "Fiscalité, surendettement, précarité financière, etc.",
defaultOrganisations = Seq(ddfip, drfip, bdf),
subjects = Seq(
Subject(
subject = "Demande d'un justificatif des impôts ou d'un avis fiscal",
organisations = Seq(ddfip, drfip)
),
Subject(
subject = "Dossier de surendettement",
organisations = Seq(bdf)
)
)
),
Category(
name = "Papiers / Titres",
description = "Carte d'identité, passeport, titre de séjour, etc.",
defaultOrganisations = Seq(pref, sousPref, mairie),
subjects = Seq(
Subject(
subject = "Vol, perte, renouvellement de papiers",
organisations = Seq(mairie)
),
Subject(
subject = "Première demande de carte d'identité ou passeport",
organisations = Seq(mairie)
),
Subject(
subject = "Renouvellement du titre de séjour",
organisations = Seq(pref, sousPref)
)
)
),
Category(
name = "Autre",
description = "Ma demande concerne un autre sujet",
defaultOrganisations = Seq.empty,
subjects = Seq.empty
)
)
}

}
7 changes: 0 additions & 7 deletions build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,6 @@ libraryDependencies ++= Seq(
"org.playframework" %% "play-mailer" % "10.0.1",
"org.playframework" %% "play-json" % "3.0.4",
"com.sun.mail" % "javax.mail" % "1.6.2",
"net.jcazevedo" %% "moultingyaml" % "0.4.2" cross CrossVersion.for3Use2_13,
"com.github.tototoshi" %% "scala-csv" % "2.0.0",
ws,
"com.lihaoyi" %% "scalatags" % "0.13.1",
Expand Down Expand Up @@ -122,12 +121,6 @@ libraryDependencies ++= Seq(
"org.typelevel" %% "cats-effect-testing-specs2" % "1.5.0" % Test,
)

// Overrides
dependencyOverrides += "org.apache.commons" % "commons-text" % "1.10.0"

// Note: we force snakeyaml version here because moultingyaml is not updated
dependencyOverrides += "org.yaml" % "snakeyaml" % "1.33"

// Sync with scala-steward pin
val jacksonVersion = "2.14.3"
val jacksonDatabindVersion = "2.14.3"
Expand Down
Loading

0 comments on commit 459c1d8

Please sign in to comment.