88 lines
3.3 KiB
MQL5
88 lines
3.3 KiB
MQL5
|
|
//+------------------------------------------------------------------+
|
||
|
|
//| Jobs.mqh |
|
||
|
|
//| Copyright 2025, Niquel Mendoza. |
|
||
|
|
//| https://www.mql5.com/es/users/nique_372 |
|
||
|
|
//+------------------------------------------------------------------+
|
||
|
|
#property copyright "Copyright 2025, Niquel Mendoza."
|
||
|
|
#property link "https://www.mql5.com/es/users/nique_372"
|
||
|
|
#property strict
|
||
|
|
|
||
|
|
//+------------------------------------------------------------------+
|
||
|
|
//| |
|
||
|
|
//+------------------------------------------------------------------+
|
||
|
|
#include "Base.mqh"
|
||
|
|
|
||
|
|
//+------------------------------------------------------------------+
|
||
|
|
//| |
|
||
|
|
//+------------------------------------------------------------------+
|
||
|
|
class CTbpJobs : public CTbpBase
|
||
|
|
{
|
||
|
|
public:
|
||
|
|
CTbpJobs(void) {}
|
||
|
|
~CTbpJobs(void) {}
|
||
|
|
|
||
|
|
//---
|
||
|
|
// Verifica si el software relacionado con un trabajo puede usarse.
|
||
|
|
// Resultado en GetLastJson()
|
||
|
|
bool GetJobSoftwareAccess(const string& user_id, const string& job_id);
|
||
|
|
|
||
|
|
//---
|
||
|
|
// Verifica si un usuario puede acceder a la entrega de un trabajo.
|
||
|
|
// Resultado en GetLastJson()
|
||
|
|
bool CheckJobDeliveryAccess(const string& user_id, const string& job_id);
|
||
|
|
};
|
||
|
|
|
||
|
|
//+------------------------------------------------------------------+
|
||
|
|
//| |
|
||
|
|
//+------------------------------------------------------------------+
|
||
|
|
bool CTbpJobs::GetJobSoftwareAccess(const string& user_id, const string& job_id)
|
||
|
|
{
|
||
|
|
//---
|
||
|
|
string res_headers;
|
||
|
|
char data[], result[];
|
||
|
|
string req_headers = "api-key: " + m_api_key + "\r\n";
|
||
|
|
const string url = StringFormat("%sjobs/?userId=%s&jobId=%s",
|
||
|
|
THE_BOT_PLACE_BASE_URL, user_id, job_id);
|
||
|
|
|
||
|
|
//---
|
||
|
|
const int request = WebRequest("GET", url, req_headers, m_timeout, data, result, res_headers);
|
||
|
|
const string msg = CharArrayToString(result);
|
||
|
|
|
||
|
|
//---
|
||
|
|
if(request != 200)
|
||
|
|
{
|
||
|
|
LogError(StringFormat("Fallo al mandar request, codigo = %d, result:\n%s", request, msg), FUNCION_ACTUAL);
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
|
||
|
|
//---
|
||
|
|
return m_json.Parse(msg);
|
||
|
|
}
|
||
|
|
|
||
|
|
//+------------------------------------------------------------------+
|
||
|
|
//| |
|
||
|
|
//+------------------------------------------------------------------+
|
||
|
|
bool CTbpJobs::CheckJobDeliveryAccess(const string& user_id, const string& job_id)
|
||
|
|
{
|
||
|
|
//---
|
||
|
|
string res_headers;
|
||
|
|
char data[], result[];
|
||
|
|
string req_headers = "api-key: " + m_api_key + "\r\n";
|
||
|
|
const string url = StringFormat("%sjob/%s?userId=%s",
|
||
|
|
THE_BOT_PLACE_BASE_URL, job_id, user_id);
|
||
|
|
|
||
|
|
//---
|
||
|
|
const int request = WebRequest("GET", url, req_headers, m_timeout, data, result, res_headers);
|
||
|
|
const string msg = CharArrayToString(result);
|
||
|
|
|
||
|
|
//---
|
||
|
|
if(request != 200)
|
||
|
|
{
|
||
|
|
LogError(StringFormat("Fallo al mandar request, codigo = %d, result:\n%s", request, msg), FUNCION_ACTUAL);
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
|
||
|
|
//---
|
||
|
|
return m_json.Parse(msg);
|
||
|
|
}
|
||
|
|
//+------------------------------------------------------------------+
|