Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
V
validata-ui
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
20
Issues
20
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Validata
validata-ui
Commits
325b1c45
Commit
325b1c45
authored
Jun 18, 2019
by
Christophe Benz
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update some source errors handling
parent
a9be9ffb
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
15 additions
and
29 deletions
+15
-29
validata_ui/views.py
validata_ui/views.py
+15
-29
No files found.
validata_ui/views.py
View file @
325b1c45
...
...
@@ -327,41 +327,27 @@ def validate(schema_instance: SchemaInstance, source: ValidataResource):
files
=
{
'file'
:
(
source
.
filename
,
source
.
build_reader
())}
data
=
{
"schema"
:
schema_instance
.
url
}
req
=
requests
.
post
(
api_url
,
data
=
data
,
files
=
files
,
headers
=
headers
)
# 400
if
req
.
status_code
==
400
:
json_response
=
req
.
json
()
if
json_response
.
get
(
'_meta'
)
and
json_response
.
get
(
'_meta'
).
get
(
'args'
):
response_args
=
json_response
.
get
(
'_meta'
).
get
(
'args'
)
if
response_args
.
get
(
'code'
)
==
'cant_detect_csv_dialect'
:
flash_error
(
"Format de fichier CSV non reconnu"
)
return
redirect
(
compute_validation_form_url
(
schema_instance
))
if
response_args
.
get
(
'code'
)
==
'missing_headers'
:
flash_error
(
"Impossible d'extraire les noms de colonne du fichier"
)
return
redirect
(
compute_validation_form_url
(
schema_instance
))
flash_error
(
"Une erreur est survenue durant la validation: {}"
.
format
(
json_response
.
get
(
'message'
)))
return
redirect
(
compute_validation_form_url
(
schema_instance
))
if
not
req
.
ok
:
flash_error
(
"Un erreur s'est produite côté serveur :-("
)
return
redirect
(
compute_validation_form_url
(
schema_instance
))
json_response
=
req
.
json
()
validata_core_report
=
json_response
[
'report'
]
schema_dict
=
json_response
[
'schema'
]
except
requests
.
ConnectionError
as
err
:
logging
.
exception
(
err
)
flash_error
(
str
(
err
))
return
redirect
(
url_for
(
'home'
))
if
not
req
.
ok
:
flash_error
(
"Une erreur s'est produite côté serveur :-("
)
return
redirect
(
compute_validation_form_url
(
schema_instance
))
json_response
=
req
.
json
()
validata_core_report
=
json_response
[
'report'
]
# Computes badge from report and badge configuration
badge
=
compute_badge
(
validata_core_report
,
config
.
BADGE_CONFIG
)
badge_url
,
badge_msg
=
get_badge_url_and_message
(
badge
)
source_errors
=
[
err
for
err
in
validata_core_report
[
'tables'
][
0
][
'errors'
]
if
err
[
'code'
]
==
'source-error'
]
source_errors
=
[
err
for
err
in
validata_core_report
[
'tables'
][
0
][
'errors'
]
if
err
[
'code'
]
in
{
'source-error'
,
'unknown-csv-dialect'
}
]
if
source_errors
:
err
=
source_errors
[
0
]
msg
=
"l'encodage du fichier est invalide. Veuillez le corriger"
if
'charmap'
in
err
[
...
...
@@ -375,7 +361,7 @@ def validate(schema_instance: SchemaInstance, source: ValidataResource):
report_datetime
=
datetime
.
fromisoformat
(
validata_core_report
[
'date'
]).
astimezone
()
# Enhance validata_core_report
validata_report
=
create_validata_ui_report
(
validata_core_report
,
schema_
dict
)
validata_report
=
create_validata_ui_report
(
validata_core_report
,
schema_
instance
.
spec
)
# Display report to the user
validator_form_url
=
compute_validation_form_url
(
schema_instance
)
...
...
@@ -387,7 +373,7 @@ def validate(schema_instance: SchemaInstance, source: ValidataResource):
validation_date
=
report_datetime
.
strftime
(
'le %d/%m/%Y à %Hh%M'
),
source
=
source
,
source_data
=
source_data
,
schema_current_version
=
schema_instance
.
ref
,
doc_url
=
schema_instance
.
doc_url
,
doc_url
=
schema_instance
.
doc_url
,
print_mode
=
request
.
args
.
get
(
'print'
,
'false'
)
==
'true'
,
badge_url
=
badge_url
,
badge_msg
=
badge_msg
,
report_str
=
json
.
dumps
(
validata_report
,
sort_keys
=
True
,
indent
=
2
),
...
...
@@ -546,7 +532,7 @@ def custom_validator():
return
render_template
(
'validation_form.html'
,
title
=
title
,
schema_info
=
schema_info
,
schema_versions
=
schema_versions
,
schema_current_version
=
schema_instance
.
ref
,
doc_url
=
schema_instance
.
doc_url
,
doc_url
=
schema_instance
.
doc_url
,
schema_params
=
schema_instance
.
request_parameters
(),
breadcrumbs
=
[{
'url'
:
url_for
(
'home'
),
'title'
:
'Accueil'
},
])
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment