2019-04-05 12:24:34 +01:00
|
|
|
// Copyright (C) 2019 Storj Labs, Inc.
|
|
|
|
// See LICENSE for copying information.
|
|
|
|
|
2019-08-28 10:53:53 +01:00
|
|
|
import { BaseGql } from '@/api/baseGql';
|
2019-09-09 11:33:39 +01:00
|
|
|
import { ProjectUsage, UsageApi } from '@/types/usage';
|
2019-04-05 12:24:34 +01:00
|
|
|
|
2019-08-28 10:53:53 +01:00
|
|
|
/**
|
|
|
|
* Exposes all project-usage-related functionality
|
|
|
|
*/
|
|
|
|
export class ProjectUsageApiGql extends BaseGql implements UsageApi {
|
|
|
|
/**
|
|
|
|
* Fetch usage
|
|
|
|
*
|
|
|
|
* @returns ProjectUsage
|
|
|
|
* @throws Error
|
|
|
|
*/
|
|
|
|
public async get(projectId: string, since: Date, before: Date): Promise<ProjectUsage> {
|
|
|
|
const query = `
|
|
|
|
query($projectId: String!, $since: DateTime!, $before: DateTime!) {
|
|
|
|
project(id: $projectId) {
|
|
|
|
usage(since: $since, before: $before) {
|
|
|
|
storage,
|
|
|
|
egress,
|
|
|
|
objectCount,
|
|
|
|
since,
|
|
|
|
before
|
2019-04-05 12:24:34 +01:00
|
|
|
}
|
2019-08-28 10:53:53 +01:00
|
|
|
}
|
|
|
|
}`;
|
2019-04-05 12:24:34 +01:00
|
|
|
|
2019-08-28 10:53:53 +01:00
|
|
|
const variables = {
|
|
|
|
projectId,
|
|
|
|
since,
|
2019-09-13 15:58:18 +01:00
|
|
|
before,
|
2019-08-28 10:53:53 +01:00
|
|
|
};
|
2019-04-05 12:24:34 +01:00
|
|
|
|
2019-08-28 10:53:53 +01:00
|
|
|
const response = await this.query(query, variables);
|
|
|
|
|
|
|
|
return response.data.project.usage;
|
|
|
|
}
|
2019-04-05 12:24:34 +01:00
|
|
|
}
|