Skip to content
Open
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
15 changes: 9 additions & 6 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import Me from "./model/Me";
import { OrganizationSubscriptionGetParams } from "./model/OrganizationSubscription";
import ProjectAccess from "./model/ProjectAccess";
import { APIObject } from "./model/Ressource";
import SshKey from "./model/SshKey";
import { TicketQueryParams } from "./model/Ticket";

export const models = entities;
Expand Down Expand Up @@ -365,10 +366,12 @@ export default class Client {
*
* @return Result
*/
addSshKey(value: string, title: string) {
async addSshKey(value: string, title: string): Promise<SshKey> {
const values = this.cleanRequest({ value, title });

return new entities.SshKey(values).save();
const result = await new entities.SshKey(values).save();

return result.getEntity();
}

/**
Expand Down Expand Up @@ -504,7 +507,7 @@ export default class Client {
* @return OrganizationSubscriptions[]
*/
getOrganizationSubscriptions(organizationId: string, params: OrganizationSubscriptionGetParams) {
return entities.OrganizationSubscription.query({
return entities.OrganizationSubscription.queryCursoredResult({
...params,
organizationId,
});
Expand Down Expand Up @@ -719,7 +722,7 @@ export default class Client {
* @return CursoredResult
*/
getOrganizationRegions(organizationId: string, params: object) {
return entities.OrganizationRegion.query({ organizationId, ...params });
return entities.OrganizationRegion.queryCursoredResult({ organizationId, ...params });
}

/**
Expand Down Expand Up @@ -940,7 +943,7 @@ export default class Client {
* @return Promise
*/
getOrganizationPaymentSourcesAllowed(organizationId: string) {
return entities.OrganizationPaymentSource.getAllowed(organizationId);
return entities.OrganizationPaymentSource.getAllowed({ organizationId });
}

/**
Expand All @@ -958,7 +961,7 @@ export default class Client {
* @return Promise: { client_secret, public_key }
*/
createOrganizationPaymentSourceIntent(organizationId: string) {
return entities.OrganizationPaymentSource.intent(organizationId);
return entities.OrganizationPaymentSource.intent({ organizationId });
}

/**
Expand Down
8 changes: 0 additions & 8 deletions src/model/ApiToken.ts
Original file line number Diff line number Diff line change
Expand Up @@ -69,14 +69,6 @@ export default class ApiToken extends Ressource {
paramDefaults
);
}

// @ts-ignore
// @deprecated use deleteWithParams instead
delete(params: APITokenQueryParams) {
const url = `${_urlParser(this._queryUrl, { ...params })}/${this.id}`;

return super.delete(url);
}

deleteWithParams(params: APITokenQueryParams) {
const url = `${_urlParser(this._queryUrl, { ...params })}/${this.id}`;
Expand Down
23 changes: 17 additions & 6 deletions src/model/Me.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import User from "./User";
import { APIObject } from "./Ressource";
import Ressource, { APIObject } from "./Ressource";
import { getConfig } from "../config";
import Organization from "./Organization";
import Project from "./Project";
Expand All @@ -21,9 +20,14 @@ const modifiableField = [
"ssh_keys"
];

// @ts-ignore
// TODO: fix the get method inheritance error
export default class Me extends User {
export default class Me extends Ressource {
id: string;
created_at: string;
updated_at: string;
has_key: boolean;
display_name: string;
email: string;
username: string;
projects: Array<Project>;
ssh_keys: Array<SshKey>;
roles: Array<string>;
Expand All @@ -40,8 +44,15 @@ export default class Me extends User {

constructor(account: APIObject) {
const { api_url } = getConfig();
super(account, `${api_url}${url}`, modifiableField);
super(`${api_url}${url}`, {}, {}, account, [], modifiableField);

this.id = "";
this.created_at = "";
this.updated_at = "";
this.has_key = false;
this.display_name = "";
this.email = "";
this.username = "";
this.projects = [];
this.ssh_keys = [];
this.roles = [];
Expand Down
10 changes: 4 additions & 6 deletions src/model/OrganizationOrder.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,8 @@ export interface OrganizationOrderQueryParams {
[key: string]: any;
};

// @ts-ignore
// TODO: solve the get and query function inheritance ts error
export default class OrganizationOrder extends Order {
static get(params: OrganizationOrderGetParams, customUrl?: string) {
static get(params: OrganizationOrderGetParams, customUrl?: string): Promise<OrganizationOrder> {
const { organizationId, id, ...queryParams } = params;
const { api_url } = getConfig();

Expand All @@ -29,10 +27,10 @@ export default class OrganizationOrder extends Order {
{ organizationId, id },
{},
queryParams
);
) as Promise<OrganizationOrder>;
}

static query(params: OrganizationOrderQueryParams) {
static query(params: OrganizationOrderQueryParams): Promise<OrganizationOrder[]> {
const { organizationId, ...queryParams } = params;
const { api_url } = getConfig();

Expand All @@ -43,6 +41,6 @@ export default class OrganizationOrder extends Order {
{},
queryParams,
data => (data as CursoredResult<OrganizationOrder>).items
);
) as Promise<OrganizationOrder[]>;
}
}
14 changes: 4 additions & 10 deletions src/model/OrganizationPaymentSource.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,6 @@ export interface OrganizationPaymentSourceParams {
[key: string]: any;
};

// @ts-ignore
// TODO: solve the getAllowed and intent function inheritance ts error
export default class OrganizationPaymentSource extends PaymentSource {
constructor(paymentSource: APIObject, customUrl?: string) {
const { api_url } = getConfig();
Expand Down Expand Up @@ -60,13 +58,11 @@ export default class OrganizationPaymentSource extends PaymentSource {
*
* @return object
*/
static getAllowed(organizationId: string) {
static getAllowed(params: OrganizationPaymentSourceParams) {
const { api_url } = getConfig();
const parsedUrl = _urlParser(
`${api_url}${url}`,
{
organizationId
},
params,
{}
);
return request(`${parsedUrl}/allowed`, "GET");
Expand All @@ -77,13 +73,11 @@ export default class OrganizationPaymentSource extends PaymentSource {
*
* @return object
*/
static intent(organizationId: string) {
static intent(params: OrganizationPaymentSourceParams) {
const { api_url } = getConfig();
const parsedUrl = _urlParser(
`${api_url}${url}`,
{
organizationId
},
params,
{}
);
return request(`${parsedUrl}/intent`, "POST");
Expand Down
5 changes: 2 additions & 3 deletions src/model/OrganizationRegion.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import Region from "./Region";
import CursoredRessource from "./CursoredRessource";
import CursoredResult from "./CursoredResult";
import { getConfig } from "../config";

const url = "/organizations/:organizationId/regions/:id";
Expand All @@ -9,10 +10,8 @@ export interface OrganizationRegionQueryParams {
[key: string]: any;
};

// @ts-ignore
// TODO: solve the query function inheritance ts error
export default class OrganizationRegion extends Region {
static query(params: OrganizationRegionQueryParams) {
static queryCursoredResult(params: OrganizationRegionQueryParams) {
const { organizationId, ...queryParams } = params;
const { api_url } = getConfig();

Expand Down
6 changes: 2 additions & 4 deletions src/model/OrganizationSubscription.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,6 @@ export interface OrganizationSubscriptionQueryParams {
[key: string]: any;
};

// @ts-ignore
// TODO: solve the get and query function inheritance ts error
export default class OrganizationSubscription extends Subscription {
organization_id: string;

Expand Down Expand Up @@ -49,10 +47,10 @@ export default class OrganizationSubscription extends Subscription {
{ organizationId, id },
{},
queryParams
);
) as Promise<OrganizationSubscription>;
}

static query(params: OrganizationSubscriptionQueryParams) {
static queryCursoredResult(params: OrganizationSubscriptionQueryParams) {
const { organizationId, ...queryParams } = params;
const { api_url } = getConfig();

Expand Down
16 changes: 12 additions & 4 deletions src/model/PaymentSource.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,14 @@ const url = "/platform/payment_source";
const paramDefaults = {};
const creatableField = ["type", "token", "email"];

export interface PaymentSourceAllowedParams {
[key: string]: any;
};

export interface PaymentSourceIntentParams {
[key: string]: any;
};

export default class PaymentSource extends Ressource {
id: string;
type: string;
Expand Down Expand Up @@ -79,19 +87,19 @@ export default class PaymentSource extends Ressource {
*
* @return object
*/
static getAllowed() {
static getAllowed(params?: PaymentSourceAllowedParams) {
const { api_url } = getConfig();
return request(`${api_url}${url}/allowed`, "GET");
return request(`${api_url}${url}/allowed`, "GET", params);
}

/**
* Create a Setup Intent.
*
* @return object
*/
static intent() {
static intent(params?: PaymentSourceIntentParams) {
const { api_url } = getConfig();
return request(`${api_url}${url}/intent`, "POST");
return request(`${api_url}${url}/intent`, "POST", params);
}

/**
Expand Down
12 changes: 0 additions & 12 deletions src/model/SshKey.ts
Original file line number Diff line number Diff line change
Expand Up @@ -45,18 +45,6 @@ export default class SshKey extends Ressource {
return super._get<SshKey>(`${api_url}${url}`, { id }, paramDefaults, queryParams);
}

/**
* Override Ressource.save() so that it returns an SshKey and not a Result.
*
* @return object
*/
// @ts-ignore
// TODO: fix inheritance error
async save() {
let sshKey = await super.save();
return new SshKey(sshKey.data);
}

/**
* Override Ressource.getLink() so that it returns an SshKey and not a Result.
*
Expand Down
26 changes: 13 additions & 13 deletions test/OrganizationSubscription.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -87,18 +87,18 @@ describe("OrganizationSubscription", () => {
}
]
});
OrganizationSubscription.query({ organizationId: "aliceOrg" }).then(
subscriptions => {
assert.equal(subscriptions.items.length, 1);
assert.equal(subscriptions.items[0].project_region, "region");
assert.equal(subscriptions.items[0].project_id, "projectId");
assert.equal(
subscriptions.items[0].constructor.name,
"OrganizationSubscription"
);
done();
}
);
OrganizationSubscription.queryCursoredResult({
organizationId: "aliceOrg"
}).then(subscriptions => {
assert.equal(subscriptions.items.length, 1);
assert.equal(subscriptions.items[0].project_region, "region");
assert.equal(subscriptions.items[0].project_id, "projectId");
assert.equal(
subscriptions.items[0].constructor.name,
"OrganizationSubscription"
);
done();
});
});

it("Get organization subscriptions with filters", done => {
Expand All @@ -112,7 +112,7 @@ describe("OrganizationSubscription", () => {
]
}
);
OrganizationSubscription.query({
OrganizationSubscription.queryCursoredResult({
organizationId: "aliceOrg",
filter: {
status: {
Expand Down