Skip to content

Commit 32d3506

Browse files
committed
Inriver Fetch Data
1 parent 5b7ff12 commit 32d3506

File tree

15 files changed

+191
-110
lines changed

15 files changed

+191
-110
lines changed

src/Umbraco.Cms.Integrations.PIM.Inriver/App_Plugins/UmbracoCms.Integrations/PIM/Inriver/js/entitypicker.controller.js

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -51,23 +51,23 @@
5151
displayFields: $scope.model.config.configuration.displayFieldTypeIds
5252
});
5353

54-
getEntitySummary(entityId);
54+
//getEntitySummary(entityId);
5555
}
5656

5757
vm.removeEntity = function () {
5858
$scope.model.value = null;
5959
vm.selectedEntity = null;
6060
}
6161

62-
function getEntitySummary(entityId) {
63-
umbracoCmsIntegrationsPimInriverResource.getEntitySummary(entityId).then(function (response) {
64-
if (response.success) {
65-
vm.selectedEntity = response.data;
62+
//function getEntitySummary(entityId) {
63+
// umbracoCmsIntegrationsPimInriverResource.getEntitySummary(entityId).then(function (response) {
64+
// if (response.success) {
65+
// vm.selectedEntity = response.data;
6666

67-
vm.selectedEntity.detail = $scope.model.config.configuration.displayFieldTypeIds.join(",");
68-
}
69-
});
70-
}
67+
// vm.selectedEntity.detail = $scope.model.config.configuration.displayFieldTypeIds.join(",");
68+
// }
69+
// });
70+
//}
7171

7272
}
7373

src/Umbraco.Cms.Integrations.PIM.Inriver/App_Plugins/UmbracoCms.Integrations/PIM/Inriver/js/entitypickereditor.controller.js

Lines changed: 33 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -5,28 +5,41 @@
55
vm.loading = false;
66
vm.entities = [];
77

8-
query($scope.model.configuration.entityType);
8+
vm.pagination = {
9+
pageNumber: 1,
10+
itemsPerPage: 3,
11+
totalPages: 1
12+
};
13+
14+
query();
15+
16+
function query() {
17+
18+
var entityTypeId = $scope.model.configuration.entityType;
19+
var fieldTypeIds = $scope.model.configuration.displayFieldTypeIds.join(',');
920

10-
function query(entityTypeId) {
1121
vm.loading = true;
12-
umbracoCmsIntegrationsPimInriverResource.query(entityTypeId).then(function (response) {
13-
if (response.success) {
14-
vm.entities = [];
15-
for (var i = 0; i < response.data.entityIds.length; i++) {
16-
umbracoCmsIntegrationsPimInriverResource.getEntitySummary(response.data.entityIds[i]).then(function (summaryResponse) {
17-
var entity = {
18-
id: summaryResponse.data.id,
19-
displayName: summaryResponse.data.displayName,
20-
description: summaryResponse.data.description,
21-
displayFields: summaryResponse.data.fields.filter(obj => {
22-
var index = $scope.model.configuration.displayFieldTypeIds.indexOf(obj.fieldTypeId);
23-
if (index > -1) return obj;
24-
})
25-
};
26-
vm.entities.push(entity);
27-
});
28-
}
29-
}
22+
umbracoCmsIntegrationsPimInriverResource.query(entityTypeId, fieldTypeIds).then(function (response) {
23+
24+
console.log(response);
25+
26+
//if (response.success) {
27+
// let data = [];
28+
// for (var i = 0; i < response.data.entityIds.length; i++) {
29+
// umbracoCmsIntegrationsPimInriverResource.getEntitySummary(response.data.entityIds[i]).then(function (summaryResponse) {
30+
// var entity = {
31+
// id: summaryResponse.data.id,
32+
// displayName: summaryResponse.data.displayName,
33+
// description: summaryResponse.data.description,
34+
// displayFields: summaryResponse.data.fields.filter(obj => {
35+
// var index = $scope.model.configuration.displayFieldTypeIds.indexOf(obj.fieldTypeId);
36+
// if (index > -1) return obj;
37+
// })
38+
// };
39+
// //vm.entities.push(entity);
40+
// });
41+
// }
42+
//}
3043

3144
vm.loading = false;
3245
});

src/Umbraco.Cms.Integrations.PIM.Inriver/App_Plugins/UmbracoCms.Integrations/PIM/Inriver/js/inriver.resource.js

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,19 +13,16 @@
1313
return umbRequestHelper.resourcePromise(
1414
$http.get(`${apiEndpoint}/GetEntityTypes`), "Failed to access resource.")
1515
},
16-
getEntitySummary: function (id) {
17-
return umbRequestHelper.resourcePromise(
18-
$http.get(`${apiEndpoint}/GetEntitySummary?id=${id}`), "Failed to access resource.")
19-
},
20-
getEntityFieldValues: function (id, fieldTypeIds) {
21-
return umbRequestHelper.resourcePromise(
22-
$http.get(`${apiEndpoint}/GetEntitySummary?id=${id}&fieldTypeIds=${fieldTypeIds}`), "Failed to access resource.")
23-
},
24-
query: function (entityTypeId) {
16+
query: function (entityTypeId, fieldTypeIds) {
2517
return umbRequestHelper.resourcePromise(
2618
$http.post(`${apiEndpoint}/Query`, {
27-
entityTypeId: entityTypeId
19+
entityTypeId: entityTypeId,
20+
fieldTypeIds: fieldTypeIds
2821
}), "Failed to access resource.")
22+
},
23+
fetchData: function (request) {
24+
return umbRequestHelper.resourcePromise(
25+
$http.post(`${apiEndpoint}/FetchData`, request), "Failed to access resource.")
2926
}
3027
};
3128
});

src/Umbraco.Cms.Integrations.PIM.Inriver/App_Plugins/UmbracoCms.Integrations/PIM/Inriver/views/entitypickereditor.html

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@
22
<umb-load-indicator ng-if="vm.loading">
33
</umb-load-indicator>
44
<uui-box headline="{{model.title}}" class="inriver-container">
5-
<div style="width:60%">
5+
<uui-scroll-container style="width:100%">
66
<uui-form>
77
<uui-form-layout-item ng-if="vm.entities.length > 0">
8+
89
<uui-table class="uui-text">
910
<uui-table-column style="width: 120px !important"></uui-table-column>
1011
<uui-table-head>
@@ -14,14 +15,18 @@
1415
</uui-table-head>
1516

1617
<uui-table-row ng-repeat="entity in vm.entities" selectable ng-on-selected="vm.save(entity.id)">
17-
<uui-table-cell style="width:30%;">{{entity.displayName}}</uui-table-cell>
18+
<uui-table-cell>{{entity.displayName}}</uui-table-cell>
1819
<uui-table-cell>{{entity.description}}</uui-table-cell>
19-
<uui-table-cell ng-repeat="displayField in entity.displayFields">{{displayField.value}}</uui-table-cell>
20+
<uui-table-cell ng-repeat="displayField in entity.displayFields">
21+
{{displayField.value | date : "dd.MM.y HH:mm"}}
22+
</uui-table-cell>
2023
</uui-table-row>
2124
</uui-table>
25+
{{vm.pagination.totalPages}}
26+
<uui-pagination ng-on-change="alert('aaa')" total={{vm.pagination.totalPages}}></uui-pagination>
2227
</uui-form-layout-item>
2328
</uui-form>
24-
</div>
29+
</uui-scroll-container>
2530
</uui-box>
2631
<umb-editor-footer>
2732
<umb-editor-footer-content-right>

src/Umbraco.Cms.Integrations.PIM.Inriver/Constants.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,7 @@ public class Constants
88
public const string SettingsPath = "Umbraco:Cms:Integrations:PIM:Inriver:Settings";
99

1010
public const string InriverClient = "InriverClient";
11+
12+
public const string InriverFetchClient = "InriverFetchClient";
1113
}
1214
}

