瀏覽代碼

FD3-320 API REST

Guillermo Espinoza 7 年之前
父節點
當前提交
4f2a59b788

+ 25 - 0
app/config/routing.yml

@@ -1,3 +1,28 @@
+i_pv4_sub_net_api:
+    resource: "@IPv4Bundle/Controller/REST/SubNetRESTController.php"
+    type:   rest
+    prefix:   /api
+
+i_pv4_pool_api:
+    resource: "@IPv4Bundle/Controller/REST/PoolRESTController.php"
+    type:   rest
+    prefix:   /api
+
+i_pv4_net_group_api:
+    resource: "@IPv4Bundle/Controller/REST/NetGroupRESTController.php"
+    type:   rest
+    prefix:   /api
+
+i_pv4_host_type_api:
+    resource: "@IPv4Bundle/Controller/REST/HostTypeRESTController.php"
+    type:   rest
+    prefix:   /api
+
+i_pv4_host_api:
+    resource: "@IPv4Bundle/Controller/REST/HostRESTController.php"
+    type:   rest
+    prefix:   /api
+
 i_pv4:
     resource: "@IPv4Bundle/Controller/"
     type:     annotation

+ 32 - 0
src/IPv4Bundle/Controller/REST/HostRESTController.php

@@ -0,0 +1,32 @@
+<?php
+
+namespace IPv4Bundle\Controller\REST;
+
+use IPv4Bundle\Form\HostType;
+use FOS\RestBundle\Controller\Annotations\RouteResource;
+use WebserviceBundle\Controller\RESTController;
+
+/**
+ * Host controller.
+ * @RouteResource("Host")
+ */
+class HostRESTController extends RESTController
+{
+
+    /**
+     * @return string Retorna el nombre de la Entity de trabajo.
+     */
+    public function getRepository()
+    {
+        return 'IPv4Bundle:Host';
+    }
+
+    /**
+     * @return string Retorna el tipo de la clase.
+     */
+    public function getFormEntityType()
+    {
+        return get_class(new HostType());
+    }
+
+}

+ 32 - 0
src/IPv4Bundle/Controller/REST/HostTypeRESTController.php

@@ -0,0 +1,32 @@
+<?php
+
+namespace IPv4Bundle\Controller\REST;
+
+use IPv4Bundle\Form\HostTypeType;
+use FOS\RestBundle\Controller\Annotations\RouteResource;
+use WebserviceBundle\Controller\RESTController;
+
+/**
+ * HostType controller.
+ * @RouteResource("HostType")
+ */
+class HostTypeRESTController extends RESTController
+{
+
+    /**
+     * @return string Retorna el nombre de la Entity de trabajo.
+     */
+    public function getRepository()
+    {
+        return 'IPv4Bundle:HostType';
+    }
+
+    /**
+     * @return string Retorna el tipo de la clase.
+     */
+    public function getFormEntityType()
+    {
+        return get_class(new HostTypeType());
+    }
+
+}

+ 33 - 0
src/IPv4Bundle/Controller/REST/NetGroupRESTController.php

@@ -0,0 +1,33 @@
+<?php
+
+namespace IPv4Bundle\Controller\REST;
+
+use IPv4Bundle\Form\NetGroupType;
+use FOS\RestBundle\Controller\Annotations\RouteResource;
+use WebserviceBundle\Controller\RESTController;
+
+/**
+ * NetGroup controller.
+ *
+ * @RouteResource("NetGroup")
+ */
+class NetGroupRESTController extends RESTController
+{
+
+    /**
+     * @return string Retorna el nombre de la Entity de trabajo.
+     */
+    public function getRepository()
+    {
+        return 'IPv4Bundle:NetGroup';
+    }
+
+    /**
+     * @return string Retorna el tipo de la clase.
+     */
+    public function getFormEntityType()
+    {
+        return get_class(new NetGroupType());
+    }
+
+}

+ 32 - 0
src/IPv4Bundle/Controller/REST/PoolRESTController.php

@@ -0,0 +1,32 @@
+<?php
+
+namespace IPv4Bundle\Controller\REST;
+
+use IPv4Bundle\Form\PoolType;
+use FOS\RestBundle\Controller\Annotations\RouteResource;
+use WebserviceBundle\Controller\RESTController;
+
+/**
+ * Pool controller.
+ * @RouteResource("Pool")
+ */
+class PoolRESTController extends RESTController
+{
+
+    /**
+     * @return string Retorna el nombre de la Entity de trabajo.
+     */
+    public function getRepository()
+    {
+        return 'IPv4Bundle:Pool';
+    }
+
+    /**
+     * @return string Retorna el tipo de la clase.
+     */
+    public function getFormEntityType()
+    {
+        return get_class(new PoolType());
+    }
+
+}

+ 32 - 0
src/IPv4Bundle/Controller/REST/SubNetRESTController.php

@@ -0,0 +1,32 @@
+<?php
+
+namespace IPv4Bundle\Controller\REST;
+
+use IPv4Bundle\Form\SubNetType;
+use FOS\RestBundle\Controller\Annotations\RouteResource;
+use WebserviceBundle\Controller\RESTController;
+
+/**
+ * SubNet controller.
+ * @RouteResource("SubNet")
+ */
+class SubNetRESTController extends RESTController
+{
+
+    /**
+     * @return string Retorna el nombre de la Entity de trabajo.
+     */
+    public function getRepository()
+    {
+        return 'IPv4Bundle:SubNet';
+    }
+
+    /**
+     * @return string Retorna el tipo de la clase.
+     */
+    public function getFormEntityType()
+    {
+        return get_class(new SubNetType());
+    }
+
+}

