Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

S28 250: Edit Requests Via Portal #836

Open
wants to merge 16 commits into
base: S28-3367/edited-recording-notification
Choose a base branch
from

Conversation

lucas-phillips28
Copy link
Contributor

@lucas-phillips28 lucas-phillips28 commented Nov 25, 2024

Caution

This PR contains 2 migrations. Ensure they are numbered correctly before merging

JIRA ticket(s)

Change description

  • Update GET /edits/{id} endpoint to accept Level 3 users
  • Add GET /edits endpoint
  • Add PUT /edits/{id} endpoint
  • Add jointly agreed, approved at, approved by and rejection reason to db, entity and DTOs.
  • Add validation for new fields

Copy link
Contributor

hmcts-jenkins-cnp bot commented Nov 25, 2024

Plan Result (stg)

⚠️ Resource Deletion will happen

This plan contains resource delete operation. Please check the plan result very carefully!

Plan: 3 to add, 5 to change, 1 to destroy.
  • Create
    • module.pre-api-mgmt-api-policy[0].azurerm_api_management_api_policy.api_policy
    • module.pre_api[0].azurerm_api_management_product_api.link_to_product[0]
  • Update
    • module.apim_subscription_editvm[0].azurerm_api_management_subscription.subscription
    • module.apim_subscription_portal[0].azurerm_api_management_subscription.subscription
    • module.apim_subscription_powerplatform[0].azurerm_api_management_subscription.subscription
    • module.apim_subscription_smoketest[0].azurerm_api_management_subscription.subscription
    • module.pre-api-exception-alert[0].azurerm_resource_group_template_deployment.custom_alert[0]
  • Replace
    • module.pre_api[0].azurerm_api_management_api.api
