protected override object SearchObjects(AObjects aObjects) { var request = new Request.PacketSearch(); request.ApiKey = Guid.Parse(Context.CurrentUser.UserName); try { request.Page = Request.Query.page; } catch (Exception) { request.Page = 1; } try { request.Size = Request.Query.size; } catch (Exception) { request.Size = 0; } try { request.MaxResults = Request.Query.maxResults; } catch (Exception) { request.MaxResults = 20; } request.SearchTerm = Request.Query.searchTerm; request.ShowOfflineBots = Request.Query.showOfflineBots; request.Sort = Request.Query.sort; request.SortBy = Request.Query.sortBy; if (string.IsNullOrEmpty(request.SortBy)) { request.SortBy = "Name"; } if (string.IsNullOrEmpty(request.Sort)) { request.Sort = "asc"; } var results = Validate(request); if (results.Count > 0) { return CreateErrorResponseAndUpdateApiKey((from result in results select result.ErrorMessage).Implode(", ")); } return ExecuteSearchRequest(request); }
protected void InitializeDelete(AObjects aObjects, string aPath) { this.RequiresAuthentication(); Delete["/" + aPath + "/{guid:guid}", true] = async(_, ct) => { try { var obj = aObjects.WithGuid(Guid.Parse(_.guid)); if (obj != null) { obj.Parent.Remove(obj); return CreateSuccessResponseAndUpdateApiKey(_.format); } return CreateErrorResponseAndUpdateApiKey(HttpStatusCode.NotFound); } catch (Exception ex) { return CreateErrorResponseAndUpdateApiKey(ex.Message); } }; }
protected void InitializeGetAll(AObjects aObjects, string aPath) { this.RequiresAuthentication(); Get["/" + aPath] = _ => { try { return SearchObjects(aObjects); } catch (Exception ex) { return CreateErrorResponseAndUpdateApiKey(ex.Message); } }; }
protected virtual object SearchObjects(AObjects aObjects) { var objs = Helper.XgObjectsToNancyObjects(aObjects.Children); var result = new Result.Objects { Results = objs, ResultCount = objs.Count() }; return CreateSuccessResponseAndUpdateApiKey(result); }
protected void InitializeGet(AObjects aObjects, string aPath) { this.RequiresAuthentication(); Get["/" + aPath + "/{guid:guid}", true] = async(_, ct) => { try { var obj = aObjects.WithGuid(Guid.Parse(_.guid)); if (obj != null) { return CreateSuccessResponseAndUpdateApiKey(Helper.XgObjectToNancyObject(obj)); } return CreateErrorResponseAndUpdateApiKey(HttpStatusCode.NotFound); } catch (Exception ex) { return CreateErrorResponseAndUpdateApiKey(ex.Message); } }; }