Skip to content

Commit 91c9edb

Browse files
authored
Merge pull request #8 from truehostcloud/manage_domain_ns
retrieve and update domain nameservers
2 parents 65f798f + 65d365f commit 91c9edb

File tree

2 files changed

+85
-9
lines changed

2 files changed

+85
-9
lines changed

olittwhmcs/serializer.py

Lines changed: 47 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -198,18 +198,57 @@ def order_domain_request_parameters(client_id, domain, payment_method,
198198

199199
def order_bulk_products_request_parameters(parameters, **kwargs):
200200
"""
201-
Retrieve parameters for the domain order request.
202-
:param parameters: dict of the order placed.
203-
:param kwargs: (Optional) Other parameters to add to the order payload.
204-
Eg promo_code, affiliate_id, price (override), ...
205-
:return: payload for the order product request
206-
:rtype: Dictionary
201+
Retrieve parameters for the domain order request.
202+
:param parameters: dict of the order placed.
203+
:param kwargs: (Optional) Other parameters to add to the order payload.
204+
Eg promo_code, affiliate_id, price (override), ...
205+
:return: payload for the order product request
206+
:rtype: Dictionary
207+
"""
208+
default_parameters = get_default_parameters()
209+
parameters.update(default_parameters)
210+
return parameters
211+
212+
213+
def get_domain_nameservers_request_parameter(domain_id):
214+
"""
215+
Retrieve parameters for geting domain nameservers request.
216+
:param domain_id: ID of the domain.
217+
:return: payload for geting domain nameservers request
218+
:rtype: Dictionary
207219
"""
208-
default_parameters = get_default_parameters()
209-
parameters.update(default_parameters )
220+
parameters = get_default_parameters()
221+
parameters.update({
222+
'action': 'DomainGetNameservers',
223+
'domainid': str(domain_id)
224+
})
210225
return parameters
211226

212227

228+
def update_domain_nameservers_request_parameter(parameters):
229+
"""
230+
Retrieve parameters for updating domain nameservers.
231+
:param parameters: Dict of the domain nameservers.
232+
:return: payload for updating domain nameservers request
233+
:rtype: Dictionary
234+
"""
235+
updated_parameters = get_default_parameters()
236+
updated_parameters.update({
237+
'action': 'DomainUpdateNameservers',
238+
})
239+
param_map = {
240+
"nameserver1": "ns1",
241+
"nameserver2": "ns2",
242+
"nameserver3": "ns3",
243+
"nameserver4": "ns4",
244+
"nameserver5": "ns5",
245+
"domainid": "domainid",
246+
}
247+
for param, value in parameters.items():
248+
updated_parameters.update({param_map[param]: value})
249+
return updated_parameters
250+
251+
213252
def upgrade_product_request_parameters(service_id, payment_method, billing_cycle=None,
214253
package_id=None):
215254
"""Retrieve parameters for the product upgrade request.

olittwhmcs/whmcs.py

Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@
1414
create_user_request_parameters, get_client_product_request_parameters, \
1515
upgrade_product_request_parameters, prepare_get_invoices_request, \
1616
prepare_get_orders_request, prepare_cancel_order_request, \
17-
order_domain_request_parameters, order_bulk_products_request_parameters
17+
order_domain_request_parameters, order_bulk_products_request_parameters, get_domain_nameservers_request_parameter, \
18+
update_domain_nameservers_request_parameter
1819

1920

2021
##########
@@ -199,6 +200,42 @@ def order_bulk_products(parameters=None, **kwargs):
199200
raise WhmcsException(response_or_error if response_or_error else default_error)
200201

201202

203+
def get_domain_nameservers(domain_id):
204+
"""get domain nameservers.
205+
206+
Args:
207+
domain_id (int): The Id of the domain.
208+
Returns:
209+
dict: the nameservers of the domain
210+
Raises:
211+
WhmcsException: If an error occurs.
212+
"""
213+
parameters = get_domain_nameservers_request_parameter(domain_id)
214+
is_successful, response_or_error = get_whmcs_response(parameters)
215+
if is_successful and response_or_error:
216+
return response_or_error
217+
default_error = "Unable to get nameservers"
218+
raise WhmcsException(response_or_error if response_or_error else default_error)
219+
220+
221+
def update_domain_nameservers(data):
222+
"""update a domain nameservers.
223+
224+
Args:
225+
data (dict): data containing the nameservers and domain id.
226+
Returns:
227+
dict: the results of the update of nameserver
228+
Raises:
229+
WhmcsException: If an error occurs.
230+
"""
231+
parameters = update_domain_nameservers_request_parameter(data)
232+
is_successful, response_or_error = get_whmcs_response(parameters)
233+
if is_successful and response_or_error:
234+
return response_or_error
235+
default_error = "Unable to update nameservers"
236+
raise WhmcsException(response_or_error if response_or_error else default_error)
237+
238+
202239
def upgrade_client_product(service_id, payment_method, billing_cycle=None,
203240
package_id=None):
204241
"""Upgrade a product in WHMCS.

0 commit comments

Comments
 (0)