Introduction

This documentation aims to provide all the information you need to work with our API.

Authenticating requests

To authenticate requests, include an Authorization header with the value "Bearer {YOUR_AUTH_KEY}".

All authenticated endpoints are marked with a requires authentication badge in the documentation below.

You can retrieve your token by visiting your dashboard and clicking Generate API token.

Dashboard 🛤️

Account 😺

Account group


Dashboard | Retrieve Authenticated User

GET
https://icc.goulbam.com
/api/v1/dashboard/user
requires authentication

Retrieve the currently authenticated user's information. This includes details like the user's profile, roles, and associated departments or events.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json
Example request:
curl --request GET \
    --get "https://icc.goulbam.com/api/v1/dashboard/user" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "data": {
        "id": 1,
        "name": "admin",
        "email": "admin@gmail.com",
        "image": "https://icc.goulbam.com/storage",
        "address": null,
        "email_verified_at": null,
        "remember_token": null,
        "created_at": "2025-02-03T15:13:36.000000Z",
        "updated_at": "2025-02-03T15:13:36.000000Z",
        "surname": "admin",
        "phone_number": null,
        "role_id": 1,
        "role": {
            "id": 1,
            "name": "global_admin"
        }
    }
}

Dashboard | Update profile

POST
https://icc.goulbam.com
/api/v1/dashboard/profile/updateProfile
requires authentication

Update a profile from the application

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
multipart/form-data
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://icc.goulbam.com/api/v1/dashboard/profile/updateProfile" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: multipart/form-data" \
    --header "Accept: application/json" \
    --form "name=excepturi"\
    --form "address=dolorem"\
    --form "surname=eos"\
    --form "phone_number=accusamus"\
    --form "has_image="\
    --form "image=@C:\Users\Kamix\AppData\Local\Temp\php494B.tmp" 
Example response:
{
    "message": "success",
    "status": 200
}

Dashboard | Update password

POST
https://icc.goulbam.com
/api/v1/dashboard/profile/updatePassword
requires authentication

Update a password from the application

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://icc.goulbam.com/api/v1/dashboard/profile/updatePassword" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"old_password\": \"culpa\",
    \"password\": \"4\\\\C6N`<*6j\"
}"
Example response:
{
    "message": "success",
    "status": 200
}

Department


Dashboard | List My Department Requests

GET
https://icc.goulbam.com
/api/v1/dashboard/user/departments/my/requests
requires authentication

List all requests related to departments that the authenticated user has submitted. This includes pending, approved, or rejected requests for joining departments.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Query Parameters

status
string
required

the type of status returned

Must be one of:
  • all
  • pending
  • approved
  • rejected
Example:
all
Example request:
curl --request GET \
    --get "https://icc.goulbam.com/api/v1/dashboard/user/departments/my/requests?status=all" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "data": [
        {
            "id": 1,
            "user_id": 11,
            "approved_at": null,
            "rejected_at": null,
            "status": "pending",
            "request_id": "4d038f60-5b9d-38bc-a177-05f382660976",
            "created_at": "2025-02-03T15:13:41.000000Z",
            "updated_at": "2025-02-03T15:13:41.000000Z",
            "department_id": 1,
            "department": {
                "id": 1,
                "name": "department number 1",
                "matricule": "ICG-dd7184a9-60e1-318d-a392-7629a7ac9e4d",
                "description": "description for department number 1",
                "manager": {
                    "id": 13,
                    "name": "name test 12",
                    "email": "email012@gmail.com",
                    "image": "https://icc.goulbam.com/storage",
                    "address": "653 Ullrich Village Suite 297\nFletaville, VT 65875",
                    "email_verified_at": null,
                    "remember_token": null,
                    "created_at": "2025-02-03T15:13:39.000000Z",
                    "updated_at": "2025-02-03T15:13:39.000000Z",
                    "surname": "surname test 12",
                    "phone_number": null,
                    "role_id": 4,
                    "role": {
                        "id": 4,
                        "name": "member"
                    }
                },
                "members_count": null,
                "updated_at": "2025-02-03T15:13:41.000000Z",
                "created_at": "2025-02-03T15:13:41.000000Z"
            }
        },
        {
            "id": 1,
            "user_id": 11,
            "approved_at": null,
            "rejected_at": null,
            "status": "pending",
            "request_id": "4d038f60-5b9d-38bc-a177-05f382660976",
            "created_at": "2025-02-03T15:13:41.000000Z",
            "updated_at": "2025-02-03T15:13:41.000000Z",
            "department_id": 1,
            "department": {
                "id": 1,
                "name": "department number 1",
                "matricule": "ICG-dd7184a9-60e1-318d-a392-7629a7ac9e4d",
                "description": "description for department number 1",
                "manager": {
                    "id": 13,
                    "name": "name test 12",
                    "email": "email012@gmail.com",
                    "image": "https://icc.goulbam.com/storage",
                    "address": "653 Ullrich Village Suite 297\nFletaville, VT 65875",
                    "email_verified_at": null,
                    "remember_token": null,
                    "created_at": "2025-02-03T15:13:39.000000Z",
                    "updated_at": "2025-02-03T15:13:39.000000Z",
                    "surname": "surname test 12",
                    "phone_number": null,
                    "role_id": 4,
                    "role": {
                        "id": 4,
                        "name": "member"
                    }
                },
                "members_count": null,
                "updated_at": "2025-02-03T15:13:41.000000Z",
                "created_at": "2025-02-03T15:13:41.000000Z"
            }
        }
    ]
}

Dashboard | Request to Join Department

POST
https://icc.goulbam.com
/api/v1/dashboard/user/departments/{departmentId}/requests/join
requires authentication

Submit a request to join a specific department within the system. This action triggers the approval process where department heads can review the user's request.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

departmentId
integer
required

id of department

Example:
1
Example request:
curl --request POST \
    "https://icc.goulbam.com/api/v1/dashboard/user/departments/1/requests/join" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "data": {
        "id": 1,
        "user_id": 11,
        "approved_at": null,
        "rejected_at": null,
        "status": "pending",
        "request_id": "4d038f60-5b9d-38bc-a177-05f382660976",
        "created_at": "2025-02-03T15:13:41.000000Z",
        "updated_at": "2025-02-03T15:13:41.000000Z",
        "department_id": 1
    }
}

Dashboard | Me Leave department

POST
https://icc.goulbam.com
/api/v1/dashboard/user/departments/{departmentId}/leave
requires authentication

Leave a department that i have joined

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

departmentId
integer
required
Example:
1
Example request:
curl --request POST \
    "https://icc.goulbam.com/api/v1/dashboard/user/departments/1/leave" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "message": "success",
    "status": 200
}
{
    "errors": {
        "user": "user not attached to department"
    },
    "message": "user not attached to department"
}

Event


Event | List My Requests

GET
https://icc.goulbam.com
/api/v1/dashboard/user/events/my/requests
requires authentication
        This endpoint is for users who want to track their own event participation requests. It lists all the events where the user has submitted a request, whether pending, approved, or rejected. This helps users stay informed about their event involvement.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Query Parameters

status
string
required

the type of status returned

Must be one of:
  • all
  • pending
  • approved
  • rejected
Example:
all
Example request:
curl --request GET \
    --get "https://icc.goulbam.com/api/v1/dashboard/user/events/my/requests?status=all" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "data": [
        {
            "id": null,
            "request_id": "velit",
            "approved_at": "2025-02-03T15:13:51.000000Z",
            "rejected_at": null,
            "event_id": 11,
            "status": "approved",
            "user_id": 22,
            "updated_at": "2025-02-03T15:13:51.000000Z",
            "created_at": "2025-02-03T15:13:51.000000Z"
        },
        {
            "id": null,
            "request_id": "iure",
            "approved_at": "2025-02-03T15:13:51.000000Z",
            "rejected_at": null,
            "event_id": 12,
            "status": "approved",
            "user_id": 25,
            "updated_at": "2025-02-03T15:13:51.000000Z",
            "created_at": "2025-02-03T15:13:51.000000Z"
        }
    ]
}

Dashboard | Request to Join Event

POST
https://icc.goulbam.com
/api/v1/dashboard/user/events/{eventId}/requests/join
requires authentication

Submit a request to join a specific event in the system. This action will initiate the approval process for event organizers to allow or deny the request.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

eventId
integer
required

