feat(teams): add UpdateTeamAddressMutation
All checks were successful
Build Docker Image / build (push) Successful in 1m45s
All checks were successful
Build Docker Image / build (push) Successful in 1m45s
This commit is contained in:
@@ -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()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user