Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions src/main/java/com/kintone/client/KintoneApi.java
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@
import com.kintone.client.api.space.DeleteSpaceResponseBody;
import com.kintone.client.api.space.GetSpaceMembersResponseBody;
import com.kintone.client.api.space.GetSpaceResponseBody;
import com.kintone.client.api.space.GetSpacesStatisticsResponseBody;
import com.kintone.client.api.space.UpdateSpaceBodyResponseBody;
import com.kintone.client.api.space.UpdateSpaceGuestsResponseBody;
import com.kintone.client.api.space.UpdateSpaceMembersResponseBody;
Expand Down Expand Up @@ -201,6 +202,7 @@ public enum KintoneApi {
GET_DEPLOY_STATUS(GET, "preview/app/deploy", GetDeployStatusResponseBody.class),
DEPLOY_APP(POST, "preview/app/deploy", DeployAppResponseBody.class),
GET_SPACE(GET, "space", GetSpaceResponseBody.class),
GET_SPACES_STATISTICS(GET, "spaces/statistics", GetSpacesStatisticsResponseBody.class),
UPDATE_SPACE(PUT, "space", UpdateSpaceResponseBody.class),
DELETE_SPACE(DELETE, "space", DeleteSpaceResponseBody.class),
ADD_SPACE_FROM_TEMPLATE(POST, "template/space", AddSpaceFromTemplateResponseBody.class),
Expand Down
21 changes: 21 additions & 0 deletions src/main/java/com/kintone/client/SpaceClient.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@
import com.kintone.client.api.space.GetSpaceMembersResponseBody;
import com.kintone.client.api.space.GetSpaceRequest;
import com.kintone.client.api.space.GetSpaceResponseBody;
import com.kintone.client.api.space.GetSpacesStatisticsRequest;
import com.kintone.client.api.space.GetSpacesStatisticsResponseBody;
import com.kintone.client.api.space.UpdateSpaceBodyRequest;
import com.kintone.client.api.space.UpdateSpaceBodyResponseBody;
import com.kintone.client.api.space.UpdateSpaceGuestsRequest;
Expand Down Expand Up @@ -193,6 +195,25 @@ public GetSpaceResponseBody getSpace(GetSpaceRequest request) {
return client.call(KintoneApi.GET_SPACE, request, handlers);
}

/**
* Gets space usage statistics.
*
* @return the response data. See {@link GetSpacesStatisticsResponseBody}
*/
public GetSpacesStatisticsResponseBody getStatistics() {
return getStatistics(new GetSpacesStatisticsRequest());
}

/**
* Gets space usage statistics.
*
* @param request the request parameters. See {@link GetSpacesStatisticsRequest}
* @return the response data. See {@link GetSpacesStatisticsResponseBody}
*/
public GetSpacesStatisticsResponseBody getStatistics(GetSpacesStatisticsRequest request) {
return client.call(KintoneApi.GET_SPACES_STATISTICS, request, handlers);
}

/**
* Gets the list of Space members of a Space.
*
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package com.kintone.client.api.space;

import com.kintone.client.api.KintoneRequest;
import lombok.Data;

/** A request object for Get Spaces Statistics API. */
@Data
public class GetSpacesStatisticsRequest implements KintoneRequest {

/** The number of spaces to skip. Default is 0. */
private Long offset;

/** The number of spaces to retrieve. Must be between 1 and 100. Default is 100. */
private Long limit;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.kintone.client.api.space;

import com.kintone.client.api.KintoneResponseBody;
import com.kintone.client.model.space.SpaceStatistics;
import java.util.List;
import lombok.Value;

/** A response object for Get Spaces Statistics API. */
@Value
public class GetSpacesStatisticsResponseBody implements KintoneResponseBody {

/** A list of space statistics. */
private final List<SpaceStatistics> spaces;
}
48 changes: 48 additions & 0 deletions src/main/java/com/kintone/client/model/space/SpaceStatistics.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
package com.kintone.client.model.space;

import com.kintone.client.model.User;
import java.time.ZonedDateTime;
import lombok.Value;

/** A model object for space statistics. */
@Value
public class SpaceStatistics {

/** The Space ID. */
private final long id;

/** The name of the Space. */
private final String name;

/** The number of administrators of the Space. */
private final long administratorCount;

/** The number of members of the Space. */
private final long memberCount;

/**
* The "Private" settings of the Space.
*
* @return true if the Space is private.
*/
private final boolean isPrivate;

/**
* The Guest Space setting.
*
* @return true if the Space is a Guest Space.
*/
private final boolean isGuest;

/** An object containing information of the creator of the Space. */
private final User creator;

/** The created date time of the Space. */
private final ZonedDateTime createdAt;

/** An object containing information of the updater of the Space. */
private final User modifier;

/** The updated date time of the Space. */
private final ZonedDateTime modifiedAt;
}
27 changes: 27 additions & 0 deletions src/test/java/com/kintone/client/SpaceClientTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@
import com.kintone.client.api.space.GetSpaceMembersResponseBody;
import com.kintone.client.api.space.GetSpaceRequest;
import com.kintone.client.api.space.GetSpaceResponseBody;
import com.kintone.client.api.space.GetSpacesStatisticsRequest;
import com.kintone.client.api.space.GetSpacesStatisticsResponseBody;
import com.kintone.client.api.space.UpdateSpaceBodyRequest;
import com.kintone.client.api.space.UpdateSpaceBodyResponseBody;
import com.kintone.client.api.space.UpdateSpaceGuestsRequest;
Expand Down Expand Up @@ -363,4 +365,29 @@ public void updateThread_UpdateThreadRequest() {
assertThat(mockClient.getLastApi()).isEqualTo(KintoneApi.UPDATE_THREAD);
assertThat(mockClient.getLastBody()).isEqualTo(req);
}

@Test
public void getStatistics() {
GetSpacesStatisticsResponseBody resp =
new GetSpacesStatisticsResponseBody(Collections.emptyList());
mockClient.setResponseBody(resp);

assertThat(sut.getStatistics()).isEqualTo(resp);
assertThat(mockClient.getLastApi()).isEqualTo(KintoneApi.GET_SPACES_STATISTICS);
assertThat(mockClient.getLastBody()).isEqualTo(new GetSpacesStatisticsRequest());
}

@Test
public void getStatistics_GetSpacesStatisticsRequest() {
GetSpacesStatisticsRequest req = new GetSpacesStatisticsRequest();
req.setOffset(10L);
req.setLimit(50L);
GetSpacesStatisticsResponseBody resp =
new GetSpacesStatisticsResponseBody(Collections.emptyList());
mockClient.setResponseBody(resp);

assertThat(sut.getStatistics(req)).isEqualTo(resp);
assertThat(mockClient.getLastApi()).isEqualTo(KintoneApi.GET_SPACES_STATISTICS);
assertThat(mockClient.getLastBody()).isEqualTo(req);
}
}