ondata / appaltipop

ETL scripts and issue tracking for AppaltiPOP project.
https://www.appaltipop.it
MIT License
1 stars 0 forks source link

[#55] Add support to buyer resources #56

Closed jenkin closed 4 years ago

jenkin commented 4 years ago

Una serie di problemi con l'attuale implementazione della pagina di download che con questa PR provo a risolvere.

Dati mancanti

Il mockup prevede queste informazioni, ma nell'attuale indice delle risorse ci sono solo quelle in grassetto.

Schema mancante

Non c'è nessuno schema dati né un processo di validazione per l'indice delle risorse.

Disponibilità dell'indice

Essendo un url esterno rispetto all'applicazione c'è il rischio che possa cambiare, che la risorsa possa essere corrotta da un commit sbagliato, che non sia raggiungibile (es. al momento il repo è privato, quindi non potrebbe funzionare).

jenkin commented 4 years ago

Questa PR definisce uno schema dati per l'entità resource e aggiorna quello del buyer in modo da indicizzare le risorse direttamente in elasticsearch. L'applicazione poi legge le informazioni direttamente dal db e non dal file json statico.

jenkin commented 4 years ago

Rimane il problema dei dati mancanti (es. le dimensioni dei file) e una definizione più robusta della resource (per esempio, json e xlsx sono due attributi, mentre sarebbe meglio ci fosse un array di file con formato, url e dimensione come attributi).

Esempio:

{
    "appaltipop:releases/0/buyer/resource/id": "IT-CF-00355870221",
    "appaltipop:releases/0/buyer/resource/source": "http://www.sicopat.provincia.tn.it/olpdataset/2019/00355870221/00355870221_2019_indicedataset.xml",
    "appaltipop:releases/0/buyer/resource/updated": "2020-07-09T14:48:00.000Z",
    "appaltipop:releases/0/buyer/resource/files": [
        { "url": "data/IT-CF-00355870221/ocds/input.json", "format": "json", "size": 778976732 },
        { "url": "data/IT-CF-00355870221/ocds/input.xlsx", "format": "xlsx", "size": 8928698 }
    ]
  }
jenkin commented 4 years ago

Ci ho pensato ancora un po', ecco un'altra proposta di schema...

{
    "ocds:releases/0/buyer/id": "IT-CF-00355870221",
    "appaltipop:releases/0/buyer/dataSource/url": "http://www.sicopat.provincia.tn.it/olpdataset/2019/00355870221/00355870221_2019_indicedataset.xml",
    "appaltipop:releases/0/buyer/dataSource/lastUpdate": "2020-07-09T14:48:00.000Z",
    "appaltipop:releases/0/buyer/dataSource/resources": [
        {
            "appaltipop:releases/0/buyer/resource/url": "data/IT-CF-00355870221/ocds/input.json",
            "appaltipop:releases/0/buyer/resource/format": "json", 
            "appaltipop:releases/0/buyer/resource/sizeBytes": 778976732
        },
        {
            "appaltipop:releases/0/buyer/resource/url": "data/IT-CF-00355870221/ocds/input.xlsx",
            "appaltipop:releases/0/buyer/resource/format": "xlsx",
            "appaltipop:releases/0/buyer/resource/sizeBytes": 8928698
        }
    ]
}
jenkin commented 4 years ago

@aborruso se riesci a implementare l'ultimo schema proposto per la nuova versione dell'indice con gli ultimi dati di @patrunomeister avvertimi... :)

aborruso commented 4 years ago

@jenkin di pomeriggio ci lavoro

aborruso commented 4 years ago

@jenkin ho aperto per errore nuova PR https://github.com/ondata/appaltipop/pull/57

jenkin commented 4 years ago

Aggiornata la branch con il nuovo file di indice da #57