expiresAt to scheduledAt

Signed-off-by: mattyatea <mattyacocacora0@gmail.com>
This commit is contained in:
mattyatea 2023-11-14 17:27:52 +09:00
parent c4a8cf3a73
commit 271c872c97
No known key found for this signature in database
GPG key ID: 068E54E2C33BEF9A
6 changed files with 29 additions and 18 deletions

View 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"`);
}
}

View file

@ -23,5 +23,5 @@ export class MiScheduledNote {
public userId: MiUser['id'];
@Column('timestamp with time zone')
public expiresAt: Date;
public scheduledAt: Date;
}

View file

@ -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,
}, {

View file

@ -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,

View file

@ -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;

View file

@ -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() } : {}
),
};
}