public async Task <IActionResult> Distinct([FromRoute] DatabaseRouteParameters routeParameters, [FromRoute] string field, [FromBody] string findExpression) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } string distinctResults = await _service.GetDistinctAsync(routeParameters.DatabaseName, routeParameters.CollectionName, field, findExpression); return(Ok(distinctResults)); }
public async Task <IActionResult> CountObjects([FromRoute] DatabaseRouteParameters routeParameters, [FromBody] string countExpression) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var countResults = await _service.CountAsync(routeParameters.DatabaseName, routeParameters.CollectionName, countExpression); return(Ok(countResults)); }
public async Task <IActionResult> SearchObjects([FromQuery] string qs, [FromRoute] DatabaseRouteParameters routeParameters, [FromQuery] FindQueryParameters queryParameters) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var findExpression = Foundation.Sdk.Converters.SearchStringConverter.BuildFindExpressionFromQuery(qs); var findResults = await _service.FindAsync(routeParameters.DatabaseName, routeParameters.CollectionName, findExpression, queryParameters.Start, queryParameters.Limit, queryParameters.SortFieldName, System.ComponentModel.ListSortDirection.Ascending); return(Ok(findResults)); }
public async Task <IActionResult> MultiInsert([FromRoute] DatabaseRouteParameters routeParameters, [FromBody] string payload) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var results = await _repository.InsertManyAsync(routeParameters.DatabaseName, routeParameters.CollectionName, payload); return(Ok(GetInsertedJsonResult(results))); }
public async Task <IActionResult> Aggregate([FromRoute] DatabaseRouteParameters routeParameters, [FromBody] string payload) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var aggregateResults = await _repository.AggregateAsync(routeParameters.DatabaseName, routeParameters.CollectionName, payload); return(Ok(aggregateResults)); }
public async Task <IActionResult> InsertObjectWithNoId([FromRoute] DatabaseRouteParameters routeParameters, [FromBody] string json, [FromQuery] ResponseFormat responseFormat = ResponseFormat.EntireObject) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } string document = await _service.InsertAsync(routeParameters.DatabaseName, routeParameters.CollectionName, null, json); string id = GetObjectId(document); if (responseFormat == ResponseFormat.OnlyId) { document = GetInsertedJsonResult(new string[] { id }).ToString(); } return(CreatedAtAction(nameof(GetObject), new { id = id, db = routeParameters.DatabaseName, collection = routeParameters.CollectionName }, document)); }
public async Task <IActionResult> GetAllObjectsInCollection([FromRoute] DatabaseRouteParameters routeParameters) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var exists = await _service.DoesCollectionExist(routeParameters.DatabaseName, routeParameters.CollectionName); if (!exists) { return(CollectionNotFound(routeParameters.CollectionName)); } var findResults = await _service.GetAllAsync(routeParameters.DatabaseName, routeParameters.CollectionName); return(Ok(findResults)); }