pleroma-fe/src/services/poll/poll.service.js

36 lines
835 B
JavaScript
Raw Normal View History

2023-03-10 20:16:03 -05:00
import { uniq } from 'lodash'
2026-01-08 17:26:52 +02:00
2026-01-06 16:23:17 +02:00
import * as DateUtils from 'src/services/date_utils/date_utils.js'
2023-03-10 20:16:03 -05:00
const pollFallbackValues = {
pollType: 'single',
options: ['', ''],
expiryAmount: 10,
2026-01-06 16:22:52 +02:00
expiryUnit: 'minutes',
2023-03-10 20:16:03 -05:00
}
const pollFallback = (object, attr) => {
return object[attr] !== undefined ? object[attr] : pollFallbackValues[attr]
}
const pollFormToMasto = (poll) => {
const expiresIn = DateUtils.unitToSeconds(
pollFallback(poll, 'expiryUnit'),
2026-01-06 16:22:52 +02:00
pollFallback(poll, 'expiryAmount'),
2023-03-10 20:16:03 -05:00
)
2026-01-06 16:22:52 +02:00
const options = uniq(
pollFallback(poll, 'options').filter((option) => option !== ''),
)
2023-03-10 20:16:03 -05:00
if (options.length < 2) {
return { errorKey: 'polls.not_enough_options' }
}
return {
options,
multiple: pollFallback(poll, 'pollType') === 'multiple',
2026-01-06 16:22:52 +02:00
expiresIn,
2023-03-10 20:16:03 -05:00
}
}
2026-01-06 16:22:52 +02:00
export { pollFallback, pollFormToMasto }