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)
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