Implémenter suppression de documents #44

Merged
vlbeaudoin merged 1 commit from feature/v1-documents-delete into main 2023-04-24 22:41:31 -04:00

View file

@ -374,8 +374,57 @@ func handleV1DocumentUpdate(c echo.Context) error {
// handleV1DocumentDelete permet de supprimer un object // handleV1DocumentDelete permet de supprimer un object
func handleV1DocumentDelete(c echo.Context) error { func handleV1DocumentDelete(c echo.Context) error {
return c.JSON(http.StatusNotImplemented, map[string]string{ documents_endpoint := viper.GetString("server.documents.endpoint")
"message": "Not Implemented", documents_access_key_id := viper.GetString("server.documents.access_key_id")
documents_secret_access_key := viper.GetString("server.documents.secret_access_key")
documents_use_ssl := viper.GetBool("server.documents.use_ssl")
bucket := c.Param("bucket")
document := c.Param("document")
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
// Initialize minio client object
client, err := minio.New(documents_endpoint, &minio.Options{
Creds: credentials.NewStaticV4(documents_access_key_id, documents_secret_access_key, ""),
Secure: documents_use_ssl,
})
if err != nil {
return c.JSON(http.StatusInternalServerError, map[string]string{
"message": "Error during minio#New",
})
}
bucket_exists, err := client.BucketExists(ctx, bucket)
if err != nil {
return c.JSON(http.StatusInternalServerError, "Error during minio#BucketExists")
}
if !bucket_exists {
return c.JSON(http.StatusNotFound, map[string]string{"message": "Not Found"})
}
document_info, err := client.StatObject(ctx, bucket, document, minio.StatObjectOptions{})
if err != nil {
return c.JSON(http.StatusInternalServerError, map[string]string{
"message": "Error during minio#StatObject",
})
}
//TODO Add error validation
_ = document_info
err = client.RemoveObject(ctx, bucket, document, minio.RemoveObjectOptions{})
if err != nil {
return c.JSON(http.StatusInternalServerError, map[string]string{
"message": "Error during minio#RemoveObject",
})
}
return c.JSON(http.StatusOK, map[string]string{
"message": "Bucket deleted",
}) })
} }