source: trunk/grails-app/services/AppConfigService.groovy @ 807

Last change on this file since 807 was 234, checked in by gav, 15 years ago

New AppConfig class for storing application configuration settings in the database.
Service class, unit tests, views and controller to suite.

File size: 1.6 KB
Line 
1/**
2 * Provides a service class with methods to interact with AppConfig.
3 * AppConfig stores various application configuration (settings) in the database.
4 */
5class AppConfigService {
6
7    boolean transactional = false
8
9    /**
10    * Set the value of an appConfig.
11    * @param name The name of the appConfig.
12    * @param value Set to this value if specified else defaults to "true".
13    * @returns True if success otherwise false.
14    */
15    public Boolean set(String name, String value = "true") {
16        def appConfig = AppConfig.findByName(name)
17        appConfig ? (appConfig.value = value) : (appConfig = new AppConfig(name: name, value: value))
18        appConfig.save() ? true : false
19    }
20
21    /**
22    * Check if an appConfig exists.
23    * @param name The name of the appConfig.
24    * @returns True if success otherwise false.
25    */
26    public Boolean exists(String name) {
27        AppConfig.findByName(name) ? true : false
28    }
29
30    /**
31    * Get the value of an appConfig.
32    * @param name The name of the appConfig.
33    * @returns The value of the appConfig else false.
34    */
35    def getValue(String name) {
36        def appConfig = AppConfig.findByName(name)
37        appConfig ? appConfig.value : false
38    }
39
40    /**
41    * Delete an appConfig.
42    * @param name The name of the appConfig.
43    * @returns True if success otherwise false.
44    */
45    public Boolean delete(String name) {
46        try {
47            AppConfig.findByName(name).delete(flush:true)
48            return true
49        }
50        catch(e) {
51            log.debug("Could not delete, appConfig may not exist.")
52            return false
53        }
54    }
55
56} // end of class
Note: See TracBrowser for help on using the repository browser.