This commit is contained in:
mobin
2026-04-08 07:22:13 +00:00
parent 2adb741dac
commit a6b5f27343
30300 changed files with 134406 additions and 1504 deletions
+147 -12
View File
@@ -1,5 +1,7 @@
<?php
use App\Models\Tasks;
use GuzzleHttp\Client;
use Illuminate\Support\Facades\Route;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Response;
@@ -10,6 +12,10 @@ use App\Models\User;
use Illuminate\Support\Facades\Http;
use \Carbon\Carbon;
use Morilog\Jalali\Jalalian;
use App\Models\Pivot_Tasks;
use App\Http\Controllers\TaskController;
use App\Http\Controllers\FingerprintController;
use function PHPUnit\Framework\returnSelf;
@@ -17,6 +23,9 @@ Route::get('/', function () {
return view('attendance.index');
return view('welcome');
});
Route::post('/task/create', [TaskController::class, 'addTask'])->name('createTask');
Route::get('/ai', function () {
$response = Http::withHeaders([
@@ -117,6 +126,7 @@ Route::post('/pplain', function (Request $request) {
'data' => json_encode($d),
]);
}
function sendbot($chatid, $mssg)
{
@@ -131,6 +141,16 @@ Route::post('/pplain', function (Request $request) {
$data = $request->all();
savedb($data);
// sendbot('115247194', 'before update');
try {
update_tasks($data);
}catch (\Exception $e){
sendbot('115247194', $e->getMessage());
}
// sendbot('115247194', 'after update');
$message = "";
$aclist = [
'updated' => '🔄',
@@ -149,16 +169,15 @@ Route::post('/pplain', function (Request $request) {
$desc = "\nتوضیحات:\nعملیات ({$action}) توسط کاربر ({$prjlead}) انجام شده است.";
}
!empty($data['action']) && $message .= "{$aclist[$data['action']]}\n";
!empty($data['data']['name']) && $message .= "{$data['data']['name']} ";
!empty($data['action']) && $message .= "{$aclist[$data['action']]}\n";
!empty($data['data']['name']) && $message .= "{$data['data']['name']} ";
if (!$data['data']['priority'] == 'none')
!empty($data['data']['priority']) && $message .= "({$data['data']['priority']})";
!empty($data['data']['priority']) && $message .= "({$data['data']['priority']})";
!empty($desc) && $message .= $desc;
!empty($data['data']['updated_at']) && $message .= "\n" . Jalalian::fromCarbon(Carbon::parse($data['data']['updated_at']))->format('Y/m/d')
!empty($data['data']['updated_at']) && $message .= "\n" . Jalalian::fromCarbon(Carbon::parse($data['data']['updated_at']))->format('Y/m/d')
. "\n";
!empty($data['description_text']) && $message .= "\n{$data['description_text']}";
} elseif ($data['event'] == 'issue') {
@@ -168,8 +187,8 @@ Route::post('/pplain', function (Request $request) {
$actor = $data['activity']['actor']['last_name'] ?? "نامشخص";
$oldvalue = $data['activity']['old_value'] ?? "نامشخص";
$newvalue = $data['activity']['new_value'] ?? "نامشخص";
if(( $field=='start_date' || $field == 'target_date' ) && $field != 'نامشخص'){
if(strtotime($field)!= 'false'){
if (($field == 'start_date' || $field == 'target_date') && $field != 'نامشخص') {
if (strtotime($field) != 'false') {
$oldvalue = Jalalian::fromCarbon(Carbon::parse($oldvalue))->format('Y/m/d');
$newvalue = Jalalian::fromCarbon(Carbon::parse($newvalue))->format('Y/m/d');
}
@@ -185,13 +204,13 @@ Route::post('/pplain', function (Request $request) {
!empty($data['data']['start_date']) && $startdate = Jalalian::fromCarbon(Carbon::parse($data['data']['start_date']))->format('Y/m/d');
!empty($data['data']['target_date']) && $enddate = Jalalian::fromCarbon(Carbon::parse($data['data']['target_date']))->format('Y/m/d');
!empty($data['action']) && $message .= "{$aclist[$data['action']]}";
!empty($data['data']['name']) && $message .= "{$data['data']['name']} ";
!empty($data['action']) && $message .= "{$aclist[$data['action']]}";
!empty($data['data']['name']) && $message .= "{$data['data']['name']} ";
if ($data['data']['priority'] != "none") {
$message .= "({$data['data']['priority']})";
}
$message .= "\n" . $desc;
!empty($data['data']['assignees']) && $message .= "\n" . implode(', ', array_column($data['data']['assignees'], 'last_name')) . "\n";
!empty($data['data']['assignees']) && $message .= "\n" . implode(', ', array_column($data['data']['assignees'], 'last_name')) . "\n";
if (!empty($startdate) && !empty($enddate)) {
$message .= "{$startdate} ➡️ {$enddate}";
@@ -203,8 +222,6 @@ Route::post('/pplain', function (Request $request) {
// !empty($data['data']['target_date']) && $message .= "تاریخ اتمام مهلت پروژه: ".Jalalian::fromCarbon(Carbon::parse($data['data']['target_date']))->format('Y/m/d') ."\n";
}
@@ -228,3 +245,121 @@ Route::post('/pplain', function (Request $request) {
return response()->json(['status' => 'ok'], 200);
});
Route::post('/fingerprint/register/options', [FingerprintController::class, 'generateRegisterOptions'])->name('fingerprint.register.options');
Route::post('/fingerprint/register/verify', [FingerprintController::class, 'verifyRegister'])->name('fingerprint.register.verify');
function update_tasks($req)
{
if ($req['action'] == "deleted") {
Pivot_Tasks::where('task_id', $req['data']['task_id'])->delete();
Tasks::where('task_id', $req['data']['task_id'])->delete();
return "deleted";
} else {
$req = $req['data'];
$project_id = $req['project'];
$task_id = $req['id'];
$users = User::all();
$task = Tasks::where('task_id', $task_id)->first();
$client = new Client();
$response = $client->get("https://api.plane.so/api/v1/workspaces/montzar/projects/$project_id/issues/$task_id", [
'headers' => [
'X-API-Key' => 'plane_api_ec378e977ceb4bd1bbd2332855370645',
'Accept' => 'application/json'
]
]);
$data = json_decode($response->getBody(), true);
// $client = new Client();
//
// $res = $client->get("https://api.plane.so/api/workspaces/montzar/projects/$project_id/modules/", [
// 'headers' => [
// 'cookie' => 'session-id=vmc3jbuj391b5reqguhufrf7220dcu8pwceloulwisr1pxfqxbe7k2low9x7647sykt4onlwqdxci0holvqc023lvjac4xgwtst5umzxkl0mfu68xg2b2e3821f59797; '
// ]
// ]);
// $res = json_decode($res->getBody(), true);
if ($task) {
try {
$task->task_id = $data['id'];
$task->name = $data['name'];
$task->description = $data['description'] ?? null;
$task->workspace_slug = "montzar";
$task->assignees = json_encode($data['assignees']) ?? null;
$task->start_date = $data['start_date'] ?? null;
$task->target_date = $data['target_date'] ?? null;
$task->priority = $data['priority'];
$task->description_html = $data['description_html'] ?? null;
$task->completed_at = $data['completed_at'] ?? null;
$task->project = $data['project'];
$task->workspace = $data['workspace'];
$task->state = $data['state'] ?? null;
$task->json = json_encode($data);
$task->created_at = $data['created_at'];
$task->updated_at = $data['updated_at'];
$task->deleted_at = $data['deleted_at'] ?? null;
$task->created_by = $data['created_by'];
$task->updated_by = $data['updated_by'];
$task->deleted_by = $data['deleted_by'] ?? null;
$task->parent = $data['parent'] ?? null;
$task->task_type = !empty($data['parent']) ? 'sub_work_item' : 'work_item';
$task->save();
} catch (\Exception $e) {
}
} else {
try {
$task = new Tasks();
$task->task_id = $data['id'];
$task->name = $data['name'];
$task->description = $data['description'] ?? null;
$task->workspace_slug = "montzar";
$task->assignees = json_encode($data['assignees']) ?? null;
$task->start_date = $data['start_date'] ?? null;
$task->target_date = $data['target_date'] ?? null;
$task->priority = $data['priority'];
$task->description_html = $data['description_html'] ?? null;
$task->completed_at = $data['completed_at'] ?? null;
$task->project = $data['project'];
$task->workspace = $data['workspace'];
$task->state = $data['state'] ?? null;
$task->json = json_encode($data);
$task->created_at = $data['created_at'];
$task->updated_at = $data['updated_at'];
$task->deleted_at = $data['deleted_at'] ?? null;
$task->created_by = $data['created_by'];
$task->updated_by = $data['updated_by'];
$task->deleted_by = $data['deleted_by'] ?? null;
$task->parent = $data['parent'] ?? null;
$task->save();
} catch (\Exception $e) {
}
}
$assigns = $data['assignees'];
$created_by = $data['created_by'];
if (!empty($assigns)) {
foreach ($users as $user) {
if (in_array($user->plain_id, $assigns)) {
Pivot_Tasks::insert([
'task_id' => $data['id'], // یا $task->task_id اگر این همون PK هست
'user_id' => $user->plain_id
]);
}
if (($user->plain_id == $created_by)) {
Pivot_Tasks::insertOrIgnore([
'task_id' => $data['id'], // یا $task->task_id اگر این همون PK هست
'user_id' => $user->plain_id
]);
}
}
}
}
}