def test_nr_state_actions(): nr_model = Request() nr_model.expirationDate = datetime.utcnow() + timedelta(days=3) nr_model.priorityCd = None nr_model.priorityDate = None print('\n Draft state actions \n') print(repr(NameRequestDraftActions.list())) actions = get_nr_state_actions(State.DRAFT, nr_model) print(repr(actions)) print('\n Reserved state actions \n') print(repr(NameRequestReservedActions.list())) actions = get_nr_state_actions(State.RESERVED, nr_model) print(repr(actions)) print('\n Conditionally reserved state actions \n') print(repr(NameRequestReservedActions.list())) actions = get_nr_state_actions(State.COND_RESERVE, nr_model) print(repr(actions)) print('\n Conditional state actions \n') print(repr(NameRequestActiveActions.list())) actions = get_nr_state_actions(State.CONDITIONAL, nr_model) print(repr(actions)) print('\n Approved state actions \n') print(repr(NameRequestActiveActions.list())) actions = get_nr_state_actions(State.APPROVED, nr_model) print(repr(actions)) print('\n In Progress state actions \n') print(repr(NameRequestInProgressActions.list())) actions = get_nr_state_actions(State.INPROGRESS, nr_model) print(repr(actions)) print('\n Hold state actions \n') print(repr(NameRequestHoldActions.list())) actions = get_nr_state_actions(State.HOLD, nr_model) print(repr(actions)) print('\n Historical state actions \n') print(repr(NameRequestHistoricalActions.list())) actions = get_nr_state_actions(State.HISTORICAL, nr_model) print(repr(actions)) print('\n Cancelled state actions \n') print(repr(NameRequestCancelledActions.list())) actions = get_nr_state_actions(State.CANCELLED, nr_model) print(repr(actions)) print('\n Rejected state actions \n') print(repr(NameRequestActiveRejectedActions.list())) actions = get_nr_state_actions(State.REJECTED, nr_model) print(repr(actions))
def complete_upgrade_payment(self, nr_model: RequestDAO, payment_id: int): """ Invoked when upgrading an existing Name Request reservation to PRIORITY status. :param nr_model: :param payment_id: :return: """ nr_svc = self.nr_service if nr_model.stateCd not in [State.DRAFT, State.PENDING_PAYMENT]: raise PaymentServiceError( message= 'Error upgrading Name Request, request is in an invalid state!' ) # Update the state of the payment payment = get_active_payment(nr_model, payment_id) sbc_payment_response = get_payment(payment.payment_token) # TODO: Throw errors if this fails! if sbc_payment_response.statusCode in [ PaymentStatusCode.COMPLETED.value, PaymentStatusCode.APPROVED.value ]: payment.payment_status_code = sbc_payment_response.statusCode payment.payment_completion_date = sbc_payment_response.createdOn payment.save_to_db() nr_model.priorityCd = 'Y' nr_model.priorityDate = datetime.utcnow() # Save the name request nr_model.save_to_db() # This (optionally) handles the updates for NRO and Solr, if necessary update_solr = False nr_model = self.update_records_in_network_services( nr_model, update_solr) # Update the actions, as things change once the payment is successful self.nr_service.current_state_actions = get_nr_state_actions( nr_model.stateCd, nr_model) # Record the event EventRecorder.record(nr_svc.user, Event.PATCH + ' [payment completed] UPGRADE', nr_model, nr_model.json()) return nr_model