id of event

Example:
1
Example request:
curl --request POST \
    "https://icc.goulbam.com/api/v1/dashboard/user/events/1/requests/join" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "data": {
        "id": null,
        "request_id": "consequatur",
        "approved_at": "2025-02-03T15:13:51.000000Z",
        "rejected_at": null,
        "event_id": 11,
        "status": "approved",
        "user_id": 24,
        "updated_at": "2025-02-03T15:13:51.000000Z",
        "created_at": "2025-02-03T15:13:51.000000Z"
    }
}

Dashboard Notification


Dashboard | List notifications

GET
https://icc.goulbam.com
/api/v1/dashboard/user/notifications
requires authentication

Return list of notifications

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Query Parameters

filter
string
required

Filtrer les notifications par statut (read, unread, all)

Must be one of:
  • read
  • unread
  • all
Example:
all
Example request:
curl --request GET \
    --get "https://icc.goulbam.com/api/v1/dashboard/user/notifications?filter=all" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "data": [
        {
            "id": "1e72fa6f-8d8b-43da-b45f-df501b913a4e",
            "type": "App\\Notifications\\UserNotification",
            "notifiable_id": 1,
            "notifiable_type": "App\\Models\\User",
            "data": {
                "message": "Notification de test"
            },
            "read_at": null,
            "created_at": "2024-10-18T14:51:23.000000Z",
            "updated_at": "2024-10-18T14:51:23.000000Z"
        }
    ]
}
{
    "message": "Unauthenticated."
}
{
    "errors": [],
    "message": "filter is invalid"
}

Dashboard | Mark as read

POST
https://icc.goulbam.com
/api/v1/dashboard/user/notifications/markAsRead
requires authentication

Mark unread notification as read

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json
Example request:
curl --request POST \
    "https://icc.goulbam.com/api/v1/dashboard/user/notifications/markAsRead" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "message": "success",
    "status": 200
}

Churches


List of Churches

GET
https://icc.goulbam.com
/api/v1/dashboard/sites

Retrieve a list of all churches.

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json
Example request:
curl --request GET \
    --get "https://icc.goulbam.com/api/v1/dashboard/sites" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "data": [
        {
            "name": "Charle Roi",
            "code": "charle_roi",
            "address": "Belgique,",
            "description": "description",
            "created_at": "2025-02-03T15:13:41.000000Z",
            "updated_at": "2025-02-03T15:13:41.000000Z"
        },
        {
            "name": "Charle Roi",
            "code": "charle_roi",
            "address": "Belgique,",
            "description": "description",
            "created_at": "2025-02-03T15:13:41.000000Z",
            "updated_at": "2025-02-03T15:13:41.000000Z"
        }
    ]
}

Module | Account 👩🏿‍💻

Authentication | Register User

POST
https://icc.goulbam.com
/api/v1/register

Create a new user account in the system. This endpoint allows for registering a new user with their credentials and returns their account details once the registration is successful.

Headers

Content-Type
Example:
multipart/form-data
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://icc.goulbam.com/api/v1/register" \
    --header "Content-Type: multipart/form-data" \
    --header "Accept: application/json" \
    --form "name=Miss Gladys Lindgren V"\
    --form "phone_number=820.906.7580"\
    --form "surname=Frami"\
    --form "address=35887 Sincere Brooks Suite 495
West Mark, NY 95109"\
    --form "email=sipes.maximo@example.org"\
    --form "role_id=member"\
    --form "password=password"\
    --form "password_confirmation=password"\
    --form "site_id=4"\
    --form "image=@C:\Users\Kamix\AppData\Local\Temp\php497B.tmp" 
Example response:
{
    "token": "XHDH293939jjfjfj939339339",
    "expired_at": "2024-08-23"
}

Authentication | Login with Token

POST
https://icc.goulbam.com
/api/v1/login

Authenticate a user by providing a login token. This token will be used to grant the user access to the system and validate their session for future requests.

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://icc.goulbam.com/api/v1/login" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"email\": \"lucchuala@gmail.com\",
    \"password\": \"password\"
}"
Example response:

Authentication | Forgot Password Notification

POST
https://icc.goulbam.com
/api/v1/forgot-password

Send an email with a link and instructions for the user to reset their account password. This ensures that users can regain access to their account securely if they forget their credentials.

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://icc.goulbam.com/api/v1/forgot-password" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"email\": \"ischulist@example.net\"
}"
Example response:
{
    "status": "password sent"
}

Authentication | Reset Password

POST
https://icc.goulbam.com
/api/v1/reset-password

Reset the password for a specific user. This action allows users to set a new password if they have forgotten their current one or wish to update it for security reasons.

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://icc.goulbam.com/api/v1/reset-password" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"token\": \"aut\",
    \"email\": \"domenick89@example.org\",
    \"password\": \"quod\"
}"
Example response:
{
    "status": "password sent"
}

Authentication | Check Email Verification

GET
https://icc.goulbam.com
/api/v1/verify-email/{id}/{hash}

Check whether the current user has verified their email address. This endpoint is useful for ensuring that users have completed the verification process after registration.

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

id
string
required

The ID of the verify email.

Example:
aut
hash
string
required
Example:
expedita
Example request:
curl --request GET \
    --get "https://icc.goulbam.com/api/v1/verify-email/aut/expedita" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "data": {
        "verified": false
    }
}

Authentication | Send Verification Email

POST
https://icc.goulbam.com
/api/v1/email/verification-notification

Send a new verification email to the user. This allows users to receive another verification link if they did not receive or lost the initial email.

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json
Example request:
curl --request POST \
    "https://icc.goulbam.com/api/v1/email/verification-notification" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "status": "verification-link-sent"
}

Display the password reset view.

GET
https://icc.goulbam.com
/api/v1/reset-password/{token}

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

token
string
required
Example:
placeat
Example request:
curl --request GET \
    --get "https://icc.goulbam.com/api/v1/reset-password/placeat" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
Headers
                                                            cache-control
                                                            : no-cache, private
                                                                                                                    content-type
                                                            : application/json
                                                                                                                    access-control-allow-origin
                                                            : http://localhost:3000
                                                                                                                    access-control-allow-credentials
                                                            : true
                                                                                                                    set-cookie
                                                            : XSRF-TOKEN=eyJpdiI6IjI3WEU1NUtrQ1NSS2NVM1Vqem5mQ2c9PSIsInZhbHVlIjoidCtkaXo1RURFUlJLN2djQVMvcVJnMXE2S0pOaSt5U2VHaXNKYXh2ckhBQmZ2eWVUelBSL3V4dXdOaUl1OUhkdjBoYmpuREdrYm9VNHdiRmZoNDMvYTlVRjVLRlZZUktOb3FNZkErM3VpTzUzRGw1aUFVd1BaU25LUThucElodzEiLCJtYWMiOiJjYzlmNDFlOGVhNTExZmY2ZmRiMDY1NWMyNjk1NDEyNDllNTRlMjBmZjU3ODVjYTE4NWQzNzE4MzkwNTJkZGM2IiwidGFnIjoiIn0%3D; expires=Mon, 03 Feb 2025 17:13:51 GMT; Max-Age=7200; path=/; secure; samesite=lax; church_session=eyJpdiI6InVPRFdoL0M2TmN4SVpQN1Q2Yzd1VEE9PSIsInZhbHVlIjoibVFEcWJ6RHV4Tlk3MDhuVGpoYzBqVnFveVRWdjJQL0hIWXJENm80MzFuYzRnN1g2bnFvTmFkeW5NaUYyZmpLQTZtVk9wWkdwaFdtTkNFNmxTV1lzQXdXc0dqbTlGcnhwbksrSjFVcitoWlBhbEVBa2lraVdjM01YNmZHY054cmEiLCJtYWMiOiIyYzYzMzI3YmE1ZWRlZTQ5ZmE5YWU1ZWVhMWYyOGJmMjAzNDRjMDZhZTJiMmFkMDE3YzNhNGQyNDNhMWZkMzZhIiwidGFnIjoiIn0%3D; expires=Mon, 03 Feb 2025 17:13:51 GMT; Max-Age=7200; path=/; secure; httponly; samesite=lax
                                                         
