mirror of
				https://github.com/Unleash/unleash.git
				synced 2025-10-27 11:02:16 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			51 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /* eslint camelcase: "off" */
 | |
| 
 | |
| 'use strict';
 | |
| 
 | |
| const TABLE = 'settings';
 | |
| 
 | |
| class SettingStore {
 | |
|     constructor(db, getLogger) {
 | |
|         this.db = db;
 | |
|         this.logger = getLogger('settings-store.js');
 | |
|     }
 | |
| 
 | |
|     async updateRow(name, content) {
 | |
|         return this.db(TABLE)
 | |
|             .where('name', name)
 | |
|             .update({
 | |
|                 content: JSON.stringify(content),
 | |
|             });
 | |
|     }
 | |
| 
 | |
|     async insertNewRow(name, content) {
 | |
|         return this.db(TABLE).insert({ name, content });
 | |
|     }
 | |
| 
 | |
|     async insert(name, content) {
 | |
|         const result = await this.db(TABLE)
 | |
|             .count('*')
 | |
|             .where('name', name)
 | |
|             .first();
 | |
| 
 | |
|         if (Number(result.count) > 0) {
 | |
|             return this.updateRow(name, content);
 | |
|         }
 | |
|         return this.insertNewRow(name, content);
 | |
|     }
 | |
| 
 | |
|     async get(name) {
 | |
|         const result = await this.db
 | |
|             .select()
 | |
|             .from(TABLE)
 | |
|             .where('name', name);
 | |
| 
 | |
|         if (result.length > 0) {
 | |
|             return result[0].content;
 | |
|         }
 | |
|         return undefined;
 | |
|     }
 | |
| }
 | |
| 
 | |
| module.exports = SettingStore;
 |