Change Result (Click me)
  # module.apim_subscription_editvm[0].azurerm_api_management_subscription.subscription will be updated in-place
  ~ resource "azurerm_api_management_subscription" "subscription" {
      ~ allow_tracing       = false -> true
        id                  = "/subscriptions/74dacd4f-a248-45bb-a2f0-af700dc4cf68/resourceGroups/ss-stg-network-rg/providers/Microsoft.ApiManagement/service/sds-api-mgmt-stg/subscriptions/8265f455-2bf2-4c4b-8ba3-bfd0a2f5a6b7"
        # (10 unchanged attributes hidden)
    }

  # module.apim_subscription_portal[0].azurerm_api_management_subscription.subscription will be updated in-place
  ~ resource "azurerm_api_management_subscription" "subscription" {
      ~ allow_tracing       = false -> true
        id                  = "/subscriptions/74dacd4f-a248-45bb-a2f0-af700dc4cf68/resourceGroups/ss-stg-network-rg/providers/Microsoft.ApiManagement/service/sds-api-mgmt-stg/subscriptions/500e642d-76ef-4d82-8741-bf9e9d979705"
        # (10 unchanged attributes hidden)
    }

  # module.apim_subscription_powerplatform[0].azurerm_api_management_subscription.subscription will be updated in-place
  ~ resource "azurerm_api_management_subscription" "subscription" {
      ~ allow_tracing       = false -> true
        id                  = "/subscriptions/74dacd4f-a248-45bb-a2f0-af700dc4cf68/resourceGroups/ss-stg-network-rg/providers/Microsoft.ApiManagement/service/sds-api-mgmt-stg/subscriptions/37f73c17-345b-4c67-81d5-50d582e97227"
        # (10 unchanged attributes hidden)
    }

  # module.apim_subscription_smoketest[0].azurerm_api_management_subscription.subscription will be updated in-place
  ~ resource "azurerm_api_management_subscription" "subscription" {
      ~ allow_tracing       = false -> true
        id                  = "/subscriptions/74dacd4f-a248-45bb-a2f0-af700dc4cf68/resourceGroups/ss-stg-network-rg/providers/Microsoft.ApiManagement/service/sds-api-mgmt-stg/subscriptions/da1d82f9-7187-4cb6-a6dd-b0020311f3bb"
        # (10 unchanged attributes hidden)
    }

  # module.pre-api-exception-alert[0].azurerm_resource_group_template_deployment.custom_alert[0] will be updated in-place
  ~ resource "azurerm_resource_group_template_deployment" "custom_alert" {
        id                       = "/subscriptions/74dacd4f-a248-45bb-a2f0-af700dc4cf68/resourceGroups/pre-stg/providers/Microsoft.Resources/deployments/PRE_API_exception"
        name                     = "PRE_API_exception"
      ~ output_content           = jsonencode({}) -> (known after apply)
      ~ parameters_content       = jsonencode(
          ~ {
              ~ appInsightsQuery         = {
                  ~ value = <<-EOT
                        union exceptions, traces
                        | where severityLevel >= 3
                      - | where cloud_RoleInstance startswith "pre-api-java"
                      + | where cloud_RoleName == "pre-api"
                    EOT
                }
                # (13 unchanged attributes hidden)
            }
        )
        tags                     = {}
      ~ template_content         = jsonencode(
          ~ {
              ~ parameters     = {
                  ~ actionGroupName          = {
                      ~ type = "String" -> "string"
                    }
                  ~ actionGroupRg            = {
                      ~ type = "String" -> "string"
                    }
                  ~ alertDesc                = {
                      ~ type = "String" -> "string"
                    }
                  ~ alertName                = {
                      ~ type = "String" -> "string"
                    }
                  ~ appInsightsName          = {
                      ~ type = "String" -> "string"
                    }
                  ~ appInsightsQuery         = {
                      ~ type = "String" -> "string"
                    }
                  ~ commonTags               = {
                      ~ type = "String" -> "string"
                    }
                  ~ customEmailSubject       = {
                      ~ type = "String" -> "string"
                    }
                  ~ frequencyInMinutes       = {
                      ~ type         = "String" -> "string"
                        # (1 unchanged attribute hidden)
                    }
                  ~ location                 = {
                      ~ type = "String" -> "string"
                    }
                  ~ severityLevel            = {
                      ~ type         = "String" -> "string"
                        # (1 unchanged attribute hidden)
                    }
                  ~ timeWindowInMinutes      = {
                      ~ type         = "String" -> "string"
                        # (1 unchanged attribute hidden)
                    }
                  ~ triggerThreshold         = {
                      ~ type = "String" -> "string"
                    }
                  ~ triggerThresholdOperator = {
                      ~ type          = "String" -> "string"
                        # (2 unchanged attributes hidden)
                    }
                }
                # (4 unchanged attributes hidden)
            }
        )
        # (4 unchanged attributes hidden)
    }

  # module.pre-api-mgmt-api-policy[0].azurerm_api_management_api_policy.api_policy will be created
  + resource "azurerm_api_management_api_policy" "api_policy" {
      + api_management_name = "sds-api-mgmt-stg"
      + api_name            = "pre-api"
      + id                  = (known after apply)
      + resource_group_name = "ss-stg-network-rg"
      + xml_content         = <<-EOT
            <policies>
                <inbound>
                    <base />
                    <set-backend-service base-url="https://pre-api.staging.platform.hmcts.net" />
                    <cors allow-credentials="false">
                        <allowed-origins>
                            <origin>*</origin>
                        </allowed-origins>
                        <allowed-methods>
                            <method>*</method>
                        </allowed-methods>
                        <allowed-headers>
                            <header>*</header>
                        </allowed-headers>
                    </cors>
                </inbound>
                <backend>
                    <base />
                </backend>
                <outbound>
                    <base />
                </outbound>
                <on-error>
                    <base />
                </on-error>
            </policies>
        EOT
    }

  # module.pre_api[0].azurerm_api_management_api.api must be replaced
-/+ resource "azurerm_api_management_api" "api" {
      ~ id                    = "/subscriptions/74dacd4f-a248-45bb-a2f0-af700dc4cf68/resourceGroups/ss-stg-network-rg/providers/Microsoft.ApiManagement/service/sds-api-mgmt-stg/apis/pre-api;rev=91" -> (known after apply)
      ~ is_current            = true -> (known after apply)
      ~ is_online             = false -> (known after apply)
        name                  = "pre-api"
      ~ revision              = "91" -> "89" # forces replacement
      + version               = (known after apply)
      + version_set_id        = (known after apply)
        # (12 unchanged attributes hidden)

      ~ subscription_key_parameter_names (known after apply)
      - subscription_key_parameter_names {
          - header = "Ocp-Apim-Subscription-Key" -> null
          - query  = "subscription-key" -> null
        }

        # (1 unchanged block hidden)
    }

  # module.pre_api[0].azurerm_api_management_product_api.link_to_product[0] will be created
  + resource "azurerm_api_management_product_api" "link_to_product" {
      + api_management_name = "sds-api-mgmt-stg"
      + api_name            = "pre-api"
      + id                  = (known after apply)
      + product_id          = "pre-api"
      + resource_group_name = "ss-stg-network-rg"
    }

Plan: 3 to add, 5 to change, 1 to destroy.

Copy link
Contributor

hmcts-jenkins-cnp bot commented Nov 25, 2024

Plan Result (prod)

⚠️ Resource Deletion will happen

This plan contains resource delete operation. Please check the plan result very carefully!

