namespace App\Http\Controllers;
+use App\DiscordAppCommands\AosrPresetCommand;
use App\Models\AosSeed;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Artisan;
return $seed->toJson();
}
+ public function generate(Request $request) {
+ $validatedData = $request->validate([
+ 'preset' => 'string|required',
+ 'race' => 'boolean',
+ ]);
+ $presetName = $validatedData['preset'];
+ $race = $validatedData['race'] ?? false;
+
+ $preset = AosrPresetCommand::presetByName($presetName);
+ if (!$preset) {
+ abort(404);
+ }
+ $seed = AosSeed::generateSurge($preset['value'], $preset['settings'], $race);
+ Artisan::call('aos:generate '.intval($seed->id));
+
+ $seed = $this->censor($seed->fresh());
+ return $seed->toJson();
+ }
+
+ public function presets() {
+ return array_values(AosrPresetCommand::$presets);
+ }
+
public function retry($hash) {
$seed = AosSeed::where('hash', '=', $hash)->firstOrFail();
Artisan::call('aos:generate '.intval($seed->id));
}
+ $seed = $this->censor($seed->fresh());
return $seed->toJson();
}
+ private function censor(AosSeed $seed) {
+ if ($seed->race) {
+ $seed->makeHidden('seed');
+ }
+ if ($seed->mystery) {
+ $seed->makeHidden('settings');
+ }
+ return $seed;
+ }
+
}