{
    "message": "Missing required parameter for [Route: password.store] [URI: api/v1/reset-password] [Missing parameter: { apiBaseUrl() ]. (View: C:\\laragon\\www\\church_belgique\\resources\\views\\auth\\reset-password.blade.php)",
    "exception": "Illuminate\\View\\ViewException",
    "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Exceptions\\UrlGenerationException.php",
    "line": 35,
    "trace": [
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\livewire\\livewire\\src\\Mechanisms\\ExtendBlade\\ExtendedCompilerEngine.php",
            "line": 58,
            "function": "handleViewException",
            "class": "Illuminate\\View\\Engines\\CompilerEngine",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\View\\Engines\\PhpEngine.php",
            "line": 60,
            "function": "handleViewException",
            "class": "Livewire\\Mechanisms\\ExtendBlade\\ExtendedCompilerEngine",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\livewire\\livewire\\src\\Mechanisms\\ExtendBlade\\ExtendedCompilerEngine.php",
            "line": 22,
            "function": "evaluatePath",
            "class": "Illuminate\\View\\Engines\\PhpEngine",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\View\\Engines\\CompilerEngine.php",
            "line": 74,
            "function": "evaluatePath",
            "class": "Livewire\\Mechanisms\\ExtendBlade\\ExtendedCompilerEngine",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\livewire\\livewire\\src\\Mechanisms\\ExtendBlade\\ExtendedCompilerEngine.php",
            "line": 10,
            "function": "get",
            "class": "Illuminate\\View\\Engines\\CompilerEngine",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\View\\View.php",
            "line": 208,
            "function": "get",
            "class": "Livewire\\Mechanisms\\ExtendBlade\\ExtendedCompilerEngine",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\View\\View.php",
            "line": 191,
            "function": "getContents",
            "class": "Illuminate\\View\\View",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\View\\View.php",
            "line": 160,
            "function": "renderContents",
            "class": "Illuminate\\View\\View",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\Http\\Response.php",
            "line": 70,
            "function": "render",
            "class": "Illuminate\\View\\View",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\Http\\Response.php",
            "line": 35,
            "function": "setContent",
            "class": "Illuminate\\Http\\Response",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 920,
            "function": "__construct",
            "class": "Illuminate\\Http\\Response",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 887,
            "function": "toResponse",
            "class": "Illuminate\\Routing\\Router",
            "type": "::"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 807,
            "function": "prepareResponse",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 144,
            "function": "Illuminate\\Routing\\{closure}",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken.php",
            "line": 88,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 183,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Middleware\\SubstituteBindings.php",
            "line": 51,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 183,
            "function": "handle",
            "class": "Illuminate\\Routing\\Middleware\\SubstituteBindings",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\View\\Middleware\\ShareErrorsFromSession.php",
            "line": 49,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 183,
            "function": "handle",
            "class": "Illuminate\\View\\Middleware\\ShareErrorsFromSession",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\Session\\Middleware\\StartSession.php",
            "line": 121,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\Session\\Middleware\\StartSession.php",
            "line": 64,
            "function": "handleStatefulRequest",
            "class": "Illuminate\\Session\\Middleware\\StartSession",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 183,
            "function": "handle",
            "class": "Illuminate\\Session\\Middleware\\StartSession",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse.php",
            "line": 37,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 183,
            "function": "handle",
            "class": "Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\Cookie\\Middleware\\EncryptCookies.php",
            "line": 75,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 183,
            "function": "handle",
            "class": "Illuminate\\Cookie\\Middleware\\EncryptCookies",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\sanctum\\src\\Http\\Middleware\\EnsureFrontendRequestsAreStateful.php",
            "line": 25,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 144,
            "function": "Laravel\\Sanctum\\Http\\Middleware\\{closure}",
            "class": "Laravel\\Sanctum\\Http\\Middleware\\EnsureFrontendRequestsAreStateful",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 119,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\sanctum\\src\\Http\\Middleware\\EnsureFrontendRequestsAreStateful.php",
            "line": 24,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 183,
            "function": "handle",
            "class": "Laravel\\Sanctum\\Http\\Middleware\\EnsureFrontendRequestsAreStateful",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 119,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 807,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 786,
            "function": "runRouteWithinStack",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 750,
            "function": "runRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php",
            "line": 739,
            "function": "dispatchToRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 201,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 144,
            "function": "Illuminate\\Foundation\\Http\\{closure}",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\livewire\\livewire\\src\\Features\\SupportDisablingBackButtonCache\\DisableBackButtonCacheMiddleware.php",
            "line": 19,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 183,
            "function": "handle",
            "class": "Livewire\\Features\\SupportDisablingBackButtonCache\\DisableBackButtonCacheMiddleware",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull.php",
            "line": 31,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 183,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TrimStrings.php",
            "line": 51,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 183,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TrimStrings",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\Http\\Middleware\\ValidatePostSize.php",
            "line": 27,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 183,
            "function": "handle",
            "class": "Illuminate\\Http\\Middleware\\ValidatePostSize",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance.php",
            "line": 110,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 183,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\Http\\Middleware\\HandleCors.php",
            "line": 62,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 183,
            "function": "handle",
            "class": "Illuminate\\Http\\Middleware\\HandleCors",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\Http\\Middleware\\TrustProxies.php",
            "line": 58,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 183,
            "function": "handle",
            "class": "Illuminate\\Http\\Middleware\\TrustProxies",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks.php",
            "line": 22,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 183,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\InvokeDeferredCallbacks",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php",
            "line": 119,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 176,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php",
            "line": 145,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 310,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 298,
            "function": "callLaravelOrLumenRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 91,
            "function": "makeApiCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 44,
            "function": "makeResponseCall",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Strategies\\Responses\\ResponseCalls.php",
            "line": 35,
            "function": "makeResponseCallIfConditionsPass",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 237,
            "function": "__invoke",
            "class": "Knuckles\\Scribe\\Extracting\\Strategies\\Responses\\ResponseCalls",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 163,
            "function": "iterateThroughStrategies",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\knuckleswtf\\scribe\\src\\Extracting\\Extractor.php",
            "line": 95,
            "function": "fetchResponses",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 125,
            "function": "processRoute",
            "class": "Knuckles\\Scribe\\Extracting\\Extractor",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 72,
            "function": "extractEndpointsInfoFromLaravelApp",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\knuckleswtf\\scribe\\src\\GroupedEndpoints\\GroupedEndpointsFromApp.php",
            "line": 50,
            "function": "extractEndpointsInfoAndWriteToDisk",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\knuckleswtf\\scribe\\src\\Commands\\GenerateDocumentation.php",
            "line": 53,
            "function": "get",
            "class": "Knuckles\\Scribe\\GroupedEndpoints\\GroupedEndpointsFromApp",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 36,
            "function": "handle",
            "class": "Knuckles\\Scribe\\Commands\\GenerateDocumentation",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Util.php",
            "line": 43,
            "function": "Illuminate\\Container\\{closure}",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 95,
            "function": "unwrapIfClosure",
            "class": "Illuminate\\Container\\Util",
            "type": "::"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\BoundMethod.php",
            "line": 35,
            "function": "callBoundMethod",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
            "line": 690,
            "function": "call",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 213,
            "function": "call",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\symfony\\console\\Command\\Command.php",
            "line": 279,
            "function": "execute",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\Console\\Command.php",
            "line": 182,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Command\\Command",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\symfony\\console\\Application.php",
            "line": 1047,
            "function": "run",
            "class": "Illuminate\\Console\\Command",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\symfony\\console\\Application.php",
            "line": 316,
            "function": "doRunCommand",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\symfony\\console\\Application.php",
            "line": 167,
            "function": "doRun",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Console\\Kernel.php",
            "line": 197,
            "function": "run",
            "class": "Symfony\\Component\\Console\\Application",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Application.php",
            "line": 1203,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Console\\Kernel",
            "type": "->"
        },
        {
            "file": "C:\\laragon\\www\\church_belgique\\artisan",
            "line": 13,
            "function": "handleCommand",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        }
    ]
}

Logout session.

POST
https://icc.goulbam.com
/api/v1/logout

Headers

Content-Type
Example:
application/json
Accept
Example:
application/json
Example request:
curl --request POST \
    "https://icc.goulbam.com/api/v1/logout" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Module | Department

CRUD


Department | List All Departments

GET
https://icc.goulbam.com
/api/v1/departments
requires authentication

Get the list of all departments in the system. This endpoint provides a full overview of all departments, including relevant details like department names, their associated roles, and any other useful metadata.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Response Fields

