mirror of
https://github.com/peeringdb/peeringdb.git
synced 2024-05-11 05:55:09 +00:00
April update fixes 2 (#700)
* add tech contact and sales contact fields to add / suggest facility forms (#378) * add swagger docs as backup api docs under apidocs/swagger/ (#626) * tech and sales phone number fields arent required and should KeyError when missing from POST data (#378, #699) * re-enable Try it out functionality for swagger docs (#626) Co-authored-by: Stefan Pratter <stefan@20c.com>
This commit is contained in:
@ -1123,6 +1123,7 @@ class TestJSON(unittest.TestCase):
|
||||
test_failure=SHARED["fac_r_ok"].id,
|
||||
)
|
||||
|
||||
|
||||
##########################################################################
|
||||
|
||||
def test_org_admin_002_POST_PUT_DELETE_net(self):
|
||||
@ -2890,6 +2891,34 @@ class TestJSON(unittest.TestCase):
|
||||
# MISC TESTS
|
||||
##########################################################################
|
||||
|
||||
|
||||
def test_z_misc_POST_ix_fac_missing_phone_fields(self):
|
||||
"""
|
||||
Test that omitting the *_phone fields during fac
|
||||
and ix object creation doesnt error 500
|
||||
|
||||
TODO: a test that drops all the non-required fields
|
||||
and tests for every reftag model
|
||||
"""
|
||||
|
||||
data = self.make_data_fac()
|
||||
db = self.db_org_admin
|
||||
del data["tech_phone"]
|
||||
r = db.create("fac", data, return_response=True).get("data")
|
||||
|
||||
data = self.make_data_fac()
|
||||
del data["sales_phone"]
|
||||
r = db.create("fac", data, return_response=True).get("data")
|
||||
|
||||
data = self.make_data_ix(prefix=self.get_prefix4())
|
||||
del data["tech_phone"]
|
||||
r = db.create("ix", data, return_response=True).get("data")
|
||||
|
||||
data = self.make_data_ix(prefix=self.get_prefix4())
|
||||
del data["policy_phone"]
|
||||
r = db.create("ix", data, return_response=True).get("data")
|
||||
|
||||
|
||||
def test_z_misc_002_dupe_netixlan_ip(self):
|
||||
|
||||
# test that addint duplicate netixlan ips is impossible
|
||||
|
@ -1174,6 +1174,11 @@ class Facility(pdb_models.FacilityBase, GeocodeBaseMixin):
|
||||
def nsp_has_perms_PUT(self, user, request):
|
||||
return validate_PUT_ownership(user, self, request.data, ["org"])
|
||||
|
||||
def validate_phonenumbers(self):
|
||||
self.tech_phone = validate_phonenumber(self.tech_phone, self.country.code)
|
||||
self.sales_phone = validate_phonenumber(self.sales_phone, self.country.code)
|
||||
|
||||
|
||||
|
||||
@reversion.register
|
||||
class InternetExchange(pdb_models.InternetExchangeBase):
|
||||
|
@ -978,6 +978,9 @@ class FacilitySerializer(ModelSerializer):
|
||||
city = serializers.CharField()
|
||||
zipcode = serializers.CharField()
|
||||
|
||||
tech_phone = serializers.CharField(required=False, allow_blank=True, default="")
|
||||
sales_phone = serializers.CharField(required=False, allow_blank=True, default="")
|
||||
|
||||
validators = [FieldMethodValidator("suggest", ["POST"])]
|
||||
|
||||
def has_create_perms(self, user, data):
|
||||
@ -1974,6 +1977,9 @@ class InternetExchangeSerializer(ModelSerializer):
|
||||
website = serializers.URLField(required=True)
|
||||
tech_email = serializers.EmailField(required=True)
|
||||
|
||||
tech_phone = serializers.CharField(required=False, allow_blank=True, default="")
|
||||
policy_phone = serializers.CharField(required=False, allow_blank=True, default="")
|
||||
|
||||
# For the creation of the initial prefix during exchange
|
||||
# creation. It will be a required field during `POST` requests
|
||||
# but will be ignored during `PUT` so we cannot just do
|
||||
|
@ -23,7 +23,6 @@
|
||||
SwaggerUIBundle.presets.apis,
|
||||
SwaggerUIBundle.SwaggerUIStandalonePreset
|
||||
],
|
||||
supportedSubmitMethods: [],
|
||||
layout: "BaseLayout",
|
||||
requestInterceptor: (request) => {
|
||||
request.headers['X-CSRFToken'] = "{{ csrf_token }}"
|
||||
|
@ -147,6 +147,34 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-xs-4 col-sm-5 col-md-4">{% trans "Technical E-mail" %}</div>
|
||||
<div class="col-xs-8 col-sm-7 col-md-8">
|
||||
<div data-edit-type="email"
|
||||
data-edit-name="tech_email"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-xs-4 col-sm-5 col-md-4">{% trans "Technical Phone" %}</div>
|
||||
<div class="col-xs-8 col-sm-7 col-md-8">
|
||||
<div data-edit-type="string"
|
||||
data-edit-name="tech_phone"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-xs-4 col-sm-5 col-md-4">{% trans "Sales E-mail" %}</div>
|
||||
<div class="col-xs-8 col-sm-7 col-md-8">
|
||||
<div data-edit-type="email"
|
||||
data-edit-name="sales_email"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-xs-4 col-sm-5 col-md-4">{% trans "Sales Phone" %}</div>
|
||||
<div class="col-xs-8 col-sm-7 col-md-8">
|
||||
<div data-edit-type="string"
|
||||
data-edit-name="sales_phone"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
@ -124,6 +124,37 @@ Thank you for your suggestion.
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="col-xs-4 col-sm-5 col-md-4">{% trans "Technical E-mail" %}</div>
|
||||
<div class="col-xs-8 col-sm-7 col-md-8">
|
||||
<div data-edit-type="email"
|
||||
data-edit-name="tech_email"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-xs-4 col-sm-5 col-md-4">{% trans "Technical Phone" %}</div>
|
||||
<div class="col-xs-8 col-sm-7 col-md-8">
|
||||
<div data-edit-type="string"
|
||||
data-edit-name="tech_phone"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-xs-4 col-sm-5 col-md-4">{% trans "Sales E-mail" %}</div>
|
||||
<div class="col-xs-8 col-sm-7 col-md-8">
|
||||
<div data-edit-type="email"
|
||||
data-edit-name="sales_email"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-xs-4 col-sm-5 col-md-4">{% trans "Sales Phone" %}</div>
|
||||
<div class="col-xs-8 col-sm-7 col-md-8">
|
||||
<div data-edit-type="string"
|
||||
data-edit-name="sales_phone"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-6 col-md-6">
|
||||
|
@ -163,6 +163,14 @@ urlpatterns = [
|
||||
|
||||
urlpatterns += [
|
||||
url(r"^api-auth/", include("rest_framework.urls", namespace="rest_framework")),
|
||||
url(
|
||||
r"^apidocs/swagger/",
|
||||
TemplateView.as_view(
|
||||
template_name="apidocs/swagger.html",
|
||||
extra_context={"schema_url": "openapi-schema"},
|
||||
),
|
||||
name="swagger-ui",
|
||||
),
|
||||
url(
|
||||
r"^apidocs/",
|
||||
TemplateView.as_view(
|
||||
|
Reference in New Issue
Block a user