Primer Commit
This commit is contained in:
172
DB/PACKAGE_BODIES/PKG_SICD_JIRA.sql
Normal file
172
DB/PACKAGE_BODIES/PKG_SICD_JIRA.sql
Normal file
@@ -0,0 +1,172 @@
|
||||
--------------------------------------------------------
|
||||
-- DDL for Package Body PKG_SICD_JIRA
|
||||
--------------------------------------------------------
|
||||
|
||||
CREATE OR REPLACE EDITIONABLE PACKAGE BODY "ENVX_OPER"."PKG_SICD_JIRA" AS
|
||||
|
||||
|
||||
/*--------------- PRC1-------------------*/
|
||||
PROCEDURE jira_search (
|
||||
username IN VARCHAR,
|
||||
pass IN VARCHAR,
|
||||
jql IN VARCHAR,
|
||||
resp OUT CLOB
|
||||
) AS
|
||||
--l_clob CLOB;
|
||||
--request_clob CLOB;
|
||||
BEGIN
|
||||
|
||||
---
|
||||
log_program_name := 'pkg_sicd_jira.jira_search(PRC1)';
|
||||
---
|
||||
|
||||
-- TODO: Implementation required for PROCEDURE PKG_SICD_JIRA.JIRA_SEARCH
|
||||
--request_clob := '{ "expand": ["names"],"jql": "project=ITDES AND assignee=vatrox04","startAt": 0,"maxResults": 20,"fields": ["id","key","summary","assignee","status"]}';
|
||||
|
||||
-- Es necesario fijar esto para que funcione
|
||||
apex_web_service.g_request_headers(1).name := 'Content-Type';
|
||||
apex_web_service.g_request_headers(1).value := 'application/json;charset=UTF-8';
|
||||
|
||||
-- Invocar al API de JIRA con los parametros suministrados.
|
||||
resp := apex_web_service.make_rest_request(
|
||||
p_url => 'http://jira.caja.com:20000/rest/api/2/search',
|
||||
p_http_method => 'POST',
|
||||
p_body => to_clob(jql),
|
||||
p_username => username,
|
||||
p_password => pass
|
||||
);
|
||||
-- Capturar excepciones
|
||||
/*
|
||||
l_clob := apex_web_service.make_rest_request(
|
||||
p_url => 'http://jira.caja.com:20000/rest/api/2/search',
|
||||
p_http_method => 'POST',
|
||||
p_body => request_clob,
|
||||
p_username => 'ldapsed',
|
||||
p_password => 'LDAPSEDsistemas20caracteres');*/
|
||||
EXCEPTION
|
||||
WHEN OTHERS THEN
|
||||
------------------------------------------------------------------
|
||||
log_collector(
|
||||
pi_program_name => log_program_name,
|
||||
pi_log_level => 2, --- WARNING
|
||||
pi_log_message => 'ERROR: ' || sqlerrm
|
||||
);
|
||||
------------------------------------------------------------------
|
||||
END jira_search;
|
||||
|
||||
/*--------------- PRC2-------------------*/
|
||||
PROCEDURE jira_search (
|
||||
username IN VARCHAR DEFAULT NULL,
|
||||
pass IN VARCHAR DEFAULT NULL,
|
||||
project_type IN VARCHAR,
|
||||
assignee IN VARCHAR,
|
||||
summary IN VARCHAR,
|
||||
ticket_key IN VARCHAR,
|
||||
ticket_status IN VARCHAR,
|
||||
files_returned IN NUMBER DEFAULT 20,
|
||||
p_mensaje OUT VARCHAR,
|
||||
p_error OUT VARCHAR
|
||||
) AS
|
||||
|
||||
criteriobusqueda VARCHAR2(4000);
|
||||
responseclob CLOB;
|
||||
p_username VARCHAR2(50);
|
||||
p_password VARCHAR2(200);
|
||||
BEGIN
|
||||
|
||||
---
|
||||
log_program_name := 'pkg_sicd_jira.jira_search(PRC2)';
|
||||
---
|
||||
|
||||
-- Control de parametros de autenticacion.
|
||||
IF username IS NULL OR pass IS NULL THEN
|
||||
p_username := pkg_sicd_commons.get_parameter_value('JIRA_USERNAME'); --
|
||||
p_password := pkg_sicd_commons.get_parameter_value('JIRA_PASSWORD');
|
||||
|
||||
--jira.user ldapsed
|
||||
--jira.password LDAPSEDsistemas20caracteres
|
||||
END IF;
|
||||
|
||||
-- Controlar el Tipo de Proyecto no sea Nulo
|
||||
|
||||
IF project_type IS NULL THEN
|
||||
raise_application_error(-20000, 'Tipo de Proyecto deben ser indicado');
|
||||
END IF;
|
||||
|
||||
|
||||
-- Armar el criterio de busqueda
|
||||
criteriobusqueda := '{ "expand": ["names"],"jql": "project='
|
||||
|| project_type
|
||||
||
|
||||
CASE
|
||||
WHEN
|
||||
length(assignee) > 0 THEN
|
||||
' AND assignee=' || assignee
|
||||
END
|
||||
||
|
||||
CASE
|
||||
WHEN
|
||||
length(ticket_key) > 0 THEN
|
||||
' AND key='
|
||||
|| project_type
|
||||
|| '-'
|
||||
|| ticket_key
|
||||
END
|
||||
||
|
||||
CASE
|
||||
WHEN
|
||||
length(ticket_status) > 0 THEN
|
||||
' AND status =' || ticket_status
|
||||
END
|
||||
||
|
||||
CASE
|
||||
WHEN
|
||||
length(summary) > 0 THEN
|
||||
' AND summary~'''
|
||||
|| summary
|
||||
|| ''''
|
||||
END
|
||||
|| '","startAt": 0,"maxResults":'
|
||||
|| files_returned
|
||||
|| ',"fields": ["id","key","summary","assignee","status"]}';
|
||||
|
||||
--dbms_output.put_line(criteriobusqueda);
|
||||
|
||||
jira_search(p_username, p_password, criteriobusqueda, responseclob);
|
||||
DELETE FROM tmp_reference_list;
|
||||
|
||||
INSERT INTO tmp_reference_list (
|
||||
id_reference,
|
||||
reference_description,
|
||||
reference_user,
|
||||
reference_status
|
||||
)
|
||||
SELECT e.*
|
||||
FROM
|
||||
JSON_TABLE ( responseclob, '$.issues[*]'
|
||||
COLUMNS (
|
||||
key VARCHAR2 ( 200 ) PATH '$.key',
|
||||
summary VARCHAR2 ( 200 ) PATH '$.fields.summary',
|
||||
displayname VARCHAR2 ( 200 ) PATH '$.fields.assignee.displayName',
|
||||
status VARCHAR2 ( 200 ) PATH '$.fields.status.name'
|
||||
)
|
||||
)
|
||||
e;
|
||||
EXCEPTION
|
||||
WHEN OTHERS THEN
|
||||
------------------------------------------------------------------
|
||||
log_collector(
|
||||
pi_program_name => log_program_name,
|
||||
pi_log_level => 2, --- WARNING
|
||||
pi_log_message => 'ERROR: ' || sqlerrm
|
||||
);
|
||||
------------------------------------------------------------------
|
||||
END jira_search;
|
||||
|
||||
END pkg_sicd_jira;
|
||||
|
||||
|
||||
/
|
||||
|
||||
GRANT EXECUTE ON "ENVX_OPER"."PKG_SICD_JIRA" TO "APEX_REST_PUBLIC_USER";
|
||||
GRANT DEBUG ON "ENVX_OPER"."PKG_SICD_JIRA" TO "APEX_REST_PUBLIC_USER";
|
||||
Reference in New Issue
Block a user