Example request:
curl --request GET \
    --get "https://icc.goulbam.com/api/v1/departments" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "data": [
        {
            "id": 1,
            "name": "department number 1",
            "matricule": "ICG-dd7184a9-60e1-318d-a392-7629a7ac9e4d",
            "description": "description for department number 1",
            "manager": {
                "id": 13,
                "name": "name test 12",
                "email": "email012@gmail.com",
                "image": "https://icc.goulbam.com/storage",
                "address": "653 Ullrich Village Suite 297\nFletaville, VT 65875",
                "email_verified_at": null,
                "remember_token": null,
                "created_at": "2025-02-03T15:13:39.000000Z",
                "updated_at": "2025-02-03T15:13:39.000000Z",
                "surname": "surname test 12",
                "phone_number": null,
                "role_id": 4,
                "role": {
                    "id": 4,
                    "name": "member"
                }
            },
            "members_count": null,
            "updated_at": "2025-02-03T15:13:41.000000Z",
            "created_at": "2025-02-03T15:13:41.000000Z"
        },
        {
            "id": 1,
            "name": "department number 1",
            "matricule": "ICG-dd7184a9-60e1-318d-a392-7629a7ac9e4d",
            "description": "description for department number 1",
            "manager": {
                "id": 13,
                "name": "name test 12",
                "email": "email012@gmail.com",
                "image": "https://icc.goulbam.com/storage",
                "address": "653 Ullrich Village Suite 297\nFletaville, VT 65875",
                "email_verified_at": null,
                "remember_token": null,
                "created_at": "2025-02-03T15:13:39.000000Z",
                "updated_at": "2025-02-03T15:13:39.000000Z",
                "surname": "surname test 12",
                "phone_number": null,
                "role_id": 4,
                "role": {
                    "id": 4,
                    "name": "member"
                }
            },
            "members_count": null,
            "updated_at": "2025-02-03T15:13:41.000000Z",
            "created_at": "2025-02-03T15:13:41.000000Z"
        }
    ]
}

Department | Create New Department

POST
https://icc.goulbam.com
/api/v1/departments
requires authentication

Create a new department and store it in the system. The newly created department will include the department name, description, and any associated data. This endpoint ensures that departments are added accurately to the system.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://icc.goulbam.com/api/v1/departments" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"Yost-Mante\",
    \"description\": \"Sed sint dignissimos nisi aut. Sit accusantium minima quo consequuntur illo. Provident consequatur qui ad illum. Molestiae vero repudiandae et veritatis. Iure et rerum architecto quos.\",
    \"user_id\": 1,
    \"matricule\": \"644d2c5c-6685-3c2b-9ab6-e5e87b48ed5a\"
}"
Example response:
{
    "data": {
        "id": 1,
        "name": "department number 1",
        "matricule": "ICG-dd7184a9-60e1-318d-a392-7629a7ac9e4d",
        "description": "description for department number 1",
        "manager": {
            "id": 13,
            "name": "name test 12",
            "email": "email012@gmail.com",
            "image": "https://icc.goulbam.com/storage",
            "address": "653 Ullrich Village Suite 297\nFletaville, VT 65875",
            "email_verified_at": null,
            "remember_token": null,
            "created_at": "2025-02-03T15:13:39.000000Z",
            "updated_at": "2025-02-03T15:13:39.000000Z",
            "surname": "surname test 12",
            "phone_number": null,
            "role_id": 4,
            "role": {
                "id": 4,
                "name": "member"
            }
        },
        "members_count": null,
        "updated_at": "2025-02-03T15:13:41.000000Z",
        "created_at": "2025-02-03T15:13:41.000000Z"
    }
}

Department | Show Department Details

GET
https://icc.goulbam.com
/api/v1/departments/{departmentId}
requires authentication

Retrieve detailed information about a specific department. This includes its name, description, associated members, and any events it is responsible for. Use this to get insights on departmental structure.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

departmentId
integer
required

id of department

Example:
8
Example request:
curl --request GET \
    --get "https://icc.goulbam.com/api/v1/departments/8" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "data": {
        "id": 1,
        "name": "department number 1",
        "matricule": "ICG-dd7184a9-60e1-318d-a392-7629a7ac9e4d",
        "description": "description for department number 1",
        "manager": {
            "id": 13,
            "name": "name test 12",
            "email": "email012@gmail.com",
            "image": "https://icc.goulbam.com/storage",
            "address": "653 Ullrich Village Suite 297\nFletaville, VT 65875",
            "email_verified_at": null,
            "remember_token": null,
            "created_at": "2025-02-03T15:13:39.000000Z",
            "updated_at": "2025-02-03T15:13:39.000000Z",
            "surname": "surname test 12",
            "phone_number": null,
            "role_id": 4,
            "role": {
                "id": 4,
                "name": "member"
            }
        },
        "members_count": null,
        "members": [],
        "updated_at": "2025-02-03T15:13:41.000000Z",
        "created_at": "2025-02-03T15:13:41.000000Z"
    }
}

Department | Update Department

PUT
PATCH
https://icc.goulbam.com
/api/v1/departments/{departmentId}
requires authentication

Update the details of a specific department and return the updated department data. This is essential when changes to department names, descriptions, or managers are required. The system will ensure the changes are reflected correctly.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

departmentId
integer
required

id of department

Example:
18

Body Parameters

Example request:
curl --request PUT \
    "https://icc.goulbam.com/api/v1/departments/18" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"Medhurst-Pollich\",
    \"description\": \"Ut facilis delectus voluptas et optio et voluptatem. Impedit quia neque sit. Nostrum ipsum tempore sit omnis enim. Ab neque eum voluptatem.\",
    \"user_id\": 1
}"
Example response:
{
    "data": {
        "id": 1,
        "name": "department number 1",
        "matricule": "ICG-dd7184a9-60e1-318d-a392-7629a7ac9e4d",
        "description": "description for department number 1",
        "manager": {
            "id": 13,
            "name": "name test 12",
            "email": "email012@gmail.com",
            "image": "https://icc.goulbam.com/storage",
            "address": "653 Ullrich Village Suite 297\nFletaville, VT 65875",
            "email_verified_at": null,
            "remember_token": null,
            "created_at": "2025-02-03T15:13:39.000000Z",
            "updated_at": "2025-02-03T15:13:39.000000Z",
            "surname": "surname test 12",
            "phone_number": null,
            "role_id": 4,
            "role": {
                "id": 4,
                "name": "member"
            }
        },
        "members_count": null,
        "updated_at": "2025-02-03T15:13:41.000000Z",
        "created_at": "2025-02-03T15:13:41.000000Z"
    }
}

Department | Delete Department

DELETE
https://icc.goulbam.com
/api/v1/departments/{departmentId}
requires authentication

Remove a specific department from the system. Once deleted, this action cannot be undone, and all department-related data will be permanently removed. Use this endpoint with caution.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

departmentId
integer
required

id of department

Example:
6
Example request:
curl --request DELETE \
    "https://icc.goulbam.com/api/v1/departments/6" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "message": "deleted"
}

Management


Department | List Members

GET
https://icc.goulbam.com
/api/v1/departments/{departmentId}/users
requires authentication

Retrieve a list of all members associated with a specific department. This includes the member details such as their roles within the department, their joining date, and their current status.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

departmentId
integer
required

id of department

Example:
1
Example request:
curl --request GET \
    --get "https://icc.goulbam.com/api/v1/departments/1/users" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "data": [
        {
            "id": 1,
            "name": "admin",
            "email": "admin@gmail.com",
            "image": "https://icc.goulbam.com/storage",
            "address": null,
            "email_verified_at": null,
            "remember_token": null,
            "created_at": "2025-02-03T15:13:36.000000Z",
            "updated_at": "2025-02-03T15:13:36.000000Z",
            "surname": "admin",
            "phone_number": null,
            "role_id": 1,
            "role": {
                "id": 1,
                "name": "global_admin"
            }
        },
        {
            "id": 1,
            "name": "admin",
            "email": "admin@gmail.com",
            "image": "https://icc.goulbam.com/storage",
            "address": null,
            "email_verified_at": null,
            "remember_token": null,
            "created_at": "2025-02-03T15:13:36.000000Z",
            "updated_at": "2025-02-03T15:13:36.000000Z",
            "surname": "admin",
            "phone_number": null,
            "role_id": 1,
            "role": {
                "id": 1,
                "name": "global_admin"
            }
        }
    ]
}