+ 38 - 0
src/IPv4Bundle/Form/HostType.php

@@ -0,0 +1,38 @@
+<?php
+
+namespace IPv4Bundle\Form;
+
+use Symfony\Component\Form\AbstractType;
+use Symfony\Component\Form\FormBuilderInterface;
+use Symfony\Component\OptionsResolver\OptionsResolver;
+
+class HostType extends AbstractType
+{
+    /**
+     * {@inheritdoc}
+     */
+    public function buildForm(FormBuilderInterface $builder, array $options)
+    {
+        $builder->add('mac')->add('options')->add('hostType');
+    }
+    
+    /**
+     * {@inheritdoc}
+     */
+    public function configureOptions(OptionsResolver $resolver)
+    {
+        $resolver->setDefaults(array(
+            'data_class' => 'IPv4Bundle\Entity\Host'
+        ));
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getBlockPrefix()
+    {
+        return 'ipv4bundle_host';
+    }
+
+
+}

+ 38 - 0
src/IPv4Bundle/Form/HostTypeType.php

@@ -0,0 +1,38 @@
+<?php
+
+namespace IPv4Bundle\Form;
+
+use Symfony\Component\Form\AbstractType;
+use Symfony\Component\Form\FormBuilderInterface;
+use Symfony\Component\OptionsResolver\OptionsResolver;
+
+class HostTypeType extends AbstractType
+{
+    /**
+     * {@inheritdoc}
+     */
+    public function buildForm(FormBuilderInterface $builder, array $options)
+    {
+        $builder->add('name')->add('shortname')->add('opcode');
+    }
+    
+    /**
+     * {@inheritdoc}
+     */
+    public function configureOptions(OptionsResolver $resolver)
+    {
+        $resolver->setDefaults(array(
+            'data_class' => 'IPv4Bundle\Entity\HostType'
+        ));
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getBlockPrefix()
+    {
+        return 'ipv4bundle_hosttype';
+    }
+
+
+}

+ 38 - 0
src/IPv4Bundle/Form/NetGroupType.php

@@ -0,0 +1,38 @@
+<?php
+
+namespace IPv4Bundle\Form;
+
+use Symfony\Component\Form\AbstractType;
+use Symfony\Component\Form\FormBuilderInterface;
+use Symfony\Component\OptionsResolver\OptionsResolver;
+
+class NetGroupType extends AbstractType
+{
+    /**
+     * {@inheritdoc}
+     */
+    public function buildForm(FormBuilderInterface $builder, array $options)
+    {
+        $builder->add('name')->add('opcode')->add('tenancyId');
+    }
+    
+    /**
+     * {@inheritdoc}
+     */
+    public function configureOptions(OptionsResolver $resolver)
+    {
+        $resolver->setDefaults(array(
+            'data_class' => 'IPv4Bundle\Entity\NetGroup'
+        ));
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getBlockPrefix()
+    {
+        return 'ipv4bundle_netgroup';
+    }
+
+
+}

+ 38 - 0
src/IPv4Bundle/Form/PoolType.php

@@ -0,0 +1,38 @@
+<?php
+
+namespace IPv4Bundle\Form;
+
+use Symfony\Component\Form\AbstractType;
+use Symfony\Component\Form\FormBuilderInterface;
+use Symfony\Component\OptionsResolver\OptionsResolver;
+
+class PoolType extends AbstractType
+{
+    /**
+     * {@inheritdoc}
+     */
+    public function buildForm(FormBuilderInterface $builder, array $options)
+    {
+        $builder->add('name')->add('firstIp')->add('lastIp')->add('priority')->add('isStatic')->add('tenancyId')->add('subNet');
+    }
+    
+    /**
+     * {@inheritdoc}
+     */
+    public function configureOptions(OptionsResolver $resolver)
+    {
+        $resolver->setDefaults(array(
+            'data_class' => 'IPv4Bundle\Entity\Pool'
+        ));
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getBlockPrefix()
+    {
+        return 'ipv4bundle_pool';
+    }
+
+
+}

+ 38 - 0
src/IPv4Bundle/Form/SubNetType.php

@@ -0,0 +1,38 @@
+<?php
+
+namespace IPv4Bundle\Form;
+
+use Symfony\Component\Form\AbstractType;
+use Symfony\Component\Form\FormBuilderInterface;
+use Symfony\Component\OptionsResolver\OptionsResolver;
+
+class SubNetType extends AbstractType
+{
+    /**
+     * {@inheritdoc}
+     */
+    public function buildForm(FormBuilderInterface $builder, array $options)
+    {
+        $builder->add('address')->add('options')->add('tenancyId')->add('allowedHostType')->add('netGroup');
+    }
+    
+    /**
+     * {@inheritdoc}
+     */
+    public function configureOptions(OptionsResolver $resolver)
+    {
+        $resolver->setDefaults(array(
+            'data_class' => 'IPv4Bundle\Entity\SubNet'
+        ));
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getBlockPrefix()
+    {
+        return 'ipv4bundle_subnet';
+    }
+
+
+}