feat(teams): add UpdateTeamAddressMutation
All checks were successful
Build Docker Image / build (push) Successful in 1m45s

This commit is contained in:
Ruslan Bakiev
2026-01-07 16:16:04 +07:00
parent f84f0dd9d5
commit 6bb4074cb1

View File

@@ -301,6 +301,56 @@ class DeleteTeamAddressMutation(graphene.Mutation):
return DeleteTeamAddressMutation(success=False, message="Адрес не найден")
class UpdateTeamAddressInput(graphene.InputObjectType):
uuid = graphene.String(required=True)
name = graphene.String()
address = graphene.String()
latitude = graphene.Float()
longitude = graphene.Float()
countryCode = graphene.String()
isDefault = graphene.Boolean()
class UpdateTeamAddressMutation(graphene.Mutation):
class Arguments:
input = UpdateTeamAddressInput(required=True)
success = graphene.Boolean()
message = graphene.String()
address = graphene.Field(TeamAddress)
@require_scopes("teams:member")
def mutate(self, info, input):
team_uuid = getattr(info.context, 'team_uuid', None)
if not team_uuid:
return UpdateTeamAddressMutation(success=False, message="Не авторизован")
try:
team = TeamModel.objects.get(uuid=team_uuid)
address = team.addresses.get(uuid=input.uuid)
if input.name is not None:
address.name = input.name
if input.address is not None:
address.address = input.address
if input.latitude is not None:
address.latitude = input.latitude
if input.longitude is not None:
address.longitude = input.longitude
if input.countryCode is not None:
address.country_code = input.countryCode
if input.isDefault is not None:
address.is_default = input.isDefault
address.save()
return UpdateTeamAddressMutation(success=True, message="Адрес обновлен", address=address)
except TeamModel.DoesNotExist:
return UpdateTeamAddressMutation(success=False, message="Команда не найдена")
except TeamAddressModel.DoesNotExist:
return UpdateTeamAddressMutation(success=False, message="Адрес не найден")
class SetSelectedLocationInput(graphene.InputObjectType):
type = graphene.String(required=True) # 'address' или 'hub'
uuid = graphene.String(required=True)
@@ -361,6 +411,7 @@ class SetSelectedLocationMutation(graphene.Mutation):
class TeamMutation(graphene.ObjectType):
invite_member = InviteMemberMutation.Field()
create_team_address = CreateTeamAddressMutation.Field()
update_team_address = UpdateTeamAddressMutation.Field()
delete_team_address = DeleteTeamAddressMutation.Field()
set_selected_location = SetSelectedLocationMutation.Field()