Пример #1
0
    def post(self, application_guid):
        data = self.parser.parse_args()
        mine_guid = data.get('mine_guid')
        latitude = data.get('latitude')
        longitude = data.get('longitude')
        mine = Mine.find_by_mine_guid(mine_guid)
        if not mine:
            raise NotFound('Mine not found')

        now_application_identity = NOWApplicationIdentity.query.filter_by(
            now_application_guid=application_guid).first()
        if not now_application_identity:
            raise NotFound('No identity record for this application guid.')

        application = transmogrify_now(now_application_identity)
        application.mine_guid = mine_guid
        application.latitude = latitude
        application.longitude = longitude
        application.now_application_guid = application_guid

        # This is a first pass but by no means exhaustive solution to preventing the now application from being saved more than once.
        # In the event of multiple requests being fired simultaneously this can still sometimes fail.
        db.session.refresh(now_application_identity)
        if now_application_identity.now_application_id is not None:
            raise BadRequest('This record has already been imported.')
        application.save()
        db.session.refresh(now_application_identity)
        NROSNOWStatusService.nros_now_status_update(
            now_application_identity.now_number,
            now_application_identity.now_application.status.description,
            now_application_identity.now_application.status_updated_date.
            strftime("%Y-%m-%dT%H:%M:%S"))

        return {'now_application_guid': str(application.now_application_guid)}
Пример #2
0
    def get(self, application_guid):
        original = request.args.get('original', False, type=bool)

        now_application_identity = NOWApplicationIdentity.find_by_guid(
            application_guid)
        if not now_application_identity:
            raise NotFound('No identity record for this application guid.')

        if now_application_identity.now_application_id and not original:
            application = now_application_identity.now_application
            application.imported_to_core = True
        else:
            application = transmogrify_now(now_application_identity)
            application.imported_to_core = False

        return application
    def post(self, application_guid):
        data = self.parser.parse_args()
        mine_guid = data.get('mine_guid')
        mine = Mine.find_by_mine_guid(mine_guid)
        if not mine:
            raise NotFound('Mine not found')

        now_application_identity = NOWApplicationIdentity.query.filter_by(
            now_application_guid=application_guid).first()
        if not now_application_identity:
            raise NotFound('No identity record for this application guid.')

        application = transmogrify_now(now_application_identity)
        application.mine_guid = mine_guid
        application.now_application_guid = application_guid
        application.save()

        return {'now_application_guid': str(application.now_application_guid)}