Plan: 3 to add, 2 to change, 1 to destroy.
  • Create
    • module.pre-api-mgmt-api-policy[0].azurerm_api_management_api_policy.api_policy
    • module.pre_api[0].azurerm_api_management_product_api.link_to_product[0]
  • Update
    • module.pre-api-exception-alert[0].azurerm_resource_group_template_deployment.custom_alert[0]
    • module.pre-api-liveness-alert[0].azurerm_resource_group_template_deployment.custom_alert[0]
  • Replace
    • module.pre_api[0].azurerm_api_management_api.api
Change Result (Click me)
  # module.pre-api-exception-alert[0].azurerm_resource_group_template_deployment.custom_alert[0] will be updated in-place
  ~ resource "azurerm_resource_group_template_deployment" "custom_alert" {
        id                       = "/subscriptions/5ca62022-6aa2-4cee-aaa7-e7536c8d566c/resourceGroups/pre-prod/providers/Microsoft.Resources/deployments/PRE_API_exception"
        name                     = "PRE_API_exception"
      ~ output_content           = jsonencode({}) -> (known after apply)
      ~ parameters_content       = jsonencode(
          ~ {
              ~ appInsightsQuery         = {
                  ~ value = <<-EOT
                        union exceptions, traces
                        | where severityLevel >= 3
                      - | where cloud_RoleInstance startswith "pre-api-java"
                      + | where cloud_RoleName == "pre-api"
                    EOT
                }
                # (13 unchanged attributes hidden)
            }
        )
        tags                     = {}
      ~ template_content         = jsonencode(
          ~ {
              ~ parameters     = {
                  ~ actionGroupName          = {
                      ~ type = "String" -> "string"
                    }
                  ~ actionGroupRg            = {
                      ~ type = "String" -> "string"
                    }
                  ~ alertDesc                = {
                      ~ type = "String" -> "string"
                    }
                  ~ alertName                = {
                      ~ type = "String" -> "string"
                    }
                  ~ appInsightsName          = {
                      ~ type = "String" -> "string"
                    }
                  ~ appInsightsQuery         = {
                      ~ type = "String" -> "string"
                    }
                  ~ commonTags               = {
                      ~ type = "String" -> "string"
                    }
                  ~ customEmailSubject       = {
                      ~ type = "String" -> "string"
                    }
                  ~ frequencyInMinutes       = {
                      ~ type         = "String" -> "string"
                        # (1 unchanged attribute hidden)
                    }
                  ~ location                 = {
                      ~ type = "String" -> "string"
                    }
                  ~ severityLevel            = {
                      ~ type         = "String" -> "string"
                        # (1 unchanged attribute hidden)
                    }
                  ~ timeWindowInMinutes      = {
                      ~ type         = "String" -> "string"
                        # (1 unchanged attribute hidden)
                    }
                  ~ triggerThreshold         = {
                      ~ type = "String" -> "string"
                    }
                  ~ triggerThresholdOperator = {
                      ~ type          = "String" -> "string"
                        # (2 unchanged attributes hidden)
                    }
                }
                # (4 unchanged attributes hidden)
            }
        )
        # (4 unchanged attributes hidden)
    }

  # module.pre-api-liveness-alert[0].azurerm_resource_group_template_deployment.custom_alert[0] will be updated in-place
  ~ resource "azurerm_resource_group_template_deployment" "custom_alert" {
        id                       = "/subscriptions/5ca62022-6aa2-4cee-aaa7-e7536c8d566c/resourceGroups/pre-prod/providers/Microsoft.Resources/deployments/PRE_API_liveness"
        name                     = "PRE_API_liveness"
      ~ output_content           = jsonencode({}) -> (known after apply)
      ~ parameters_content       = jsonencode(
          ~ {
              ~ appInsightsQuery         = {
                  ~ value = <<-EOT
                        requests
                        | where name == "GET /health" and resultCode != "200"
                      - | where cloud_RoleInstance startswith "pre-api-java"
                      + | where cloud_RoleName == "pre-api"
                    EOT
                }
                # (13 unchanged attributes hidden)
            }
        )
        tags                     = {}
      ~ template_content         = jsonencode(
          ~ {
              ~ parameters     = {
                  ~ actionGroupName          = {
                      ~ type = "String" -> "string"
                    }
                  ~ actionGroupRg            = {
                      ~ type = "String" -> "string"
                    }
                  ~ alertDesc                = {
                      ~ type = "String" -> "string"
                    }
                  ~ alertName                = {
                      ~ type = "String" -> "string"
                    }
                  ~ appInsightsName          = {
                      ~ type = "String" -> "string"
                    }
                  ~ appInsightsQuery         = {
                      ~ type = "String" -> "string"
                    }
                  ~ commonTags               = {
                      ~ type = "String" -> "string"
                    }
                  ~ customEmailSubject       = {
                      ~ type = "String" -> "string"
                    }
                  ~ frequencyInMinutes       = {
                      ~ type         = "String" -> "string"
                        # (1 unchanged attribute hidden)
                    }
                  ~ location                 = {
                      ~ type = "String" -> "string"
                    }
                  ~ severityLevel            = {
                      ~ type         = "String" -> "string"
                        # (1 unchanged attribute hidden)
                    }
                  ~ timeWindowInMinutes      = {
                      ~ type         = "String" -> "string"
                        # (1 unchanged attribute hidden)
                    }
                  ~ triggerThreshold         = {
                      ~ type = "String" -> "string"
                    }
                  ~ triggerThresholdOperator = {
                      ~ type          = "String" -> "string"
                        # (2 unchanged attributes hidden)
                    }
                }
                # (4 unchanged attributes hidden)
            }
        )
        # (4 unchanged attributes hidden)
    }

  # module.pre-api-mgmt-api-policy[0].azurerm_api_management_api_policy.api_policy will be created
  + resource "azurerm_api_management_api_policy" "api_policy" {
      + api_management_name = "sds-api-mgmt-prod"
      + api_name            = "pre-api"
      + id                  = (known after apply)
      + resource_group_name = "ss-prod-network-rg"
      + xml_content         = <<-EOT
            <policies>
                <inbound>
                    <base />
                    <set-backend-service base-url="https://pre-api.platform.hmcts.net" />
                    <cors allow-credentials="false">
                        <allowed-origins>
                            <origin>*</origin>
                        </allowed-origins>
                        <allowed-methods>
                            <method>*</method>
                        </allowed-methods>
                        <allowed-headers>
                            <header>*</header>
                        </allowed-headers>
                    </cors>
                </inbound>
                <backend>
                    <base />
                </backend>
                <outbound>
                    <base />
                </outbound>
                <on-error>
                    <base />
                </on-error>
            </policies>
        EOT
    }

  # module.pre_api[0].azurerm_api_management_api.api must be replaced
