All files / output zcl_abapgit_popup_pull_request.clas.mjs

6.18% Statements 6/97
66.66% Branches 2/3
16.66% Functions 1/6
6.18% Lines 6/97

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 971x 1x                               1x 1x                                                                                                                                                         1x 1x
const {cx_root} = await import("./cx_root.clas.mjs");
// zcl_abapgit_popup_pull_request.clas.abap
class zcl_abapgit_popup_pull_request {
  static INTERNAL_TYPE = 'CLAS';
  static INTERNAL_NAME = 'ZCL_ABAPGIT_POPUP_PULL_REQUEST';
  static IMPLEMENTED_INTERFACES = ["ZIF_ABAPGIT_GUI_RENDER_ITEM","ZIF_ABAPGIT_HTML_POPUP"];
  static ATTRIBUTES = {"MV_REPO_URL": {"type": () => {return new abap.types.String({qualifiedName: "STRING"});}, "visibility": "I", "is_constant": " ", "is_class": " "}};
  static METHODS = {"FETCH_PULL_REQUEST_LIST": {"visibility": "I", "parameters": {"RT_PULLS": {"type": () => {return abap.types.TableFactory.construct(new abap.types.Structure({
  "base_url": new abap.types.String({qualifiedName: "ZIF_ABAPGIT_PR_ENUM_PROVIDER=>TY_PULL_REQUEST-BASE_URL"}),
  "number": new abap.types.String({qualifiedName: "ZIF_ABAPGIT_PR_ENUM_PROVIDER=>TY_PULL_REQUEST-NUMBER"}),
  "title": new abap.types.String({qualifiedName: "ZIF_ABAPGIT_PR_ENUM_PROVIDER=>TY_PULL_REQUEST-TITLE"}),
  "user": new abap.types.String({qualifiedName: "ZIF_ABAPGIT_PR_ENUM_PROVIDER=>TY_PULL_REQUEST-USER"}),
  "head_url": new abap.types.String({qualifiedName: "ZIF_ABAPGIT_PR_ENUM_PROVIDER=>TY_PULL_REQUEST-HEAD_URL"}),
  "head_branch": new abap.types.String({qualifiedName: "ZIF_ABAPGIT_PR_ENUM_PROVIDER=>TY_PULL_REQUEST-HEAD_BRANCH"}),
  "created_at": new abap.types.String({qualifiedName: "ZIF_ABAPGIT_PR_ENUM_PROVIDER=>TY_PULL_REQUEST-CREATED_AT"}),
  "is_for_upstream": new abap.types.Character(1, {"qualifiedName":"ABAP_BOOL","ddicName":"ABAP_BOOL"}),
  "draft": new abap.types.Character(1, {"qualifiedName":"ABAP_BOOL","ddicName":"ABAP_BOOL"}),
  "html_url": new abap.types.String({qualifiedName: "ZIF_ABAPGIT_PR_ENUM_PROVIDER=>TY_PULL_REQUEST-HTML_URL"})}, "zif_abapgit_pr_enum_provider=>ty_pull_request", undefined, {}, {}), {"withHeader":false,"keyType":"USER","primaryKey":{"name":"primary_key","type":"STANDARD","isUnique":false,"keyFields":["BASE_URL","NUMBER"]},"secondary":[]}, "zif_abapgit_pr_enum_provider=>ty_pull_requests");}, "is_optional": " "}}},
  "CREATE": {"visibility": "U", "parameters": {"RI_POPUP": {"type": () => {return new abap.types.ABAPObject({qualifiedName: "ZIF_ABAPGIT_HTML_POPUP", RTTIName: "\\INTERFACE=ZIF_ABAPGIT_HTML_POPUP"});}, "is_optional": " "}, "IV_URL": {"type": () => {return new abap.types.String({qualifiedName: "STRING"});}, "is_optional": " "}}},
  "CONSTRUCTOR": {"visibility": "U", "parameters": {"IV_URL": {"type": () => {return new abap.types.String({qualifiedName: "STRING"});}, "is_optional": " "}}}};
  #mv_repo_url;
  constructor() {
    this.me = new abap.types.ABAPObject();
    this.me.set(this);
    this.INTERNAL_ID = abap.internalIdCounter++;
    this.FRIENDS_ACCESS_INSTANCE = {
      "fetch_pull_request_list": this.#fetch_pull_request_list.bind(this),
    };
    this.#mv_repo_url = new abap.types.String({qualifiedName: "STRING"});
    this.FRIENDS_ACCESS_INSTANCE["mv_repo_url"] = this.#mv_repo_url;
  }
  async constructor_(INPUT) {
    let iv_url = INPUT?.iv_url;
    if (iv_url?.getQualifiedName === undefined || iv_url.getQualifiedName() !== "STRING") { iv_url = undefined; }
    if (iv_url === undefined) { iv_url = new abap.types.String({qualifiedName: "STRING"}).set(INPUT.iv_url); }
    this.#mv_repo_url.set(iv_url);
    return this;
  }
  async create(INPUT) {
    return zcl_abapgit_popup_pull_request.create(INPUT);
  }
  static async create(INPUT) {
    let ri_popup = new abap.types.ABAPObject({qualifiedName: "ZIF_ABAPGIT_HTML_POPUP", RTTIName: "\\INTERFACE=ZIF_ABAPGIT_HTML_POPUP"});
    let iv_url = INPUT?.iv_url;
    if (iv_url?.getQualifiedName === undefined || iv_url.getQualifiedName() !== "STRING") { iv_url = undefined; }
    if (iv_url === undefined) { iv_url = new abap.types.String({qualifiedName: "STRING"}).set(INPUT.iv_url); }
    ri_popup.set(await (new abap.Classes['ZCL_ABAPGIT_POPUP_PULL_REQUEST']()).constructor_({iv_url: iv_url}));
    return ri_popup;
  }
  async #fetch_pull_request_list() {
    let rt_pulls = abap.types.TableFactory.construct(new abap.types.Structure({
    "base_url": new abap.types.String({qualifiedName: "ZIF_ABAPGIT_PR_ENUM_PROVIDER=>TY_PULL_REQUEST-BASE_URL"}),
    "number": new abap.types.String({qualifiedName: "ZIF_ABAPGIT_PR_ENUM_PROVIDER=>TY_PULL_REQUEST-NUMBER"}),
    "title": new abap.types.String({qualifiedName: "ZIF_ABAPGIT_PR_ENUM_PROVIDER=>TY_PULL_REQUEST-TITLE"}),
    "user": new abap.types.String({qualifiedName: "ZIF_ABAPGIT_PR_ENUM_PROVIDER=>TY_PULL_REQUEST-USER"}),
    "head_url": new abap.types.String({qualifiedName: "ZIF_ABAPGIT_PR_ENUM_PROVIDER=>TY_PULL_REQUEST-HEAD_URL"}),
    "head_branch": new abap.types.String({qualifiedName: "ZIF_ABAPGIT_PR_ENUM_PROVIDER=>TY_PULL_REQUEST-HEAD_BRANCH"}),
    "created_at": new abap.types.String({qualifiedName: "ZIF_ABAPGIT_PR_ENUM_PROVIDER=>TY_PULL_REQUEST-CREATED_AT"}),
    "is_for_upstream": new abap.types.Character(1, {"qualifiedName":"ABAP_BOOL","ddicName":"ABAP_BOOL"}),
    "draft": new abap.types.Character(1, {"qualifiedName":"ABAP_BOOL","ddicName":"ABAP_BOOL"}),
    "html_url": new abap.types.String({qualifiedName: "ZIF_ABAPGIT_PR_ENUM_PROVIDER=>TY_PULL_REQUEST-HTML_URL"})}, "zif_abapgit_pr_enum_provider=>ty_pull_request", undefined, {}, {}), {"withHeader":false,"keyType":"USER","primaryKey":{"name":"primary_key","type":"STANDARD","isUnique":false,"keyFields":["BASE_URL","NUMBER"]},"secondary":[]}, "zif_abapgit_pr_enum_provider=>ty_pull_requests");
    rt_pulls.set((await (await abap.Classes['ZCL_ABAPGIT_PR_ENUMERATOR'].new({iv_url: this.#mv_repo_url})).get().get_pulls()));
    abap.statements.sort(rt_pulls,{by: [{component: "number"}]});
    if (abap.compare.eq(abap.builtin.lines({val: rt_pulls}), abap.IntegerFactory.get(0))) {
      await abap.Classes['ZCX_ABAPGIT_EXCEPTION'].raise({iv_text: abap.CharacterFactory.get(22, 'No pull requests found')});
    }
    return rt_pulls;
  }
  async zif_abapgit_gui_render_item$render(INPUT) {
    let ri_html = new abap.types.ABAPObject({qualifiedName: "ZIF_ABAPGIT_HTML", RTTIName: "\\INTERFACE=ZIF_ABAPGIT_HTML"});
    let iv_item = INPUT?.iv_item;
    let iv_index = INPUT?.iv_index;
    if (iv_index?.getQualifiedName === undefined || iv_index.getQualifiedName() !== "I") { iv_index = undefined; }
    if (iv_index === undefined) { iv_index = new abap.types.Integer({qualifiedName: "I"}).set(INPUT.iv_index); }
    let fs_ls_pr_ = new abap.types.FieldSymbol(new abap.types.Structure({
    "base_url": new abap.types.String({qualifiedName: "ZIF_ABAPGIT_PR_ENUM_PROVIDER=>TY_PULL_REQUEST-BASE_URL"}),
    "number": new abap.types.String({qualifiedName: "ZIF_ABAPGIT_PR_ENUM_PROVIDER=>TY_PULL_REQUEST-NUMBER"}),
    "title": new abap.types.String({qualifiedName: "ZIF_ABAPGIT_PR_ENUM_PROVIDER=>TY_PULL_REQUEST-TITLE"}),
    "user": new abap.types.String({qualifiedName: "ZIF_ABAPGIT_PR_ENUM_PROVIDER=>TY_PULL_REQUEST-USER"}),
    "head_url": new abap.types.String({qualifiedName: "ZIF_ABAPGIT_PR_ENUM_PROVIDER=>TY_PULL_REQUEST-HEAD_URL"}),
    "head_branch": new abap.types.String({qualifiedName: "ZIF_ABAPGIT_PR_ENUM_PROVIDER=>TY_PULL_REQUEST-HEAD_BRANCH"}),
    "created_at": new abap.types.String({qualifiedName: "ZIF_ABAPGIT_PR_ENUM_PROVIDER=>TY_PULL_REQUEST-CREATED_AT"}),
    "is_for_upstream": new abap.types.Character(1, {"qualifiedName":"ABAP_BOOL","ddicName":"ABAP_BOOL"}),
    "draft": new abap.types.Character(1, {"qualifiedName":"ABAP_BOOL","ddicName":"ABAP_BOOL"}),
    "html_url": new abap.types.String({qualifiedName: "ZIF_ABAPGIT_PR_ENUM_PROVIDER=>TY_PULL_REQUEST-HTML_URL"})}, "zif_abapgit_pr_enum_provider=>ty_pull_request", undefined, {}, {}));
    abap.statements.assign({target: fs_ls_pr_, source: iv_item});
    ri_html.set((await abap.Classes['ZCL_ABAPGIT_HTML'].create({iv_initial_chunk: new abap.types.String().set(`<b>${abap.templateFormatting(fs_ls_pr_.get().number)}</b> - ${abap.templateFormatting(fs_ls_pr_.get().title)} @${abap.templateFormatting(fs_ls_pr_.get().user)}`)})));
    return ri_html;
  }
  async zif_abapgit_html_popup$create_picklist() {
    let ro_picklist = new abap.types.ABAPObject({qualifiedName: "ZCL_ABAPGIT_GUI_PICKLIST", RTTIName: "\\CLASS=ZCL_ABAPGIT_GUI_PICKLIST"});
    ro_picklist.set(await (new abap.Classes['ZCL_ABAPGIT_GUI_PICKLIST']()).constructor_({iv_title: abap.CharacterFactory.get(19, 'Choose Pull Request'), it_list: (await this.#fetch_pull_request_list()), ii_item_renderer: this.me}));
    return ro_picklist;
  }
}
abap.Classes['ZCL_ABAPGIT_POPUP_PULL_REQUEST'] = zcl_abapgit_popup_pull_request;
export {zcl_abapgit_popup_pull_request};