Usuário do patch

Usuário do patch #

Atualiza um conjunto específico de propriedades de um Usuário. Isso usa o JSON Formato de patch para quaisquer alterações.

PATCH /v1.0/customers/{CUSTOMER_TENANT_ID}/users/{USER_ID}

Hand Left warning
Ao aplicar patches nas funções contra um usuário, tenha cuidado ao usar a operação SUBSTITUIR.
Com a operação de substituição, as funções atuais do usuário serão substituídas pelos valores fornecidos na solicitação de patch.
Qualquer função não fornecida na solicitação de patch será removida do usuário (com exceção do PBX função de usuário que é sincronizada a partir do PBX).

Exemplo 1 #

Esta solicitação atualizará o Nome de Exibição do Usuário.

Solicitar #

PATCH <https://api.na.myreports.cloud/api/v1.0/customers/{CUSTOMER_TENANT_ID}/users/{USER_ID}> HTTP/1.1
Tipo de conteúdo: application/json
Aceitação-Encargos: Verdadeiro
Autorização: Portador {TOKEN}
Conexão: keep-alive
[ {
	"op": "substituir",
	"caminho": "/displayName",
	"value": "Meu Novo Nome"
}][{
	"op": "replace",
	"path": "/displayName",
	"value": "My New Name"
}]

Resposta #

HTTP/1.1 200 OK
Tipo de conteúdo: application/json; charset=utf-8
Conteúdo-Comprimento: xx
Contexto-solicitação: appId=cid-v1:d24f4c80-0a0a-432e-85aa-a6f91f13a038
{
	"status": "sucesso",
	"carimbo de data/hora": "2019-11-29T15:16:54.2586208Z"
}

Exemplo 2 #

Essa solicitação ADICIONARÁ a função customer.user.supervisorl1 ao Usuário, mantendo as funções existentes intactas.

Solicitar #

PATCH <https://api.na.myreports.cloud/api/v1.0/customers/{TENANT_ID}/users/{USER_ID}> HTTP/1.1
Tipo de conteúdo: application/json
Aceitação-Encargos: Verdadeiro
Autorização: Portador {TOKEN}
Conexão: keep-alive
[ {
	"op": "adicionar",
	"caminho": "/roles/-",
	"valor": "customer.user.supervisorl1"
}][{
	"op": "add",
	"path": "/roles/-",
	"value": "customer.user.supervisorl1"
}]

Resposta #

HTTP/1.1 200 OK
Tipo de conteúdo: application/json; charset=utf-8
Conteúdo-Comprimento: xx
Contexto-solicitação: appId=cid-v1:d24f4c80-0a0a-432e-85aa-a6f91f13a038
{
	"status": "sucesso",
	"carimbo de data/hora": "2019-11-29T15:16:54.2586208Z"
}

Exemplo 3 #

Esta solicitação substituirá TODAS as funções atribuídas ao Usuário pelas duas fornecidas.

Solicitar #

PATCH <https://api.na.myreports.cloud/api/v1.0/customers/{TENANT_ID}/users/{USER_ID}> HTTP/1.1
Tipo de conteúdo: application/json
Aceitação-Encargos: Verdadeiro
Autorização: Portador {TOKEN}
Conexão: keep-alive
\[{
	"op": "substituir",
	"caminho": "/roles",
	"valor": [" user.admin", "cliente.usuário"]["user.admin", "customer.user"]
}]

Resposta #

HTTP/1.1 200 OK
Tipo de conteúdo: application/json; charset=utf-8
Conteúdo-Comprimento: xx
Contexto-solicitação: appId=cid-v1:d24f4c80-0a0a-432e-85aa-a6f91f13a038
{
	"status": "sucesso",
	"carimbo de data/hora": "2019-11-29T15:16:54.2586208Z"
}

Erros #

Não autorizado #

Quando o token não é fornecido, inválido ou expirado