Department | Add Manager

POST
https://icc.goulbam.com
/api/v1/departments/{departmentId}/chief/append
requires authentication

Assign a new manager or update the current manager for a specific department. This ensures that the leadership structure is accurately maintained and reflects any recent changes in departmental management.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

departmentId
integer
required

id of department

Example:
1

Body Parameters

Example request:
curl --request POST \
    "https://icc.goulbam.com/api/v1/departments/1/chief/append" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"user_id\": 3
}"
Example response:
{
    "message": "success"
}

Department | Approve Join Request

POST
https://icc.goulbam.com
/api/v1/departments/requests/{requestId}/approve
requires authentication

Approve a join request submitted by a member wanting to join the department. Once approved, the member will be added to the department and can participate in its activities.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

requestId
string
required

the request id

Example:
xxxx-xxxx-xxxx
Example request:
curl --request POST \
    "https://icc.goulbam.com/api/v1/departments/requests/xxxx-xxxx-xxxx/approve" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "message": "approved",
    "status": 200
}

Department | Reject Join Request

POST
https://icc.goulbam.com
/api/v1/departments/requests/{requestId}/reject
requires authentication

Reject a join request from a member who wants to be part of the department. This ensures that only qualified or necessary members are allowed to join the department.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

requestId
string
required

id of request

Example:
xxx-xxx-xxx
Example request:
curl --request POST \
    "https://icc.goulbam.com/api/v1/departments/requests/xxx-xxx-xxx/reject" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "message": "rejected",
    "status": 200
}

Department | List All Join Requests

GET
https://icc.goulbam.com
/api/v1/departments/{departmentId}/requests/list
requires authentication

List all join requests for a department, including those that are pending, approved, or rejected. This gives administrators full visibility of all membership requests.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

departmentId
integer
required

id of department

Example:
1

Query Parameters

status
string
required

the type of status returned

Must be one of:
  • all
  • pending
  • approved
  • rejected
Example:
all
Example request:
curl --request GET \
    --get "https://icc.goulbam.com/api/v1/departments/1/requests/list?status=all" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "data": [
        {
            "id": 1,
            "request_id": "4d038f60-5b9d-38bc-a177-05f382660976",
            "approved_at": null,
            "created_at": "2025-02-03T15:13:41.000000Z",
            "updated_at": "2025-02-03T15:13:41.000000Z",
            "user_id": 11,
            "status": "pending",
            "department_id": 1,
            "department": {
                "id": 1,
                "name": "department number 1",
                "matricule": "ICG-dd7184a9-60e1-318d-a392-7629a7ac9e4d",
                "description": "description for department number 1",
                "members_count": null,
                "updated_at": "2025-02-03T15:13:41.000000Z",
                "created_at": "2025-02-03T15:13:41.000000Z"
            },
            "user": {
                "id": 11,
                "name": "name test 10",
                "email": "email010@gmail.com",
                "image": "https://icc.goulbam.com/storage",
                "address": "146 West Island Suite 809\nPort Josianne, TN 73616",
                "email_verified_at": null,
                "remember_token": null,
                "created_at": "2025-02-03T15:13:38.000000Z",
                "updated_at": "2025-02-03T15:13:38.000000Z",
                "surname": "surname test 10",
                "phone_number": null,
                "role_id": 1,
                "role": {
                    "id": 1,
                    "name": "global_admin"
                }
            }
        },
        {
            "id": 1,
            "request_id": "4d038f60-5b9d-38bc-a177-05f382660976",
            "approved_at": null,
            "created_at": "2025-02-03T15:13:41.000000Z",
            "updated_at": "2025-02-03T15:13:41.000000Z",
            "user_id": 11,
            "status": "pending",
            "department_id": 1,
            "department": {
                "id": 1,
                "name": "department number 1",
                "matricule": "ICG-dd7184a9-60e1-318d-a392-7629a7ac9e4d",
                "description": "description for department number 1",
                "members_count": null,
                "updated_at": "2025-02-03T15:13:41.000000Z",
                "created_at": "2025-02-03T15:13:41.000000Z"
            },
            "user": {
                "id": 11,
                "name": "name test 10",
                "email": "email010@gmail.com",
                "image": "https://icc.goulbam.com/storage",
                "address": "146 West Island Suite 809\nPort Josianne, TN 73616",
                "email_verified_at": null,
                "remember_token": null,
                "created_at": "2025-02-03T15:13:38.000000Z",
                "updated_at": "2025-02-03T15:13:38.000000Z",
                "surname": "surname test 10",
                "phone_number": null,
                "role_id": 1,
                "role": {
                    "id": 1,
                    "name": "global_admin"
                }
            }
        }
    ]
}

Module | Events

Basic CRUD


Event | List All Events

GET
https://icc.goulbam.com
/api/v1/events
requires authentication
        This endpoint allows you to retrieve a list of all the events available in the system. It provides a comprehensive overview of each event, including essential details such as the event name, date, and status. This is useful for administrators or users looking to manage or join events.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Query Parameters

departmentId
integer

Return all department belong to departmentId

Example:
1
type
string

Type d'événements à lister. Peut être all, my ou others. Par défaut all.

Must be one of:
  • all
  • my
  • others
Example:
my
state
string

State de l'événement : past, current, upcoming.

Must be one of:
  • past
  • current
  • upcoming
Example:
upcoming
status
string

Statut de l'événement : past, current, upcoming.

Must be one of:
  • pending
  • closed
Example:
closed
Example request:
curl --request GET \
    --get "https://icc.goulbam.com/api/v1/events?departmentId=1&type=my&state=upcoming&status=closed" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "data": [
        {
            "id": 1,
            "name": "event test 1",
            "status": "NOT_CLOSED",
            "status_label": "NOT_CLOSED",
            "purpose": "Dr.",
            "description": "In sit iste corporis odit. Suscipit reprehenderit vel quibusdam ipsa.",
            "start_date": "2009-07-23T11:55:24.000000Z",
            "end_date": "2022-10-25T07:42:42.000000Z",
            "location": "43608 Milan Mill Suite 363\nPort Maymie, MS 18319-4933",
            "poster": "https://icc.goulbam.com/storage",
            "poster_url": "https://icc.goulbam.com/storage",
            "phone_number": null,
            "manager": {
                "id": 1,
                "name": "admin",
                "email": "admin@gmail.com",
                "image": "https://icc.goulbam.com/storage",
                "address": null,
                "email_verified_at": null,
                "remember_token": null,
                "created_at": "2025-02-03T15:13:36.000000Z",
                "updated_at": "2025-02-03T15:13:36.000000Z",
                "surname": "admin",
                "phone_number": null,
                "role_id": 1
            },
            "department": {
                "id": 8,
                "name": "department number 8",
                "matricule": "ICG-a632dc8c-5731-3289-9b08-ccec466e4c43",
                "description": "description for department number 8",
                "members_count": null,
                "updated_at": "2025-02-03T15:13:41.000000Z",
                "created_at": "2025-02-03T15:13:41.000000Z"
            },
            "user_id": 1,
            "updated_at": "2025-02-03T15:13:41.000000Z",
            "created_at": "2025-02-03T15:13:41.000000Z"
        },
        {
            "id": 1,
            "name": "event test 1",
            "status": "NOT_CLOSED",
            "status_label": "NOT_CLOSED",
            "purpose": "Dr.",
            "description": "In sit iste corporis odit. Suscipit reprehenderit vel quibusdam ipsa.",
            "start_date": "2009-07-23T11:55:24.000000Z",
            "end_date": "2022-10-25T07:42:42.000000Z",
            "location": "43608 Milan Mill Suite 363\nPort Maymie, MS 18319-4933",
            "poster": "https://icc.goulbam.com/storage",
            "poster_url": "https://icc.goulbam.com/storage",
            "phone_number": null,
            "manager": {
                "id": 1,
                "name": "admin",
                "email": "admin@gmail.com",
                "image": "https://icc.goulbam.com/storage",
                "address": null,
                "email_verified_at": null,
                "remember_token": null,
                "created_at": "2025-02-03T15:13:36.000000Z",
                "updated_at": "2025-02-03T15:13:36.000000Z",
                "surname": "admin",
                "phone_number": null,
                "role_id": 1
            },
            "department": {
                "id": 8,
                "name": "department number 8",
                "matricule": "ICG-a632dc8c-5731-3289-9b08-ccec466e4c43",
                "description": "description for department number 8",
                "members_count": null,
                "updated_at": "2025-02-03T15:13:41.000000Z",
                "created_at": "2025-02-03T15:13:41.000000Z"
            },
            "user_id": 1,
            "updated_at": "2025-02-03T15:13:41.000000Z",
            "created_at": "2025-02-03T15:13:41.000000Z"
        }
    ]
}

