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="Адрес не найден")
|
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):
|
class SetSelectedLocationInput(graphene.InputObjectType):
|
||||||
type = graphene.String(required=True) # 'address' или 'hub'
|
type = graphene.String(required=True) # 'address' или 'hub'
|
||||||
uuid = graphene.String(required=True)
|
uuid = graphene.String(required=True)
|
||||||
@@ -361,6 +411,7 @@ class SetSelectedLocationMutation(graphene.Mutation):
|
|||||||
class TeamMutation(graphene.ObjectType):
|
class TeamMutation(graphene.ObjectType):
|
||||||
invite_member = InviteMemberMutation.Field()
|
invite_member = InviteMemberMutation.Field()
|
||||||
create_team_address = CreateTeamAddressMutation.Field()
|
create_team_address = CreateTeamAddressMutation.Field()
|
||||||
|
update_team_address = UpdateTeamAddressMutation.Field()
|
||||||
delete_team_address = DeleteTeamAddressMutation.Field()
|
delete_team_address = DeleteTeamAddressMutation.Field()
|
||||||
set_selected_location = SetSelectedLocationMutation.Field()
|
set_selected_location = SetSelectedLocationMutation.Field()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user