Skip to content

Commit ccd61e2

Browse files
committed
Initial release of Hetzner API module - changes
1 parent 5eb8e4d commit ccd61e2

7 files changed

Lines changed: 78 additions & 0 deletions

File tree

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# Placeholder for view export

hetzner_api.install

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
<?php
2+
3+
use Drupal\node\Entity\NodeType;
4+
use Drupal\field\Entity\FieldStorageConfig;
5+
use Drupal\field\Entity\FieldConfig;
6+
7+
/**
8+
* Implements hook_install().
9+
*/
10+
function hetzner_api_install() {
11+
if (!NodeType::load('hetzner_server')) {
12+
$type = NodeType::create([
13+
'type' => 'hetzner_server',
14+
'name' => 'Hetzner Server',
15+
'description' => 'Synkroniseret server fra Hetzner Cloud',
16+
]);
17+
$type->save();
18+
}
19+
20+
$fields = [
21+
'field_server_id' => ['label' => 'Server ID', 'type' => 'string'],
22+
'field_status' => ['label' => 'Status', 'type' => 'string'],
23+
'field_ipv4' => ['label' => 'IPv4', 'type' => 'string'],
24+
'field_location' => ['label' => 'Location', 'type' => 'string'],
25+
'field_specs' => ['label' => 'Specs', 'type' => 'string'],
26+
];
27+
28+
foreach ($fields as $field_name => $info) {
29+
if (!FieldStorageConfig::loadByName('node', $field_name)) {
30+
FieldStorageConfig::create([
31+
'field_name' => $field_name,
32+
'entity_type' => 'node',
33+
'type' => $info['type'],
34+
])->save();
35+
36+
FieldConfig::create([
37+
'field_name' => $field_name,
38+
'entity_type' => 'node',
39+
'bundle' => 'hetzner_server',
40+
'label' => $info['label'],
41+
])->save();
42+
}
43+
}
44+
}

hetzner_api.module

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?php
2+
3+
/**
4+
* Implements hook_cron().
5+
*/
6+
function hetzner_api_cron() {
7+
\Drupal::service('hetzner_api.api')->syncServersToNodes(TRUE);
8+
}

hetzner_api.services.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
services:
2+
hetzner_api.api:
3+
class: Drupal\hetzner_api\Service\HetznerApiService
4+
arguments: ['@http_client', '@config.factory']
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<?php
2+
3+
namespace Drupal\hetzner_api\Controller;
4+
5+
class HetznerController {
6+
// Controller logic here
7+
}

src/Form/HetznerSettingsForm.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<?php
2+
3+
namespace Drupal\hetzner_api\Form;
4+
5+
class HetznerSettingsForm {
6+
// Form logic here
7+
}

src/Service/HetznerApiService.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<?php
2+
3+
namespace Drupal\hetzner_api\Service;
4+
5+
class HetznerApiService {
6+
// API integration logic here
7+
}

0 commit comments

Comments
 (0)