def update(group, request): """Update a group from a PATCH payload.""" appstruct = UpdateGroupAPISchema( default_authority=request.default_authority, group_authority=client_authority(request) or request.default_authority, ).validate(_json_payload(request)) group_update_service = request.find_service(name="group_update") group_service = request.find_service(name="group") # Check for duplicate group groupid = appstruct.get("groupid", None) if groupid is not None: duplicate_group = group_service.fetch(pubid_or_groupid=groupid) if duplicate_group and (duplicate_group != group): raise HTTPConflict( _("group with groupid '{}' already exists").format(groupid)) group = group_update_service.update(group, **appstruct) return GroupJSONPresenter(GroupContext( group, request)).asdict(expand=["organization", "scopes"])
def update(group, request): """Update a group from a PATCH payload.""" appstruct = UpdateGroupAPISchema( default_authority=request.default_authority, group_authority=client_authority(request) or request.default_authority, ).validate(_json_payload(request)) group_update_service = request.find_service(name="group_update") group_service = request.find_service(name="group") # Check for duplicate group groupid = appstruct.get("groupid", None) if groupid is not None: duplicate_group = group_service.fetch(pubid_or_groupid=groupid) if duplicate_group and (duplicate_group != group): raise HTTPConflict( _("group with groupid '{}' already exists").format(groupid) ) group = group_update_service.update(group, **appstruct) return GroupJSONPresenter(GroupContext(group, request)).asdict( expand=["organization", "scopes"] )
def schema(self): schema = UpdateGroupAPISchema( group_authority="hypothes.is", default_authority="hypothes.is" ) return schema