Source code for magpie.api.management.group.group_formats
from magpie.api.requests import HTTPInternalServerError
from magpie.api.exception import evaluate_call
from typing import TYPE_CHECKING
if TYPE_CHECKING:
from magpie.definitions.typedefs import JSON, Optional # noqa: F401
from magpie.definitions.sqlalchemy_definitions import Session # noqa: F401
from magpie.models import Group # noqa: F401
[docs]def format_group(group, basic_info=False, db_session=None):
# type: (Group, bool, Optional[Session]) -> JSON
def fmt_grp(grp, info):
if info:
return {
u"group_name": str(grp.group_name),
u"group_id": grp.id,
}
return {
u"group_name": str(grp.group_name),
u"description": str(grp.description),
u"member_count": grp.get_member_count(db_session),
u"group_id": grp.id,
u"user_names": [usr.user_name for usr in grp.users]
}
return evaluate_call(
lambda: fmt_grp(group, basic_info), httpError=HTTPInternalServerError,
msgOnFail="Failed to format group.", content={u"group": repr(group)}
)