-/+ resource "azurerm_api_management_api" "api" {
      ~ id                    = "/subscriptions/5ca62022-6aa2-4cee-aaa7-e7536c8d566c/resourceGroups/ss-prod-network-rg/providers/Microsoft.ApiManagement/service/sds-api-mgmt-prod/apis/pre-api;rev=91" -> (known after apply)
      ~ is_current            = true -> (known after apply)
      ~ is_online             = false -> (known after apply)
        name                  = "pre-api"
      ~ revision              = "91" -> "89" # forces replacement
      + version               = (known after apply)
      + version_set_id        = (known after apply)
        # (12 unchanged attributes hidden)

      ~ subscription_key_parameter_names (known after apply)
      - subscription_key_parameter_names {
          - header = "Ocp-Apim-Subscription-Key" -> null
          - query  = "subscription-key" -> null
        }

        # (1 unchanged block hidden)
    }

  # module.pre_api[0].azurerm_api_management_product_api.link_to_product[0] will be created
  + resource "azurerm_api_management_product_api" "link_to_product" {
      + api_management_name = "sds-api-mgmt-prod"
      + api_name            = "pre-api"
      + id                  = (known after apply)
      + product_id          = "pre-api"
      + resource_group_name = "ss-prod-network-rg"
    }

Plan: 3 to add, 2 to change, 1 to destroy.

@hmcts-jenkins-cnp hmcts-jenkins-cnp bot requested a deployment to preview November 25, 2024 10:34 Abandoned
@hmcts-jenkins-cnp hmcts-jenkins-cnp bot requested a deployment to preview November 25, 2024 11:23 Abandoned
@hmcts-jenkins-cnp hmcts-jenkins-cnp bot requested a deployment to preview November 27, 2024 15:03 Abandoned
@hmcts-jenkins-cnp hmcts-jenkins-cnp bot requested a deployment to preview December 3, 2024 13:55 Abandoned
@@ -310,11 +328,23 @@ public List<FfmpegEditInstructionDTO> invertInstructions(List<EditCutInstruction
return invertedInstructions;
}

private String toJson(EditInstructions instructions) {
private <E> String toJson(E instructions) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nice 👌

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor

@jasonpaige jasonpaige left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

just the migration file names to sort as long as it's done before going to master

@lucas-phillips28 lucas-phillips28 changed the base branch from S28-3373/cron-job to S28-3367/edited-recording-notification December 5, 2024 11:29
…it-requests-via-portal

# Conflicts:
#	src/main/java/uk/gov/hmcts/reform/preapi/dto/RecordingDTO.java
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants