2024-06-10 18:54:31 +00:00
import { createNetwork } from '@/react/docker/networks/queries/useCreateNetworkMutation' ;
import { getNetwork } from '@/react/docker/networks/queries/useNetwork' ;
import { getNetworks } from '@/react/docker/networks/queries/useNetworks' ;
import { deleteNetwork } from '@/react/docker/networks/queries/useDeleteNetworkMutation' ;
import { connectContainer } from '@/react/docker/networks/queries/useConnectContainerMutation' ;
2017-05-27 07:23:49 +00:00
2024-06-10 18:54:31 +00:00
import { NetworkViewModel } from '../models/network' ;
2018-05-06 07:15:57 +00:00
2024-06-10 18:54:31 +00:00
angular . module ( 'portainer.docker' ) . factory ( 'NetworkService' , NetworkServiceFactory ) ;
/* @ngInject */
function NetworkServiceFactory ( AngularToReact ) {
const { useAxios , injectEnvironmentId } = AngularToReact ;
return {
create : useAxios ( injectEnvironmentId ( createNetwork ) ) , // create network
network : useAxios ( injectEnvironmentId ( networkAngularJS ) ) , // service edit
networks : useAxios ( injectEnvironmentId ( networksAngularJS ) ) , // macvlan form + container edit + dashboard + service create + service edit + custom templates list + templates list
remove : useAxios ( injectEnvironmentId ( deleteNetwork ) ) , // networks list
connectContainer : useAxios ( injectEnvironmentId ( connectContainerAngularJS ) ) , // container edit
} ;
/ * *
* @ param { EnvironmentId } environmentId filled by AngularToReact
* @ param { NetworkId } networkId
* @ param { string ? } nodeName
* @ returns NetworkViewModel
* /
async function networkAngularJS ( environmentId , networkId , nodeName ) {
const data = await getNetwork ( environmentId , networkId , { nodeName } ) ;
return new NetworkViewModel ( data ) ;
}
/ * *
* @ param { EnvironmentId } environmentId filled by AngularToReact
* @ param { boolean ? } localNetworks
* @ param { boolean ? } swarmNetworks
* @ param { boolean ? } swarmAttachableNetworks
* @ param { * } filters
* @ returns NetworkViewModel [ ]
* /
async function networksAngularJS ( environmentId , local , swarm , swarmAttachable , filters ) {
const data = await getNetworks ( environmentId , { local , swarm , swarmAttachable , filters } ) ;
return data . map ( ( n ) => new NetworkViewModel ( n ) ) ;
}
/ * *
* @ param { EnvironmentId } environmentId filled by AngularToReact
* @ param { NetworkId } networkId
* @ param { ContainerId } containerId
* /
async function connectContainerAngularJS ( environmentId , networkId , containerId ) {
return connectContainer ( { environmentId , containerId , networkId } ) ;
}
}