Event | Create A New Event

POST
https://icc.goulbam.com
/api/v1/events
requires authentication
        Use this endpoint to create a new event and save it in the system. You will need to provide relevant details like the event name, start date, end date, and other necessary information. Once the event is successfully created, the system will return the newly created event with its unique identifier and all associated data.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
multipart/form-data
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://icc.goulbam.com/api/v1/events" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: multipart/form-data" \
    --header "Accept: application/json" \
    --form "name=prayer walk with 300 members in capte town"\
    --form "purpose=I must, I must,' the King added in a great."\
    --form "description=I'm sure I can't tell you how the Dodo managed it.) First it marked out a box of comfits, (luckily."\
    --form "location=353 Nels Station Suite 904"\
    --form "phone_number=+12144342987"\
    --form "start_date=2025-02-03 15:13:50"\
    --form "end_date=2025-02-04 01:13:50"\
    --form "department_id=1"\
    --form "user_id=1"\
    --form "poster=@C:\Users\Kamix\AppData\Local\Temp\php4794.tmp" 
Example response:
{
    "data": {
        "id": 1,
        "name": "event test 1",
        "status": "NOT_CLOSED",
        "status_label": "NOT_CLOSED",
        "purpose": "Dr.",
        "description": "In sit iste corporis odit. Suscipit reprehenderit vel quibusdam ipsa.",
        "start_date": "2009-07-23T11:55:24.000000Z",
        "end_date": "2022-10-25T07:42:42.000000Z",
        "location": "43608 Milan Mill Suite 363\nPort Maymie, MS 18319-4933",
        "poster": "https://icc.goulbam.com/storage",
        "poster_url": "https://icc.goulbam.com/storage",
        "phone_number": null,
        "user_id": 1,
        "updated_at": "2025-02-03T15:13:41.000000Z",
        "created_at": "2025-02-03T15:13:41.000000Z"
    }
}

Event | Detail For An Event

GET
https://icc.goulbam.com
/api/v1/events/{eventId}
requires authentication
        This endpoint allows you to retrieve detailed information about a specific event. You need to provide the event's unique identifier (ID) to get its full details, including its participants, status, and timeline. This is ideal for users or organizers who want to view or monitor the specifics of an event.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

eventId
integer
required

id of event

Example:
1
Example request:
curl --request GET \
    --get "https://icc.goulbam.com/api/v1/events/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "data": {
        "id": 1,
        "name": "event test 1",
        "status": "NOT_CLOSED",
        "status_label": "NOT_CLOSED",
        "purpose": "Dr.",
        "description": "In sit iste corporis odit. Suscipit reprehenderit vel quibusdam ipsa.",
        "start_date": "2009-07-23T11:55:24.000000Z",
        "end_date": "2022-10-25T07:42:42.000000Z",
        "location": "43608 Milan Mill Suite 363\nPort Maymie, MS 18319-4933",
        "poster": "https://icc.goulbam.com/storage",
        "poster_url": "https://icc.goulbam.com/storage",
        "phone_number": null,
        "manager": {
            "id": 1,
            "name": "admin",
            "email": "admin@gmail.com",
            "image": "https://icc.goulbam.com/storage",
            "address": null,
            "email_verified_at": null,
            "remember_token": null,
            "created_at": "2025-02-03T15:13:36.000000Z",
            "updated_at": "2025-02-03T15:13:36.000000Z",
            "surname": "admin",
            "phone_number": null,
            "role_id": 1,
            "role": {
                "id": 1,
                "name": "global_admin"
            }
        },
        "department": {
            "id": 8,
            "name": "department number 8",
            "matricule": "ICG-a632dc8c-5731-3289-9b08-ccec466e4c43",
            "description": "description for department number 8",
            "members_count": null,
            "updated_at": "2025-02-03T15:13:41.000000Z",
            "created_at": "2025-02-03T15:13:41.000000Z"
        },
        "user_id": 1,
        "members": [],
        "event_detail": {
            "id": null,
            "evangelised_number": 0,
            "converted_number": 0,
            "comment": "",
            "other_number": 0,
            "prayer_healing_number": 0,
            "created_at": null,
            "updated_at": null,
            "event_id": null
        },
        "updated_at": "2025-02-03T15:13:41.000000Z",
        "created_at": "2025-02-03T15:13:41.000000Z"
    }
}

Event | Update An Event

PUT
PATCH
https://icc.goulbam.com
/api/v1/events/{eventId}
requires authentication
        This endpoint enables the update of an existing event in the system. By passing the event's ID and the updated details (such as changes in the event name, date, or participants), the system will modify the event accordingly and return the updated version. It ensures that events remain up-to-date and accurate.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
multipart/form-data
Accept
Example:
application/json

URL Parameters

eventId
integer
required

id of event

Example:
1

Body Parameters

Example request:
curl --request PUT \
    "https://icc.goulbam.com/api/v1/events/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: multipart/form-data" \
    --header "Accept: application/json" \
    --form "name=prayer walk with 300 members in capte town"\
    --form "purpose=Pray how did you begin?' The Hatter shook his."\
    --form "description=Why, there's hardly room to grow to my right size: the next thing is, to get out again. That's."\
    --form "location=422 Lambert Bridge"\
    --form "phone_number=+15043731833"\
    --form "start_date=2025-02-03 15:13:50"\
    --form "end_date=2025-02-04 01:13:50"\
    --form "department_id=18"\
    --form "user_id=1"\
    --form "poster=@C:\Users\Kamix\AppData\Local\Temp\php47A5.tmp" 
Example response:
{
    "data": {
        "id": 1,
        "name": "event test 1",
        "status": "NOT_CLOSED",
        "status_label": "NOT_CLOSED",
        "purpose": "Dr.",
        "description": "In sit iste corporis odit. Suscipit reprehenderit vel quibusdam ipsa.",
        "start_date": "2009-07-23T11:55:24.000000Z",
        "end_date": "2022-10-25T07:42:42.000000Z",
        "location": "43608 Milan Mill Suite 363\nPort Maymie, MS 18319-4933",
        "poster": "https://icc.goulbam.com/storage",
        "poster_url": "https://icc.goulbam.com/storage",
        "phone_number": null,
        "user_id": 1,
        "updated_at": "2025-02-03T15:13:41.000000Z",
        "created_at": "2025-02-03T15:13:41.000000Z"
    }
}

Event | Remove An Event

DELETE
https://icc.goulbam.com
/api/v1/events/{eventId}
requires authentication
        This endpoint is used to permanently delete a specific event from the database. Once removed, the event cannot be recovered. You must provide the event's ID to ensure that the correct event is deleted. Use this with caution, particularly for events with many participants or significant importance.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

eventId
integer
required

id of event

Example:
1
Example request:
curl --request DELETE \
    "https://icc.goulbam.com/api/v1/events/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "message": "deleted",
    "status": 200
}

Details


Event | Update Event Detail

POST
https://icc.goulbam.com
/api/v1/events/{eventId}/details
requires authentication
        This endpoint enables the updating of detailed information for a specific event. By modifying aspects like event schedule or objectives, organizers can ensure that the event remains aligned with its intended goals.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

eventId
integer
required
Example:
1

Body Parameters

Example request:
curl --request POST \
    "https://icc.goulbam.com/api/v1/events/1/details" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"evangelised_number\": 3,
    \"converted_number\": 14,
    \"comment\": \"ipsam\",
    \"prayer_healing_number\": 20,
    \"other_number\": 5,
    \"contacts\": [
        {
            \"contact_name\": \"occaecati\",
            \"phone_number\": \"dolore\"
        }
    ],
    \"participants\": [
        {
            \"user_id\": 3,
            \"participated\": false
        }
    ]
}"
Example response:
{
    "message": "success",
    "status": 200
}

