<?php

	// Check nonce
	PHPCUS_PARAM::CUS_REQUIRES_NONCE();

	// Check Array Input
	PHPCUS_PARAM::CUS_DOES_NOT_SUPPORT_ARRAY();
	
	if
	(
			PHPRC_HTTP_PARAM::REF_ISSET_IN_ARRAY
			(
					[
							'PARAM_MODULE_ID',
							'PARAM_MODULE_CATEGORY',
							'PARAM_MODULE_KEYWORD',
							'PARAM_MODULE_NAME',
							'PARAM_MODULE_DESCRIPTION',
							
							'PARAM_ORDER_FIELD',
							'PARAM_ORDER_TYPE',
							'PARAM_SKIP'
					], True
			)
	)
	{	
		Try
		{
			// Read params
			// ------------------------------------------------------------------
			$PARAM_MODULE_ID = PHPCUS_PARAM::CUS_READ_BIGINT('PARAM_MODULE_ID');
			$PARAM_MODULE_CATEGORY = PHPCUS_PARAM::CUS_READ_NVARCHAR('PARAM_MODULE_CATEGORY');
			$PARAM_MODULE_KEYWORD = PHPCUS_PARAM::CUS_READ_NVARCHAR('PARAM_MODULE_KEYWORD');
			$PARAM_MODULE_NAME = PHPCUS_PARAM::CUS_READ_NVARCHAR('PARAM_MODULE_NAME');
			$PARAM_MODULE_DESCRIPTION = PHPCUS_PARAM::CUS_READ_NVARCHAR('PARAM_MODULE_DESCRIPTION');
			
			$PARAM_ORDER_FIELD = PHPCUS_PARAM::CUS_READ_SORT_FIELD
			(
					'PARAM_ORDER_FIELD', 
					[
						'MODULE_ID',
						'MODULE_CATEGORY',
						'MODULE_KEYWORD',
						'MODULE_NAME'
					]
			);
			
			$PARAM_ORDER_TYPE = PHPCUS_PARAM::CUS_READ_SORT_TYPE('PARAM_ORDER_TYPE');
			$PARAM_SKIP	= PHPCUS_PARAM::CUS_READ_BIGINT('PARAM_SKIP');
			// ------------------------------------------------------------------
			
			
			// Execute Stored Procedure
			$DATA_SET = PHPCUS_System::CUS_MODULE_GET
						(
								$PARAM_MODULE_ID,
								$PARAM_MODULE_CATEGORY,
								$PARAM_MODULE_KEYWORD,
								$PARAM_MODULE_NAME,
								$PARAM_MODULE_DESCRIPTION,
								
								$PARAM_ORDER_FIELD, 
								$PARAM_ORDER_TYPE, 
								$PARAM_SKIP
						);
			
						
			// Return JSON response
			PHPCUS_PARAM::CUS_JSON_SUCCESS($DATA_SET);
			
		}
		Catch(Exception $ERR)
		{
			PHPCUS_PARAM::CUS_JSON_ERROR($ERR);
		}
	}
	else
	{
		PHPCUS_PARAM::CUS_JSON_ERROR('Missing parameters');
	}

?>