Skip to content

Commit

Permalink
chore: update API specs and client
Browse files Browse the repository at this point in the history
  • Loading branch information
github-actions[bot] committed Nov 12, 2024
1 parent ab885c8 commit 79dbd72
Show file tree
Hide file tree
Showing 8 changed files with 348 additions and 1 deletion.
83 changes: 83 additions & 0 deletions server/application-server/openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,24 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/AuthUserInfo"
/activity/{login}:
get:
tags:
- activity-dashboard
operationId: getActivitiesByUser
parameters:
- name: login
in: path
required: true
schema:
type: string
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/Activities"
components:
schemas:
PullRequestInfo:
Expand Down Expand Up @@ -167,6 +185,25 @@ components:
updatedAt:
type: string
format: date-time
Activities:
required:
- issues
- pullRequests
- reviews
type: object
properties:
pullRequests:
type: array
items:
$ref: "#/components/schemas/PullRequestInfo"
issues:
type: array
items:
$ref: "#/components/schemas/IssueInfo"
reviews:
type: array
items:
$ref: "#/components/schemas/PullRequestReviewInfo"
LabelInfo:
required:
- color
Expand Down Expand Up @@ -272,6 +309,52 @@ components:
type: string
scheduledTime:
type: string
IssueInfo:
required:
- commentsCount
- htmlUrl
- id
- number
- state
- title
type: object
properties:
id:
type: integer
format: int64
number:
type: integer
format: int32
title:
type: string
state:
type: string
enum:
- OPEN
- CLOSED
commentsCount:
type: integer
format: int32
author:
$ref: "#/components/schemas/UserInfo"
labels:
type: array
items:
$ref: "#/components/schemas/LabelInfo"
assignees:
type: array
items:
$ref: "#/components/schemas/UserInfo"
repositoryNameWithOwner:
type: string
htmlUrl:
type: string
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
PullRequestBaseInfo:
required:
- htmlUrl
Expand Down
4 changes: 4 additions & 0 deletions webapp/src/app/core/modules/openapi/.openapi-generator/FILES
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
.openapi-generator-ignore
README.md
api.module.ts
api/activity-dashboard.service.ts
api/activity-dashboard.serviceInterface.ts
api/admin.service.ts
api/admin.serviceInterface.ts
api/api.ts
Expand All @@ -15,7 +17,9 @@ configuration.ts
encoder.ts
git_push.sh
index.ts
model/activities.ts
model/auth-user-info.ts
model/issue-info.ts
model/label-info.ts
model/leaderboard-entry.ts
model/meta-data.ts
Expand Down
161 changes: 161 additions & 0 deletions webapp/src/app/core/modules/openapi/api/activity-dashboard.service.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,161 @@
/**
* Hephaestus API
* API documentation for the Hephaestus application server.
*
* The version of the OpenAPI document: 0.0.1
* Contact: [email protected]
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
/* tslint:disable:no-unused-variable member-ordering */

import { Inject, Injectable, Optional } from '@angular/core';
import { HttpClient, HttpHeaders, HttpParams,
HttpResponse, HttpEvent, HttpParameterCodec, HttpContext
} from '@angular/common/http';
import { CustomHttpParameterCodec } from '../encoder';
import { Observable } from 'rxjs';

// @ts-ignore
import { Activities } from '../model/activities';

// @ts-ignore
import { BASE_PATH, COLLECTION_FORMATS } from '../variables';
import { Configuration } from '../configuration';
import {
ActivityDashboardServiceInterface
} from './activity-dashboard.serviceInterface';



@Injectable({
providedIn: 'root'
})
export class ActivityDashboardService implements ActivityDashboardServiceInterface {

protected basePath = 'http://localhost';
public defaultHeaders = new HttpHeaders();
public configuration = new Configuration();
public encoder: HttpParameterCodec;

constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: Configuration) {
if (configuration) {
this.configuration = configuration;
}
if (typeof this.configuration.basePath !== 'string') {
const firstBasePath = Array.isArray(basePath) ? basePath[0] : undefined;
if (firstBasePath != undefined) {
basePath = firstBasePath;
}

if (typeof basePath !== 'string') {
basePath = this.basePath;
}
this.configuration.basePath = basePath;
}
this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();
}


// @ts-ignore
private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {
if (typeof value === "object" && value instanceof Date === false) {
httpParams = this.addToHttpParamsRecursive(httpParams, value);
} else {
httpParams = this.addToHttpParamsRecursive(httpParams, value, key);
}
return httpParams;
}

private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {
if (value == null) {
return httpParams;
}

if (typeof value === "object") {
if (Array.isArray(value)) {
(value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));
} else if (value instanceof Date) {
if (key != null) {
httpParams = httpParams.append(key, (value as Date).toISOString().substring(0, 10));
} else {
throw Error("key may not be null if value is Date");
}
} else {
Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(
httpParams, value[k], key != null ? `${key}.${k}` : k));
}
} else if (key != null) {
httpParams = httpParams.append(key, value);
} else {
throw Error("key may not be null if value is not object or array");
}
return httpParams;
}

