Simple and easy-to-use Dart wrapper for HackerEarth API which provides endpoints for compiling and running code in several languages.
A simple usage example:
// Import this package
import 'package:hackerearth_api/hackerearth_api.dart';
void main() async {
// Create instance and supply client_secret obtained from https://www.hackerearth.com/api/register/
HackerEarthApiWrapper hackerEarthApiWrapper = HackerEarthApiWrapper(
clientSecret: 'PUT_CLIENT_SECRET',
);
/**
Call makeRequest method and supply following arguments:
compileAndRun:
- If it is true then code will be compiled and run.
- Otherwise code will be compiled. (Default will be false if nothing is supplied)
programmingLanguage:
- Language.C
- Language.CPP
- Language.CPP11
- Language.CLOJURE
- Language.CSHARP
- Language.GO
- Language.JAVA
- Language.JAVASCRIPT
- Language.JAVASCRIPT_NODE
- Language.HASKELL
- Language.OBJECTIVEC
- Language.PASCAL
- Language.PERL
- Language.PHP
- Language.PYTHON
- Language.R
- Language.RUBY
- Language.RUST
- Language.SCALA
sourceCode:
- Add source code in a multiline string
*/
Map<String, dynamic> response = await hackerEarthApiWrapper.makeRequest(
compileAndRun: false,
programmingLanguage: Language.PYTHON,
sourceCode:
'''from itertools import permutations
print("Hello World!")
print(list(permutations('123')))
print(list(map(lambda x: str(x) + ' is a number', range(5))))''',
);
/*
Sample Responses
----------------
1) Successful compilation:
{
async: 0,
compile_status: OK,
web_link: https://code.hackerearth.com/d88c2di,
code_id: d88c2di,
id: d88c2di
}
2) Unsuccessful compilation:
{
async: 0,
compile_status: File "/hackerearth/PYTHON_d077_d572_cdb9_ee8c/s_6ae6_4578_a41d_ecc3.py", line 4 print(list(map(lambda x: is a number,
web_link: https://code.hackerearth.com/0641ffD,
code_id: 0641ffD,
id: 0641ffD
}
3) Successful execution:
{
run_status: {
memory_used: 64,
time_limit: 5,
output_html: Hello World!<br>,
memory_limit: 262144,
time_used: 0.108346,
signal: OTHER,
status_detail: NA,
status: AC,
stderr: ,
output: Hello World!,
async: 0,
request_NOT_OK_reason: ,
request_OK: True
},
compile_status: OK,
web_link: https://code.hackerearth.com/2abc05e,
code_id: 2abc05e
}
4) Unsuccessful execution:
{
run_status: {
status: CE,
status_detail: Correct the compilation/syntax errors.
},
compile_status: File "/hackerearth/PYTHON_2dda_30d1_0ad8_fef2/s_99dd_2250_d952_b026.py", line 4 print(list(map(lambda x: is a number,
web_link: https://code.hackerearth.com/6b9837K,
code_id: 6b9837K
}
*/
print(response);
print(hackerEarthApiWrapper.response); // same as above response variable
/*
1) Successful execution response log with emojis:
💾 Memory Limit: 262144
💾 Memory Used: 64
⏲ Time Limit: 5
⏲ Time Used: 0.108573
✔️ Status: AC
🆗 Compile Status: OK
🔗 Web Link: https://code.hackerearth.com/e288deG
🧾 Output:
----------
Hello World!
[('1', '2', '3'), ('1', '3', '2'), ('2', '1', '3'), ('2', '3', '1'), ('3', '1', '2'), ('3', '2', '1')]
['0 is a number', '1 is a number', '2 is a number', '3 is a number', '4 is a number']
2) Successful execution response log without emojis:
Memory Limit: 262144
Memory Used: 64
Time Limit: 5
Time Used: 0.108573
Status: AC
Compile Status: OK
Web Link: https://code.hackerearth.com/e288deG
Output:
-------
Hello World!
[('1', '2', '3'), ('1', '3', '2'), ('2', '1', '3'), ('2', '3', '1'), ('3', '1', '2'), ('3', '2', '1')]
['0 is a number', '1 is a number', '2 is a number', '3 is a number', '4 is a number']
*/
String prettyLog = hackerEarthApiWrapper.responseLog(withEmoji: true);
print(prettyLog);
}
Please file feature requests and bugs at the issue tracker.