guifi·net GitLab devops
Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Jose Legido
drupal9-guifi-networks
Commits
63049255
Commit
63049255
authored
2 years ago
by
Daniel
Browse files
Options
Download
Email Patches
Plain Diff
US-025 apiPostalCode
parent
088fae4b
ci
develop
guifi
jose-ci-patch-97001
master
revert-6a557fae
revert-f22df06d
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
web/modules/custom/emergya_postal_code/emergya_postal_code.module
+31
-12
...les/custom/emergya_postal_code/emergya_postal_code.module
web/modules/custom/emergya_postal_code/src/Services/OpenData.php
+19
-0
...ules/custom/emergya_postal_code/src/Services/OpenData.php
with
50 additions
and
12 deletions
+50
-12
web/modules/custom/emergya_postal_code/emergya_postal_code.module
View file @
63049255
...
...
@@ -11,16 +11,17 @@ function emergya_postal_code_form_webform_submission_create_drop_order_add_form_
// node form, regardless of node type.
// Add a checkbox to the node form about agreeing to terms of use.
// webform_submission_create_drop_order_add_form
/*
$cp = $form_state->getValue('postal_code');
$servicio = \Drupal::service('emergya_postal_code.api_postal_code');
$proName = $servicio->getProvince('41');
var_dump($proName);
*/
/*
$cp = $form_state->getValue('postal_code');
$servicio = \Drupal::service('emergya_postal_code.api_postal_code');
$proName = $servicio->getProvinceTown('41700');
var_dump($proName);
*/
$ajax
=
[
'callback'
=>
'callApiP
rovinc
e'
,
'callback'
=>
'callApiP
ostalCod
e'
,
'event'
=>
'change'
,
'wrapper'
=>
'wapper-p
rovince
'
,
'wrapper'
=>
'w
r
apper-
c
p'
,
'progress'
=>
[
'type'
=>
'throbber'
,
'message'
=>
t
(
'Verifying...'
),
...
...
@@ -37,17 +38,35 @@ function emergya_postal_code_form_webform_submission_create_drop_order_add_form_
],
];
$form
[
'elements'
][
'location_page'
][
'postal_code'
][
'#ajax'
]
=
$ajax
;
$form
[
'elements'
][
'location_page'
][
'province'
][
'#prefix'
]
=
'<div id="wapper-province">'
;
$form
[
'elements'
][
'location_page'
][
'province'
][
'#suffix'
]
=
'</div>'
;
$ajaxL
=
[
'callback'
=>
'callApiProvince'
,
'event'
=>
'change'
,
'wrapper'
=>
'wrapper-cp'
,
'progress'
=>
[
'type'
=>
'throbber'
,
'message'
=>
t
(
'Verifying...'
),
],
];
$form
[
'elements'
][
'location_page'
][
'town'
][
'#ajax'
]
=
$ajaxTown
;
$form
[
'elements'
][
'location_page'
][
'postal_code'
][
'#ajax'
]
=
$ajax
;
//$form['elements']['location_page']['town']['#ajax'] = $ajaxTown;
}
function
callApiPostalCode
(
&
$form
,
FormStateInterface
$form_state
,
$form_id
)
{
// no funciona el callback varias veces
$service
=
\
Drupal
::
service
(
'emergya_postal_code.api_postal_code'
);
$cp
=
$form_state
->
getValue
(
'postal_code'
);
$nameProvince
=
$service
->
getProvinceTown
(
$cp
);
$form
[
'elements'
][
'location_page'
][
'province_town'
][
'province'
][
'#value'
]
=
$nameProvince
[
'province'
];
$form
[
'elements'
][
'location_page'
][
'province_town'
][
'town'
][
'#value'
]
=
$nameProvince
[
'town'
];
return
$form
[
'elements'
][
'location_page'
][
'province_town'
];
}
function
callApiProvince
(
&
$form
,
FormStateInterface
$form_state
,
$form_id
)
{
// funciona el callback varias veces
$service
=
\
Drupal
::
service
(
'emergya_postal_code.api_postal_code'
);
$cp
=
substr
(
$form_state
->
getValue
(
'postal_code'
),
0
,
2
);
$nameProvince
=
$service
->
getProvince
(
$cp
);
...
...
This diff is collapsed.
Click to expand it.
web/modules/custom/emergya_postal_code/src/Services/OpenData.php
View file @
63049255
...
...
@@ -2,6 +2,7 @@
namespace
Drupal\emergya_postal_code\Services
;
use
Drupal
;
use
Drupal\Component\Serialization\Json
;
use
GuzzleHttp\ClientInterface
;
...
...
@@ -34,5 +35,23 @@ public function getProvince($cp){
}
return
''
;
}
public
function
getProvinceTown
(
$cp
){
//TODO cambiar valor pais por parámetro
$url
=
"https://public.opendatasoft.com//api/records/1.0/search/?dataset=geonames-postal-code&q=&facet=country_code&facet=admin_name1&facet=admin_code1&facet=admin_name2&refine.postal_code="
.
$cp
.
"&refine.country_code=ES"
;
$request
=
$this
->
httpClient
->
request
(
'GET'
,
$url
);
if
(
$request
->
getStatusCode
()
==
200
){
$body
=
$request
->
getBody
();
$param
=
Json
::
decode
(
$body
);
$result
=
[
'province'
=>
$param
[
'records'
][
0
][
'fields'
][
'admin_name2'
],
'town'
=>
$param
[
'records'
][
0
][
'fields'
][
'place_name'
],
];
return
$result
;
}
return
''
;
}
}
This diff is collapsed.
Click to expand it.
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
Menu
Projects
Groups
Snippets
Help