+CedarMapHelper for handling cedar map apis
+FirebaseHelper for handling firebase apis
+JalaliDateHelper, NumbersHelper for handling persian date and numbers
+SmsPanelHelper for handling sms panel apis
+UploadHelper for handling file and image uploads
+ResponseHelper, InputHelper for easier api handling using a better pattern
+ControllerGenerator to generate controllers with our pattern
+Vue Generators to generate vue pages / stores / components with our pattern
+Setup vue, vuex, vue router, vuetify and other vue essential packages by default
+Done some other customizes for easier use of Helpers
+New example for Model/Controller/Vue files
+Jwt ready (maybe needed a few configs from this link: https://jwt-auth.readthedocs.io/en/develop/ )
+Data/Domain/Ui Based folder structure and boilerplate for vue
Setup this installer to create your projects a little painless
composer global require aratta-studios/aratta-laravel
Create project using our installer:
aratta-laravel projectName
Or using by composer:
composer create-project --prefer-dist aratta-studios/aratta-laravel-boilerplate ProjectName
cd ProjectName
npm install
php artisan jwt:secret
then you can set db configs, set migrations and so on ...
This command will generate a controller in app/http/controller/api/ folder
php ControllerGenerator.php --name=ControllerName
This command will generate a vue page in resources/js/ui/pages/ folder
And generates a related vuex store in resources/js/store/ folder
With the same name then adds the created store module in the store/index.js
php VuePageGenerator.php --name=pageName
This command will generate a component in resources/js/ui/components/ folder
php VuePageGenerator.php --name=componentName
php artisan serve
npm run watch
default example route for vue:
default example routes for api:
http://localhost:8000/api/v1/example/create-example-user
Body:
{
"field_one":"Hello",
"field_two":"Word"
}
http://localhost:8000/api/v1/example/edit-example-profile
Body:
{
"api_token":"FLH7CMhUiDN54OkjFBxN1CeWnXIgjsJY36Gz3lCy7IEia81MO5lG9UW7efGK",
"field_one":"Hello",
"field_two":"Sajjad"
}
http://localhost:8000/api/v1/example/get-example
Body:
{
"api_token":"FLH7CMhUiDN54OkjFBxN1CeWnXIgjsJY36Gz3lCy7IEia81MO5lG9UW7efGK",
"field_one":"Hello",
"field_two":"Sajjad"
}
http://localhost:8000/api/v1/example/get-examples-list
Body:
{
"api_token":"FLH7CMhUiDN54OkjFBxN1CeWnXIgjsJY36Gz3lCy7IEia81MO5lG9UW7efGK",
"offset":"0"
}
This helper checks for valid input from user
-First parameter is just Request that you receive from controller function.
-Second parameter is an array of request parameters that you want to check.
-Last parameter is a callback function with Response parameter this function will be called when checks are passed.
Import:
use App\Http\Helpers\InputHelper;
Usage:
InputHelper::inputChecker(
$request,
[
$request->field_one,
$request->field_two,
// All fields that you need to check
],
function (Request $request) {
// Input is correct do something
}
);
If you don't need to check any fields:
InputHelper::inputChecker(
$request,
null,
function (Request $request) {
// Do something
}
);
This helper helps you to provide an integrated json response for all apis
-First parameter is error message, if you don't have any errors you can set null value for it.
-Second parameter is Http Response code.
-Last parameter is data that you want send to user. it can be an array or object or even a string.
Import:
use App\Http\Helpers\ResponseHelper;
Usage:
ResponseHelper::jsonResponse(null, Response::HTTP_OK, config('messages.success'))->send();
Sample Output:
{
"errors": null,
"status": 200,
"data": [
{
"id": 2,
"api_token": "FeDsHsoDjJZXd2gxl7c80WxYjobMB0ptzP3FZn5cU2wq4KIR21Y4qtssGoPx",
"field_one": "Hello",
"field_two": "Word",
"created_at": "2019-05-31 12:25:11",
"updated_at": "2019-05-31 12:25:11"
},
{
"id": 1,
"api_token": "FLH7CMhUiDN54OkjFBxN1CeWnXIgjsJY36Gz3lCy7IEia81MO5lG9UW7efGK",
"field_one": "Hello",
"field_two": "Sajjad",
"created_at": "2019-05-31 12:24:43",
"updated_at": "2019-05-31 12:43:58"
}
]
}
Import:
use App\Http\Helpers\CedarMapHelper;
Usage:
$directionsData = CedarMapHelper::getDirectionsData(
(object) ['latitude' => $request->get('start_lat'), 'longitude' => $request->get('start_lng')],
(object) ['latitude' => $request->get('end_lat'), 'longitude' => $request->get('end_lng')]
);
Import:
use App\Http\Helpers\FirebaseHelper;
Usage:
FirebaseHelper::sendFcmNotificationMessage($pushTokenArray, $data, 'Text');
Import:
use App\Http\Helpers\SmsPanelHelper;
Usage:
SmsPanelHelper::sendSms($phoneNumber), $tempCode);