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

View file

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