src/Umbraco.Cms.Integrations.PIM.Inriver/Controllers/EntityController.cs

Lines changed: 42 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -32,39 +32,61 @@ public EntityController(IOptions<InriverSettings> options, IInriverService inriv
3232
[HttpGet]
3333
public async Task<IActionResult> GetEntityTypes()
3434
{
35-
var results = await _inriverService.GetEntityTypes();
35+
var result = await _inriverService.GetEntityTypes();
3636

37-
return new JsonResult(results);
38-
}
39-
40-
[HttpGet]
41-
public async Task<IActionResult> GetEntitySummary(int id)
42-
{
43-
var results = await _inriverService.GetEntitySummary(id);
44-
if(results.Success)
45-
{
46-
var fields = await _inriverService.GetEntityFieldValues(id);
47-
if(fields.Success)
48-
{
49-
results.Data.Fields = fields.Data;
50-
}
51-
}
52-
53-
return new JsonResult(results);
37+
return new JsonResult(result);
5438
}
5539

5640
[HttpPost]
5741
public async Task<IActionResult> Query([FromBody] QueryRequest request)
5842
{
59-
var results = await _inriverService.Query(new QueryRequest
43+
var x = await _inriverService.FetchData(new FetchDataRequest
44+
{
45+
EntityIds = new int[] { 7,8,9},
46+
FieldTypeIds = "TaskName,TaskDescription"
47+
});
48+
49+
var result = await _inriverService.Query(new QueryRequest
6050
{
6151
SystemCriteria = new List<Criterion>
6252
{
6353
new Criterion(request.EntityTypeId)
6454
}
6555
});
6656

67-
return new JsonResult(results);
57+
var dataResult = await _inriverService.FetchData(new FetchDataRequest
58+
{
59+
EntityIds = result.Data.EntityIds,
60+
FieldTypeIds = request.FieldTypeIds
61+
});
62+
63+
return new JsonResult(result);
6864
}
65+
66+
[HttpPost]
67+
public async Task<IActionResult> FetchData([FromBody] FetchDataRequest request)
68+
{
69+
var result = await _inriverService.FetchData(request);
70+
71+
return new JsonResult(result);
72+
}
73+
74+
//[HttpGet]
75+
//public async Task<IActionResult> GetEntitySummary(int id)
76+
//{
77+
// var results = await _inriverService.GetEntitySummary(id);
78+
// if(results.Success)
79+
// {
80+
// var fields = await _inriverService.GetEntityFieldValues(id);
81+
// if(fields.Success)
82+
// {
83+
// results.Data.Fields = fields.Data;
84+
// }
85+
// }
86+
87+
// return new JsonResult(results);
88+
//}
89+
90+
6991
}
7092
}

