Crear usuario
curl --request POST \
--url https://api.dev.impactu.colav.co/admin/users/{email} \
--header 'Content-Type: application/json' \
--data '
{
"institution": "<string>",
"ror_id": "<string>",
"role": "<string>"
}
'import requests
url = "https://api.dev.impactu.colav.co/admin/users/{email}"
payload = {
"institution": "<string>",
"ror_id": "<string>",
"role": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({institution: '<string>', ror_id: '<string>', role: '<string>'})
};
fetch('https://api.dev.impactu.colav.co/admin/users/{email}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.dev.impactu.colav.co/admin/users/{email}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'institution' => '<string>',
'ror_id' => '<string>',
'role' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.dev.impactu.colav.co/admin/users/{email}"
payload := strings.NewReader("{\n \"institution\": \"<string>\",\n \"ror_id\": \"<string>\",\n \"role\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.dev.impactu.colav.co/admin/users/{email}")
.header("Content-Type", "application/json")
.body("{\n \"institution\": \"<string>\",\n \"ror_id\": \"<string>\",\n \"role\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.dev.impactu.colav.co/admin/users/{email}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"institution\": \"<string>\",\n \"ror_id\": \"<string>\",\n \"role\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"msg": "Usuario usuario@example.com Creado exitosamente y contraseña enviada por correo electrónico."
}
{ "success": false, "msg": "Faltan: ror_id" }
{ "success": false, "msg": "El correo 'usuario@example' no es válido." }
{
"success": false,
"msg": "Para la institución: Universidad Ejemplo ya existe un correo registrado: otro@example.com. Si deseas asignar un nuevo correo, edita el usuario existente."
}
{ "success": false, "msg": "El usuario con correo usuario@example.com ya existe." }
{"msg": "Token no proporcionado o inválido. Por favor, inicia sesión nuevamente.", "success": false}
{ "success": false, "msg": "Permiso denegado: No pueden realizar esta acción." }
{ "success": false, "msg": "No se pueden crear usuarios con el role 'admin'." }
{ "success": false, "msg": "No se pudo enviar el correo con las credenciales. No se guardó ningún cambio." }
Usuarios
Crear usuario
Crea un nuevo usuario en la plataforma y le envía su contraseña por correo. Solo accesible con rol admin.
POST
/
admin
/
users
/
{email}
Crear usuario
curl --request POST \
--url https://api.dev.impactu.colav.co/admin/users/{email} \
--header 'Content-Type: application/json' \
--data '
{
"institution": "<string>",
"ror_id": "<string>",
"role": "<string>"
}
'import requests
url = "https://api.dev.impactu.colav.co/admin/users/{email}"
payload = {
"institution": "<string>",
"ror_id": "<string>",
"role": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({institution: '<string>', ror_id: '<string>', role: '<string>'})
};
fetch('https://api.dev.impactu.colav.co/admin/users/{email}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.dev.impactu.colav.co/admin/users/{email}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'institution' => '<string>',
'ror_id' => '<string>',
'role' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.dev.impactu.colav.co/admin/users/{email}"
payload := strings.NewReader("{\n \"institution\": \"<string>\",\n \"ror_id\": \"<string>\",\n \"role\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.dev.impactu.colav.co/admin/users/{email}")
.header("Content-Type", "application/json")
.body("{\n \"institution\": \"<string>\",\n \"ror_id\": \"<string>\",\n \"role\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.dev.impactu.colav.co/admin/users/{email}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"institution\": \"<string>\",\n \"ror_id\": \"<string>\",\n \"role\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"msg": "Usuario usuario@example.com Creado exitosamente y contraseña enviada por correo electrónico."
}
{ "success": false, "msg": "Faltan: ror_id" }
{ "success": false, "msg": "El correo 'usuario@example' no es válido." }
{
"success": false,
"msg": "Para la institución: Universidad Ejemplo ya existe un correo registrado: otro@example.com. Si deseas asignar un nuevo correo, edita el usuario existente."
}
{ "success": false, "msg": "El usuario con correo usuario@example.com ya existe." }
{"msg": "Token no proporcionado o inválido. Por favor, inicia sesión nuevamente.", "success": false}
{ "success": false, "msg": "Permiso denegado: No pueden realizar esta acción." }
{ "success": false, "msg": "No se pueden crear usuarios con el role 'admin'." }
{ "success": false, "msg": "No se pudo enviar el correo con las credenciales. No se guardó ningún cambio." }
Requiere sesión activa con rol
admin. Primero se envía el correo con las
credenciales y después se guarda el usuario: si el correo no se puede
enviar, responde 502 y no se crea nada, así que se puede reintentar.Parámetros de ruta
string
requerido
Correo electrónico del nuevo usuario. Si no tiene un formato válido, responde
400.Cuerpo de la solicitud
Debe traer exactamente estos tres campos, con texto no vacío: si falta, sobra o está vacío alguno, responde400.
string
requerido
Nombre de la institución a la que pertenece el usuario.
string
requerido
Identificador ROR de la institución. Ejemplo:
059yx9a68. Cada institución
tiene un solo usuario: si ya existe uno para ese ror_id, responde 409.string
requerido
Rol del usuario en la plataforma. Ejemplo:
staff. No puede ser admin: responde 403.Respuesta
boolean
true si el usuario fue creado correctamente.string
Mensaje de confirmación o error.
{
"success": true,
"msg": "Usuario usuario@example.com Creado exitosamente y contraseña enviada por correo electrónico."
}
{ "success": false, "msg": "Faltan: ror_id" }
{ "success": false, "msg": "El correo 'usuario@example' no es válido." }
{
"success": false,
"msg": "Para la institución: Universidad Ejemplo ya existe un correo registrado: otro@example.com. Si deseas asignar un nuevo correo, edita el usuario existente."
}
{ "success": false, "msg": "El usuario con correo usuario@example.com ya existe." }
{"msg": "Token no proporcionado o inválido. Por favor, inicia sesión nuevamente.", "success": false}
{ "success": false, "msg": "Permiso denegado: No pueden realizar esta acción." }
{ "success": false, "msg": "No se pueden crear usuarios con el role 'admin'." }
{ "success": false, "msg": "No se pudo enviar el correo con las credenciales. No se guardó ningún cambio." }