import { callUnomi } from "../utils/connection";
import { FilteredResponse } from "../../src/types/sdkResponse";

/**
 * @function getAll
 * @param {string} baseUrl 
 * @param {Record<string, string>} headers 
 * @returns {FilteredResponse}
 */
export function getAll(baseUrl: string, headers: Record<string, string>): FilteredResponse { // get all rules
    const url = baseUrl + `/cxs/rules`; // rules endpoint

    return callUnomi("GET", url, null, headers, 200); // return result object
}

/**
 * @function get
 * @param {string} baseUrl 
 * @param {Record<string, string>} headers 
 * @param {string} ruleId
 * @returns {FilteredResponse}
 */
export function get(baseUrl: string, headers: Record<string, string>, ruleId: string): FilteredResponse { // get specific rule
    const url = baseUrl + `/cxs/rules/${ruleId}`; // rules endpoint

    return callUnomi("GET", url, null, headers, 200); // return result object
}

/**
 * @function create 
 * @param {string} baseUrl 
 * @param {Record<string, string>} headers 
 * @param {object} properties 
 * @returns {FilteredResponse}
 */
export function create(baseUrl: string, headers: Record<string, string>, properties: object): FilteredResponse { // create rule
    const url = baseUrl + `/cxs/rules`; // rules endpoint

    return callUnomi("POST", url, properties, headers, 204); // return result object
}