expiresAt to scheduledAt
Signed-off-by: mattyatea <mattyacocacora0@gmail.com>
This commit is contained in:
parent
c4a8cf3a73
commit
271c872c97
11
packages/backend/migration/1699949373507-schedulenote2.js
Normal file
11
packages/backend/migration/1699949373507-schedulenote2.js
Normal file
|
@ -0,0 +1,11 @@
|
|||
export class Schedulenote21699949373507 {
|
||||
name = 'Schedulenote21699949373507'
|
||||
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(`ALTER TABLE "note_schedule" RENAME COLUMN "expiresAt" TO "scheduledAt"`);
|
||||
}
|
||||
|
||||
async down(queryRunner) {
|
||||
await queryRunner.query(`ALTER TABLE "note_schedule" RENAME COLUMN "scheduledAt" TO "expiresAt"`);
|
||||
}
|
||||
}
|
|
@ -23,5 +23,5 @@ export class MiScheduledNote {
|
|||
public userId: MiUser['id'];
|
||||
|
||||
@Column('timestamp with time zone')
|
||||
public expiresAt: Date;
|
||||
public scheduledAt: Date;
|
||||
}
|
||||
|
|
|
@ -202,7 +202,7 @@ export const paramDef = {
|
|||
type: 'object',
|
||||
nullable: true,
|
||||
properties: {
|
||||
expiresAt: { type: 'integer', nullable: false },
|
||||
scheduledAt: { type: 'integer', nullable: false },
|
||||
},
|
||||
},
|
||||
},
|
||||
|
@ -388,7 +388,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
|
|||
throw new ApiError(meta.errors.rolePermissionDenied);
|
||||
}
|
||||
|
||||
if (!ps.schedule.expiresAt) {
|
||||
if (!ps.schedule.scheduledAt) {
|
||||
throw new ApiError(meta.errors.specifyScheduleDate);
|
||||
}
|
||||
|
||||
|
@ -398,10 +398,10 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
|
|||
id: scheduledNoteId,
|
||||
note: note,
|
||||
userId: me.id,
|
||||
expiresAt: new Date(ps.schedule.expiresAt),
|
||||
scheduledAt: new Date(ps.schedule.scheduledAt),
|
||||
});
|
||||
|
||||
const delay = new Date(ps.schedule.expiresAt).getTime() - Date.now();
|
||||
const delay = new Date(ps.schedule.scheduledAt).getTime() - Date.now();
|
||||
await this.queueService.ScheduleNotePostQueue.add(String(delay), {
|
||||
scheduledNoteId,
|
||||
}, {
|
||||
|
|
|
@ -45,7 +45,7 @@ export const meta = {
|
|||
},
|
||||
},
|
||||
userId: { type: 'string', optional: false, nullable: false },
|
||||
expiresAt: { type: 'string', optional: false, nullable: false },
|
||||
scheduledAt: { type: 'string', optional: false, nullable: false },
|
||||
},
|
||||
},
|
||||
},
|
||||
|
@ -97,14 +97,14 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
|
|||
isSchedule: boolean;
|
||||
};
|
||||
userId: string;
|
||||
expiresAt: string;
|
||||
scheduledAt: string;
|
||||
}[] = scheduleNotes.map((item: any) => {
|
||||
return {
|
||||
...item,
|
||||
note: {
|
||||
...item.note,
|
||||
user: user,
|
||||
createdAt: new Date(item.expiresAt),
|
||||
createdAt: new Date(item.scheduledAt),
|
||||
isSchedule: true,
|
||||
// ↓TODO: NoteのIDに予約投稿IDを入れたくない(本来別ものなため)
|
||||
id: item.id,
|
||||
|
|
|
@ -177,7 +177,7 @@ let poll = $ref<{
|
|||
expiredAfter: string | null;
|
||||
} | null>(null);
|
||||
let schedule = $ref<{
|
||||
expiresAt: string | null;
|
||||
scheduledAt: string | null;
|
||||
}| null>(null);
|
||||
let useCw = $ref(false);
|
||||
let showPreview = $ref(defaultStore.state.showPreview);
|
||||
|
@ -405,7 +405,7 @@ function toggleSchedule() {
|
|||
schedule = null;
|
||||
} else {
|
||||
schedule = {
|
||||
expiresAt: null,
|
||||
scheduledAt: null,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
@ -775,8 +775,8 @@ async function post(ev?: MouseEvent) {
|
|||
}
|
||||
}
|
||||
|
||||
if (postData.schedule?.expiresAt && typeof postData.schedule.expiresAt === 'string') {
|
||||
postData.schedule.expiresAt = parseInt(postData.schedule.expiresAt);
|
||||
if (postData.schedule?.scheduledAt && typeof postData.schedule.scheduledAt === 'string') {
|
||||
postData.schedule.scheduledAt = parseInt(postData.schedule.scheduledAt);
|
||||
}
|
||||
|
||||
let token = undefined;
|
||||
|
@ -935,7 +935,7 @@ function openOtherSettingsMenu(ev: MouseEvent) {
|
|||
icon: 'ti ti-calendar-time',
|
||||
indicate: (schedule != null),
|
||||
action: toggleSchedule,
|
||||
} : undefined, ...(($i.policies?.canScheduleNote) ? [ null, {
|
||||
} : undefined, ...(($i.policies?.canScheduleNote) ? [null, {
|
||||
type: 'button',
|
||||
text: i18n.ts._schedulePost.list,
|
||||
icon: 'ti ti-calendar-event',
|
||||
|
|
|
@ -26,19 +26,19 @@ import { i18n } from '@/i18n.js';
|
|||
|
||||
const props = defineProps<{
|
||||
modelValue: {
|
||||
expiresAt: string;
|
||||
scheduledAt: string;
|
||||
};
|
||||
}>();
|
||||
const emit = defineEmits<{
|
||||
(ev: 'update:modelValue', v: {
|
||||
expiresAt: string;
|
||||
scheduledAt: string;
|
||||
}): void;
|
||||
}>();
|
||||
|
||||
const atDate = ref(formatDateTimeString(addTime(new Date(), 1, 'day'), 'yyyy-MM-dd'));
|
||||
const atTime = ref('00:00');
|
||||
if ( props.modelValue && props.modelValue.expiresAt) {
|
||||
atDate.value = atTime.value = props.modelValue.expiresAt;
|
||||
if ( props.modelValue && props.modelValue.scheduledAt) {
|
||||
atDate.value = atTime.value = props.modelValue.scheduledAt;
|
||||
}
|
||||
|
||||
function get() {
|
||||
|
@ -48,7 +48,7 @@ function get() {
|
|||
|
||||
return {
|
||||
...(
|
||||
props.modelValue ? { expiresAt: calcAt() } : {}
|
||||
props.modelValue ? { scheduledAt: calcAt() } : {}
|
||||
),
|
||||
};
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue