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/clientes/{CUSTOMER_TENANT_ID}/usuários/{USER_ID}
warning
Ao aplicar patch às funções em relação a um usuário, tenha cuidado ao usar a operação REPLACE.
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 #
Essa solicitação atualizará o nome de exibição do usuário.
Pedir #
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
aceitar-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: aplicativo / json; conjunto de caracteres=utf-8
Comprimento do conteúdo: xx
Contexto de 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.
Pedir #
PATCH <https://api.na.myreports.cloud/api/v1.0/customers/{TENANT_ID}/users/{USER_ID}> HTTP/1.1
Tipo de conteúdo: application/json
aceitar-encargos: verdadeiro
Autorização: Portador {TOKEN}
Conexão: keep-alive
[ {
"op": "adicionar",
"caminho": "/roles/-",
"valor": "cliente.usuário.supervisorl1"
}][{
"op": "add",
"path": "/roles/-",
"value": "customer.user.supervisorl1"
}]
Resposta #
HTTP/1.1 200 OK
Tipo de conteúdo: aplicativo / json; conjunto de caracteres=utf-8
Comprimento do conteúdo: xx
Contexto de solicitação: appId=cid-v1:d24f4c80-0a0a-432e-85aa-a6f91f13a038
{
"status": "sucesso",
"carimbo de data/hora": "2019-11-29T15: 16: 54.2586208Z"
}
Exemplo 3 #
Essa solicitação substituirá TODAS as funções atribuídas ao Usuário pelas duas fornecidas.
Pedir #
PATCH <https://api.na.myreports.cloud/api/v1.0/customers/{TENANT_ID}/users/{USER_ID}> HTTP/1.1
Tipo de conteúdo: application/json
aceitar-encargos: verdadeiro
Autorização: Portador {TOKEN}
Conexão: keep-alive
\[{
"op": "substituir",
"caminho": "/funções",
"valor": [" user.admin", "customer.user"]["user.admin", "customer.user"]
}]
Resposta #
HTTP/1.1 200 OK
Tipo de conteúdo: aplicativo / json; conjunto de caracteres=utf-8
Comprimento do conteúdo: xx
Contexto de solicitação: appId=cid-v1:d24f4c80-0a0a-432e-85aa-a6f91f13a038
{
"status": "sucesso",
"carimbo de data/hora": "2019-11-29T15: 16: 54.2586208Z"
}
Erros #
Desautorizado #
Quando o token não é fornecido, é inválido ou expirado
HTTP/1.1 401 Não autorizado
Solicitação incorreta (1) #
Quando o locatário ou ID de usuário fornecido não está no formato correto
HTTP/1.1 400 Solicitação incorreta
Data: Qui, 06 de fevereiro de 2020 12:45:27 GMT
Tipo de conteúdo: aplicativo / json; conjunto de caracteres=utf-8
Comprimento do conteúdo: 149
{
"erro": 400,
"message": "O valor '\< tenant/user id>' não é válido.",
"status": "erro",
"carimbo de data/hora": "2020-02-06T12:45:27.5903465Z"
}
Solicitação incorreta (2) #
Quando o último usuário com a função "user.admin" e "customer.user" neste cliente tenta remover essa função.
warning
Sempre é necessário haver um usuário em um locatário do cliente com as funções "user.admin" e "customer.user".
HTTP/1.1 400 Solicitação incorreta
Data: Qui, 06 Fev 2020 13:12:06 GMT
Tipo de conteúdo: aplicativo / json; conjunto de caracteres=utf-8
Comprimento do conteúdo: 132
{
"erro": 400,
"message": "Deve haver pelo menos um administrador de usuários.",
"status": "erro",
"carimbo de data/hora": "2020-02-06T13:12:06.9741515Z"
}
Solicitação inválida (3) #
Ao tentar corrigir uma propriedade inválida.
HTTP/1.1 400 Solicitação incorreta
Data: Qui, 06 de fevereiro de 2020 12:45:27 GMT
Tipo de conteúdo: aplicativo / json; conjunto de caracteres=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 email desse novo usuário já for existente para outro usuário nesse locatário do cliente
HTTP/1.1 409 Conflito
Data: Qui, 06 de fevereiro de 2020 13:05:39 GMT
Tipo de conteúdo: aplicativo / json; conjunto de caracteres=utf-8
Comprimento do conteúdo: 178
{
"erro": 409,
"errorCode": "Conflito de e-mail",
"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 há clientes com uma ID de locatário correspondente ou Usuários nesse locatário que têm uma ID de usuário correspondente
HTTP/1.1 404 Não encontrado
Data: Qui, 06 de fevereiro de 2020 12:46:58 GMT
Tipo de conteúdo: aplicativo / json; conjunto de caracteres=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 essa solicitação puder incorrer em cobranças adicionais, consulte Encargos.
HTTP/1.1 402 Pagamento necessário
Data: Qui, 06 de fevereiro de 2020 13:01:00 GMT
Tipo de conteúdo: aplicativo / json; conjunto de caracteres=utf-8
Comprimento do conteúdo: 274
{
"dados": {
"id": "{USER_ID}",
"displayName": "Novo usuário",
"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,
"message": "aplicam-se custos adicionais",
"status": "erro",
"carimbo de data/hora": "2020-02-06T13:01:01.1302340Z"
}