コード例 #1
0
    def put(self, rammetid_id):
        data = request.get_json()

        rammetid = self.get_object_by_id(rammetid_id)

        status = data.get("status", None)

        resource_data = data.get("resource", None)
        if resource_data:
            resource_uri = resource_data["uri"]
            resource = get_resource_for_uri(resource_uri)
            if not resource:
                abort(403, __error__=[u'Ressursen ble ikke funnet.'])
        else:
            abort(403, __error__=[u'Data om ressursen mangler.'])

        # The rammetid might have been
        # moved to a different resource
        rammetid.resource = resource

        # The rammtid status might
        # have been changed
        rammetid.status = status

        rammetid_slots_data = data.get("rammetid_slots", None)
        if rammetid_slots_data:
            for rammetid_slot in rammetid_slots_data:
                rammetid_slot_parsed = parse_repeating_slot(rammetid_slot)
                if BaseApplicationResource.is_conflict_rammetid(resource, rammetid_slot_parsed.start_date, rammetid_slot_parsed.end_date, rammetid_slot_parsed.week_day,
                                                                rammetid_slot_parsed.start_time, rammetid_slot_parsed.end_time):
                    abort(
                        400,
                        __error__=[u'Tiden er ikke tilgjengelig']
                    )
                if BaseApplicationResource.is_conflict_blocked_time(resource, rammetid_slot_parsed.start_date, rammetid_slot_parsed.end_date, rammetid_slot_parsed.week_day,
                                                                    rammetid_slot_parsed.start_time, rammetid_slot_parsed.end_time):
                    abort(
                        400,
                        __error__=[u'Tiden er blokkert']
                    )

                rammetid.add_rammetid_slot(rammetid_slot_parsed)

        current_app.db_session.add(rammetid)
        current_app.db_session.commit()
        current_app.db_session.refresh(rammetid)

        return marshal(rammetid, rammetid_fields)
コード例 #2
0
    def post(self):
        data = request.get_json()

        resource_data = data.get("resource", None)
        if resource_data:
            resource_uri = resource_data["uri"]
            resource = get_resource_for_uri(resource_uri)
            if not resource:
                abort(403, __error__=[u'Ressursen ble ikke funnet.'])
        else:
            abort(403, __error__=[u'Data om ressursen mangler.'])

        umbrella_organisation_data = data.get("umbrella_organisation", None)
        if umbrella_organisation_data:
            umbrella_organisation_uri = umbrella_organisation_data["uri"]
            umbrella_organisation = get_umbrella_organisation_for_uri(umbrella_organisation_uri)
            if not umbrella_organisation:
                abort(403, __error__=[u'Paraplyorganisasjonen ble ikke funnet.'])
        else:
            abort(403, __error__=[u'Data om paraplyorganisasjonen mangler.'])

        rammetid = Rammetid(umbrella_organisation, resource)

        rammetid_slots_data = data.get("rammetid_slots", None)
        if rammetid_slots_data:
            for rammetid_slot in rammetid_slots_data:
                rammetid_slot_parsed = parse_repeating_slot(rammetid_slot)
                if BaseApplicationResource.is_conflict_rammetid(resource, rammetid_slot_parsed.start_date, rammetid_slot_parsed.end_date, rammetid_slot_parsed.week_day,
                                                                rammetid_slot_parsed.start_time, rammetid_slot_parsed.end_time):
                    abort(
                        400,
                        __error__=[u'Tiden er ikke tilgjengelig']
                    )
                if BaseApplicationResource.is_conflict_blocked_time(resource, rammetid_slot_parsed.start_date, rammetid_slot_parsed.end_date, rammetid_slot_parsed.week_day,
                                                                    rammetid_slot_parsed.start_time, rammetid_slot_parsed.end_time):
                    abort(
                        400,
                        __error__=[u'Tiden er blokkert']
                    )
                rammetid.add_rammetid_slot(rammetid_slot_parsed)

        current_app.db_session.add(rammetid)
        current_app.db_session.commit()
        current_app.db_session.refresh(rammetid)

        return marshal(rammetid, rammetid_fields), 201