Allmine API
Live Stream

Live Stream reminder — mobil

Yayın hatırlatması mobil entegrasyonu

Live Stream Reminder - React Native (RTK Query)

Migration rehberi

Yapılandırma sırası için Migration şablonu. Yeni düzenlemelerde Amaç → Önkoşullar → Endpoint → Request/Response → Hata kodları → Client adımları → İlgili sayfalar bölümlerini tercih edin.

Endpointler

  • POST /api/v1/live-stream/:id/reminder
  • DELETE /api/v1/live-stream/:id/reminder
  • Auth: Authorization: Bearer <JWT>

Kisa Sozlesme

POST body:

{ "minute": 15 }

minute:

  • null veya 0 -> yayin basladiginda
  • 1+ -> yayin oncesi dakika

Set response data:

{
  "streamId": "...",
  "minute": 15,
  "mode": "BEFORE_START",
  "scheduledFor": "2026-03-05T18:45:00.000Z",
  "status": "SCHEDULED"
}

Cancel response data:

{ "streamId": "...", "cancelled": true }

Not: Backend BaseResponseDto<T> dondurur, asil payload data içindedir.

RTK Query (minimal)

import { baseApi } from './baseApi';

type BaseResponseDto<T> = { data: T };

type SetReminderData = {
  streamId: string;
  minute: number;
  mode: 'ON_START' | 'BEFORE_START';
  scheduledFor: string | null;
  status: 'ARMED_ON_START' | 'SCHEDULED' | 'QUEUED_IMMEDIATELY';
};

type CancelReminderData = { streamId: string; cancelled: boolean };

const unwrap = <T>(r: BaseResponseDto<T> | T) =>
  (r && typeof r === 'object' && 'data' in (r as any) ? (r as BaseResponseDto<T>).data : (r as T));

export const liveStreamReminderApi = baseApi.injectEndpoints({
  endpoints: (builder) => ({
    setLiveStreamReminder: builder.mutation<
      SetReminderData,
      { streamId: string; minute?: number | null }
    >({
      query: ({ streamId, minute }) => ({
        url: `/v1/live-stream/${streamId}/reminder`,
        method: 'POST',
        body: { minute },
      }),
      transformResponse: (r: BaseResponseDto<SetReminderData> | SetReminderData) => unwrap(r),
    }),

    cancelLiveStreamReminder: builder.mutation<
      CancelReminderData,
      { streamId: string }
    >({
      query: ({ streamId }) => ({
        url: `/v1/live-stream/${streamId}/reminder`,
        method: 'DELETE',
      }),
      transformResponse: (r: BaseResponseDto<CancelReminderData> | CancelReminderData) => unwrap(r),
    }),
  }),
});

export const {
  useSetLiveStreamReminderMutation,
  useCancelLiveStreamReminderMutation,
} = liveStreamReminderApi;

Ekran Kullanim Notu

  • save: useSetLiveStreamReminderMutation
  • cancel: useCancelLiveStreamReminderMutation
  • status mesaji:
    • ARMED_ON_START
    • SCHEDULED
    • QUEUED_IMMEDIATELY

On this page