package handlers

import (
	
	
	
	
)

// SetExtensionDb changes specified vault keys from extension
func ( *fiber.Ctx) error {
	 := []string{"target", "new_param", "server_id", "extension_id", "token"}

	for ,  := range  {
		if len(.FormValue()) < 1 {
			return logger.FiberError(fiber.StatusBadRequest, +" parameter is missing")
		}
	}

	,  := liman.GetExtensionJSON(&models.Extension{ID: .FormValue("extension_id")})
	if  != nil {
		return 
	}

	,  := false, false
	for ,  := range ["database"].([]interface{}) {
		 := .(map[string]interface{})

		if ["variable"] != .FormValue("target") {
			continue
		}

		if ["global"] != nil && ["global"].(bool) {
			 = true
		}

		if ["writable"] != nil && ["writable"].(bool) {
			 = true
		}
	}

	if ! {
		return .SendString(.FormValue("new_param"))
	}

	,  := liman.SetExtensionDb(
		.FormValue("new_param"),
		.FormValue("target"),
		.Locals("user_id").(string),
		.FormValue("server_id"),
		,
	)
	if  != nil {
		return 
	}

	return .SendString()
}