Ajouter upload par json

Fonctionne avec json dans request body ou en fichier formatté json

Cleanup commentaires

Ajouter vérification d'insertion vide
This commit is contained in:
Victor Lacasse-Beaudoin 2023-05-25 03:23:07 -04:00
parent 3ccebd8cfb
commit cb51ada4b6
2 changed files with 17 additions and 34 deletions

View file

@ -26,36 +26,20 @@ func PostMembres(c echo.Context) error {
})
}
programmes := []models.Programme{
{
ID: "foo",
Titre: "Foo",
},
{
ID: "bar",
Titre: "Bar",
},
}
var membres []models.Membre
newProgrammes, err := client.InsertProgrammes(programmes)
if err != nil {
return c.JSON(http.StatusInternalServerError, map[string]string{
"message": "Could not insert programmes",
if err := c.Bind(&membres); err != nil {
return c.JSON(http.StatusBadRequest, map[string]string{
"message": "Could not bind membres",
"error": err.Error(),
})
}
membres := []models.Membre{
{
ID: "1327163",
PreferedName: "victor",
ProgrammeID: "foo",
},
{
ID: "0000000",
PreferedName: "test user",
ProgrammeID: "bar",
},
if len(membres) == 0 {
return c.JSON(http.StatusBadRequest, map[string]string{
"message": "Nothing to do",
"error": "No valid membres to insert were found",
})
}
newMembres, err := client.InsertMembres(membres)
@ -69,8 +53,7 @@ func PostMembres(c echo.Context) error {
return c.JSON(http.StatusOK, map[string]interface{}{
"message": "Insert successful",
"data": map[string]interface{}{
"membres": newMembres,
"programmes": newProgrammes,
"membres": newMembres,
},
})
}

View file

@ -16,16 +16,16 @@ CREATE TABLE membres (
`
type Programme struct {
ID string `db:"id"`
Titre string `db:"titre"`
ID string `db:"id" json:"programme_id"`
Titre string `db:"titre" json:"titre"`
}
type Membre struct {
ID string `db:"id"`
LastName string `db:"last_name"`
FirstName string `db:"first_name"`
PreferedName string `db:"prefered_name"`
ProgrammeID string `db:"programme_id"`
ID string `db:"id" json:"membre_id"`
LastName string `db:"last_name" json:"last_name"`
FirstName string `db:"first_name" json:"first_name"`
PreferedName string `db:"prefered_name" json:"prefered_name"`
ProgrammeID string `db:"programme_id" json:"programme_id"`
}
type Entry interface {