HTTP/1.1 401 Não autorizado

Mau pedido (1) #

Quando o locatário fornecido ou ID de usuário não está no formato correto

HTTP/1.1 400 Solicitação incorreta
Data: Thu, 06 Feb 2020 12:45:27 GMT
Tipo de conteúdo: application/json; charset=utf-8
Comprimento do conteúdo: 149
{
	"erro": 400,
	"message": "O valor '\< ID do inquilino/utilizador>' não é válido.",
	"status": "erro",
	"carimbo de data/hora": "2020-02-06T12:45:27.5903465Z"
}

Mau pedido (2) #

Quando o último Usuário com as funções "user.admin" e "customer.user" neste Cliente tenta remover essa função.

Hand Left warning
Sempre precisa haver um Usuário em um locatário Cliente com as funções "user.admin" e "customer.user".
HTTP/1.1 400 Solicitação incorreta
Data: Thu, 06 Feb 2020 13:12:06 GMT
Tipo de conteúdo: application/json; charset=utf-8
Conteúdo-Comprimento: 132
{
	"erro": 400,
	"message": "Deve haver pelo menos um administrador de usuário.",
	"status": "erro",
	"carimbo de data/hora": "2020-02-06T13:12:06.9741515Z"
}

Mau pedido (3) #

Ao tentar corrigir uma propriedade inválida.

HTTP/1.1 400 Solicitação incorreta
Data: Thu, 06 Feb 2020 12:45:27 GMT
Tipo de conteúdo: application/json; charset=utf-8
Comprimento do conteúdo: 149
{
	"erro": 400,
	"message": "O local de destino especificado pelo segmento de caminho '<invalid property>' não foi encontrado.",
	"status": "erro",
	"carimbo de data/hora": "2020-02-06T12:45:27.5903465Z"
}

Conflito #

Se o endereço de e-mail desse novo usuário já for encerrado para outro usuário neste locatário do Cliente

HTTP/1.1 409 Conflito
Data: Thu, 06 Feb 2020 13:05:39 GMT
Tipo de conteúdo: application/json; charset=utf-8
Conteúdo-Comprimento: 178
{
	"erro": 409,
	"errorCode": "EmailConflict",
	"message": "Um usuário com o endereço de e-mail [[email protected]](mailto:[email protected]) já existe.",
	"status": "erro",
	"carimbo de data/hora": "2020-02-06T13:05:39.5486342Z"
}

Não encontrado #

Quando não houver Clientes que tenham um ID de locatário correspondente ou Usuários dentro desse locatário que tenham um ID de usuário correspondente

HTTP/1.1 404 Não encontrado
Data: Thu, 06 Feb 2020 12:46:58 GMT
Tipo de conteúdo: application/json; charset=utf-8
Comprimento do conteúdo: 95
{
	"erro": 404,
	"message": "Não encontrado",
	"status": "erro",
	"carimbo de data/hora": "2020-02-06T12:46:58.7669535Z"
}

Pagamento Obrigatório #

Se este pedido puder implicar quaisquer custos adicionais, consulte Encargos.

HTTP/1.1 402 Pagamento Necessário
Data: Thu, 06 Feb 2020 13:01:00 GMT
Tipo de conteúdo: application/json; charset=utf-8
Comprimento do conteúdo: 274
{
	"dados": {
		"id": "{USER_ID}",
		"displayName": "Novo Utilizador",
		"e-mail": "[[email protected]](mailto:[email protected])",
		"primaryTenant": "{CUSTOMER_TENANT_ID}",
		"papéis": [" admin.user", "customer.user", "customer.user.supervisorl1", "customer.settings"]["admin.user", "customer.user", "customer.user.supervisorl1", "customer.settings"]
	},
	"erro": 402,
	"mensagem": "aplicam-se custos adicionais",
	"status": "erro",
	"carimbo de data/hora": "2020-02-06T13:01:01.1302340Z"
}