/**
* @param login
* @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
* @param reportProgress flag to report request and response progress.
*/
public getActivitiesByUser(login: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<Activities>;
public getActivitiesByUser(login: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<Activities>>;
public getActivitiesByUser(login: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<Activities>>;
public getActivitiesByUser(login: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {
if (login === null || login === undefined) {
throw new Error('Required parameter login was null or undefined when calling getActivitiesByUser.');
}

let localVarHeaders = this.defaultHeaders;

let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;
if (localVarHttpHeaderAcceptSelected === undefined) {
// to determine the Accept header
const httpHeaderAccepts: string[] = [
'application/json'
];
localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
}
if (localVarHttpHeaderAcceptSelected !== undefined) {
localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);
}

let localVarHttpContext: HttpContext | undefined = options && options.context;
if (localVarHttpContext === undefined) {
localVarHttpContext = new HttpContext();
}

let localVarTransferCache: boolean | undefined = options && options.transferCache;
if (localVarTransferCache === undefined) {
localVarTransferCache = true;
}


let responseType_: 'text' | 'json' | 'blob' = 'json';
if (localVarHttpHeaderAcceptSelected) {
if (localVarHttpHeaderAcceptSelected.startsWith('text')) {
responseType_ = 'text';
} else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {
responseType_ = 'json';
} else {
responseType_ = 'blob';
}
}

let localVarPath = `/activity/${this.configuration.encodeParam({name: "login", value: login, in: "path", style: "simple", explode: false, dataType: "string", dataFormat: undefined})}`;
return this.httpClient.request<Activities>('get', `${this.configuration.basePath}${localVarPath}`,
{
context: localVarHttpContext,
responseType: <any>responseType_,
withCredentials: this.configuration.withCredentials,
headers: localVarHeaders,
observe: observe,
transferCache: localVarTransferCache,
reportProgress: reportProgress
}
);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
/**
* Hephaestus API
* API documentation for the Hephaestus application server.
*
* The version of the OpenAPI document: 0.0.1
* Contact: [email protected]
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
import { HttpHeaders } from '@angular/common/http';

import { Observable } from 'rxjs';

import { Activities } from '../model/models';


import { Configuration } from '../configuration';



export interface ActivityDashboardServiceInterface {
defaultHeaders: HttpHeaders;
configuration: Configuration;

/**
*
*
* @param login
*/
getActivitiesByUser(login: string, extraHttpRequestParams?: any): Observable<Activities>;

}
5 changes: 4 additions & 1 deletion webapp/src/app/core/modules/openapi/api/api.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
export * from './activity-dashboard.service';
import { ActivityDashboardService } from './activity-dashboard.service';
export * from './activity-dashboard.serviceInterface';
export * from './admin.service';
import { AdminService } from './admin.service';
export * from './admin.serviceInterface';
Expand All @@ -10,4 +13,4 @@ export * from './meta.serviceInterface';
export * from './user.service';
import { UserService } from './user.service';
export * from './user.serviceInterface';
export const APIS = [AdminService, LeaderboardService, MetaService, UserService];
export const APIS = [ActivityDashboardService, AdminService, LeaderboardService, MetaService, UserService];
22 changes: 22 additions & 0 deletions webapp/src/app/core/modules/openapi/model/activities.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
/**
* Hephaestus API
* API documentation for the Hephaestus application server.
*
* The version of the OpenAPI document: 0.0.1
* Contact: [email protected]
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
import { PullRequestInfo } from './pull-request-info';
import { PullRequestReviewInfo } from './pull-request-review-info';
import { IssueInfo } from './issue-info';


export interface Activities {
pullRequests: Array<PullRequestInfo>;
issues: Array<IssueInfo>;
reviews: Array<PullRequestReviewInfo>;
}

38 changes: 38 additions & 0 deletions webapp/src/app/core/modules/openapi/model/issue-info.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
/**
* Hephaestus API
* API documentation for the Hephaestus application server.
*
* The version of the OpenAPI document: 0.0.1
* Contact: [email protected]
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
import { LabelInfo } from './label-info';
import { UserInfo } from './user-info';


export interface IssueInfo {
id: number;
number: number;
title: string;
state: IssueInfo.StateEnum;
commentsCount: number;
author?: UserInfo;
labels?: Array<LabelInfo>;
assignees?: Array<UserInfo>;
repositoryNameWithOwner?: string;
htmlUrl: string;
createdAt?: string;
updatedAt?: string;
}
export namespace IssueInfo {
export type StateEnum = 'OPEN' | 'CLOSED';
export const StateEnum = {
Open: 'OPEN' as StateEnum,
Closed: 'CLOSED' as StateEnum
};
}


Loading

0 comments on commit 79dbd72

Please sign in to comment.