|
@@ -433,6 +433,75 @@ class CharController extends Controller
|
|
|
return $this->_updateAndRespond($quest, $data, 'Quest successfully updated.');
|
|
return $this->_updateAndRespond($quest, $data, 'Quest successfully updated.');
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * Получение письма персонажа по char_id и MailDBKey.
|
|
|
|
|
+ * Возвращает ту же структуру записи, что и GetCharacterData/CharMail.
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param string $char_id
|
|
|
|
|
+ * @param string $mail_id
|
|
|
|
|
+ * @return \Illuminate\Http\JsonResponse
|
|
|
|
|
+ */
|
|
|
|
|
+ public function GetCharMail(string $char_id, string $mail_id)
|
|
|
|
|
+ {
|
|
|
|
|
+ // Проверяем существование персонажа
|
|
|
|
|
+ if (!CharBase::find($char_id)) {
|
|
|
|
|
+ return response()->json(['code' => -2, 'msg' => 'Character not found.'], 404);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // Получаем письмо, принадлежащее персонажу
|
|
|
|
|
+ $mail = CharMail::where('RecverDBKey', $char_id)
|
|
|
|
|
+ ->where('MailDBKey', $mail_id)
|
|
|
|
|
+ ->first();
|
|
|
|
|
+
|
|
|
|
|
+ if (!$mail) {
|
|
|
|
|
+ return response()->json([
|
|
|
|
|
+ 'code' => -3,
|
|
|
|
|
+ 'msg' => 'Mail not found for this character.',
|
|
|
|
|
+ ], 404);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return response()->json([
|
|
|
|
|
+ 'code' => 0,
|
|
|
|
|
+ 'msg' => 'Mail successfully received.',
|
|
|
|
|
+ 'data' => $mail,
|
|
|
|
|
+ ], 200);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * Обновление письма персонажа по char_id и MailDBKey.
|
|
|
|
|
+ * Принимает те же поля, что и UpdateCharacterData/CharMail, защищая ключи владения и PK.
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param \Illuminate\Http\Request $request
|
|
|
|
|
+ * @param string $char_id
|
|
|
|
|
+ * @param string $mail_id
|
|
|
|
|
+ * @return \Illuminate\Http\JsonResponse
|
|
|
|
|
+ */
|
|
|
|
|
+ public function UpdateCharMail(Request $request, string $char_id, string $mail_id)
|
|
|
|
|
+ {
|
|
|
|
|
+ // Проверяем существование персонажа
|
|
|
|
|
+ if (!CharBase::find($char_id)) {
|
|
|
|
|
+ return response()->json(['code' => -2, 'msg' => 'Character not found.'], 404);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // Получаем письмо, принадлежащее персонажу
|
|
|
|
|
+ $mail = CharMail::where('RecverDBKey', $char_id)
|
|
|
|
|
+ ->where('MailDBKey', $mail_id)
|
|
|
|
|
+ ->first();
|
|
|
|
|
+
|
|
|
|
|
+ if (!$mail) {
|
|
|
|
|
+ return response()->json([
|
|
|
|
|
+ 'code' => -3,
|
|
|
|
|
+ 'msg' => 'Mail not found for this character.',
|
|
|
|
|
+ ], 404);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // Защищаем поля связи и первичный ключ
|
|
|
|
|
+ $protected = ['RecverDBKey', 'MailDBKey', 'Owner', 'Account'];
|
|
|
|
|
+ $data = $request->except($protected);
|
|
|
|
|
+
|
|
|
|
|
+ return $this->_updateAndRespond($mail, $data, 'Mail successfully updated.');
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
//------------------------------ ПРИВАТНЫЕ МЕТОДЫ -----------------------------------------
|
|
//------------------------------ ПРИВАТНЫЕ МЕТОДЫ -----------------------------------------
|
|
|
/**
|
|
/**
|
|
|
* Возвращает конфигурацию таблицы или null, если таблица не разрешена.
|
|
* Возвращает конфигурацию таблицы или null, если таблица не разрешена.
|