// ------------------------------------------------------------------------ // ------------------------------------------------------------------------ public void SaveStatement(Statement statement) { // reinit state this.initState(); // post header Dictionary <string, string> postHeader = new Dictionary <string, string>(); postHeader.Add("Content-Type", "application/json"); postHeader.Add("X-Experience-API-Version", this.version.ToString()); postHeader.Add("Authorization", auth); // form data byte[] formBytes = Encoding.UTF8.GetBytes(statement.ToJSON(this.version)); // https://learninglocker.dig-itgames.com/data/xAPI/statements?statementId=58098b7c-3353-4f9c-b812-1bddb08876fd string queryURL = this.endpoint + "statements"; /* * // debug * foreach (string key in postHeader.Keys){ * string val = postHeader[key]; * Debug.Log(key + ": " + val); * } * Debug.Log(statement.ToJSON()); * Debug.Log("Starting WWW: " + queryURL + " FORM:" + Encoding.UTF8.GetString(formBytes)); */ // post via www WWW www = new WWW(queryURL, formBytes, postHeader); StartCoroutine(WaitForRequest(www)); }
public async Task <StatementLRSResponse> SaveStatement(Statement statement) { var r = new StatementLRSResponse(); var req = new MyHTTPRequest(); req.queryParams = new Dictionary <string, string>(); req.resource = "statements"; if (statement.id == null) { req.method = HttpMethod.Post; } else { req.method = HttpMethod.Put; req.queryParams.Add("statementId", statement.id.ToString()); } req.contentType = "application/json"; req.content = Encoding.UTF8.GetBytes(statement.ToJSON(version)); var res = await MakeRequest(req); if (statement.id == null) { if (res.status != HttpStatusCode.OK) { r.success = false; r.httpException = res.ex; r.SetErrMsgFromBytes(res.content, (int)res.status); return(r); } var ids = JArray.Parse(Encoding.UTF8.GetString(res.content, 0, res.content.Length)); statement.id = new Guid((string)ids[0]); } else { if (res.status != HttpStatusCode.NoContent) { r.success = false; r.httpException = res.ex; r.SetErrMsgFromBytes(res.content); return(r); } } r.success = true; r.content = statement; return(r); }
public StatementLRSResponse SaveStatement(Statement statement) { var r = new StatementLRSResponse(); var req = new MyHTTPRequest(); req.queryParams = new Dictionary <String, String>(); req.resource = "statements"; if (statement.id == null) { req.method = "POST"; } else { req.method = "PUT"; req.queryParams.Add("statementId", statement.id.ToString()); } req.contentType = "application/json"; req.content = Encoding.UTF8.GetBytes(statement.ToJSON(version)); var res = MakeSyncRequest(req); // TODO: Blocking if (statement.id == null) { if (res.status != HttpStatusCode.OK) { r.success = false; r.httpException = res.ex; r.SetErrMsgFromBytes(res.content); return(r); } var ids = JArray.Parse(Encoding.UTF8.GetString(res.content)); statement.id = new Guid((String)ids[0]); } else { if (res.status != HttpStatusCode.NoContent) { r.success = false; r.httpException = res.ex; r.SetErrMsgFromBytes(res.content); return(r); } } r.success = true; r.content = statement; return(r); }
public void TestEmptyCtr() { Statement obj = new Statement(); Assert.IsInstanceOf<Statement>(obj); Assert.IsNull(obj.id); Assert.IsNull(obj.actor); Assert.IsNull(obj.verb); Assert.IsNull(obj.target); Assert.IsNull(obj.result); Assert.IsNull(obj.context); Assert.IsNull(obj.version); Assert.IsNull(obj.timestamp); Assert.IsNull(obj.stored); StringAssert.AreEqualIgnoringCase("{\"version\":\"1.0.1\"}", obj.ToJSON()); }
public StatementLRSResponse SaveStatement(Statement statement) { var r = new StatementLRSResponse(); var req = new MyHTTPRequest(); req.queryParams = new Dictionary<String, String>(); req.resource = "statements"; if (statement.id == null) { req.method = "POST"; } else { req.method = "PUT"; req.queryParams.Add("statementId", statement.id.ToString()); } req.contentType = "application/json"; req.content = Encoding.UTF8.GetBytes(statement.ToJSON(version)); var res = MakeSyncRequest(req); if (statement.id == null) { if (res.status != HttpStatusCode.OK) { r.success = false; r.httpException = res.ex; r.SetErrMsgFromBytes(res.content); return r; } var ids = JArray.Parse(Encoding.UTF8.GetString(res.content)); statement.id = new Guid((String)ids[0]); } else { if (res.status != HttpStatusCode.NoContent) { r.success = false; r.httpException = res.ex; r.SetErrMsgFromBytes(res.content); return r; } } r.success = true; r.content = statement; return r; }
public void TestSaveStatementSubStatement() { var statement = new Statement(); statement.Stamp(); statement.actor = agent; statement.verb = verb; statement.target = subStatement; Console.WriteLine(statement.ToJSON(true)); StatementLRSResponse lrsRes = lrs.SaveStatement(statement); Assert.IsTrue(lrsRes.success); Assert.AreEqual(statement, lrsRes.content); }