toulouse-maelis: add endpoint to update basket time (#73961)
This commit is contained in:
parent
4a0d63ccd5
commit
fb01d8f50a
|
@ -2546,6 +2546,26 @@ class ToulouseMaelis(BaseResource, HTTPResource):
|
|||
family_id = family_id or self.get_link(NameID).family_id
|
||||
return {'data': self.get_basket_raw(family_id)}
|
||||
|
||||
@endpoint(
|
||||
display_category='Inscriptions',
|
||||
description="Prolonge la durée de vie du panier",
|
||||
name='update-basket-time',
|
||||
perm='can_access',
|
||||
parameters={
|
||||
'NameID': {'description': 'Publik NameID'},
|
||||
'family_id': {'description': 'Numéro de DUI'},
|
||||
},
|
||||
methods=['post'],
|
||||
)
|
||||
def update_basket_time(self, request, NameID=None, family_id=None):
|
||||
family_id = family_id or self.get_link(NameID).family_id
|
||||
basket = self.get_basket_raw(family_id)
|
||||
if not basket or not basket.get('id'):
|
||||
raise APIError("no basket on '%s' family" % family_id)
|
||||
|
||||
self.call('Activity', 'updateBasketTime', idBasket=basket['id'])
|
||||
return {'data': 'ok'}
|
||||
|
||||
|
||||
class Link(models.Model):
|
||||
resource = models.ForeignKey(ToulouseMaelis, on_delete=models.CASCADE)
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0"?>
|
||||
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
|
||||
<soap:Body>
|
||||
<ns2:getFamilyBasketResponse xmlns:ns2="activity.ws.maelis.sigec.com" xmlns:ns3="bean.persistence.activity.ws.maelis.sigec.com" xmlns:ns4="bean.persistence.school.ws.maelis.sigec.com">
|
||||
<getFamilyBasketResultBean/>
|
||||
</ns2:getFamilyBasketResponse>
|
||||
</soap:Body>
|
||||
</soap:Envelope>
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf8"?>
|
||||
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
|
||||
<soap:Body>
|
||||
<ns2:updateBasketTimeResponse xmlns:ns2="activity.ws.maelis.sigec.com" xmlns:ns3="bean.persistence.activity.ws.maelis.sigec.com" xmlns:ns4="bean.persistence.school.ws.maelis.sigec.com"/>
|
||||
</soap:Body>
|
||||
</soap:Envelope>
|
|
@ -5803,3 +5803,33 @@ def test_get_basket_not_linked_error(con, app):
|
|||
resp = app.get(url + '?NameID=local')
|
||||
assert resp.json['err'] == 'not-linked'
|
||||
assert resp.json['err_desc'] == 'User not linked to family'
|
||||
|
||||
|
||||
def test_update_basket_time(activity_service, con, app):
|
||||
activity_service.add_soap_response('getFamilyBasket', get_xml_file('R_get_family_basket.xml'))
|
||||
activity_service.add_soap_response('updateBasketTime', get_xml_file('R_update_basket_time.xml'))
|
||||
url = get_endpoint('update-basket-time')
|
||||
|
||||
resp = app.post(url + '?family_id=311352')
|
||||
assert resp.json['err'] == 0
|
||||
Link.objects.create(resource=con, family_id='311352', name_id='local')
|
||||
|
||||
resp = app.post(url + '?NameID=local')
|
||||
assert resp.json['err'] == 0
|
||||
assert resp.json['data'] == 'ok'
|
||||
|
||||
|
||||
def test_update_basket_time_not_linked_error(con, app):
|
||||
url = get_endpoint('update-basket-time')
|
||||
resp = app.post(url + '?NameID=local')
|
||||
assert resp.json['err'] == 'not-linked'
|
||||
assert resp.json['err_desc'] == 'User not linked to family'
|
||||
|
||||
|
||||
def test_update_basket_time_basket_not_found(activity_service, con, app):
|
||||
activity_service.add_soap_response('getFamilyBasket', get_xml_file('R_get_family_basket_empty.xml'))
|
||||
url = get_endpoint('update-basket-time')
|
||||
|
||||
resp = app.post(url + '?family_id=311352')
|
||||
assert resp.json['err'] == 1
|
||||
assert resp.json['err_desc'] == "no basket on '311352' family"
|
||||
|
|
Loading…
Reference in New Issue