1.0.1 • Published 5 years ago

nestjs-webdav v1.0.1

Weekly downloads
3
License
MIT
Repository
github
Last release
5 years ago

NestJS WebDAV

Table of Contents

Description

Integrates WebDAV with Nest

Installation

npm install nestjs-webdav webdav

You can also use the interactive CLI

npx nestjs-modules

Examples

WebDAV-CLI

npx webdav-cli --username=username --password=password

NextCloud

docker run \
-e SQLITE_DATABASE=nextcloud \
-e NEXTCLOUD_ADMIN_USER=admin \
-e NEXTCLOUD_ADMIN_PASSWORD=password \
-p 8080:80 \
nextcloud

WebDAVModule.forRoot(options, connection?)

import { Module } from '@nestjs/common';
import { WebDAVModule } from 'nestjs-webdav';
import { AppController } from './app.controller';

@Module({
  imports: [
    WebDAVModule.forRoot({
      config: {
        endpoint: 'http://127.0.0.1:1900',
        username: 'username',
        password: 'password',
      },
    }),
    WebDAVModule.forRoot({
      config: {
        endpoint: 'http://localhost:8080/remote.php/dav/files/admin/',
        username: 'admin',
        password: 'password',
      },
    }, 'nextCloud'),
  ],
  controllers: [AppController],
})
export class AppModule {}

WebDAVModule.forRootAsync(options, connection?)

import { Module } from '@nestjs/common';
import { WebDAVModule } from 'nestjs-webdav';
import { AppController } from './app.controller';

@Module({
  imports: [
    WebDAVModule.forRootAsync({
      useFactory: () => ({
        config: {
          endpoint: 'http://127.0.0.1:1900',
          username: 'username',
          password: 'password',
        },
      }),
    }),
    WebDAVModule.forRootAsync({
      useFactory: () => ({
        config: {
          endpoint: 'http://localhost:8080/remote.php/dav/files/admin/',
          username: 'admin',
          password: 'password',
        },
      }),
    }, 'nextCloud'),
  ],
  controllers: [AppController],
})
export class AppModule {}

InjectWebDAV(connection?)

import { Controller, Get, } from '@nestjs/common';
import { InjectWebDAV, WebDAV } from 'nestjs-webdav';

@Controller()
export class AppController {
  constructor(
    @InjectWebDAV() private readonly webDAV: WebDAV,
    @InjectWebDAV('nextCloud') private readonly nextCloud: WebDAV,
  ) {}

  @Get()
  async getHello() {
    return {
      webdavCli: await this.webDAV.getDirectoryContents('/'),
      nextCloud: await this.nextCloud.getDirectoryContents('/'),
    }
  }
}

License

MIT

1.0.1

5 years ago

1.0.0

5 years ago

0.1.2

5 years ago

0.1.1

5 years ago

0.1.0

5 years ago

0.0.3

5 years ago

0.0.2

5 years ago

0.0.1

5 years ago