'Create a new Team
Create a new team bound to an organization.  Only the name of the
team is needed to create it, the slug can be auto generated.
:pparam string organization_slug: the slug of the organization the
team should be created for.
:param string name: the name of the organization.
:param string slug: the optional slug for this organization.  If
not provided it will be auto generated from the
name.
:auth: required'

@attach_scenarios([create_new_team_scenario])
def post(self, request, organization):

    serializer = TeamSerializer(data=request.DATA)
    if serializer.is_valid():
        result = serializer.object
        try:
            with transaction.atomic():
                team = Team.objects.create(name=result['name'], slug=result.get('slug'), organization=organization)
        except IntegrityError:
            return Response({'detail': 'A    team    with    this    slug    already    exists.'}, status=409)
        if request.user.is_authenticated():
            try:
                member = OrganizationMember.objects.get(user=request.user, organization=organization)
            except OrganizationMember.DoesNotExist:
                pass
            else:
                OrganizationMemberTeam.objects.create(team=team, organizationmember=member)
        self.create_audit_entry(request=request, organization=organization, target_object=team.id, event=AuditLogEntryEvent.TEAM_ADD, data=team.get_audit_log_data())
        return Response(serialize(team, request.user), status=201)
    return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
