in internal/langserver/handlers/command/convert_json_command.go [23:77]
func (c ConvertJsonCommand) Handle(ctx context.Context, arguments []json.RawMessage) (interface{}, error) {
params := ParseCommandArgs(arguments)
content, ok := params.GetString("jsoncontent")
if !ok {
return nil, nil
}
telemetrySender, err := lsctx.Telemetry(ctx)
if err != nil {
return nil, err
}
var model map[string]interface{}
err = json.Unmarshal([]byte(content), &model)
if err != nil {
return nil, fmt.Errorf("unable to unmarshal JSON content: %w", err)
}
result := ""
if model["$schema"] != nil {
telemetrySender.SendEvent(ctx, "ConvertJsonToAzapi", map[string]interface{}{
"status": "started",
"kind": "arm-template",
})
result, err = convertARMTemplate(ctx, content, telemetrySender)
if err != nil {
telemetrySender.SendEvent(ctx, "ConvertJsonToAzapi", map[string]interface{}{
"status": "failed",
"kind": "arm-template",
"error": err.Error(),
})
return nil, err
}
} else {
telemetrySender.SendEvent(ctx, "ConvertJsonToAzapi", map[string]interface{}{
"status": "started",
"kind": "resource-json",
})
result, err = convertResourceJson(ctx, content, telemetrySender)
if err != nil {
telemetrySender.SendEvent(ctx, "ConvertJsonToAzapi", map[string]interface{}{
"status": "failed",
"kind": "resource-json",
"error": err.Error(),
})
return nil, err
}
}
response := ConvertJsonResponse{
HCLContent: result,
}
return response, nil
}