private static void RunCommand() { string endpoint = "core"; string[] auth = _argsParser.Get <string[]>("a"); DataSiftClient datasift = null; if (_argsParser.Contains("u")) { datasift = new DataSiftClient(auth[0], auth[1], baseUrl: _argsParser.Get <string>("u")); } else { datasift = new DataSiftClient(auth[0], auth[1]); } if (_argsParser.Contains("e")) { endpoint = _argsParser.Get <string>("e"); } var command = _argsParser.Get <string>("c").ToLower(); RestAPIResponse response = null; switch (endpoint.ToLower()) { case "core": response = Core(datasift, command); break; case "historics": response = Historics(datasift, command); break; case "preview": response = HistoricsPreview(datasift, command); break; case "source": response = Source(datasift, command); break; case "push": response = Push(datasift, command); break; case "pylon": response = Pylon(datasift, command); break; } WriteResult(response); }
private static RestAPIResponse Historics(DataSiftClient client, string command) { RestAPIResponse response = null; switch (command) { case "prepare": Sample sampleTemp; Sample?sample = null; if (Enum.TryParse(_argsParser.GetParameter <string>("sample"), out sampleTemp)) { sample = sampleTemp; } response = client.Historics.Prepare(_argsParser.GetParameter <string>("hash"), _argsParser.GetParameter <DateTimeOffset>("start"), _argsParser.GetParameter <DateTimeOffset>("end"), _argsParser.GetParameter <string>("name"), _argsParser.GetParameter <string[]>("sources"), sample); break; case "start": response = client.Historics.Start(_argsParser.GetParameter <string>("id")); break; case "stop": response = client.Historics.Stop(_argsParser.GetParameter <string>("id")); break; case "status": response = client.Historics.Status(_argsParser.GetParameter <DateTimeOffset>("start"), _argsParser.GetParameter <DateTimeOffset>("stop"), _argsParser.GetParameter <string[]>("sources")); break; case "update": response = client.Historics.Update(_argsParser.GetParameter <string>("id"), _argsParser.GetParameter <string>("name")); break; case "delete": response = client.Historics.Delete(_argsParser.GetParameter <string>("id")); break; case "get": response = client.Historics.Get(id: _argsParser.GetParameter <string>("id"), max: _argsParser.GetParameter <int?>("max"), page: _argsParser.GetParameter <int?>("page"), withEstimate: _argsParser.GetParameter <bool?>("with_estimate")); break; default: throw new ApplicationException("Unrecognised command: " + command); } return(response); }
public RestAPIResponse Ingest(string endpoint, dynamic data, Method method = Method.POST) { string response = null; RestAPIResponse result = new RestAPIResponse(); string body = APIHelpers.SerializeToJsonLD(data); response = "{\"accepted\":1, \"total_message_bytes\": 1691 }"; result.StatusCode = HttpStatusCode.OK; result.Data = APIHelpers.DeserializeResponse(response); return(result); }
private static RestAPIResponse Source(DataSiftClient client, string command) { RestAPIResponse response = null; switch (command) { case "create": response = client.Source.Create(_argsParser.GetParameter <string>("source_type"), _argsParser.GetParameter <string>("name"), _argsParser.GetParameter <ExpandoObject>("parameters"), _argsParser.GetParameter <List <ExpandoObject> >("resources"), _argsParser.GetParameter <List <ExpandoObject> >("auth")); break; case "update": response = client.Source.Update(_argsParser.GetParameter <string>("id"), _argsParser.GetParameter <string>("source_type"), _argsParser.GetParameter <string>("name"), _argsParser.GetParameter <ExpandoObject>("parameters"), _argsParser.GetParameter <List <ExpandoObject> >("resources"), _argsParser.GetParameter <List <ExpandoObject> >("auth")); break; case "delete": response = client.Source.Delete(_argsParser.GetParameter <string>("id")); break; case "start": response = client.Source.Start(_argsParser.GetParameter <string>("id")); break; case "stop": response = client.Source.Stop(_argsParser.GetParameter <string>("id")); break; case "log": response = client.Source.Log(_argsParser.GetParameter <string>("id"), _argsParser.GetParameter <int?>("page"), _argsParser.GetParameter <int?>("per_page")); break; case "get": response = client.Source.Get(_argsParser.GetParameter <string>("id"), _argsParser.GetParameter <int?>("page"), _argsParser.GetParameter <int?>("per_page"), _argsParser.GetParameter <string>("id")); break; default: throw new ApplicationException("Unrecognised command: " + command); } return(response); }
private static RestAPIResponse Core(DataSiftClient client, string command) { RestAPIResponse response = null; switch (command) { case "validate": response = client.Validate(_argsParser.GetParameter <string>("csdl")); break; case "compile": response = client.Compile(_argsParser.GetParameter <string>("csdl")); break; case "usage": UsagePeriod period; if (Enum.TryParse(_argsParser.GetParameter <string>("period"), out period)) { client.Usage(period); } else { client.Usage(); } break; case "balance": response = client.Balance(); break; case "dpu": response = client.Compile(_argsParser.GetParameter <string>("hash")); break; default: throw new ApplicationException("Unrecognised command: " + command); } return(response); }
private static RestAPIResponse Pylon(DataSiftClient client, string command) { RestAPIResponse response = null; switch (command) { case "validate": response = client.Pylon.Validate(_argsParser.GetParameter <string>("service"), _argsParser.GetParameter <string>("csdl")); break; case "compile": response = client.Pylon.Compile(_argsParser.GetParameter <string>("service"), _argsParser.GetParameter <string>("csdl")); break; case "start": response = client.Pylon.Start(_argsParser.GetParameter <string>("service"), _argsParser.GetParameter <string>("hash"), _argsParser.GetParameter <string>("name")); break; case "stop": response = client.Pylon.Stop(_argsParser.GetParameter <string>("service"), _argsParser.GetParameter <string>("hash")); break; case "get": response = client.Pylon.Get(_argsParser.GetParameter <string>("service"), _argsParser.GetParameter <string>("hash")); break; case "tags": response = client.Pylon.Get(_argsParser.GetParameter <string>("service"), _argsParser.GetParameter <string>("hash")); break; case "analyze": response = client.Pylon.Analyze(_argsParser.GetParameter <string>("service"), _argsParser.GetParameter <string>("hash"), _argsParser.GetParameter <ExpandoObject>("parameters"), _argsParser.GetParameter <string>("filter"), _argsParser.GetParameter <DateTimeOffset?>("start"), _argsParser.GetParameter <DateTimeOffset?>("end")); break; default: throw new ApplicationException("Unrecognised command: " + command); } return(response); }
private static RestAPIResponse HistoricsPreview(DataSiftClient client, string command) { RestAPIResponse response = null; switch (command) { case "create": response = client.HistoricsPreview.Create(_argsParser.GetParameter <string>("hash"), _argsParser.GetParameter <string[]>("sources"), _argsParser.GetParameter <List <HistoricsPreviewParameter> >("parameters"), _argsParser.GetParameter <DateTimeOffset>("start"), _argsParser.GetParameter <DateTimeOffset?>("end")); break; case "get": response = client.HistoricsPreview.Get(_argsParser.GetParameter <string>("id")); break; default: throw new ApplicationException("Unrecognised command: " + command); } return(response); }
private static void WriteResult(RestAPIResponse result) { Console.WriteLine(JsonConvert.SerializeObject(result)); }
private static RestAPIResponse Push(DataSiftClient client, string command) { RestAPIResponse response = null; OrderDirection tmpOrderDir; OrderDirection?orderDir = null; OrderBy tmpOrderBy; OrderBy? orderBy = null; if (Enum.TryParse(_argsParser.GetParameter <string>("order_dir"), out tmpOrderDir)) { orderDir = tmpOrderDir; } if (Enum.TryParse(_argsParser.GetParameter <string>("order_by"), out tmpOrderBy)) { orderBy = tmpOrderBy; } switch (command) { case "validate": response = client.Push.Validate(_argsParser.GetParameter <string>("output_type"), _argsParser.GetParameter <ExpandoObject>("output_params")); break; case "create": PushStatus statusTemp; PushStatus?status = null; if (Enum.TryParse(_argsParser.GetParameter <string>("initial_status"), out statusTemp)) { status = statusTemp; } response = client.Push.Create(_argsParser.GetParameter <string>("name"), _argsParser.GetParameter <string>("output_type"), _argsParser.GetParameter <ExpandoObject>("output_params"), hash: _argsParser.GetParameter <string>("hash"), historicsId: _argsParser.GetParameter <string>("historics_id"), initialStatus: status, start: _argsParser.GetParameter <DateTimeOffset?>("start"), end: _argsParser.GetParameter <DateTimeOffset?>("end")); break; case "update": if (_argsParser.Contains("output_params")) { response = client.Push.Update(_argsParser.GetParameter <string>("id"), _argsParser.GetParameter <ExpandoObject>("output_params"), name: _argsParser.GetParameter <string>("name")); } else { response = client.Push.Update(_argsParser.GetParameter <string>("id"), name: _argsParser.GetParameter <string>("name")); } break; case "pause": response = client.Push.Pause(_argsParser.GetParameter <string>("id")); break; case "resume": response = client.Push.Resume(_argsParser.GetParameter <string>("id")); break; case "delete": response = client.Push.Delete(_argsParser.GetParameter <string>("id")); break; case "stop": response = client.Push.Stop(_argsParser.GetParameter <string>("id")); break; case "log": response = client.Push.Log(_argsParser.GetParameter <string>("id"), _argsParser.GetParameter <int?>("page"), _argsParser.GetParameter <int?>("per_page"), orderDir); break; case "get": response = client.Push.Get(id: _argsParser.GetParameter <string>("id"), hash: _argsParser.GetParameter <string>("hash"), historicsId: _argsParser.GetParameter <string>("historics_id"), page: _argsParser.GetParameter <int?>("page"), perPage: _argsParser.GetParameter <int?>("per_page"), orderBy: orderBy, orderDirection: orderDir, includeFinished: _argsParser.GetParameter <bool?>("include_finished")); break; default: throw new ApplicationException("Unrecognised command: " + command); } return(response); }
public RestAPIResponse Request(string endpoint, dynamic parameters = null, Method method = Method.GET) { string response = null; RestAPIResponse result = new RestAPIResponse(); IDictionary <string, object> prms = null; if (parameters != null) { prms = APIHelpers.ParseParameters(endpoint, parameters); } switch (endpoint) { case "validate": response = MockAPIResponses.Default.Validate; result.StatusCode = HttpStatusCode.OK; break; case "compile": response = MockAPIResponses.Default.Compile; result.StatusCode = HttpStatusCode.OK; break; case "usage": response = MockAPIResponses.Default.Usage; result.StatusCode = HttpStatusCode.OK; break; case "dpu": response = MockAPIResponses.Default.DPU; result.StatusCode = HttpStatusCode.OK; break; case "balance": response = MockAPIResponses.Default.Balance; result.StatusCode = HttpStatusCode.OK; break; case "pull": return(PullRequest(prms)); case "historics/get": if (prms.ContainsKey("id")) { response = MockAPIResponses.Default.HistoricsGetById; } else if (prms.ContainsKey("max")) { response = MockAPIResponses.Default.HistoricsGetMax1; } else if (prms.ContainsKey("with_estimate")) { response = MockAPIResponses.Default.HistoricsGetWithCompletion; } else { response = MockAPIResponses.Default.HistoricsGet; } result.StatusCode = HttpStatusCode.OK; break; case "historics/prepare": response = MockAPIResponses.Default.HistoricsPrepare; result.StatusCode = HttpStatusCode.OK; break; case "historics/start": result.StatusCode = HttpStatusCode.NoContent; break; case "historics/stop": result.StatusCode = HttpStatusCode.NoContent; break; case "historics/pause": result.StatusCode = HttpStatusCode.NoContent; break; case "historics/resume": result.StatusCode = HttpStatusCode.NoContent; break; case "historics/delete": result.StatusCode = HttpStatusCode.NoContent; break; case "historics/status": response = MockAPIResponses.Default.HistoricsStatus; result.StatusCode = HttpStatusCode.OK; break; case "historics/update": result.StatusCode = HttpStatusCode.NoContent; break; case "push/get": if (prms.ContainsKey("id")) { response = MockAPIResponses.Default.PushGetById; } else if (prms.ContainsKey("hash")) { response = MockAPIResponses.Default.PushGetByHash; } else if (prms.ContainsKey("historics_id")) { response = MockAPIResponses.Default.PushGetByHistoricsId; } else if (prms.ContainsKey("page")) { response = MockAPIResponses.Default.PushGetPage; } else if (prms.ContainsKey("per_page")) { response = MockAPIResponses.Default.PushGetPage; } else { response = MockAPIResponses.Default.PushGet; } result.StatusCode = HttpStatusCode.OK; break; case "push/create": response = MockAPIResponses.Default.PushCreate; result.StatusCode = HttpStatusCode.OK; break; case "push/delete": result.StatusCode = HttpStatusCode.NoContent; break; case "push/stop": response = MockAPIResponses.Default.PushStop; result.StatusCode = HttpStatusCode.OK; break; case "push/pause": response = MockAPIResponses.Default.PushPause; result.StatusCode = HttpStatusCode.OK; break; case "push/resume": response = MockAPIResponses.Default.PushResume; result.StatusCode = HttpStatusCode.OK; break; case "push/log": if (prms.ContainsKey("id")) { response = MockAPIResponses.Default.PushLogById; } else if (prms.ContainsKey("page")) { response = MockAPIResponses.Default.PushLogPage; } else if (prms.ContainsKey("per_page")) { response = MockAPIResponses.Default.PushLogPage; } else { response = MockAPIResponses.Default.PushLog; } result.StatusCode = HttpStatusCode.OK; break; case "push/update": response = MockAPIResponses.Default.PushUpdate; result.StatusCode = HttpStatusCode.OK; break; case "preview/get": var id = (string)prms.First(p => p.Key == "id").Value; switch (id) { case "e25d533cf287ec44fe66e8362running": response = MockAPIResponses.Default.HistoricsPreviewRunning; result.StatusCode = HttpStatusCode.Accepted; break; case "e25d533cf287ec44fe66e8362finished": response = MockAPIResponses.Default.HistoricsPreviewFinished; result.StatusCode = HttpStatusCode.OK; break; } break; case "preview/create": response = MockAPIResponses.Default.HistoricsPreviewCreate; result.StatusCode = HttpStatusCode.Accepted; break; case "source/get": if (prms.ContainsKey("id")) { response = MockAPIResponses.Default.SourceGetById; } else if (prms.ContainsKey("page")) { response = MockAPIResponses.Default.SourceGetPage; } else if (prms.ContainsKey("per_page")) { response = MockAPIResponses.Default.SourceGetPage; } else { response = MockAPIResponses.Default.SourceGet; } result.StatusCode = HttpStatusCode.OK; break; case "source/create": response = MockAPIResponses.Default.SourceCreate; result.StatusCode = HttpStatusCode.Created; break; case "source/delete": result.StatusCode = HttpStatusCode.NoContent; break; case "source/start": response = MockAPIResponses.Default.SourceStart; result.StatusCode = HttpStatusCode.OK; break; case "source/stop": response = MockAPIResponses.Default.SourceStop; result.StatusCode = HttpStatusCode.OK; break; case "source/update": response = MockAPIResponses.Default.SourceUpdate; result.StatusCode = HttpStatusCode.Accepted; break; case "source/log": if (prms.ContainsKey("page")) { response = MockAPIResponses.Default.SourceLogPage; } else if (prms.ContainsKey("per_page")) { response = MockAPIResponses.Default.SourceLogPage; } else { response = MockAPIResponses.Default.SourceLog; } result.StatusCode = HttpStatusCode.OK; break; case "source/resource/add": response = MockAPIResponses.Default.SourceResourceAdd; result.StatusCode = HttpStatusCode.OK; break; case "source/resource/remove": response = MockAPIResponses.Default.SourceResourceRemove; result.StatusCode = HttpStatusCode.OK; break; case "source/auth/add": response = MockAPIResponses.Default.SourceAuthAdd; result.StatusCode = HttpStatusCode.OK; break; case "source/auth/remove": response = MockAPIResponses.Default.SourceAuthRemove; result.StatusCode = HttpStatusCode.OK; break; case "pylon/facebook/get": if (prms.ContainsKey("id")) { response = PylonAPIResponses.Default.GetOne; } else { response = PylonAPIResponses.Default.Get; } result.StatusCode = HttpStatusCode.OK; break; case "pylon/facebook/validate": response = PylonAPIResponses.Default.Validate; result.StatusCode = HttpStatusCode.OK; break; case "pylon/facebook/compile": response = PylonAPIResponses.Default.Compile; result.StatusCode = HttpStatusCode.OK; break; case "pylon/facebook/start": response = PylonAPIResponses.Default.Start; result.StatusCode = HttpStatusCode.OK; break; case "pylon/facebook/stop": result.StatusCode = HttpStatusCode.NoContent; break; case "pylon/facebook/update": result.StatusCode = HttpStatusCode.NoContent; break; case "pylon/facebook/analyze": var analyze_id = (string)prms.First(p => p.Key == "id").Value; if (analyze_id.IndexOf("nested") != -1) { response = PylonAPIResponses.Default.AnalyzeNested; result.StatusCode = HttpStatusCode.OK; } else { response = PylonAPIResponses.Default.Analyze; result.StatusCode = HttpStatusCode.OK; } break; case "pylon/facebook/tags": response = PylonAPIResponses.Default.Tags; result.StatusCode = HttpStatusCode.OK; break; case "pylon/facebook/sample": response = PylonAPIResponses.Default.Sample; result.StatusCode = HttpStatusCode.OK; break; case "pylon/" + Pylon.Task.VALID_SERVICE + "/task": if (method == Method.POST) { response = Pylon.TaskAPIResponses.Default.Create; result.StatusCode = HttpStatusCode.Created; } break; case "pylon/" + Pylon.Task.VALID_SERVICE + "/task/" + Pylon.Task.VALID_TYPE: if (method == Method.GET) { response = Pylon.TaskAPIResponses.Default.GetAll; result.StatusCode = HttpStatusCode.OK; } break; case "pylon/" + Pylon.Task.VALID_SERVICE + "/task/" + Pylon.Task.VALID_TYPE + "/" + Pylon.Task.VALID_TASK_ID: switch (method) { case Method.GET: response = Pylon.TaskAPIResponses.Default.GetOne; result.StatusCode = HttpStatusCode.OK; break; } break; case "pylon/" + Pylon.Reference.VALID_SERVICE + "/reference": if (method == Method.GET) { if (prms.ContainsKey("per_page") || prms.ContainsKey("page")) { response = Pylon.ReferenceDataAPIResponses.Default.GetAllSmallPage; } else { response = Pylon.ReferenceDataAPIResponses.Default.GetAll; } result.StatusCode = HttpStatusCode.OK; } break; case "pylon/" + Pylon.Reference.VALID_SERVICE + "/reference/" + Pylon.Reference.VALID_SLUG: if (method == Method.GET) { response = Pylon.ReferenceDataAPIResponses.Default.Functions; result.StatusCode = HttpStatusCode.OK; } break; case "account/usage": response = AccountAPIResponses.Default.Account_Usage; result.StatusCode = HttpStatusCode.OK; break; case "account/identity": switch (method) { case Method.POST: response = AccountAPIResponses.Default.Identity_Create; result.StatusCode = HttpStatusCode.Created; break; case Method.GET: if (prms.ContainsKey("label")) { response = AccountAPIResponses.Default.Identity_Get_Label; } else if (prms.ContainsKey("page") || prms.ContainsKey("per_page")) { response = AccountAPIResponses.Default.Identity_Get_Page; } else { response = AccountAPIResponses.Default.Identity_Get; } result.StatusCode = HttpStatusCode.OK; break; } break; case "account/identity/" + Account.Identity.VALID_ID: switch (method) { case Method.GET: response = AccountAPIResponses.Default.Identity_Get_Id; result.StatusCode = HttpStatusCode.OK; break; case Method.PUT: response = AccountAPIResponses.Default.Identity_Update; result.StatusCode = HttpStatusCode.OK; break; case Method.DELETE: result.StatusCode = HttpStatusCode.NoContent; break; } break; case "account/identity/" + Account.Token.VALID_IDENTITY + "/token": switch (method) { case Method.POST: response = AccountAPIResponses.Default.Token_Create; result.StatusCode = HttpStatusCode.Created; break; case Method.GET: if (prms.ContainsKey("service")) { response = AccountAPIResponses.Default.Token_GetAll; } else if (prms.ContainsKey("page") || prms.ContainsKey("per_page")) { response = AccountAPIResponses.Default.Token_GetAll; } else { response = AccountAPIResponses.Default.Token_GetAll; } result.StatusCode = HttpStatusCode.OK; break; } break; case "account/identity/" + Account.Token.VALID_IDENTITY + "/token/" + Account.Token.VALID_SERVICE: switch (method) { case Method.GET: response = AccountAPIResponses.Default.Token_GetAll; result.StatusCode = HttpStatusCode.OK; break; case Method.PUT: response = AccountAPIResponses.Default.Token_Update; result.StatusCode = HttpStatusCode.OK; break; case Method.DELETE: result.StatusCode = HttpStatusCode.NoContent; break; } break; case "account/identity/" + Account.Limit.VALID_IDENTITY + "/limit": switch (method) { case Method.POST: response = AccountAPIResponses.Default.Limit_Create; result.StatusCode = HttpStatusCode.Created; break; } break; case "account/identity/" + Account.Limit.VALID_IDENTITY + "/limit/" + Account.Token.VALID_SERVICE: switch (method) { case Method.GET: response = AccountAPIResponses.Default.Limit_GetByIdentityAndService; result.StatusCode = HttpStatusCode.OK; break; case Method.PUT: response = AccountAPIResponses.Default.Limit_Update; result.StatusCode = HttpStatusCode.OK; break; case Method.DELETE: result.StatusCode = HttpStatusCode.NoContent; break; } break; case "account/identity/limit/" + Account.Token.VALID_SERVICE: switch (method) { case Method.GET: response = AccountAPIResponses.Default.Limit_AllByService; result.StatusCode = HttpStatusCode.OK; break; } break; } if (response != null) { result.Data = APIHelpers.DeserializeResponse(response); } return(result); }