Commit 46b211a8 authored by guillecxb's avatar guillecxb
Browse files

convert to snake case

parent b45b0af9
Loading
Loading
Loading
Loading
Loading
+18 −11
Original line number Diff line number Diff line
@@ -5,6 +5,7 @@ import requests
from config import Config
from db.db import MongoDatabse
from flask import jsonify, current_app
from utils.utils import to_snake_case, convert_dict_keys_to_snake_case


class HelperOperations:
@@ -254,31 +255,37 @@ class HelperOperations:
        """
        Adds a new category of parameters in 'settings'.
        """
        current_app.logger.debug(f"Añadiendo nueva categoría: {category_name} con valores: {category_values}")
        current_app.logger.debug(f"Adding new category: {category_name} with values: {category_values}")

        config_col = self.db.get_col_by_name(self.db.capif_configuration)

        # MongoDB $set para añadir la nueva categoría dentro de settings
        update_query = {"$set": {f"settings.{category_name}": category_values}}
        category_name_snake = to_snake_case(category_name)
        category_values_snake = convert_dict_keys_to_snake_case(category_values)

        update_query = {"$set": {f"settings.{category_name_snake}": category_values_snake}}

        result = config_col.update_one({}, update_query)

        if result.modified_count == 0:
            return jsonify(message=f"No configuration found or category '{category_name}' not added"), 404
            return jsonify(message=f"No configuration found or category '{category_name_snake}' not added"), 404

        return jsonify(message=f"Category '{category_name_snake}' added successfully"), 200

        return jsonify(message=f"Category '{category_name}' added successfully"), 200

    def add_new_config_setting(self, param_path, new_value):
        """Add a new parameter in 'settings'."""
        current_app.logger.debug(f"Adding new configuration setting: {param_path} with value: {new_value}")
        config_col = self.db.get_col_by_name(self.db.capif_configuration)

        update_query = {"$set": {f"settings.{param_path}": new_value}}
        param_path_snake = ".".join(to_snake_case(part) for part in param_path.split("."))

        update_query = {"$set": {f"settings.{param_path_snake}": new_value}}
        result = config_col.update_one({}, update_query)

        if result.modified_count == 0:
            return jsonify(message=f"No configuration found or parameter '{param_path}' not updated"), 404
            return jsonify(message=f"No configuration found or parameter '{param_path_snake}' not updated"), 404

        return jsonify(message=f"Parameter '{param_path_snake}' added successfully"), 200

        return jsonify(message=f"Parameter '{param_path}' added successfully"), 200

+15 −0
Original line number Diff line number Diff line
import re

def to_snake_case(text):
    """
    Convert string to snake case.
    """
    return re.sub(r'\s+', '_', text).lower()

def convert_dict_keys_to_snake_case(data):
    """
    Converts the keys of a dictionary to snake_case.
    """
    if isinstance(data, dict):
        return {to_snake_case(k): convert_dict_keys_to_snake_case(v) for k, v in data.items()}
    return data
+15 −10
Original line number Diff line number Diff line
@@ -7,6 +7,7 @@ from config import Config
from db.db import MongoDatabse
from flask import jsonify, current_app
from flask_jwt_extended import create_access_token
from utils.utils import to_snake_case, convert_dict_keys_to_snake_case


class RegisterOperations:
@@ -137,13 +138,16 @@ class RegisterOperations:
        current_app.logger.debug(f"Adding new category: {category_name} with values: {category_values}")
        config_col = self.db.get_col_by_name(self.db.capif_configuration)
        
        update_query = {"$set": {f"settings.{category_name}": category_values}}
        category_name_snake = to_snake_case(category_name)
        category_values_snake = convert_dict_keys_to_snake_case(category_values)

        update_query = {"$set": {f"settings.{category_name_snake}": category_values_snake}}
        result = config_col.update_one({}, update_query)

        if result.modified_count == 0:
            return jsonify(message=f"No configuration found or category '{category_name}' not added"), 404
            return jsonify(message=f"No configuration found or category '{category_name_snake}' not added"), 404

        return jsonify(message=f"Category '{category_name}' added successfully"), 200
        return jsonify(message=f"Category '{category_name_snake}' added successfully"), 200


    def add_new_config_setting(self, param_path, new_value):
@@ -151,10 +155,11 @@ class RegisterOperations:
        current_app.logger.debug(f"Adding new configuration setting: {param_path} with value: {new_value}")
        config_col = self.db.get_col_by_name(self.db.capif_configuration)
        
        update_query = {"$set": {f"settings.{param_path}": new_value}}
        param_path_snake = ".".join(to_snake_case(part) for part in param_path.split("."))
        update_query = {"$set": {f"settings.{param_path_snake}": new_value}}
        result = config_col.update_one({}, update_query)

        if result.modified_count == 0:
            return jsonify(message=f"No configuration found or parameter '{param_path}' not updated"), 404
            return jsonify(message=f"No configuration found or parameter '{param_path_snake}' not updated"), 404

        return jsonify(message=f"Parameter '{param_path}' added successfully"), 200
        return jsonify(message=f"Parameter '{param_path_snake}' added successfully"), 200
+15 −0
Original line number Diff line number Diff line
import re

def to_snake_case(text):
    """
    Convert string to snake case.
    """
    return re.sub(r'\s+', '_', text).lower()

def convert_dict_keys_to_snake_case(data):
    """
    Converts the keys of a dictionary to snake_case.
    """
    if isinstance(data, dict):
        return {to_snake_case(k): convert_dict_keys_to_snake_case(v) for k, v in data.items()}
    return data