Description
Properties
| Name | Value |
|---|---|
| ANSI Nulls ON | True |
| Quoted Identifier ON | True |
| Encrypted | False |
| Execute As | |
| Assembly |
Parameters
2| Name | Data Type | Length | Description |
|---|---|---|---|
| @api_key | varchar | 20 | |
| @ruta | varchar | -1 |
SQL Script
Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
/*
select * from apikey where api_key = 'IDVBAS5845S6YHEHSQPZ'
select * from productos where url is not null
[api_key_obtener_info_2022] 'IDVBAS5845S6YHEHSQPZ','/api/v2/govcheck-validation'
[api_key_obtener_info_2022] 'IDVBAS5845S6YHEHSQPZ','/api/v2/govcheck-validationes'
*/
CREATE OR ALTER PROCEDURE dbo.api_key_obtener_info_2022
@api_key varchar(20),
@ruta varchar(max) = null
AS
BEGIN
SET NOCOUNT ON;
select users.first_name,users.last_name,users.email,apikey.user_id,apikey.client_id,apikey.ip,apikey.producto,productos.url,
/*
IIF (isnull(apikey.activo,0) = 0, 'Su token se encuentra inactivo',
iif (isnull(apikey.vigencia,getdate()+1) < getdate(), 'Su token ha vencido el ' + convert(varchar, apikey.vigencia, 103),
iif(@ruta is not null and productos.url is not null and @ruta not like '%'+productos.url/*+'%'*/, 'Ruta de acceso inválida para la apikey empleada',
iif(isnull(productos.grupo_informes,'') != 'API', 'No es un producto API',
NULL)))) as error_token,
*/
/* lo cambiamos el 15/06/2023: para que no controle la ruta. Controla si la apikey esta inactiva, vencida o no es una API */
IIF (isnull(apikey.activo,0) = 0, 'Su token se encuentra inactivo',
iif (isnull(apikey.vigencia,getdate()+1) < getdate(), 'Su token ha vencido el ' + convert(varchar, apikey.vigencia, 103),
iif(isnull(productos.grupo_informes,'') != 'API', 'No es un producto API',
NULL))) as error_token,
IIF(isnull(apikey.bloquea,0) = 0, NULL,
IIF (isnull(apikey.topediario,0) != 0 and isnull(apikey.consumo_dia,0) > isnull(apikey.topediario,0),'Se alcanzó el tope diario',
IIF (isnull(apikey.topemensual,0) != 0 and isnull(apikey.consumo_mes,0) > isnull(apikey.topemensual,0),'Se alcanzó el tope mensual',
IIF (isnull(apikey.topeanual,0) != 0 and isnull(apikey.consumo_anual,0) > isnull(apikey.topeanual,0),'Se alcanzó el tope del contrato',
NULL)))) as error_consumos,
IIF (clientes.cliente is null,'El cliente no existe',
iif(clientes.estado_cliente = 'N', 'El cliente no está activo',
iif(isnull(clientes_productos.activo,0) = '0', 'Al cliente no tiene habilitado el producto',
iif (clientes_productos.fecha_desde is not null and clientes_productos.fecha_desde > getdate(),'El cliente tendrá activo el producto a partir de ' + convert(varchar, clientes_productos.fecha_desde, 103),
iif (clientes_productos.fecha_hasta is not null and clientes_productos.fecha_hasta < getdate(),'El cliente no tiene activo el producto desde ' + convert(varchar, clientes_productos.fecha_hasta, 103),
NULL))))) as error_cliente,
IIF (users.user_id is null,'El usuario no existe',
iif(users.active_user = 'N', 'El usuario no está activo',
iif(isnull(usuarios_productos.activo,0) = '0', 'El usuario no tiene habilitado el producto',
NULL))) as error_usuario
from apikey
left join users on users.user_id = apikey.user_id
left join clientes on clientes.cliente = apikey.client_id
left join clientes_productos on (clientes_productos.cliente = apikey.client_id and clientes_productos.id_producto = apikey.producto)
left join usuarios_productos on (usuarios_productos.user_id = apikey.user_id and usuarios_productos.id_producto = apikey.producto)
left join productos on (productos.producto = apikey.producto)
where apikey.api_key = @api_key
END
/*
update productos set url = 'govcheck-validation' where producto = 92
update productos set url = 'extended-validation' where producto = 93
update productos set url = 'ic-nse' where producto = 94
select * from productos where producto in (92,93)
select * from apikey where producto = 92
select * from usuarios_consumos where id_producto = 93
*/
GO
GO
/*
select * from apikey where api_key = 'IDVBAS5845S6YHEHSQPZ'
select * from productos where url is not null
[api_key_obtener_info_2022] 'IDVBAS5845S6YHEHSQPZ','/api/v2/govcheck-validation'
[api_key_obtener_info_2022] 'IDVBAS5845S6YHEHSQPZ','/api/v2/govcheck-validationes'
*/
CREATE OR ALTER PROCEDURE dbo.api_key_obtener_info_2022
@api_key varchar(20),
@ruta varchar(max) = null
AS
BEGIN
SET NOCOUNT ON;
select users.first_name,users.last_name,users.email,apikey.user_id,apikey.client_id,apikey.ip,apikey.producto,productos.url,
/*
IIF (isnull(apikey.activo,0) = 0, 'Su token se encuentra inactivo',
iif (isnull(apikey.vigencia,getdate()+1) < getdate(), 'Su token ha vencido el ' + convert(varchar, apikey.vigencia, 103),
iif(@ruta is not null and productos.url is not null and @ruta not like '%'+productos.url/*+'%'*/, 'Ruta de acceso inválida para la apikey empleada',
iif(isnull(productos.grupo_informes,'') != 'API', 'No es un producto API',
NULL)))) as error_token,
*/
/* lo cambiamos el 15/06/2023: para que no controle la ruta. Controla si la apikey esta inactiva, vencida o no es una API */
IIF (isnull(apikey.activo,0) = 0, 'Su token se encuentra inactivo',
iif (isnull(apikey.vigencia,getdate()+1) < getdate(), 'Su token ha vencido el ' + convert(varchar, apikey.vigencia, 103),
iif(isnull(productos.grupo_informes,'') != 'API', 'No es un producto API',
NULL))) as error_token,
IIF(isnull(apikey.bloquea,0) = 0, NULL,
IIF (isnull(apikey.topediario,0) != 0 and isnull(apikey.consumo_dia,0) > isnull(apikey.topediario,0),'Se alcanzó el tope diario',
IIF (isnull(apikey.topemensual,0) != 0 and isnull(apikey.consumo_mes,0) > isnull(apikey.topemensual,0),'Se alcanzó el tope mensual',
IIF (isnull(apikey.topeanual,0) != 0 and isnull(apikey.consumo_anual,0) > isnull(apikey.topeanual,0),'Se alcanzó el tope del contrato',
NULL)))) as error_consumos,
IIF (clientes.cliente is null,'El cliente no existe',
iif(clientes.estado_cliente = 'N', 'El cliente no está activo',
iif(isnull(clientes_productos.activo,0) = '0', 'Al cliente no tiene habilitado el producto',
iif (clientes_productos.fecha_desde is not null and clientes_productos.fecha_desde > getdate(),'El cliente tendrá activo el producto a partir de ' + convert(varchar, clientes_productos.fecha_desde, 103),
iif (clientes_productos.fecha_hasta is not null and clientes_productos.fecha_hasta < getdate(),'El cliente no tiene activo el producto desde ' + convert(varchar, clientes_productos.fecha_hasta, 103),
NULL))))) as error_cliente,
IIF (users.user_id is null,'El usuario no existe',
iif(users.active_user = 'N', 'El usuario no está activo',
iif(isnull(usuarios_productos.activo,0) = '0', 'El usuario no tiene habilitado el producto',
NULL))) as error_usuario
from apikey
left join users on users.user_id = apikey.user_id
left join clientes on clientes.cliente = apikey.client_id
left join clientes_productos on (clientes_productos.cliente = apikey.client_id and clientes_productos.id_producto = apikey.producto)
left join usuarios_productos on (usuarios_productos.user_id = apikey.user_id and usuarios_productos.id_producto = apikey.producto)
left join productos on (productos.producto = apikey.producto)
where apikey.api_key = @api_key
END
/*
update productos set url = 'govcheck-validation' where producto = 92
update productos set url = 'extended-validation' where producto = 93
update productos set url = 'ic-nse' where producto = 94
select * from productos where producto in (92,93)
select * from apikey where producto = 92
select * from usuarios_consumos where id_producto = 93
*/
GO
Depends On
6Used By
No items found