Releases Workflow

Scope

Here you can find how to upload release APIS or DLC to the IDC Panel to manage your releases of published games. These APIs allow you to create a new version of a game, upload the necessary files and go live.

All the APIs require using two mandatory headers in the HTTP Request:

GameId - game id provided by IDC Games GameSecret - game secret provided by IDC Games

Main functions and workflow:

1. Create a new release

URL:

https://admin.idcgames.com/api/release/active

Type: POST

Params:

  • rel_name - release name or version

  • exe - (optional) change exe file name used to execute the game

Example JSON response:

{
    "data": {
        "id": 131,
        "name": "1.20",
        "exe": "testGame.exe",
        "size": "",
        "published": "",
        "active": false,
        "splash": "https://admin.idcgames.com/storage/91/TESTGAME_LOGO",
        "ico": "https://admin.idcgames.com//storage/92/TESTGAME_ICO.ico",
        "sync_status": 0
    }
}

or modify an existing one:

URL:

https://admin.idcgames.com/api/release/update/$releaseId (releaseId recovered from create release, get active release or list existing releases)

Type: POST

Params:

  • rel_name - release name or version. Launcher updates the game only when it finds that the release name has changed

  • exe -(optional) change exe file name used to execute the game

Example JSON response:

{
    "data": {
        "id": 131,
        "name": "1.20",
        "exe": "testGame.exe",
        "size": "28.2 MB",
        "published": "2021-04-08T17:47:45.000000Z",
        "active": true,
        "splash": "https://admin.idcgames.com/storage/91/IDC_LOGO.png",
        "ico": "https://admin.idcgames.com/storage/92/LogoIDC.ico",
        "sync_status": 1
    }
}

2. Create ftp accounts

Accounts creation takes some seconds, use 3.- get ftp accounts data API to get the ftp data once it is created:

URL:

https://admin.idcgames.com/api/release/ftp/$releaseId (releaseId recovered from create release, get active release or list existing releases)

Type: POST

Params:

  • rel_dlc - 0 for release, 1 for DLC

  • rel_dir - redist for redistribuible files, common for files with the same format in x86 and x6 systems, uncommon for files for x86 systems, wich should be included in x86 folder and files for x64 systems, wich should be included in x64 folder

  • hours - ftp account lifetime in hours

  • ip - (optional) public source ip for uploading files with ftp. Leave blank if api is called from the same ip as ftp upload

Example JSON response:

{
    "success": true,
    "message": "FTP requested."
}

3. Get ftp accounts data

URL:

https://admin.idcgames.com/api/release/ftp/$releaseId

Type: GET

Params: none

Example JSON response (two accounts created)::

[
    {
        "id": 550,
        "user": 0,
        "rel": 131,
        "rel_dir": "idc-games/bkdUSlN4S25TYjVwU3RseDR3PT0=/uncommon",
        "hours": 1,
        "ip": "127.0.0.1",
        "requested_at": "2021-04-09 08:14:44",
        "accepted_at": "2021-04-09 08:14:50",
        "notified": false,
        "ftp_username": "ftpidc550",
        "ftp_password": "yspSOpCa",
        "expire_at": "2021-04-09 09:14:50",
        "status": 1,
        "rel_dlc": false,
        "created_at": "2021-04-09 08:14:44",
        "updated_at": "2021-04-09 08:14:44"
    },
    {
        "id": 551,
        "user": 0,
        "rel": 279,
        "rel_dir": "idc-games/bkdUSlN4S25TYjVwU3RseDR3PT0=/common",
        "hours": 1,
        "ip": "127.0.0.1",
        "requested_at": "2021-04-09 08:15:14",
        "accepted_at": "2021-04-09 08:15:20",
        "notified": false,
        "ftp_username": "ftpidc551",
        "ftp_password": "9nR0EaCz",
        "expire_at": "2021-04-09 09:15:20",
        "status": 1,
        "rel_dlc": false,
        "created_at": "2021-04-09 08:15:14",
        "updated_at": "2021-04-09 08:15:14"
    }
]
message": "FTP requested."
}

4. Upload files using FTP

You need to use a FTP client tool or integrate your own ftp code using any of the available libraries for ftp.

5. Publish an existing release

URL:

https://admin.idcgames.com/api/release/publish/$releaseId (releaseId recovered from create release, get active release or list existing releases)

Type: POST

Params: none

Example JSON response:

{
    "success": true,
    "errors": [],
    "sync_url": "https://admin.idcgames.com/game/release/sync/131",
    "json_url": "download.idcgames.com/games/idc-games/bkdUSlN4S25TYjVwU3RseDR3PT0=/download.json"
}

6. Check synchronization status

URL:

https://admin.idcgames.com/api/release/check_sync/$releaseId (releaseId recovered from create release, get active release or list existing releases)

Type: POST

Params: none

Example JSON response:

{
    "status": 1,
    "progress": [
        {
            "file_name": "config.xml",
            "file_progress": 100,
            "file_speed": "",
            "ip": "127.0.0.1"
        }
    ]
}

7. Deactivate active release

URL:

https://admin.idcgames.com/api/release/remove_active

Type: POST

Params: none

Example JSON response:

{
    "success": true
}

8. Activate a release

URL:

https://admin.idcgames.com/api/release/remove_active

Type: POST

Params: none

Example JSON response:

{
    "success": true
}

Extra functions: Get active release

URL:

https://admin.idcgames.com/api/release/active/$releaseId (releaseId recovered from create release, get active release or list existing releases)

Type: POST

Params: none

Example JSON response:

{
    "data": [
        {
            "id": 131,
            "name": "1.20",
            "exe": "testGame.exe",
            "size": "100.28 MB",
            "published": "2020-07-16T17:40:44.000000Z",
            "active": true,
            "splash": "https://admin.idcgames.com//storage/91/TESTGAME_LOGO.png",
            "ico": "https://admin.idcgames.com//storage/92/TESTGAME_ICO.ico",
            "sync_status": 1
        }
    ]
}

Extra functions: List Existing releases

URL:

https://admin.idcgames.com/api/release/active/$releaseId (releaseId recovered from create release, get active release or list existing releases)

Type: POST

Params: none

Example JSON response (two active releases):

{
    "data": [
        {
            "id": 130,
            "name": "1.20",
            "exe": "testGame.exe",
            "size": "98.32 MB",
            "published": "2020-05-13T18:12:32.000000Z",
            "active": false,
            "splash": "https://admin.idcgames.com//storage/91/TESTGAME_LOGO.png",
            "ico": "https://admin.idcgames.com//storage/92/TESTGAME_ICO.ico",
            "sync_status": 1
        },
        {
            "id": 131,
            "name": "1.20",
            "exe": "testGame.exe",
            "size": "100.28 MB",
            "published": "2020-07-16T17:40:44.000000Z",
            "active": true,
            "splash": "https://admin.idcgames.com//storage/91/TESTGAME_LOGO.png",
            "ico": "https://admin.idcgames.com//storage/92/TESTGAME_ICO.ico",
            "sync_status": 1
        }
    ]
}

Last updated