Event | Get Event Detail

GET
https://icc.goulbam.com
/api/v1/events/{eventId}/details
requires authentication
        Use this endpoint to retrieve a detailed breakdown of an event, including its timeline, participants, and key milestones. This provides a comprehensive view for organizers and participants alike to understand the event's structure.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

eventId
integer
required
Example:
1
Example request:
curl --request GET \
    --get "https://icc.goulbam.com/api/v1/events/1/details" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "data": {
        "id": null,
        "evangelised_number": null,
        "converted_number": null,
        "comment": null,
        "other_number": null,
        "prayer_healing_number": null,
        "created_at": null,
        "updated_at": null,
        "event_id": null
    }
}

Others


Event | List Event Contacts

GET
https://icc.goulbam.com
/api/v1/events/{eventId}/contacts
requires authentication
        Use this endpoint to list all the important contacts associated with an event, such as event coordinators, speakers, or sponsors. This is especially useful for large events where many stakeholders are involved.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

eventId
integer
required
Example:
1
Example request:
curl --request GET \
    --get "https://icc.goulbam.com/api/v1/events/1/contacts" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "data": [
        {
            "id": null,
            "name": "Dr. Adelia Koepp V",
            "phone_number": "256.630.5093",
            "created_at": "2025-02-03T15:13:50.000000Z",
            "updated_at": "2025-02-03T15:13:50.000000Z",
            "event_detail_id": 1
        },
        {
            "id": null,
            "name": "Beulah Hand",
            "phone_number": "423-674-6885",
            "created_at": "2025-02-03T15:13:51.000000Z",
            "updated_at": "2025-02-03T15:13:51.000000Z",
            "event_detail_id": 2
        }
    ]
}

Event | Mark As Finished

POST
https://icc.goulbam.com
/api/v1/events/{eventId}/finish
requires authentication
        This endpoint marks an event as finished. Once marked, the event will be considered closed and no further changes or participation will be allowed. It's typically used by event managers when an event concludes successfully.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

eventId
integer
required
Example:
1
Example request:
curl --request POST \
    "https://icc.goulbam.com/api/v1/events/1/finish" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "message": "success",
    "status": 200
}

Event | List Event Members

GET
https://icc.goulbam.com
/api/v1/events/{eventId}/users
requires authentication
        With this endpoint, you can list all the members currently registered as participants in a specific event. This is useful for event organizers or department heads who want to monitor attendance and ensure that all participants are accounted for.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

eventId
integer
required
Example:
1
Example request:
curl --request GET \
    --get "https://icc.goulbam.com/api/v1/events/1/users" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "data": [
        {
            "id": null,
            "name": null,
            "email": null,
            "image": "https://icc.goulbam.com/storage",
            "address": null,
            "email_verified_at": null,
            "remember_token": null,
            "created_at": null,
            "updated_at": null,
            "surname": null,
            "phone_number": null,
            "role_id": null
        },
        {
            "id": null,
            "name": null,
            "email": null,
            "image": "https://icc.goulbam.com/storage",
            "address": null,
            "email_verified_at": null,
            "remember_token": null,
            "created_at": null,
            "updated_at": null,
            "surname": null,
            "phone_number": null,
            "role_id": null
        }
    ]
}
{
    "errors": {
        "event": "event must exists",
        "message": "event must exists"
    }
}

Event | Add A New Member

POST
https://icc.goulbam.com
/api/v1/events/{eventId}/users/{userId}
requires authentication
        This endpoint allows you to add a new participant to an event. By providing the user details and the event ID, the new member will be officially added to the list of event participants, ensuring they are part of all event activities.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

eventId
integer
required
Example:
1
userId
integer
required
Example:
1
Example request:
curl --request POST \
    "https://icc.goulbam.com/api/v1/events/1/users/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "message": "added"
}

Event | Download Event PDF

GET
https://icc.goulbam.com
/api/v1/events/{eventId}/download
requires authentication
        This endpoint allows users to download a PDF version of the event details. The PDF includes all the important information such as participants, schedule, and summary, which can be shared or archived for future reference.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

eventId
integer
required

id of event

Example:
1
Example request:
curl --request GET \
    --get "https://icc.goulbam.com/api/v1/events/1/download" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
[Binary data] - 

Requests


Event | Approve A Join Request

POST
https://icc.goulbam.com
/api/v1/events/requests/{requestId}/approve
requires authentication
        This endpoint is designed for approving a join request made by a user within a department. By approving this request, the user will officially become a participant of the event. This functionality is useful for event administrators managing participation in large-scale events.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

requestId
string
required

the request id

Example:
xxxx-xxxx-xxxx
Example request:
curl --request POST \
    "https://icc.goulbam.com/api/v1/events/requests/xxxx-xxxx-xxxx/approve" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "message": "approved",
    "status": 200
}

Event | Reject A Join Request

POST
https://icc.goulbam.com
/api/v1/events/requests/{requestId}/reject
requires authentication
        With this endpoint, you can reject a join request submitted by a user. Rejection of the request means that the user will not be allowed to participate in the event. It is typically used by event managers or department heads when they need to manage attendance strictly.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

requestId
string
required

the request id

Example:
xxxx-xxxx-xxxx
Example request:
curl --request POST \
    "https://icc.goulbam.com/api/v1/events/requests/xxxx-xxxx-xxxx/reject" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "message": "rejected",
    "status": 200
}

Event | List All Requests

GET
https://icc.goulbam.com
/api/v1/events/{eventId}/requests
requires authentication
        This endpoint allows you to retrieve a complete list of all join requests related to an event, whether they are pending, approved, or rejected. This helps event organizers track participation requests and manage the approval workflow efficiently.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

eventId
integer
required

id of event

Example:
1

Query Parameters

status
string
required

the type of status returned

Must be one of:
  • all
  • pending
  • approved
  • rejected
Example:
all
Example request:
curl --request GET \
    --get "https://icc.goulbam.com/api/v1/events/1/requests?status=all" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "data": [
        {
            "id": null,
            "request_id": "perferendis",
            "approved_at": "2025-02-03T15:13:51.000000Z",
            "rejected_at": null,
            "event_id": 11,
            "status": "approved",
            "user_id": 24,
            "updated_at": "2025-02-03T15:13:51.000000Z",
            "created_at": "2025-02-03T15:13:51.000000Z"
        },
        {
            "id": null,
            "request_id": "repellat",
            "approved_at": "2025-02-03T15:13:51.000000Z",
            "rejected_at": null,
            "event_id": 12,
            "status": "approved",
            "user_id": 27,
            "updated_at": "2025-02-03T15:13:51.000000Z",
            "created_at": "2025-02-03T15:13:51.000000Z"
        }
    ]
}

Department


Department | List All Events

GET
https://icc.goulbam.com
/api/v1/departments/{departmentId}/events
requires authentication

Retrieve all events that are organized or belong to a specific department. This helps in tracking the department's activities and ensuring all planned events are visible to department heads and members.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

departmentId
integer
required
Example:
1
Example request:
curl --request GET \
    --get "https://icc.goulbam.com/api/v1/departments/1/events" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "data": {
        "id": 1,
        "name": "event test 1",
        "status": "NOT_CLOSED",
        "status_label": "NOT_CLOSED",
        "purpose": "Dr.",
        "description": "In sit iste corporis odit. Suscipit reprehenderit vel quibusdam ipsa.",
        "start_date": "2009-07-23T11:55:24.000000Z",
        "end_date": "2022-10-25T07:42:42.000000Z",
        "location": "43608 Milan Mill Suite 363\nPort Maymie, MS 18319-4933",
        "poster": "https://icc.goulbam.com/storage",
        "poster_url": "https://icc.goulbam.com/storage",
        "phone_number": null,
        "manager": {
            "id": 1,
            "name": "admin",
            "email": "admin@gmail.com",
            "image": "https://icc.goulbam.com/storage",
            "address": null,
            "email_verified_at": null,
            "remember_token": null,
            "created_at": "2025-02-03T15:13:36.000000Z",
            "updated_at": "2025-02-03T15:13:36.000000Z",
            "surname": "admin",
            "phone_number": null,
            "role_id": 1
        },
        "department": {
            "id": 8,
            "name": "department number 8",
            "matricule": "ICG-a632dc8c-5731-3289-9b08-ccec466e4c43",
            "description": "description for department number 8",
            "members_count": null,
            "updated_at": "2025-02-03T15:13:41.000000Z",
            "created_at": "2025-02-03T15:13:41.000000Z"
        },
        "user_id": 1,
        "updated_at": "2025-02-03T15:13:41.000000Z",
        "created_at": "2025-02-03T15:13:41.000000Z"
    }
}

