Download .zip |
Info | View files (17) | Download .zip | Reputation | Support forum | Blog | Links |
Last Updated | Ratings | Unique User Downloads | Download Rankings | |||||
2017-10-10 (1 year ago) | Not enough user ratings | Total: 68 | All time: 9,447 This week: 279 |
Version | Licenses | PHP version | Categories | |||
hackerearth-api 1.0 | Artistic License, C... | 5 | PHP 5, Emulators |
Description | Author | ||||||||||||||
This class can check code of a given language using Hacker Earth. Innovation Award
|
|
This package is using HackerEarth api to Compile and Run the code.
HackerEarth Code Checker API. Extremely simple REST API. Supports more than a dozen languages. All powered by reliable HackerEarth servers. You can use your own scoring system or build your own online judge.
Run this command in your terminal from your project directory:
composer require ankitjain28may/hackerearth-api
When the download is complete, you have to call this package service in config/app.php
config file. To do that, add this line in app.php
in providers
array:
Ankitjain28may\HackerEarth\HackerEarthServiceProvider::class,
To use facade you have to add this line in app.php
to the aliases
array:
'HackerEarth' => Ankitjain28may\HackerEarth\Facades\HackerEarth::class,
Now run this command in your terminal to publish this package resources:
php artisan vendor:publish --provider="Ankitjain28may\HackerEarth\HackerEarthServiceProvider"
php artisan vendor:publish --tag=migrations
after publishing your config file then open config/hackerearth.php
and add your hackerearth app key:
return [
/*
|--------------------------------------------------------------------------
| HackerEarth API KEY
|--------------------------------------------------------------------------
|
| https://api.hackerearth.com/v3/code/
| https://api.hackerearth.com/v3/code/
|
*/
'api_key' => env('HACKEREARTH_SECRET_KEY', 'CLIENT_SECRET_KEY'),
];
also you can add api key in .env
:
HACKEREARTH_SECRET_KEY = YOUR_HACKER_EARTH_API_KEY
Thats it.
$data = [
"lang" => '',
"source" => '',
"input" => '',
"async" => 0, // default (1 => async req and 0 => sync req)
"callback" => '',
'id' => '',
'time_limit' => 5, // default
'memory_limit' => 262144, // default
]
async = 1
.async = 0
.`
create database [database name]
`
`
mysql -u[user] -p[password] [database name] < vendor\ankitjain28may\hackerearth-api\src\Database\migrate.sql
`
use Ankitjain28may\HackerEarth\HackerEarth;
$config = [
"api_key" => 'hackerearth_app_key',
];
$hackerearth = new HackerEarth($config);
$data = [
"lang" => 'php',
"source" => '<?php echo "hello World!"; ?>'
];
$result = $hackerearth->Compile([$data]);
var_dump($result);
$result = $hackerearth->Run([$data]);
var_dump($result);
// Asynchronous
$data = [
"lang" => 'php',
"source" => '<?php echo "hello World!"; ?>',
"async" => 1,
"callback" => 'http://callback_url',
"id" => 12 // Id from the db where to save or update response
]
$result = $hackerearth->Run([$data]);
vardump($result);
// Response at Callback URL will need to save to DB with reference to the ID, Id returned is encoded using `bin2hex` which can be decoded using `hex2bin`.
### Code Compile
use Ankitjain28may\HackerEarth\Facades\HackerEarth;
use Ankitjain28may\HackerEarth\Models\Output;
//..
//..
$data = [
"lang" => 'php',
"source" => '<?php echo "hello World!"; ?>'
];
$result = HackerEarth::Compile([$data, ..]);
dd($result);
// Asynchronous
$data = [
"lang" => 'php',
"source" => '<?php echo "hello World!"; ?>',
"async" => 1,
"callback" => 'http://callback_url',
"id" => 12 // Id from the db where to save or update response
]
$result = $hackerearth->Compile([$data]);
dd($result);
OR
Output::saveResult(json_decode($result, True)); // Save directly to the DB
// Response at Callback URL will save to DB with reference to the ID
Output::savePayload(json_decode($_POST['payload'], True));
### Code Run
use Ankitjain28may\HackerEarth\Facades\HackerEarth;
use Ankitjain28may\HackerEarth\Models\Output;
//..
//..
$data = [
"lang" => 'php',
"source" => '<?php echo "hello World!"; ?>'
];
$result = HackerEarth::Run([$data, ..]);
dd($result);
// Asynchronous
$data = [
"lang" => 'php',
"source" => '<?php echo "hello World!"; ?>',
"async" => 1,
"callback" => 'http://callback_url',
"id" => 12 // Id from the db where to save or update response
]
$result = $hackerearth->Run([$data]);
dd($result);
OR
Output::saveResult(json_decode($result, True)); // Save directly to the DB
// Response at Callback URL will save to DB with reference to the ID
Output::savePayload(json_decode($_POST['payload'], True));
## Also Compile and Run files by passing realpath of the uploaded file--
use Ankitjain28may\HackerEarth\Facades\HackerEarth;
//..
//..
$data = [
"lang" => 'php',
"source" => realpath("test.txt")
];
$result = HackerEarth::RunFile([$data]);
$result = HackerEarth::CompileFile([$data]);
## Contribute
>Feel free to contribute
>Copyright (c) 2017 Ankit Jain - Released under the MIT License
Files |
File | Role | Description | ||
---|---|---|---|---|
config (1 file) | ||||
src (2 files, 5 directories) | ||||
tests (2 files) | ||||
.travis.yml | Data | Auxiliary data | ||
composer.json | Data | Auxiliary data | ||
composer.lock | Data | Auxiliary data | ||
LICENSE | Lic. | License text | ||
phpunit.xml | Data | Auxiliary data | ||
README.md | Doc. | Documentation |
Files | / | src |
File | Role | Description | ||
---|---|---|---|---|
Code (2 files) | ||||
Database (1 file) | ||||
Facades (1 file) | ||||
migrations (1 file) | ||||
Models (1 file) | ||||
HackerEarth.php | Class | Class source | ||
HackerEarthServiceProvider.php | Class | Class source |
Files | / | src | / | migrations |
File | Role | Description |
---|---|---|
2017_07_10_182418_...h_outputs_table.php | Class | Class source |
Files | / | tests |
File | Role | Description |
---|---|---|
HackerEarthCompileTest.php | Class | Class source |
HackerEarthRunTest.php | Class | Class source |
Version Control | Unique User Downloads | Download Rankings | |||||||||||||||
100% |
|
|
Applications that use this package |
If you know an application of this package, send a message to the author to add a link here.