You've already forked joplin
mirror of
https://github.com/laurent22/joplin.git
synced 2025-11-26 22:41:17 +02:00
Converted models and services to TypeScript
This commit is contained in:
40
packages/lib/models/ResourceLocalState.ts
Normal file
40
packages/lib/models/ResourceLocalState.ts
Normal file
@@ -0,0 +1,40 @@
|
||||
import BaseModel from '../BaseModel';
|
||||
import { ResourceLocalStateEntity } from '../services/database/types';
|
||||
const { Database } = require('../database.js');
|
||||
|
||||
export default class ResourceLocalState extends BaseModel {
|
||||
static tableName() {
|
||||
return 'resource_local_states';
|
||||
}
|
||||
|
||||
static modelType() {
|
||||
return BaseModel.TYPE_RESOURCE_LOCAL_STATE;
|
||||
}
|
||||
|
||||
static async byResourceId(resourceId: string) {
|
||||
if (!resourceId) throw new Error('Resource ID not provided'); // Sanity check
|
||||
|
||||
const result = await this.modelSelectOne('SELECT * FROM resource_local_states WHERE resource_id = ?', [resourceId]);
|
||||
|
||||
if (!result) {
|
||||
const defaultRow = this.db().createDefaultRow(this.tableName());
|
||||
delete defaultRow.id;
|
||||
defaultRow.resource_id = resourceId;
|
||||
return defaultRow;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
static async save(o: ResourceLocalStateEntity) {
|
||||
const queries = [{ sql: 'DELETE FROM resource_local_states WHERE resource_id = ?', params: [o.resource_id] }, Database.insertQuery(this.tableName(), o)];
|
||||
|
||||
return this.db().transactionExecBatch(queries);
|
||||
}
|
||||
|
||||
static batchDelete(ids: string[], options: any = null) {
|
||||
options = options ? Object.assign({}, options) : {};
|
||||
options.idFieldName = 'resource_id';
|
||||
return super.batchDelete(ids, options);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user