mirror of
https://github.com/HeyPuter/puter.git
synced 2026-05-04 00:20:45 +00:00
99d96edd9c
* feat: s3 fs in oss * feat: new endpoints in OSS * fix: name of fs extension * perf: signed uploads * fix: await socket events to align fs events * fix: default bucket names * fix: backend tests * fix: deps * fix: order
53 lines
1.3 KiB
JavaScript
53 lines
1.3 KiB
JavaScript
import { safeHasOwnProperty } from '../lib/objectfn.js';
|
|
import BaseOperation from './BaseOperation.js';
|
|
|
|
export default class extends BaseOperation {
|
|
static allowedForUpdate = [
|
|
'name',
|
|
'parent_uid',
|
|
'user_id',
|
|
'modified',
|
|
'shortcut_to',
|
|
'metadata',
|
|
'thumbnail',
|
|
'size',
|
|
'path',
|
|
];
|
|
|
|
constructor (uuid, entry) {
|
|
super();
|
|
const allowedForUpdate = this.constructor.allowedForUpdate;
|
|
|
|
{
|
|
const sanitized_entry = {};
|
|
for ( const k of allowedForUpdate ) {
|
|
if ( safeHasOwnProperty(entry, k) ) {
|
|
sanitized_entry[k] = entry[k];
|
|
}
|
|
}
|
|
entry = sanitized_entry;
|
|
}
|
|
|
|
this.uuid = uuid;
|
|
this.entry = entry;
|
|
}
|
|
|
|
getStatement () {
|
|
const fields = Object.keys(this.entry);
|
|
const statement = 'UPDATE fsentries SET ' +
|
|
`${fields.map(k => `${k} = ?`).join(', ')} ` +
|
|
'WHERE uuid = ? LIMIT 1';
|
|
const values = fields.map(k => this.entry[k]);
|
|
values.push(this.uuid);
|
|
return { statement, values };
|
|
}
|
|
|
|
apply (answer) {
|
|
if ( ! answer.entry ) {
|
|
answer.is_diff = true;
|
|
answer.entry = {};
|
|
}
|
|
Object.assign(answer.entry, this.entry);
|
|
}
|
|
};
|