wikibase-edit
Version:
Edit Wikibase from NodeJS
35 lines • 1.29 kB
JavaScript
import { newError } from '../error.js';
import { hasSpecialSnaktype } from './special_snaktype.js';
export async function createClaim(params, config, API) {
const { id, property, value, qualifiers, references, rank, reconciliation } = params;
const { statementsKey } = config;
if (value == null)
throw newError('missing value', 400, params);
const claim = { rank, qualifiers, references };
if (hasSpecialSnaktype(value)) {
claim.snaktype = value.snaktype;
}
else {
claim.value = value;
}
let summary = params.summary || config.summary;
if (!summary) {
const stringifiedValue = typeof value === 'string' ? value : JSON.stringify(value);
summary = `add ${property} claim: ${stringifiedValue}`;
}
const data = {
id,
[]: {
[]: claim,
},
summary,
baserevid: params.baserevid || config.baserevid,
reconciliation,
};
// Using wbeditentity, as the endpoint is more complete
const { entity, success } = await API.entity.edit(data, config);
const newClaim = entity[statementsKey][property].slice(-1)[0];
// Mimick claim actions responses
return { claim: newClaim, success };
}
//# sourceMappingURL=create.js.map