1463 lines
37 KiB
YAML
1463 lines
37 KiB
YAML
basePath: /api/v1
|
|
definitions:
|
|
models.AggregateData:
|
|
properties:
|
|
by_dinas:
|
|
additionalProperties:
|
|
type: integer
|
|
type: object
|
|
by_jenis:
|
|
additionalProperties:
|
|
type: integer
|
|
type: object
|
|
by_status:
|
|
additionalProperties:
|
|
type: integer
|
|
type: object
|
|
created_today:
|
|
type: integer
|
|
last_updated:
|
|
type: string
|
|
total_active:
|
|
type: integer
|
|
total_draft:
|
|
type: integer
|
|
total_inactive:
|
|
type: integer
|
|
updated_today:
|
|
type: integer
|
|
type: object
|
|
models.ErrorResponse:
|
|
properties:
|
|
code:
|
|
type: integer
|
|
error:
|
|
type: string
|
|
message:
|
|
type: string
|
|
timestamp:
|
|
type: string
|
|
type: object
|
|
models.ErrorResponseBpjs:
|
|
properties:
|
|
code:
|
|
type: string
|
|
errors:
|
|
additionalProperties: true
|
|
type: object
|
|
message:
|
|
type: string
|
|
request_id:
|
|
type: string
|
|
status:
|
|
type: string
|
|
type: object
|
|
models.LoginRequest:
|
|
properties:
|
|
password:
|
|
type: string
|
|
username:
|
|
type: string
|
|
required:
|
|
- password
|
|
- username
|
|
type: object
|
|
models.MetaResponse:
|
|
properties:
|
|
current_page:
|
|
type: integer
|
|
has_next:
|
|
type: boolean
|
|
has_prev:
|
|
type: boolean
|
|
limit:
|
|
type: integer
|
|
offset:
|
|
type: integer
|
|
total:
|
|
type: integer
|
|
total_pages:
|
|
type: integer
|
|
type: object
|
|
models.NullableInt32:
|
|
properties:
|
|
int32:
|
|
type: integer
|
|
valid:
|
|
type: boolean
|
|
type: object
|
|
models.NullableString:
|
|
properties:
|
|
string:
|
|
type: string
|
|
valid:
|
|
type: boolean
|
|
type: object
|
|
models.NullableTime:
|
|
properties:
|
|
time:
|
|
type: string
|
|
valid:
|
|
type: boolean
|
|
type: object
|
|
models.TokenResponse:
|
|
properties:
|
|
access_token:
|
|
type: string
|
|
expires_in:
|
|
type: integer
|
|
token_type:
|
|
type: string
|
|
type: object
|
|
models.User:
|
|
properties:
|
|
email:
|
|
type: string
|
|
id:
|
|
type: string
|
|
role:
|
|
type: string
|
|
username:
|
|
type: string
|
|
type: object
|
|
peserta.PesertaData:
|
|
properties:
|
|
cob:
|
|
properties:
|
|
nmAsuransi: {}
|
|
noAsuransi: {}
|
|
tglTAT: {}
|
|
tglTMT: {}
|
|
type: object
|
|
hakKelas:
|
|
properties:
|
|
keterangan:
|
|
type: string
|
|
kode:
|
|
type: string
|
|
type: object
|
|
informasi:
|
|
properties:
|
|
dinsos: {}
|
|
eSEP: {}
|
|
noSKTM: {}
|
|
prolanisPRB:
|
|
type: string
|
|
type: object
|
|
jenisPeserta:
|
|
properties:
|
|
keterangan:
|
|
type: string
|
|
kode:
|
|
type: string
|
|
type: object
|
|
mr:
|
|
properties:
|
|
noMR:
|
|
type: string
|
|
noTelepon:
|
|
type: string
|
|
type: object
|
|
nama:
|
|
type: string
|
|
nik:
|
|
type: string
|
|
noKartu:
|
|
type: string
|
|
pisa:
|
|
type: string
|
|
provUmum:
|
|
properties:
|
|
kdProvider:
|
|
type: string
|
|
nmProvider:
|
|
type: string
|
|
type: object
|
|
sex:
|
|
type: string
|
|
statusPeserta:
|
|
properties:
|
|
keterangan:
|
|
type: string
|
|
kode:
|
|
type: string
|
|
type: object
|
|
tglCetakKartu:
|
|
type: string
|
|
tglLahir:
|
|
type: string
|
|
tglTAT:
|
|
type: string
|
|
tglTMT:
|
|
type: string
|
|
umur:
|
|
properties:
|
|
umurSaatPelayanan:
|
|
type: string
|
|
umurSekarang:
|
|
type: string
|
|
type: object
|
|
type: object
|
|
peserta.PesertaResponse:
|
|
properties:
|
|
data:
|
|
$ref: '#/definitions/peserta.PesertaData'
|
|
message:
|
|
type: string
|
|
metaData: {}
|
|
request_id:
|
|
type: string
|
|
status:
|
|
type: string
|
|
timestamp:
|
|
type: string
|
|
type: object
|
|
retribusi.Retribusi:
|
|
properties:
|
|
date_created:
|
|
$ref: '#/definitions/models.NullableTime'
|
|
date_updated:
|
|
$ref: '#/definitions/models.NullableTime'
|
|
dinas:
|
|
$ref: '#/definitions/models.NullableString'
|
|
id:
|
|
type: string
|
|
jenis:
|
|
$ref: '#/definitions/models.NullableString'
|
|
kelompok_obyek:
|
|
$ref: '#/definitions/models.NullableString'
|
|
kode_tarif:
|
|
$ref: '#/definitions/models.NullableString'
|
|
pelayanan:
|
|
$ref: '#/definitions/models.NullableString'
|
|
rekening_denda:
|
|
$ref: '#/definitions/models.NullableString'
|
|
rekening_pokok:
|
|
$ref: '#/definitions/models.NullableString'
|
|
satuan:
|
|
$ref: '#/definitions/models.NullableString'
|
|
satuan_overtime:
|
|
$ref: '#/definitions/models.NullableString'
|
|
sort:
|
|
$ref: '#/definitions/models.NullableInt32'
|
|
status:
|
|
type: string
|
|
tarif:
|
|
$ref: '#/definitions/models.NullableString'
|
|
tarif_overtime:
|
|
$ref: '#/definitions/models.NullableString'
|
|
uraian_1:
|
|
$ref: '#/definitions/models.NullableString'
|
|
uraian_2:
|
|
$ref: '#/definitions/models.NullableString'
|
|
uraian_3:
|
|
$ref: '#/definitions/models.NullableString'
|
|
user_created:
|
|
$ref: '#/definitions/models.NullableString'
|
|
user_updated:
|
|
$ref: '#/definitions/models.NullableString'
|
|
type: object
|
|
retribusi.RetribusiCreateRequest:
|
|
properties:
|
|
dinas:
|
|
maxLength: 255
|
|
minLength: 1
|
|
type: string
|
|
jenis:
|
|
maxLength: 255
|
|
minLength: 1
|
|
type: string
|
|
kelompok_obyek:
|
|
maxLength: 255
|
|
minLength: 1
|
|
type: string
|
|
kode_tarif:
|
|
maxLength: 255
|
|
minLength: 1
|
|
type: string
|
|
pelayanan:
|
|
maxLength: 255
|
|
minLength: 1
|
|
type: string
|
|
rekening_denda:
|
|
maxLength: 255
|
|
minLength: 1
|
|
type: string
|
|
rekening_pokok:
|
|
maxLength: 255
|
|
minLength: 1
|
|
type: string
|
|
satuan:
|
|
maxLength: 255
|
|
minLength: 1
|
|
type: string
|
|
satuan_overtime:
|
|
maxLength: 255
|
|
minLength: 1
|
|
type: string
|
|
status:
|
|
enum:
|
|
- draft
|
|
- active
|
|
- inactive
|
|
type: string
|
|
tarif:
|
|
type: string
|
|
tarif_overtime:
|
|
type: string
|
|
uraian_1:
|
|
type: string
|
|
uraian_2:
|
|
type: string
|
|
uraian_3:
|
|
type: string
|
|
required:
|
|
- status
|
|
type: object
|
|
retribusi.RetribusiCreateResponse:
|
|
properties:
|
|
data:
|
|
$ref: '#/definitions/retribusi.Retribusi'
|
|
message:
|
|
type: string
|
|
type: object
|
|
retribusi.RetribusiDeleteResponse:
|
|
properties:
|
|
id:
|
|
type: string
|
|
message:
|
|
type: string
|
|
type: object
|
|
retribusi.RetribusiGetByIDResponse:
|
|
properties:
|
|
data:
|
|
$ref: '#/definitions/retribusi.Retribusi'
|
|
message:
|
|
type: string
|
|
type: object
|
|
retribusi.RetribusiGetResponse:
|
|
properties:
|
|
data:
|
|
items:
|
|
$ref: '#/definitions/retribusi.Retribusi'
|
|
type: array
|
|
message:
|
|
type: string
|
|
meta:
|
|
$ref: '#/definitions/models.MetaResponse'
|
|
summary:
|
|
$ref: '#/definitions/models.AggregateData'
|
|
type: object
|
|
retribusi.RetribusiUpdateRequest:
|
|
properties:
|
|
dinas:
|
|
maxLength: 255
|
|
minLength: 1
|
|
type: string
|
|
jenis:
|
|
maxLength: 255
|
|
minLength: 1
|
|
type: string
|
|
kelompok_obyek:
|
|
maxLength: 255
|
|
minLength: 1
|
|
type: string
|
|
kode_tarif:
|
|
maxLength: 255
|
|
minLength: 1
|
|
type: string
|
|
pelayanan:
|
|
maxLength: 255
|
|
minLength: 1
|
|
type: string
|
|
rekening_denda:
|
|
maxLength: 255
|
|
minLength: 1
|
|
type: string
|
|
rekening_pokok:
|
|
maxLength: 255
|
|
minLength: 1
|
|
type: string
|
|
satuan:
|
|
maxLength: 255
|
|
minLength: 1
|
|
type: string
|
|
satuan_overtime:
|
|
maxLength: 255
|
|
minLength: 1
|
|
type: string
|
|
status:
|
|
enum:
|
|
- draft
|
|
- active
|
|
- inactive
|
|
type: string
|
|
tarif:
|
|
type: string
|
|
tarif_overtime:
|
|
type: string
|
|
uraian_1:
|
|
type: string
|
|
uraian_2:
|
|
type: string
|
|
uraian_3:
|
|
type: string
|
|
required:
|
|
- status
|
|
type: object
|
|
retribusi.RetribusiUpdateResponse:
|
|
properties:
|
|
data:
|
|
$ref: '#/definitions/retribusi.Retribusi'
|
|
message:
|
|
type: string
|
|
type: object
|
|
rujukan.DataPeserta:
|
|
properties:
|
|
cob:
|
|
properties:
|
|
nmAsuransi: {}
|
|
noAsuransi: {}
|
|
tglTAT: {}
|
|
tglTMT: {}
|
|
type: object
|
|
hakKelas:
|
|
properties:
|
|
keterangan:
|
|
type: string
|
|
kode:
|
|
type: string
|
|
type: object
|
|
informasi:
|
|
properties:
|
|
dinsos: {}
|
|
noSKTM: {}
|
|
prolanisPRB: {}
|
|
type: object
|
|
jenisPeserta:
|
|
properties:
|
|
keterangan:
|
|
type: string
|
|
kode:
|
|
type: string
|
|
type: object
|
|
mr:
|
|
properties:
|
|
noMR:
|
|
type: string
|
|
noTelepon: {}
|
|
type: object
|
|
nama:
|
|
type: string
|
|
nik:
|
|
type: string
|
|
noKartu:
|
|
type: string
|
|
pisa:
|
|
type: string
|
|
provUmum:
|
|
properties:
|
|
kdProvider:
|
|
type: string
|
|
nmProvider:
|
|
type: string
|
|
type: object
|
|
sex:
|
|
type: string
|
|
statusPeserta:
|
|
properties:
|
|
keterangan:
|
|
type: string
|
|
kode:
|
|
type: string
|
|
type: object
|
|
tglCetakKartu:
|
|
type: string
|
|
tglLahir:
|
|
type: string
|
|
tglTAT:
|
|
type: string
|
|
tglTMT:
|
|
type: string
|
|
umur:
|
|
properties:
|
|
umurSaatPelayanan:
|
|
type: string
|
|
umurSekarang:
|
|
type: string
|
|
type: object
|
|
type: object
|
|
rujukan.DiagnosaData:
|
|
properties:
|
|
kode:
|
|
type: string
|
|
nama:
|
|
type: string
|
|
type: object
|
|
rujukan.PelayananData:
|
|
properties:
|
|
kode:
|
|
type: string
|
|
nama:
|
|
type: string
|
|
type: object
|
|
rujukan.PoliRujukanData:
|
|
properties:
|
|
kode:
|
|
type: string
|
|
nama:
|
|
type: string
|
|
type: object
|
|
rujukan.ProvPerujukData:
|
|
properties:
|
|
kode:
|
|
type: string
|
|
nama:
|
|
type: string
|
|
type: object
|
|
rujukan.RujukanData:
|
|
properties:
|
|
diagnosa:
|
|
$ref: '#/definitions/rujukan.DiagnosaData'
|
|
keluhan:
|
|
type: string
|
|
noKunjungan:
|
|
type: string
|
|
pelayanan:
|
|
$ref: '#/definitions/rujukan.PelayananData'
|
|
peserta:
|
|
$ref: '#/definitions/rujukan.DataPeserta'
|
|
poliRujukan:
|
|
$ref: '#/definitions/rujukan.PoliRujukanData'
|
|
provPerujuk:
|
|
$ref: '#/definitions/rujukan.ProvPerujukData'
|
|
tglKunjungan:
|
|
type: string
|
|
type: object
|
|
rujukan.RujukanRequest:
|
|
properties:
|
|
noKartu:
|
|
type: string
|
|
noRujukan:
|
|
type: string
|
|
request_id:
|
|
type: string
|
|
timestamp:
|
|
type: string
|
|
required:
|
|
- noRujukan
|
|
type: object
|
|
rujukan.RujukanResponse:
|
|
properties:
|
|
data:
|
|
$ref: '#/definitions/rujukan.RujukanData'
|
|
list:
|
|
items:
|
|
$ref: '#/definitions/rujukan.RujukanData'
|
|
type: array
|
|
message:
|
|
type: string
|
|
metaData: {}
|
|
request_id:
|
|
type: string
|
|
status:
|
|
type: string
|
|
timestamp:
|
|
type: string
|
|
type: object
|
|
host: localhost:8080
|
|
info:
|
|
contact:
|
|
email: support@swagger.io
|
|
name: API Support
|
|
url: http://www.swagger.io/support
|
|
description: A comprehensive Go API service with Swagger documentation
|
|
license:
|
|
name: Apache 2.0
|
|
url: http://www.apache.org/licenses/LICENSE-2.0.html
|
|
termsOfService: http://swagger.io/terms/
|
|
title: API Service
|
|
version: 1.0.0
|
|
paths:
|
|
/Peserta/nik/:nik:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Get participant eligibility information by NIK
|
|
parameters:
|
|
- description: Request ID for tracking
|
|
in: header
|
|
name: X-Request-ID
|
|
type: string
|
|
- description: nik
|
|
example: '"example_value"'
|
|
in: path
|
|
name: nik
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Successfully retrieved Bynik data
|
|
schema:
|
|
$ref: '#/definitions/peserta.PesertaResponse'
|
|
"400":
|
|
description: Bad request - invalid parameters
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponseBpjs'
|
|
"401":
|
|
description: Unauthorized - invalid API credentials
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponseBpjs'
|
|
"404":
|
|
description: Not found - Bynik not found
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponseBpjs'
|
|
"500":
|
|
description: Internal server error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponseBpjs'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Get Bynik data
|
|
tags:
|
|
- Peserta
|
|
/Peserta/nokartu/:nokartu:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Get participant eligibility information by card number
|
|
parameters:
|
|
- description: Request ID for tracking
|
|
in: header
|
|
name: X-Request-ID
|
|
type: string
|
|
- description: nokartu
|
|
example: '"example_value"'
|
|
in: path
|
|
name: nokartu
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Successfully retrieved Bynokartu data
|
|
schema:
|
|
$ref: '#/definitions/peserta.PesertaResponse'
|
|
"400":
|
|
description: Bad request - invalid parameters
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponseBpjs'
|
|
"401":
|
|
description: Unauthorized - invalid API credentials
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponseBpjs'
|
|
"404":
|
|
description: Not found - Bynokartu not found
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponseBpjs'
|
|
"500":
|
|
description: Internal server error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponseBpjs'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Get Bynokartu data
|
|
tags:
|
|
- Peserta
|
|
/Rujukan/:norujukan:
|
|
delete:
|
|
consumes:
|
|
- application/json
|
|
description: Delete existing Rujukan from BPJS system
|
|
parameters:
|
|
- description: Request ID for tracking
|
|
in: header
|
|
name: X-Request-ID
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Successfully deleted Rujukan
|
|
schema:
|
|
$ref: '#/definitions/rujukan.RujukanResponse'
|
|
"400":
|
|
description: Bad request - invalid parameters
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponseBpjs'
|
|
"401":
|
|
description: Unauthorized - invalid API credentials
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponseBpjs'
|
|
"404":
|
|
description: Not found - Rujukan not found
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponseBpjs'
|
|
"500":
|
|
description: Internal server error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponseBpjs'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Delete existing Rujukan
|
|
tags:
|
|
- Rujukan
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Create new Rujukan in BPJS system
|
|
parameters:
|
|
- description: Request ID for tracking
|
|
in: header
|
|
name: X-Request-ID
|
|
type: string
|
|
- description: Rujukan data
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/rujukan.RujukanRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"201":
|
|
description: Successfully created Rujukan
|
|
schema:
|
|
$ref: '#/definitions/rujukan.RujukanResponse'
|
|
"400":
|
|
description: Bad request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponseBpjs'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponseBpjs'
|
|
"409":
|
|
description: Conflict
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponseBpjs'
|
|
"500":
|
|
description: Internal server error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponseBpjs'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Create new Rujukan
|
|
tags:
|
|
- Rujukan
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Update existing Rujukan in BPJS system
|
|
parameters:
|
|
- description: Request ID for tracking
|
|
in: header
|
|
name: X-Request-ID
|
|
type: string
|
|
- description: Rujukan update data
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/rujukan.RujukanRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Successfully updated Rujukan
|
|
schema:
|
|
$ref: '#/definitions/rujukan.RujukanResponse'
|
|
"400":
|
|
description: Bad request - invalid parameters
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponseBpjs'
|
|
"401":
|
|
description: Unauthorized - invalid API credentials
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponseBpjs'
|
|
"404":
|
|
description: Not found - Rujukan not found
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponseBpjs'
|
|
"409":
|
|
description: Conflict - update conflict occurred
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponseBpjs'
|
|
"500":
|
|
description: Internal server error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponseBpjs'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Update existing Rujukan
|
|
tags:
|
|
- Rujukan
|
|
/Rujukanbalik/:norujukan:
|
|
delete:
|
|
consumes:
|
|
- application/json
|
|
description: Delete existing Rujukanbalik from BPJS system
|
|
parameters:
|
|
- description: Request ID for tracking
|
|
in: header
|
|
name: X-Request-ID
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Successfully deleted Rujukanbalik
|
|
schema:
|
|
$ref: '#/definitions/rujukan.RujukanResponse'
|
|
"400":
|
|
description: Bad request - invalid parameters
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponseBpjs'
|
|
"401":
|
|
description: Unauthorized - invalid API credentials
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponseBpjs'
|
|
"404":
|
|
description: Not found - Rujukanbalik not found
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponseBpjs'
|
|
"500":
|
|
description: Internal server error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponseBpjs'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Delete existing Rujukanbalik
|
|
tags:
|
|
- Rujukan
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Create new Rujukanbalik in BPJS system
|
|
parameters:
|
|
- description: Request ID for tracking
|
|
in: header
|
|
name: X-Request-ID
|
|
type: string
|
|
- description: Rujukanbalik data
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/rujukan.RujukanRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"201":
|
|
description: Successfully created Rujukanbalik
|
|
schema:
|
|
$ref: '#/definitions/rujukan.RujukanResponse'
|
|
"400":
|
|
description: Bad request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponseBpjs'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponseBpjs'
|
|
"409":
|
|
description: Conflict
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponseBpjs'
|
|
"500":
|
|
description: Internal server error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponseBpjs'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Create new Rujukanbalik
|
|
tags:
|
|
- Rujukan
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Update existing Rujukanbalik in BPJS system
|
|
parameters:
|
|
- description: Request ID for tracking
|
|
in: header
|
|
name: X-Request-ID
|
|
type: string
|
|
- description: Rujukanbalik update data
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/rujukan.RujukanRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Successfully updated Rujukanbalik
|
|
schema:
|
|
$ref: '#/definitions/rujukan.RujukanResponse'
|
|
"400":
|
|
description: Bad request - invalid parameters
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponseBpjs'
|
|
"401":
|
|
description: Unauthorized - invalid API credentials
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponseBpjs'
|
|
"404":
|
|
description: Not found - Rujukanbalik not found
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponseBpjs'
|
|
"409":
|
|
description: Conflict - update conflict occurred
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponseBpjs'
|
|
"500":
|
|
description: Internal server error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponseBpjs'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Update existing Rujukanbalik
|
|
tags:
|
|
- Rujukan
|
|
/api/v1/auth/login:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Authenticate user with username and password to receive JWT token
|
|
parameters:
|
|
- description: Login credentials
|
|
in: body
|
|
name: login
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.LoginRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.TokenResponse'
|
|
"400":
|
|
description: Bad request
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
summary: Login user and get JWT token
|
|
tags:
|
|
- Authentication
|
|
/api/v1/auth/me:
|
|
get:
|
|
description: Get information about the currently authenticated user
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.User'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
security:
|
|
- Bearer: []
|
|
summary: Get current user info
|
|
tags:
|
|
- Authentication
|
|
/api/v1/auth/refresh:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Refresh the JWT token using a valid refresh token
|
|
parameters:
|
|
- description: Refresh token
|
|
in: body
|
|
name: refresh
|
|
required: true
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.TokenResponse'
|
|
"400":
|
|
description: Bad request
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
summary: Refresh JWT token
|
|
tags:
|
|
- Authentication
|
|
/api/v1/auth/register:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Register a new user account
|
|
parameters:
|
|
- description: Registration data
|
|
in: body
|
|
name: register
|
|
required: true
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"201":
|
|
description: Created
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
"400":
|
|
description: Bad request
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
summary: Register new user
|
|
tags:
|
|
- Authentication
|
|
/api/v1/retribusi/{id}:
|
|
delete:
|
|
consumes:
|
|
- application/json
|
|
description: Soft deletes a retribusi by setting status to 'deleted'
|
|
parameters:
|
|
- description: Retribusi ID (UUID)
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Retribusi deleted successfully
|
|
schema:
|
|
$ref: '#/definitions/retribusi.RetribusiDeleteResponse'
|
|
"400":
|
|
description: Invalid ID format
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"404":
|
|
description: Retribusi not found
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal server error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
summary: Delete retribusi
|
|
tags:
|
|
- Retribusi
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Returns a single retribusi by ID
|
|
parameters:
|
|
- description: Retribusi ID (UUID)
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Success response
|
|
schema:
|
|
$ref: '#/definitions/retribusi.RetribusiGetByIDResponse'
|
|
"400":
|
|
description: Invalid ID format
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"404":
|
|
description: Retribusi not found
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal server error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
summary: Get Retribusi by ID
|
|
tags:
|
|
- Retribusi
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Updates an existing retribusi record
|
|
parameters:
|
|
- description: Retribusi ID (UUID)
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
- description: Retribusi update request
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/retribusi.RetribusiUpdateRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Retribusi updated successfully
|
|
schema:
|
|
$ref: '#/definitions/retribusi.RetribusiUpdateResponse'
|
|
"400":
|
|
description: Bad request or validation error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"404":
|
|
description: Retribusi not found
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal server error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
summary: Update retribusi
|
|
tags:
|
|
- Retribusi
|
|
/api/v1/retribusis:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Returns a paginated list of retribusis with optional summary statistics
|
|
parameters:
|
|
- default: 10
|
|
description: Limit (max 100)
|
|
in: query
|
|
name: limit
|
|
type: integer
|
|
- default: 0
|
|
description: Offset
|
|
in: query
|
|
name: offset
|
|
type: integer
|
|
- default: false
|
|
description: Include aggregation summary
|
|
in: query
|
|
name: include_summary
|
|
type: boolean
|
|
- description: Filter by status
|
|
in: query
|
|
name: status
|
|
type: string
|
|
- description: Filter by jenis
|
|
in: query
|
|
name: jenis
|
|
type: string
|
|
- description: Filter by dinas
|
|
in: query
|
|
name: dinas
|
|
type: string
|
|
- description: Search in multiple fields
|
|
in: query
|
|
name: search
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Success response
|
|
schema:
|
|
$ref: '#/definitions/retribusi.RetribusiGetResponse'
|
|
"400":
|
|
description: Bad request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal server error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
summary: Get retribusi with pagination and optional aggregation
|
|
tags:
|
|
- Retribusi
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Creates a new retribusi record
|
|
parameters:
|
|
- description: Retribusi creation request
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/retribusi.RetribusiCreateRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"201":
|
|
description: Retribusi created successfully
|
|
schema:
|
|
$ref: '#/definitions/retribusi.RetribusiCreateResponse'
|
|
"400":
|
|
description: Bad request or validation error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal server error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
summary: Create retribusi
|
|
tags:
|
|
- Retribusi
|
|
/api/v1/retribusis/dynamic:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Returns retribusis with advanced dynamic filtering like Directus
|
|
parameters:
|
|
- description: Fields to select (e.g., fields=*.*)
|
|
in: query
|
|
name: fields
|
|
type: string
|
|
- description: Dynamic filters (e.g., filter[Jenis][_eq]=value)
|
|
in: query
|
|
name: filter[column][operator]
|
|
type: string
|
|
- description: Sort fields (e.g., sort=date_created,-Jenis)
|
|
in: query
|
|
name: sort
|
|
type: string
|
|
- default: 10
|
|
description: Limit
|
|
in: query
|
|
name: limit
|
|
type: integer
|
|
- default: 0
|
|
description: Offset
|
|
in: query
|
|
name: offset
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Success response
|
|
schema:
|
|
$ref: '#/definitions/retribusi.RetribusiGetResponse'
|
|
"400":
|
|
description: Bad request
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
"500":
|
|
description: Internal server error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
summary: Get retribusi with dynamic filtering
|
|
tags:
|
|
- Retribusi
|
|
/api/v1/retribusis/stats:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Returns comprehensive statistics about retribusi data
|
|
parameters:
|
|
- description: Filter statistics by status
|
|
in: query
|
|
name: status
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Statistics data
|
|
schema:
|
|
$ref: '#/definitions/models.AggregateData'
|
|
"500":
|
|
description: Internal server error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponse'
|
|
summary: Get retribusi statistics
|
|
tags:
|
|
- Retribusi
|
|
/api/v1/token/generate:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Generate a JWT token for a user
|
|
parameters:
|
|
- description: User credentials
|
|
in: body
|
|
name: token
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.LoginRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.TokenResponse'
|
|
"400":
|
|
description: Bad request
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
summary: Generate JWT token
|
|
tags:
|
|
- Token
|
|
/api/v1/token/generate-direct:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Generate a JWT token directly without password verification (for
|
|
testing)
|
|
parameters:
|
|
- description: User info
|
|
in: body
|
|
name: user
|
|
required: true
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.TokenResponse'
|
|
"400":
|
|
description: Bad request
|
|
schema:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
summary: Generate token directly
|
|
tags:
|
|
- Token
|
|
/bynokartu/:nokartu:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Get rujukan by card number
|
|
parameters:
|
|
- description: Request ID for tracking
|
|
in: header
|
|
name: X-Request-ID
|
|
type: string
|
|
- description: nokartu
|
|
example: '"example_value"'
|
|
in: path
|
|
name: nokartu
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Successfully retrieved Bynokartu data
|
|
schema:
|
|
$ref: '#/definitions/rujukan.RujukanResponse'
|
|
"400":
|
|
description: Bad request - invalid parameters
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponseBpjs'
|
|
"401":
|
|
description: Unauthorized - invalid API credentials
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponseBpjs'
|
|
"404":
|
|
description: Not found - Bynokartu not found
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponseBpjs'
|
|
"500":
|
|
description: Internal server error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponseBpjs'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Get Bynokartu data
|
|
tags:
|
|
- Rujukan
|
|
/bynorujukan/:norujukan:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Get rujukan by nomor rujukan
|
|
parameters:
|
|
- description: Request ID for tracking
|
|
in: header
|
|
name: X-Request-ID
|
|
type: string
|
|
- description: norujukan
|
|
example: '"example_value"'
|
|
in: path
|
|
name: norujukan
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Successfully retrieved Bynorujukan data
|
|
schema:
|
|
$ref: '#/definitions/rujukan.RujukanResponse'
|
|
"400":
|
|
description: Bad request - invalid parameters
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponseBpjs'
|
|
"401":
|
|
description: Unauthorized - invalid API credentials
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponseBpjs'
|
|
"404":
|
|
description: Not found - Bynorujukan not found
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponseBpjs'
|
|
"500":
|
|
description: Internal server error
|
|
schema:
|
|
$ref: '#/definitions/models.ErrorResponseBpjs'
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Get Bynorujukan data
|
|
tags:
|
|
- Rujukan
|
|
schemes:
|
|
- http
|
|
- https
|
|
swagger: "2.0"
|