src/Umbraco.Cms.Integrations.PIM.Inriver/Editors/EntityPickerValueConverter.cs

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -30,32 +30,34 @@ public override object ConvertSourceToIntermediate(IPublishedElement owner, IPub
3030
return null;
3131
}
3232

33+
var vm = new InriverEntityViewModel();
34+
3335
var node = JsonNode.Parse(source.ToString());
3436

3537
int entityId = (int) node["entityId"];
3638

3739
var displayFields = node["displayFields"] as JsonArray;
3840

39-
var entitySummary = _inriverService.GetEntitySummary(entityId).ConfigureAwait(false).GetAwaiter().GetResult();
41+
//var entitySummary = _inriverService.GetEntitySummary(entityId).ConfigureAwait(false).GetAwaiter().GetResult();
4042

41-
if (entitySummary.Failure) return null;
43+
//if (entitySummary.Failure) return null;
4244

43-
var vm = new InriverEntityViewModel
44-
{
45-
DisplayName = entitySummary.Data.DisplayName,
46-
DisplayDescription = entitySummary.Data.Description
47-
};
45+
//var vm = new InriverEntityViewModel
46+
//{
47+
// DisplayName = entitySummary.Data.DisplayName,
48+
// DisplayDescription = entitySummary.Data.Description
49+
//};
4850

49-
var entityFieldValues = _inriverService.GetEntityFieldValues(entityId)
50-
.ConfigureAwait(false).GetAwaiter().GetResult();
51-
if (entityFieldValues.Failure) return vm;
51+
//var entityFieldValues = _inriverService.GetEntityFieldValues(entityId)
52+
// .ConfigureAwait(false).GetAwaiter().GetResult();
53+
//if (entityFieldValues.Failure) return vm;
5254

53-
foreach(var displayField in displayFields)
54-
{
55-
var field = entityFieldValues.Data.First(p => p.FieldTypeId == displayField.GetValue<string>());
55+
//foreach(var displayField in displayFields)
56+
//{
57+
// var field = entityFieldValues.Data.First(p => p.FieldTypeId == displayField.GetValue<string>());
5658

57-
vm.Fields.Add(field.FieldTypeId, field.Value);
58-
}
59+
// vm.Fields.Add(field.FieldTypeId, field.Value);
60+
//}
5961

6062
return vm;
6163
}

src/Umbraco.Cms.Integrations.PIM.Inriver/InriverComposer.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,13 @@ public void Compose(IUmbracoBuilder builder)
2222
client.DefaultRequestHeaders
2323
.Add("X-inRiver-APIKey", builder.Config.GetSection(Constants.SettingsPath)[nameof(InriverSettings.ApiKey)]);
2424
});
25+
builder.Services
26+
.AddHttpClient(Constants.InriverFetchClient, client =>
27+
{
28+
client.BaseAddress = new Uri($"{builder.Config.GetSection(Constants.SettingsPath)[nameof(InriverSettings.ApiBaseUrl)]}api/v1.0.1/");
29+
client.DefaultRequestHeaders
30+
.Add("X-inRiver-APIKey", builder.Config.GetSection(Constants.SettingsPath)[nameof(InriverSettings.ApiKey)]);
31+
});
2532

2633
builder.Services.AddSingleton<IInriverService, InriverService>();
2734
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
using System.Text.Json.Serialization;
2+
3+
namespace Umbraco.Cms.Integrations.PIM.Inriver.Models
4+
{
5+
public class EntityData
6+
{
7+
[JsonPropertyName("entityId")]
8+
public int EntityId { get; set; }
9+
10+
[JsonPropertyName("summary")]
11+
public EntitySummary Summary { get; set; }
12+
13+
[JsonPropertyName("fields")]
14+
public IEnumerable<FieldValue> Fields { get; set; }
15+
}
16+
}

src/Umbraco.Cms.Integrations.PIM.Inriver/Models/Entity.cs renamed to src/Umbraco.Cms.Integrations.PIM.Inriver/Models/EntitySummary.cs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
namespace Umbraco.Cms.Integrations.PIM.Inriver.Models
66
{
7-
public class Entity
7+
public class EntitySummary
88
{
99
[JsonPropertyName("id")]
1010
public int Id { get; set; }
@@ -14,8 +14,5 @@ public class Entity
1414

1515
[JsonPropertyName("description")]
1616
public string Description { get; set; }
17-
18-
[JsonPropertyName("fields")]
19-
public IEnumerable<FieldValue> Fields { get; set; }
2017
}
2118
}

0 commit comments

Comments
 (0)