import { AUTH_TOKEN } from 'cypress/support/commands';

export function getTravelSetting() {
  return cy
    .request({
      method: 'GET',
      url: `api/adminpolicyengine/v1/rules/travelSettings`,
      headers: {
        Authorization: AUTH_TOKEN
      },
      retryOnStatusCodeFailure: true
    })
    .then(({ body }) => {
      const defaultRule = body[0]?.defaultRule?.uuid;
      cy.log(`Default Rule UUID: ${defaultRule}`);

      return cy.wrap(defaultRule);
    });
}

export function updateDefaultRule(defaultRule) {
  return cy
    .request({
      method: 'PATCH',
      url: `/api/adminpolicyengine/v1/rules`,
      headers: {
        Authorization: AUTH_TOKEN
      },
      body: {
        rules: [
          {
            uuid: defaultRule,
            name: 'tripProposal',
            type: 'travelSettings',
            defaultRule: true,
            conditionAttributes: [],
            targetAttributes: [{ attributeName: 'enabled', attributeValue: 'true' }]
          }
        ]
      },
      retryOnStatusCodeFailure: true
    })
    .then(({ status }) => {
      expect(status, 'Travel policy updated').to.equal(200);
    });
}
