api create
This commit is contained in:
@@ -0,0 +1,94 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\APIS\CustomerApi;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\Reports;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
||||
|
||||
|
||||
class DownloadsController extends Controller
|
||||
{
|
||||
//
|
||||
public function storePdfData(Request $request)
|
||||
{
|
||||
$validator = Validator::make($request->all(), [
|
||||
'user_id' => ['required'],
|
||||
'device_xid' => ['required'],
|
||||
'start_date' => ['required'],
|
||||
'end_date' => ['required'],
|
||||
'report_type' => ['required'],
|
||||
'download_status' => ['required'],
|
||||
]);
|
||||
if ($validator->fails()) {
|
||||
return response()->json([
|
||||
'status' => 422,
|
||||
'message' => 'Validation failed',
|
||||
'errors' => $validator->errors()
|
||||
]);
|
||||
}
|
||||
|
||||
$data = Reports::create([
|
||||
'request_time' => Carbon::now(),
|
||||
'user_id' => $request->user_id,
|
||||
'device_xid' => $request->device_xid,
|
||||
'start_date' => $request->start_date,
|
||||
'end_date' => $request->end_date,
|
||||
'report_type' => $request->report_type,
|
||||
'download_status' => $request->download_status,
|
||||
]);
|
||||
|
||||
if ($data) {
|
||||
return response()->json([
|
||||
'status' => 200,
|
||||
'message' => 'Report data saved successfully',
|
||||
'data' => $data
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
public function fetchReport(Request $request)
|
||||
{
|
||||
$userId = Auth::id();
|
||||
$data = Reports::where('user_id', $userId)->whereNull('deleted_at')->get();
|
||||
if($data){
|
||||
return response()->json([
|
||||
'status' => 200,
|
||||
'message' => 'Report data fetch successfully',
|
||||
'data' => $data
|
||||
]);
|
||||
|
||||
}else{
|
||||
return response()->json([
|
||||
'status' => 404,
|
||||
'message' => 'Report data not found',
|
||||
'data' => $data
|
||||
]);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function destroyReport()
|
||||
{
|
||||
$userId = Auth::id();
|
||||
$data = Reports::where('user_id', $userId)->whereNull('deleted_at')->delete();
|
||||
if ($data) {
|
||||
return response()->json([
|
||||
'status' => 200,
|
||||
'message' => 'Report data deleted successfully',
|
||||
'data' => $data
|
||||
]);
|
||||
} else {
|
||||
return response()->json([
|
||||
'status' => 404,
|
||||
'message' => 'Report data not found',
|
||||
'data' => $data
|
||||
]);
|
||||
}
|
||||
}
|
||||
}
|
||||
16
app/Models/Reports.php
Normal file
16
app/Models/Reports.php
Normal file
@@ -0,0 +1,16 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
|
||||
|
||||
class Reports extends Model
|
||||
{
|
||||
use SoftDeletes;
|
||||
//
|
||||
protected $table ="reports";
|
||||
protected $guarded =[];
|
||||
protected $dates = ['deleted_at'];
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::create('reports', function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->timestamp('request_time')->nullable();;
|
||||
$table->string('device_xid');
|
||||
$table->timestamp('start_date')->nullable();;
|
||||
$table->timestamp('end_date')->nullable();;
|
||||
$table->boolean('report_type')->default(false)->comment('Report status: 0 = pdf, 1 = spreadsheet');
|
||||
$table->boolean('download_status')->default(false)->comment('Download status: 0 = failed, 1 = completed');
|
||||
$table->softDeletes();
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::dropIfExists('reports');
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::table('reports', function (Blueprint $table) {
|
||||
//
|
||||
$table->string('user_id')->nullable()->after('request_time'); // Change 'existing_column' to the column after which you want to add the new column
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::table('reports', function (Blueprint $table) {
|
||||
//
|
||||
$table->dropColumn('user_id');
|
||||
|
||||
});
|
||||
}
|
||||
};
|
||||
@@ -64,3 +64,5 @@ Route::post('/update-device-profile-master/{deviceId}', [DeviceProfileMasterCont
|
||||
Route::post('/alarm/create-or-update', [AlarmController::class, 'createOrUpdateAlarm'])->name('alarm.create-or-update');
|
||||
Route::post('/alarm/filter', [AlarmController::class, 'filterAlarm'])->name('alarm.filter');
|
||||
|
||||
//******************************************************* Report API ********************************************************
|
||||
|
||||
|
||||
@@ -8,6 +8,8 @@ use Tymon\JWTAuth\Facades\JWTAuth;
|
||||
use App\Http\Controllers\APIS\CustomerApi\AuthController;
|
||||
use App\Http\Controllers\APIS\CustomerApi\CustomerDeviceInfoController;
|
||||
use App\Http\Controllers\APIS\CustomerApi\TelemetryController;
|
||||
use App\Http\Controllers\APIS\CustomerApi\DownloadsController as CustomerApiDownloadsController;
|
||||
|
||||
|
||||
Route::get('/customerapi', function () {
|
||||
return ('Welcome to admin api routes.');
|
||||
@@ -15,15 +17,17 @@ Route::get('/customerapi', function () {
|
||||
|
||||
|
||||
Route::post('user-login', [AuthController::class, 'login']);
|
||||
Route::get('/customer-device-info',[CustomerDeviceInfoController::class,'customerDeviceInfo']);
|
||||
Route::post('/telemetry-data-asset',[TelemetryController::class,'telemetryDataAsset']);
|
||||
Route::post('/telemetry-data-device',[TelemetryController::class,'telemetryDataDevice']);
|
||||
Route::post('/telemetry-data-device-diagnostic',[TelemetryController::class,'telemePtryDataDeviceDiagnostic']);
|
||||
Route::get('/customer-device-info', [CustomerDeviceInfoController::class, 'customerDeviceInfo']);
|
||||
Route::post('/telemetry-data-asset', [TelemetryController::class, 'telemetryDataAsset']);
|
||||
Route::post('/telemetry-data-device', [TelemetryController::class, 'telemetryDataDevice']);
|
||||
Route::post('/telemetry-data-device-diagnostic', [TelemetryController::class, 'telemePtryDataDeviceDiagnostic']);
|
||||
|
||||
|
||||
|
||||
// Route::post('/user-login', [AuthController::class, 'login']);
|
||||
Route::middleware(['customerApiBasicAuth'])->group(function () {
|
||||
Route::get('/user-assets', [UserAssetLinkController::class, 'index']);
|
||||
|
||||
Route::post('/store/report', [CustomerApiDownloadsController::class, 'storePdfData'])->name('store-report');
|
||||
Route::post('/fetch/report', [CustomerApiDownloadsController::class, 'fetchReport'])->name('fetch-report');
|
||||
Route::post('/destroy/report', [CustomerApiDownloadsController::class, 'destroyReport'])->name('destroy-report');
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user