Module | Users

User | List All Users

GET
https://icc.goulbam.com
/api/v1/users
requires authentication

Retrieve a complete list of all users in the system. This provides a detailed overview of every user registered, including their associated roles, statuses, and metadata.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Query Parameters

banned
boolean

filter by banned users if provided and retrieve by their boolean value.

Example:
1
star
boolean

Retrieve all users if it is star. if star is provided it will return all users with boolean value of star given

Example:
1
Example request:
curl --request GET \
    --get "https://icc.goulbam.com/api/v1/users?banned=1&star=1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "data": [
        {
            "id": 1,
            "name": "admin",
            "email": "admin@gmail.com",
            "image": "https://icc.goulbam.com/storage",
            "address": null,
            "email_verified_at": null,
            "remember_token": null,
            "created_at": "2025-02-03T15:13:36.000000Z",
            "updated_at": "2025-02-03T15:13:36.000000Z",
            "surname": "admin",
            "phone_number": null,
            "role_id": 1,
            "role": {
                "id": 1,
                "name": "global_admin"
            }
        },
        {
            "id": 1,
            "name": "admin",
            "email": "admin@gmail.com",
            "image": "https://icc.goulbam.com/storage",
            "address": null,
            "email_verified_at": null,
            "remember_token": null,
            "created_at": "2025-02-03T15:13:36.000000Z",
            "updated_at": "2025-02-03T15:13:36.000000Z",
            "surname": "admin",
            "phone_number": null,
            "role_id": 1,
            "role": {
                "id": 1,
                "name": "global_admin"
            }
        }
    ]
}

User | Create New User

POST
https://icc.goulbam.com
/api/v1/users
requires authentication

Create a new user and store the user's information in the system. This endpoint allows you to define the user's details, including their role and profile information, and returns the newly created user data.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
multipart/form-data
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://icc.goulbam.com/api/v1/users" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: multipart/form-data" \
    --header "Accept: application/json" \
    --form "name=Vincent Moore"\
    --form "phone_number=1-513-710-4560"\
    --form "surname=Konopelski"\
    --form "address=64357 Lilly Via
Hamillshire, OH 96610"\
    --form "email=rkreiger@example.org"\
    --form "role_id=pastor"\
    --form "password=password"\
    --form "password_confirmation=password"\
    --form "site_id=3"\
    --form "image=@C:\Users\Kamix\AppData\Local\Temp\php4734.tmp" 
Example response:
{
    "token": "XHDH293939jjfjfj939339339",
    "expired_at": "2024-08-23"
}

User | Show User Details

GET
https://icc.goulbam.com
/api/v1/users/{userId}
requires authentication

Retrieve detailed information about a specific user. This includes the user's personal details, roles, associated departments, and any activity history within the system.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

userId
integer
required
Example:
1
Example request:
curl --request GET \
    --get "https://icc.goulbam.com/api/v1/users/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "data": {
        "id": 1,
        "name": "admin",
        "email": "admin@gmail.com",
        "image": "https://icc.goulbam.com/storage",
        "address": null,
        "email_verified_at": null,
        "remember_token": null,
        "created_at": "2025-02-03T15:13:36.000000Z",
        "updated_at": "2025-02-03T15:13:36.000000Z",
        "surname": "admin",
        "phone_number": null,
        "role_id": 1,
        "role": {
            "id": 1,
            "name": "global_admin"
        }
    }
}

User | Update User

PUT
PATCH
https://icc.goulbam.com
/api/v1/users/{userId}
requires authentication

Update the details of a specific user and return the updated user data. Use this endpoint to modify the user's profile, role, or department membership.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
multipart/form-data
Accept
Example:
application/json

URL Parameters

userId
integer
required
Example:
1

Body Parameters

Example request:
curl --request PUT \
    "https://icc.goulbam.com/api/v1/users/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: multipart/form-data" \
    --header "Accept: application/json" \
    --form "name=Ms. Annette Marks"\
    --form "phone_number=+1-731-361-9415"\
    --form "surname=Herman"\
    --form "address=47604 Mireille Junction Apt. 756
Ritchieville, VT 81847"\
    --form "email=estroman@example.org"\
    --form "role_id=re"\
    --form "password=password"\
    --form "password_confirmation=password"\
    --form "image=@C:\Users\Kamix\AppData\Local\Temp\php4735.tmp" 
Example response:
{
    "message": "updated"
}

User | Delete User

DELETE
https://icc.goulbam.com
/api/v1/users/{userId}
requires authentication

Remove a specific user from the system. Once deleted, all associated data and records tied to the user will be permanently removed from the database. Use this action carefully.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

userId
integer
required

id of the user

Example:
1
Example request:
curl --request DELETE \
    "https://icc.goulbam.com/api/v1/users/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "message": "deleted"
}

User | Suspend Account

POST
https://icc.goulbam.com
/api/v1/user/{userId}/suspend
requires authentication

Suspend the account of a specific user. This will disable their access to the system and prevent them from participating in any events or activities until the suspension is lifted.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

userId
integer
required

id of user

Example:
1
Example request:
curl --request POST \
    "https://icc.goulbam.com/api/v1/user/1/suspend" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "message": "leaved"
}

User | Assign Role

POST
https://icc.goulbam.com
/api/v1/user/{userId}/assignRole
requires authentication

Assign a specific role to a user. This endpoint allows you to update the user's permissions and responsibilities by changing or adding a new role.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

userId
integer
required

id of user

Example:
1

Body Parameters

Example request:
curl --request POST \
    "https://icc.goulbam.com/api/v1/user/1/assignRole" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"role\": \"global_admin\"
}"
Example response:
{
    "message": "success"
}

User | Revoke Role

POST
https://icc.goulbam.com
/api/v1/user/{userId}/revoke
requires authentication

Revoke a role to member

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

userId
integer
required

id of user

Example:
1
Example request:
curl --request POST \
    "https://icc.goulbam.com/api/v1/user/1/revoke" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "message": "success",
    "status": 200
}

User | Leave Department

POST
https://icc.goulbam.com
/api/v1/user/{userId}/department/{departmentId}/leave
requires authentication

Allow a user to leave a specific department. This action removes the user's association with the department and any responsibilities tied to it.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

userId
integer
required

id of user

Example:
1
departmentId
integer
required

id of department

Example:
1
Example request:
curl --request POST \
    "https://icc.goulbam.com/api/v1/user/1/department/1/leave" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "user": [],
    "department": []
}

User | statistic

POST
https://icc.goulbam.com
/api/v1/users/{userId}/statistic
requires authentication

statistic user

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

userId
integer
required

id of user

Example:
1
Example request:
curl --request POST \
    "https://icc.goulbam.com/api/v1/users/1/statistic" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "data": {
        "id": 1,
        "name": "admin",
        "email": "admin@gmail.com",
        "image": "https://icc.goulbam.com/storage",
        "address": null,
        "email_verified_at": null,
        "remember_token": null,
        "created_at": "2025-02-03T15:13:36.000000Z",
        "updated_at": "2025-02-03T15:13:36.000000Z",
        "surname": "admin",
        "phone_number": null,
        "role_id": 1,
        "role": {
            "id": 1,
            "name": "global_admin"
        },
        "missed_events": [],
        "participated_events": [],
        "managed_departments": [
            {
                "id": 3,
                "name": "department number 3",
                "matricule": "ICG-d6427d06-59de-3731-a08c-60ce65feb9ba",
                "description": "description for department number 3",
                "members_count": null,
                "updated_at": "2025-02-03T15:13:41.000000Z",
                "created_at": "2025-02-03T15:13:41.000000Z"
            }
        ],
        "attached_departments": []
    }
}

User | Download pdf

GET
https://icc.goulbam.com
/api/v1/users/{userId}/statistic/download/pdf
requires authentication

download pdf

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

URL Parameters

userId
integer
required

id of user

Example:
1
Example request:
curl --request GET \
    --get "https://icc.goulbam.com/api/v1/users/1/statistic/download/pdf" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
[Binary data] -